{"version":3,"file":"viewer.js","mappings":"6BAAIA,ECCAC,EADAC,E,6CCAJ,4D,0CCAA,qD,yCCAA,mE,0CCAA,oD,0CCAA,sD,0CCAA,2D,0CCAA,gE,0CCAA,4D,0CCAA,uD,0CCAA,kE,0CCAA,yD,0CCAA,wD,0CCAA,8D,yCCAA,0D,0CCAA,wD,0CCAA,4D,0CCAA,0D,0CCAA,yD,0CCAA,sE,0CCAA,iE,0CCAA,uD,0CCAA,2D,0CCAA,2D,0CCAA,yD,yCCAA,oD,0CCAA,6D,0CCAA,yD,0CCAA,8D,0CCAA,uE,0CCAA,gE,0CCAA,yE,0CCAA,+D,0CCAA,4D,0CCAA,+D,yCCAA,oD,0CCAA,8D,yCCAA,6D,0CCAA,0D,0CCAA,yD,0CCAA,2D,0CCAA,0D,0CCAA,4D,0CCAA,0D,0CCAA,6D,0CCAA,4D,0CCAA,sD,0CCAA,uD,yCCAA,uD,0CCAA,4D,0CCAA,4D,0CCAA,wD,0CCAA,yD,0CCAA,yD,0CCAA,wD,0CCAA,mD,0CCAA,uD,0CCAA,qD,0CCAA,wD,0CCAA,qD,0CCAA,uD,0CCAA,sD,0CCAA,6D,0CCAA,4D,yCCAA,+D,0CCAA,8D,0CCAA,6D,0CCAA,2D,0CCAA,sD,0CCAA,qD,0CCAA,6D,0CCAA,sD,0CCAA,uD,0CCAA,yD,0CCAA,4D,0CCAA,4D,yCCAA,4D,0CCAA,yD,0CCAA,6D,0CCAA,uD,0CCAA,8D,0CCAA,oD,0CCAA,yD,0CCAA,qD,0CCAA,yD,0CCAA,uD,0CCAA,6D,yCCAA,wD,0CCAA,0D,0CCAA,4D,0CCAA,+C,0CCAA,mD,0CCAA,iD,2EC2HA,IAAYC,E,8GAAAA,EAAA,EAAAA,0BAAA,EAAAA,wBAAuB,KAI/B,kBAIA,YAIA,YAIA,oBAIA,kCAIA,8BAIA,YAMA,YAKA,4BAKA,YAoHJ,oCAAyCC,GACrC,MAAqC,iBAAtBA,MAAAA,OAAG,EAAHA,EAAaC,Q,2MCnRhC,WAQA,2BAAgCC,GAC5B,MAAO,CACHD,KAAM,EAAAE,WAAWC,kBACjBC,QAAS,EAAF,YACAH,KAUf,8BACI,MAAO,CACHD,KAAM,EAAAE,WAAWG,qBAYzB,sBAA2BC,EAAYC,GACnC,MAAO,CACHP,KAAM,EAAAE,WAAWM,YACjBJ,QAAS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","sources":["webpack://MapGuide/webpack/runtime/chunk loaded","webpack://MapGuide/webpack/runtime/create fake namespace object","webpack://MapGuide/./stdassets/images/icons/PoweredBy_en.png","webpack://MapGuide/./stdassets/images/icons/about.png","webpack://MapGuide/./stdassets/images/icons/application-browser.png","webpack://MapGuide/./stdassets/images/icons/back.png","webpack://MapGuide/./stdassets/images/icons/buffer.png","webpack://MapGuide/./stdassets/images/icons/control-180.png","webpack://MapGuide/./stdassets/images/icons/control-stop-180.png","webpack://MapGuide/./stdassets/images/icons/control-stop.png","webpack://MapGuide/./stdassets/images/icons/control.png","webpack://MapGuide/./stdassets/images/icons/coordinate-tracker.png","webpack://MapGuide/./stdassets/images/icons/edit-copy.png","webpack://MapGuide/./stdassets/images/icons/edit-cut.png","webpack://MapGuide/./stdassets/images/icons/edit-duplicate.png","webpack://MapGuide/./stdassets/images/icons/edit-paste.png","webpack://MapGuide/./stdassets/images/icons/edit-xml.png","webpack://MapGuide/./stdassets/images/icons/feature-info.png","webpack://MapGuide/./stdassets/images/icons/file-print.png","webpack://MapGuide/./stdassets/images/icons/file-save.png","webpack://MapGuide/./stdassets/images/icons/folder-horizontal-open.png","webpack://MapGuide/./stdassets/images/icons/folder-horizontal.png","webpack://MapGuide/./stdassets/images/icons/forward.png","webpack://MapGuide/./stdassets/images/icons/geolocation.png","webpack://MapGuide/./stdassets/images/icons/globe-share.png","webpack://MapGuide/./stdassets/images/icons/globe_add.png","webpack://MapGuide/./stdassets/images/icons/help.png","webpack://MapGuide/./stdassets/images/icons/iconNavigator.png","webpack://MapGuide/./stdassets/images/icons/icon_home.png","webpack://MapGuide/./stdassets/images/icons/icon_menuarrow.png","webpack://MapGuide/./stdassets/images/icons/icon_menuarrow_disabled.png","webpack://MapGuide/./stdassets/images/icons/icon_menuarrowup.png","webpack://MapGuide/./stdassets/images/icons/icon_menuarrowup_disabled.png","webpack://MapGuide/./stdassets/images/icons/icon_refreshmap.png","webpack://MapGuide/./stdassets/images/icons/icon_warning.png","webpack://MapGuide/./stdassets/images/icons/icon_zoomselect.png","webpack://MapGuide/./stdassets/images/icons/info.png","webpack://MapGuide/./stdassets/images/icons/initial-center.png","webpack://MapGuide/./stdassets/images/icons/invoke-script.png","webpack://MapGuide/./stdassets/images/icons/invoke-url.png","webpack://MapGuide/./stdassets/images/icons/layer_add.png","webpack://MapGuide/./stdassets/images/icons/lc_unselect.png","webpack://MapGuide/./stdassets/images/icons/legend-DWF.png","webpack://MapGuide/./stdassets/images/icons/legend-layer.png","webpack://MapGuide/./stdassets/images/icons/legend-map.png","webpack://MapGuide/./stdassets/images/icons/legend-raster.png","webpack://MapGuide/./stdassets/images/icons/legend-theme.png","webpack://MapGuide/./stdassets/images/icons/maptip.png","webpack://MapGuide/./stdassets/images/icons/measure.png","webpack://MapGuide/./stdassets/images/icons/options.png","webpack://MapGuide/./stdassets/images/icons/out-of-range.png","webpack://MapGuide/./stdassets/images/icons/overview-map.png","webpack://MapGuide/./stdassets/images/icons/pan-east.png","webpack://MapGuide/./stdassets/images/icons/pan-north.png","webpack://MapGuide/./stdassets/images/icons/pan-south.png","webpack://MapGuide/./stdassets/images/icons/pan-west.png","webpack://MapGuide/./stdassets/images/icons/pan.png","webpack://MapGuide/./stdassets/images/icons/preview.png","webpack://MapGuide/./stdassets/images/icons/print.png","webpack://MapGuide/./stdassets/images/icons/property.png","webpack://MapGuide/./stdassets/images/icons/query.png","webpack://MapGuide/./stdassets/images/icons/redline.png","webpack://MapGuide/./stdassets/images/icons/search.png","webpack://MapGuide/./stdassets/images/icons/select-centre.png","webpack://MapGuide/./stdassets/images/icons/select-clear.png","webpack://MapGuide/./stdassets/images/icons/select-features.png","webpack://MapGuide/./stdassets/images/icons/select-polygon.png","webpack://MapGuide/./stdassets/images/icons/select-radius.png","webpack://MapGuide/./stdassets/images/icons/select-zoom.png","webpack://MapGuide/./stdassets/images/icons/select.png","webpack://MapGuide/./stdassets/images/icons/theme.png","webpack://MapGuide/./stdassets/images/icons/toggle-expand.png","webpack://MapGuide/./stdassets/images/icons/toggle.png","webpack://MapGuide/./stdassets/images/icons/ui-menu.png","webpack://MapGuide/./stdassets/images/icons/view-back.png","webpack://MapGuide/./stdassets/images/icons/view-forward.png","webpack://MapGuide/./stdassets/images/icons/view-refresh.png","webpack://MapGuide/./stdassets/images/icons/zoom-dynamic.png","webpack://MapGuide/./stdassets/images/icons/zoom-full.png","webpack://MapGuide/./stdassets/images/icons/zoom-in-fixed.png","webpack://MapGuide/./stdassets/images/icons/zoom-in.png","webpack://MapGuide/./stdassets/images/icons/zoom-out-fixed.png","webpack://MapGuide/./stdassets/images/res/slider.png","webpack://MapGuide/./stdassets/images/res/sliderscale.png","webpack://MapGuide/./stdassets/images/res/spinner.gif","webpack://MapGuide/./stdassets/cursors/digitizeCircle.cur","webpack://MapGuide/./stdassets/cursors/digitizeLine.cur","webpack://MapGuide/./stdassets/cursors/digitizeLineString.cur","webpack://MapGuide/./stdassets/cursors/digitizePoint.cur","webpack://MapGuide/./stdassets/cursors/digitizePolygon.cur","webpack://MapGuide/./stdassets/cursors/digitizeRectangle.cur","webpack://MapGuide/./stdassets/cursors/grab.cur","webpack://MapGuide/./stdassets/cursors/grabbing.cur","webpack://MapGuide/./stdassets/cursors/zoomin.cur","webpack://MapGuide/./src/actions/defs.ts","webpack://MapGuide/./src/actions/flyout.ts","webpack://MapGuide/./src/actions/init-command.ts","webpack://MapGuide/./src/actions/init-mapguide.ts","webpack://MapGuide/./src/actions/init.ts","webpack://MapGuide/./src/actions/legend.ts","webpack://MapGuide/./src/actions/map.ts","webpack://MapGuide/./src/actions/modal.ts","webpack://MapGuide/./src/actions/taskpane.ts","webpack://MapGuide/./src/actions/template.ts","webpack://MapGuide/./src/api/base-layer-set.ts","webpack://MapGuide/./src/api/bootstrap.ts","webpack://MapGuide/./src/api/builders/deArrayify.ts","webpack://MapGuide/./src/api/builders/factory.ts","webpack://MapGuide/./src/api/builders/mapagent.ts","webpack://MapGuide/./src/api/client.ts","webpack://MapGuide/./src/api/common.ts","webpack://MapGuide/./src/api/composite-selection.ts","webpack://MapGuide/./src/api/contracts/weblayout.ts","webpack://MapGuide/./src/api/default-commands.ts","webpack://MapGuide/./src/api/default-components.tsx","webpack://MapGuide/./src/api/error.ts","webpack://MapGuide/./src/api/expr-eval-context.ts","webpack://MapGuide/./src/api/generic-layer-set.ts","webpack://MapGuide/./src/api/i18n.ts","webpack://MapGuide/./src/api/layer-manager.ts","webpack://MapGuide/./src/api/layer-manager/csv-driver.ts","webpack://MapGuide/./src/api/layer-manager/driver-registry.ts","webpack://MapGuide/./src/api/layer-manager/format-driver.ts","webpack://MapGuide/./src/api/layer-manager/parsed-features.ts","webpack://MapGuide/./src/api/layer-set-group-base.ts","webpack://MapGuide/./src/api/layer-set.ts","webpack://MapGuide/./src/api/lazy.ts","webpack://MapGuide/./src/api/mapguide-commands.ts","webpack://MapGuide/./src/api/mapguide-components.tsx","webpack://MapGuide/./src/api/mg-layer-set-group.ts","webpack://MapGuide/./src/api/ol-factory.ts","webpack://MapGuide/./src/api/ol-mapguide-source-factory.ts","webpack://MapGuide/./src/api/ol-style-builders.ts","webpack://MapGuide/./src/api/ol-style-contracts.ts","webpack://MapGuide/./src/api/ol-style-helpers.ts","webpack://MapGuide/./src/api/ol-style-map-set.ts","webpack://MapGuide/./src/api/registry/command-spec.ts","webpack://MapGuide/./src/api/registry/command.ts","webpack://MapGuide/./src/api/registry/component.tsx","webpack://MapGuide/./src/api/registry/external-layer.ts","webpack://MapGuide/./src/api/registry/layout.ts","webpack://MapGuide/./src/api/registry/projections.ts","webpack://MapGuide/./src/api/request-builder.ts","webpack://MapGuide/./src/api/runtime.ts","webpack://MapGuide/./src/api/selection-count.ts","webpack://MapGuide/./src/api/session-store.ts","webpack://MapGuide/./src/components/about.tsx","webpack://MapGuide/./src/components/accordion.tsx","webpack://MapGuide/./src/components/base-layer-switcher.tsx","webpack://MapGuide/./src/components/color-picker.tsx","webpack://MapGuide/./src/components/context.ts","webpack://MapGuide/./src/components/error.tsx","webpack://MapGuide/./src/components/external-layer-factory.ts","webpack://MapGuide/./src/components/flyout-region.tsx","webpack://MapGuide/./src/components/form-frame-shim.tsx","webpack://MapGuide/./src/components/icon.tsx","webpack://MapGuide/./src/components/layer-manager/add-layer.tsx","webpack://MapGuide/./src/components/layer-manager/add-wfs-layer.tsx","webpack://MapGuide/./src/components/layer-manager/add-wms-layer.tsx","webpack://MapGuide/./src/components/layer-manager/color-brewer.tsx","webpack://MapGuide/./src/components/layer-manager/common.tsx","webpack://MapGuide/./src/components/layer-manager/legend.ts","webpack://MapGuide/./src/components/layer-manager/manage-layers.tsx","webpack://MapGuide/./src/components/layer-manager/wfs-capabilities-panel.tsx","webpack://MapGuide/./src/components/layer-manager/wfs-capabilities-parser.ts","webpack://MapGuide/./src/components/layer-manager/wms-capabilities-panel.tsx","webpack://MapGuide/./src/components/legend.tsx","webpack://MapGuide/./src/components/map-load-indicator.tsx","webpack://MapGuide/./src/components/map-menu.tsx","webpack://MapGuide/./src/components/map-providers/base.ts","webpack://MapGuide/./src/components/map-providers/context.tsx","webpack://MapGuide/./src/components/map-providers/mapguide.ts","webpack://MapGuide/./src/components/mapguide-debug-context.ts","webpack://MapGuide/./src/components/menu.tsx","webpack://MapGuide/./src/components/modal-dialog.tsx","webpack://MapGuide/./src/components/mouse-coordinates.tsx","webpack://MapGuide/./src/components/navigator.tsx","webpack://MapGuide/./src/components/pbmg.tsx","webpack://MapGuide/./src/components/scale-display.tsx","webpack://MapGuide/./src/components/selected-feature-count.tsx","webpack://MapGuide/./src/components/selection-panel.tsx","webpack://MapGuide/./src/components/session-expired.tsx","webpack://MapGuide/./src/components/session-keep-alive.tsx","webpack://MapGuide/./src/components/task-pane.tsx","webpack://MapGuide/./src/components/toolbar.tsx","webpack://MapGuide/./src/components/tooltips/feature.ts","webpack://MapGuide/./src/components/tooltips/mouse.ts","webpack://MapGuide/./src/components/tooltips/selected-features.ts","webpack://MapGuide/./src/components/tooltips/utfgrid.ts","webpack://MapGuide/./src/components/vector-style-editor.tsx","webpack://MapGuide/./src/components/view-size.tsx","webpack://MapGuide/./src/constants.ts","webpack://MapGuide/./src/constants/actions.ts","webpack://MapGuide/./src/constants/assets.ts","webpack://MapGuide/./src/containers/add-manage-layers.tsx","webpack://MapGuide/./src/containers/app.tsx","webpack://MapGuide/./src/containers/base-layer-switcher.tsx","webpack://MapGuide/./src/containers/coordinate-tracker.tsx","webpack://MapGuide/./src/containers/flyout-region.tsx","webpack://MapGuide/./src/containers/hooks-generic.ts","webpack://MapGuide/./src/containers/hooks-mapguide.ts","webpack://MapGuide/./src/containers/hooks.ts","webpack://MapGuide/./src/containers/init-warning-display.tsx","webpack://MapGuide/./src/containers/legend.tsx","webpack://MapGuide/./src/containers/map-capturer-context.ts","webpack://MapGuide/./src/containers/map-menu.tsx","webpack://MapGuide/./src/containers/measure-context.ts","webpack://MapGuide/./src/containers/measure.tsx","webpack://MapGuide/./src/containers/modal-launcher.tsx","webpack://MapGuide/./src/containers/mouse-coordinates.tsx","webpack://MapGuide/./src/containers/navigator.tsx","webpack://MapGuide/./src/containers/neo-map-viewer.tsx","webpack://MapGuide/./src/containers/quick-plot.tsx","webpack://MapGuide/./src/containers/scale-display.tsx","webpack://MapGuide/./src/containers/selected-feature-count.tsx","webpack://MapGuide/./src/containers/selection-panel.tsx","webpack://MapGuide/./src/containers/share-link-to-view.tsx","webpack://MapGuide/./src/containers/subscriber.tsx","webpack://MapGuide/./src/containers/task-pane.tsx","webpack://MapGuide/./src/containers/toolbar.tsx","webpack://MapGuide/./src/containers/url-state.ts","webpack://MapGuide/./src/containers/view-size.tsx","webpack://MapGuide/./src/containers/viewer-options.tsx","webpack://MapGuide/./src/containers/viewer-shim.tsx","webpack://MapGuide/./src/entries/application.tsx","webpack://MapGuide/./src/entries/library.tsx","webpack://MapGuide/./src/layouts/ajax-viewer.tsx","webpack://MapGuide/./src/layouts/aqua.tsx","webpack://MapGuide/./src/layouts/generic.tsx","webpack://MapGuide/./src/layouts/hooks.ts","webpack://MapGuide/./src/layouts/limegold.tsx","webpack://MapGuide/./src/layouts/maroon.tsx","webpack://MapGuide/./src/layouts/sidebar.tsx","webpack://MapGuide/./src/layouts/slate.tsx","webpack://MapGuide/./src/layouts/turquoise-yellow.tsx","webpack://MapGuide/./src/reducers/config.ts","webpack://MapGuide/./src/reducers/init-error.ts","webpack://MapGuide/./src/reducers/last-action.ts","webpack://MapGuide/./src/reducers/map-state.ts","webpack://MapGuide/./src/reducers/modal.ts","webpack://MapGuide/./src/reducers/mouse.ts","webpack://MapGuide/./src/reducers/root.ts","webpack://MapGuide/./src/reducers/taskpane.ts","webpack://MapGuide/./src/reducers/template.ts","webpack://MapGuide/./src/reducers/toolbar.ts","webpack://MapGuide/./src/reducers/viewer.ts","webpack://MapGuide/./src/store/configure-store.ts","webpack://MapGuide/./src/store/logger.ts","webpack://MapGuide/./src/store/promise-middleware.ts","webpack://MapGuide/./src/strings/en.ts","webpack://MapGuide/./src/utils/array.ts","webpack://MapGuide/./src/utils/assert.ts","webpack://MapGuide/./src/utils/asset.ts","webpack://MapGuide/./src/utils/logger.ts","webpack://MapGuide/./src/utils/menu.ts","webpack://MapGuide/./src/utils/never.ts","webpack://MapGuide/./src/utils/number.ts","webpack://MapGuide/./src/utils/scoped-id.ts","webpack://MapGuide/./src/utils/site-version.ts","webpack://MapGuide/./src/utils/string.ts","webpack://MapGuide/./src/utils/type-guards.ts","webpack://MapGuide/./src/utils/units.tsx","webpack://MapGuide/./src/utils/url.ts","webpack://MapGuide/./src/utils/viewer-state.ts","webpack://MapGuide/./stdassets/bp-icons.js","webpack://MapGuide/webpack/bootstrap","webpack://MapGuide/webpack/runtime/compat get default export","webpack://MapGuide/webpack/runtime/define property getters","webpack://MapGuide/webpack/runtime/global","webpack://MapGuide/webpack/runtime/hasOwnProperty shorthand","webpack://MapGuide/webpack/runtime/make namespace object","webpack://MapGuide/webpack/runtime/jsonp chunk loading","webpack://MapGuide/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","export default \"./dist/stdassets/images/icons/PoweredBy_en.png\";","export default \"./dist/stdassets/images/icons/about.png\";","export default \"./dist/stdassets/images/icons/application-browser.png\";","export default \"./dist/stdassets/images/icons/back.png\";","export default \"./dist/stdassets/images/icons/buffer.png\";","export default \"./dist/stdassets/images/icons/control-180.png\";","export default \"./dist/stdassets/images/icons/control-stop-180.png\";","export default \"./dist/stdassets/images/icons/control-stop.png\";","export default \"./dist/stdassets/images/icons/control.png\";","export default \"./dist/stdassets/images/icons/coordinate-tracker.png\";","export default \"./dist/stdassets/images/icons/edit-copy.png\";","export default \"./dist/stdassets/images/icons/edit-cut.png\";","export default \"./dist/stdassets/images/icons/edit-duplicate.png\";","export default \"./dist/stdassets/images/icons/edit-paste.png\";","export default \"./dist/stdassets/images/icons/edit-xml.png\";","export default \"./dist/stdassets/images/icons/feature-info.png\";","export default \"./dist/stdassets/images/icons/file-print.png\";","export default \"./dist/stdassets/images/icons/file-save.png\";","export default \"./dist/stdassets/images/icons/folder-horizontal-open.png\";","export default \"./dist/stdassets/images/icons/folder-horizontal.png\";","export default \"./dist/stdassets/images/icons/forward.png\";","export default \"./dist/stdassets/images/icons/geolocation.png\";","export default \"./dist/stdassets/images/icons/globe-share.png\";","export default \"./dist/stdassets/images/icons/globe_add.png\";","export default \"./dist/stdassets/images/icons/help.png\";","export default \"./dist/stdassets/images/icons/iconNavigator.png\";","export default \"./dist/stdassets/images/icons/icon_home.png\";","export default \"./dist/stdassets/images/icons/icon_menuarrow.png\";","export default \"./dist/stdassets/images/icons/icon_menuarrow_disabled.png\";","export default \"./dist/stdassets/images/icons/icon_menuarrowup.png\";","export default \"./dist/stdassets/images/icons/icon_menuarrowup_disabled.png\";","export default \"./dist/stdassets/images/icons/icon_refreshmap.png\";","export default \"./dist/stdassets/images/icons/icon_warning.png\";","export default \"./dist/stdassets/images/icons/icon_zoomselect.png\";","export default \"./dist/stdassets/images/icons/info.png\";","export default \"./dist/stdassets/images/icons/initial-center.png\";","export default \"./dist/stdassets/images/icons/invoke-script.png\";","export default \"./dist/stdassets/images/icons/invoke-url.png\";","export default \"./dist/stdassets/images/icons/layer_add.png\";","export default \"./dist/stdassets/images/icons/lc_unselect.png\";","export default \"./dist/stdassets/images/icons/legend-DWF.png\";","export default \"./dist/stdassets/images/icons/legend-layer.png\";","export default \"./dist/stdassets/images/icons/legend-map.png\";","export default \"./dist/stdassets/images/icons/legend-raster.png\";","export default \"./dist/stdassets/images/icons/legend-theme.png\";","export default \"./dist/stdassets/images/icons/maptip.png\";","export default \"./dist/stdassets/images/icons/measure.png\";","export default \"./dist/stdassets/images/icons/options.png\";","export default \"./dist/stdassets/images/icons/out-of-range.png\";","export default \"./dist/stdassets/images/icons/overview-map.png\";","export default \"./dist/stdassets/images/icons/pan-east.png\";","export default \"./dist/stdassets/images/icons/pan-north.png\";","export default \"./dist/stdassets/images/icons/pan-south.png\";","export default \"./dist/stdassets/images/icons/pan-west.png\";","export default \"./dist/stdassets/images/icons/pan.png\";","export default \"./dist/stdassets/images/icons/preview.png\";","export default \"./dist/stdassets/images/icons/print.png\";","export default \"./dist/stdassets/images/icons/property.png\";","export default \"./dist/stdassets/images/icons/query.png\";","export default \"./dist/stdassets/images/icons/redline.png\";","export default \"./dist/stdassets/images/icons/search.png\";","export default \"./dist/stdassets/images/icons/select-centre.png\";","export default \"./dist/stdassets/images/icons/select-clear.png\";","export default \"./dist/stdassets/images/icons/select-features.png\";","export default \"./dist/stdassets/images/icons/select-polygon.png\";","export default \"./dist/stdassets/images/icons/select-radius.png\";","export default \"./dist/stdassets/images/icons/select-zoom.png\";","export default \"./dist/stdassets/images/icons/select.png\";","export default \"./dist/stdassets/images/icons/theme.png\";","export default \"./dist/stdassets/images/icons/toggle-expand.png\";","export default \"./dist/stdassets/images/icons/toggle.png\";","export default \"./dist/stdassets/images/icons/ui-menu.png\";","export default \"./dist/stdassets/images/icons/view-back.png\";","export default \"./dist/stdassets/images/icons/view-forward.png\";","export default \"./dist/stdassets/images/icons/view-refresh.png\";","export default \"./dist/stdassets/images/icons/zoom-dynamic.png\";","export default \"./dist/stdassets/images/icons/zoom-full.png\";","export default \"./dist/stdassets/images/icons/zoom-in-fixed.png\";","export default \"./dist/stdassets/images/icons/zoom-in.png\";","export default \"./dist/stdassets/images/icons/zoom-out-fixed.png\";","export default \"./dist/stdassets/images/res/slider.png\";","export default \"./dist/stdassets/images/res/sliderscale.png\";","export default \"./dist/stdassets/images/res/spinner.gif\";","export default \"./dist/stdassets/cursors/digitizeCircle.cur\";","export default \"./dist/stdassets/cursors/digitizeLine.cur\";","export default \"./dist/stdassets/cursors/digitizeLineString.cur\";","export default \"./dist/stdassets/cursors/digitizePoint.cur\";","export default \"./dist/stdassets/cursors/digitizePolygon.cur\";","export default \"./dist/stdassets/cursors/digitizeRectangle.cur\";","export default \"./dist/stdassets/cursors/grab.cur\";","export default \"./dist/stdassets/cursors/grabbing.cur\";","export default \"./dist/stdassets/cursors/zoomin.cur\";","/**\n * defs.ts\n * \n * Redux action definitions\n */\n\nimport { IDOMElementMetrics, IMapView, Dictionary, IExternalBaseLayer, IModalComponentDisplayOptions, IModalDisplayOptions, UnitOfMeasure, ActiveMapTool, ILayerInfo, Bounds, INameValuePair } from '../api/common';\nimport { ActionType } from '../constants/actions';\nimport { PreparedSubMenuSet } from '../api/registry/command-spec';\nimport { RuntimeMap } from '../api/contracts/runtime-map';\nimport { QueryMapFeaturesResponse } from '../api/contracts/query';\nimport { IVectorLayerStyle, IClusterSettings, VectorStyleSource } from '../api/ol-style-contracts';\nimport { Action } from 'redux';\nimport { ClientSelectionFeature } from '../api/contracts/common';\n\n/**\n * Opens the context menu\n * \n * @since 0.13\n */\nexport interface IOpenContextMenuAction {\n type: ActionType.CONTEXT_MENU_OPEN;\n payload: {\n x: number;\n y: number;\n }\n}\n\nexport interface ICloseContextMenuAction {\n type: ActionType.CONTEXT_MENU_CLOSE;\n}\n\n/**\n * Opens a flyout menu\n * \n * @since 0.12\n */\nexport interface IOpenFlyoutAction {\n type: ActionType.FLYOUT_OPEN;\n payload: {\n flyoutId: string;\n metrics: IDOMElementMetrics;\n }\n}\n\n/**\n * Closes a flyout menu\n * \n * @since 0.12\n */\nexport interface ICloseFlyoutAction {\n type: ActionType.FLYOUT_CLOSE;\n payload: {\n flyoutId: string;\n }\n}\n\n/**\n * Opens a registered component in the given flyout\n * \n * @since 0.12\n */\nexport interface IOpenComponentInFlyoutAction {\n type: ActionType.COMPONENT_OPEN;\n payload: {\n flyoutId: string;\n metrics: IDOMElementMetrics;\n name: string;\n props: any;\n }\n}\n\n/**\n * Closes a registered component in the given flyout\n *\n * @since 0.12\n */\nexport interface ICloseComponentInFlyoutAction {\n type: ActionType.COMPONENT_CLOSE;\n payload: {\n flyoutId: string;\n }\n}\n\n/**\n * Metadata about the generic subject layer\n * \n * @export\n * @interface IGenericSubjectMapLayerMetadata\n * @since 0.14\n */\nexport interface IGenericSubjectMapLayerMetadata {\n /**\n * The bounds of this layer\n *\n * @type {Bounds}\n * @memberof IGenericSubjectMapLayerMetadata\n */\n extents: Bounds;\n /**\n * The projection of this layer\n *\n * @type {string}\n * @memberof IGenericSubjectMapLayerMetadata\n */\n projection: string;\n /**\n * An other arbitrary metadata properties\n */\n properties?: any;\n /**\n * If true, the GeoJSON layer will be loaded as a vector tile layer. Has no effect if this layer is not a GeoJSON layer\n */\n geojson_as_vt?: boolean;\n}\n\n/**\n * Valid generic subject layer types\n * \n * @export\n * @enum {string}\n * @since 0.14\n */\nexport enum GenericSubjectLayerType {\n /**\n * A tiled WMS layer\n */\n TileWMS = \"TileWMS\",\n /**\n * A vector layer based on an external CSV file\n */\n CSV = \"CSV\",\n /**\n * A vector layer based on an external KML file\n */\n KML = \"KML\",\n /**\n * A vector layer based on an external GeoJSON file\n */\n GeoJSON = \"GeoJSON\",\n /**\n * A vector layer based on an inline GeoJSON fragment\n */\n GeoJSON_Inline = \"GeoJSON_Inline\",\n /**\n * A vector layer based on a custom-defined format whose driver was registered with {@link ExternalLayerFactoryRegistry.registerExternalVectorLayerCreator}\n */\n CustomVector = \"CustomVector\",\n /**\n * A vector layer based on a Mapbox Vector Tile set\n */\n MVT = \"MVT\",\n /**\n * A XYZ tileset\n * @since 0.14.3\n * @remarks A XYZ subject layer will not be added as a base layer. It will be considered as an \"overlay\" with respect to any existing base layers present\n */\n XYZ = \"XYZ\",\n /**\n * A static image layer\n * @since 0.14.3\n */\n StaticImage = \"StaticImage\",\n /**\n * A WFS layer\n * @since 0.14.4\n */\n WFS = \"WFS\"\n}\n\n/**\n * Defines an expression for a popup link\n */\nexport interface IPopupLinkExpression {\n expression: string;\n placeholderBegin?: string;\n placeholderEnd?: string;\n}\n\n/**\n * Popup link control options\n *\n * @export\n * @interface ISelectedFeaturePopupLinkProperty\n * @since 0.14\n */\nexport interface ISelectedFeaturePopupLinkProperty {\n /**\n * The feature property that contains the link\n *\n * @type {string}\n * @memberof ISelectedFeaturePopupLinkProperty\n */\n name: string | IPopupLinkExpression;\n /**\n * The anchor label to render\n *\n * @type {string}\n * @memberof ISelectedFeaturePopupLinkProperty\n */\n label: string;\n /**\n * The hyperlink target\n *\n * @type {string}\n * @memberof ISelectedFeaturePopupLinkProperty\n */\n linkTarget: string;\n}\n\n/**\n * Selected feature popup configuration for an external layer\n *\n * @export\n * @interface ISelectedFeaturePopupTemplateConfiguration\n * @since 0.14\n */\nexport interface ISelectedFeaturePopupTemplateConfiguration {\n /**\n * Custom popup title. If not set, the default title \"Feature Properties\" \n * (string value dependent on your locale's string bundle) will be used\n *\n * @type {string}\n * @memberof ISelectedFeaturePopupTemplateConfiguration\n */\n title?: string;\n /**\n * The popup title for a selected cluster. If not set, the default title \"Cluster Properties\"\n * (string value dependent on your locale's string bundle) will be used\n * @since 0.14\n */\n clusteredTitle?: (size: number) => string;\n /**\n * If specified, restricts the display of feature properties only to what is\n * specified here. The value part determines the display label.\n *\n * @type {INameValuePair[]}\n * @memberof ISelectedFeaturePopupTemplateConfiguration\n */\n propertyMappings?: INameValuePair[];\n /**\n * If specified, controls link display for the popup\n *\n * @type {INameValuePair}\n * @memberof ISelectedFeaturePopupTemplateConfiguration\n */\n linkProperty?: ISelectedFeaturePopupLinkProperty;\n}\n\n/**\n * \n * @export\n * @interface IGenericSubjectMapLayer\n * @since 0.14\n */\nexport interface IGenericSubjectMapLayer {\n type: GenericSubjectLayerType;\n meta: IGenericSubjectMapLayerMetadata | undefined;\n layerOptions: any;\n sourceParams: any;\n name: string;\n description?: string;\n displayName?: string;\n initiallyVisible: boolean;\n selectable: boolean;\n /**\n * Opt-out of hover highlight selection processing. Has no effect for non-vector layers\n * \n * @since 0.14.5\n */\n disableHover?: boolean;\n vectorStyle?: IVectorLayerStyle;\n cluster?: IClusterSettings;\n attributions?: string[];\n popupTemplate?: ISelectedFeaturePopupTemplateConfiguration;\n /**\n * The driver name for custom external layers\n */\n driverName?: string;\n}\n\nexport type IInitialExternalLayer = IGenericSubjectMapLayer;\n\nexport function isGenericSubjectMapLayer(map: RuntimeMap | IGenericSubjectMapLayer): map is IGenericSubjectMapLayer {\n return typeof((map as any)?.type) == 'string';\n}\n\n/**\n * @since 0.12\n */\nexport type MapInfo = {\n mapGroupId: string;\n map: RuntimeMap | IGenericSubjectMapLayer | undefined;\n initialView: IMapView | undefined;\n externalBaseLayers: IExternalBaseLayer[];\n /**\n * The initial set of external layers\n *\n * @type {IInitialExternalLayer[]}\n * @since 0.14\n */\n initialExternalLayers: IInitialExternalLayer[];\n}\n\n/**\n * @since 0.12\n */\nexport interface IRestoredSelectionSets {\n [mapName: string]: QueryMapFeaturesResponse;\n}\n\n/**\n * @since 0.12\n */\nexport interface IInitAppActionPayload {\n activeMapName: string;\n initialView?: IMapView;\n initialUrl: string;\n initialTaskPaneWidth?: number;\n initialInfoPaneWidth?: number;\n locale: string;\n maps: Dictionary;\n config: any;\n capabilities: {\n hasTaskPane: boolean,\n hasTaskBar: boolean,\n hasStatusBar: boolean,\n hasNavigator: boolean,\n hasSelectionPanel: boolean,\n hasLegend: boolean,\n hasToolbar: boolean,\n hasViewSize: boolean\n },\n /**\n * @since 0.13\n */\n featureTooltipsEnabled?: boolean;\n initialShowLayers?: string[];\n initialShowGroups?: string[];\n initialHideLayers?: string[];\n initialHideGroups?: string[];\n toolbars: PreparedSubMenuSet;\n warnings: string[];\n /**\n * @since 0.12\n */\n initialSelections?: IRestoredSelectionSets;\n /**\n * @since 0.12.5\n */\n initialActiveTool?: ActiveMapTool;\n}\n\n/**\n * Initializes the viewer application\n *\n * @since 0.12\n */\nexport interface IInitAppAction {\n type: ActionType.INIT_APP;\n payload: IInitAppActionPayload;\n}\n\n/**\n * @since 0.12.7\n */\nexport interface ISetLocaleAction {\n type: ActionType.SET_LOCALE;\n payload: string;\n}\n\nexport interface IInitErrorAction {\n type: ActionType.INIT_ERROR,\n payload: {\n error: {\n message: string;\n stack: string[];\n },\n includeStack?: boolean;\n options: any;\n }\n}\n\nexport interface IAcknowledgeStartupWarningsAction {\n type: ActionType.INIT_ACKNOWLEDGE_WARNINGS;\n}\n\nexport interface IElementState {\n legendVisible: boolean;\n taskPaneVisible: boolean;\n selectionPanelVisible: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITemplateSetElementStateAction {\n type: ActionType.FUSION_SET_ELEMENT_STATE;\n payload: IElementState;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITemplateSetTaskPaneVisibilityAction {\n type: ActionType.FUSION_SET_TASK_PANE_VISIBILITY;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITemplateSetSelectionPanelVisibility {\n type: ActionType.FUSION_SET_SELECTION_PANEL_VISIBILITY;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITemplateSetLegendVisibility {\n type: ActionType.FUSION_SET_LEGEND_VISIBILITY;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITaskPaneBackAction {\n type: ActionType.TASK_PANE_BACK;\n}\n\n/**\n * @since 0.12\n */\nexport interface ITaskPaneForwardAction {\n type: ActionType.TASK_PANE_FORWARD;\n}\n\n/**\n * Pushes the given URL to the task pane navigation history stack\n * \n * @since 0.12\n */\nexport interface ITaskPanePushUrlAction {\n type: ActionType.TASK_PANE_PUSH_URL;\n payload: {\n url: string;\n silent?: boolean;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ITaskPaneInvokeUrlAction {\n type: ActionType.TASK_INVOKE_URL,\n payload: {\n url: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ITaskPaneHomeAction {\n type: ActionType.TASK_PANE_HOME;\n}\n\n/**\n * @since 0.12\n */\nexport interface IShowComponentInModalAction {\n type: ActionType.MODAL_SHOW_COMPONENT;\n payload: IModalComponentDisplayOptions;\n}\n\n/**\n * @since 0.12\n */\nexport interface IShowModalUrlAction {\n type: ActionType.MODAL_SHOW_URL;\n payload: IModalDisplayOptions;\n}\n\n/**\n * @since 0.12\n */\nexport interface ICloseModalAction {\n type: ActionType.MODAL_CLOSE;\n payload: string;\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetBusyCountAction {\n type: ActionType.MAP_SET_BUSY_COUNT;\n payload: number;\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetBaseLayerAction {\n type: ActionType.MAP_SET_BASE_LAYER;\n payload: {\n mapName: string;\n layerName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetScaleAction {\n type: ActionType.MAP_SET_SCALE;\n payload: {\n mapName: string;\n scale: number;\n resolution?: number;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetMouseCoordinatesAction {\n type: ActionType.UPDATE_MOUSE_COORDINATES;\n payload: {\n mapName: string;\n coord: any;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetLayerTransparencyAction {\n type: ActionType.MAP_SET_LAYER_TRANSPARENCY;\n payload: {\n mapName: string;\n layerName: string;\n opacity: number;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetViewSizeUnitsAction {\n type: ActionType.MAP_SET_VIEW_SIZE_UNITS;\n payload: UnitOfMeasure;\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapPreviousViewAction {\n type: ActionType.MAP_PREVIOUS_VIEW;\n payload: {\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapNextViewAction {\n type: ActionType.MAP_NEXT_VIEW;\n payload: {\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetSelectionAction {\n type: ActionType.MAP_SET_SELECTION;\n payload: {\n mapName: string;\n selection: QueryMapFeaturesResponse | undefined;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapResizedAction {\n type: ActionType.MAP_RESIZED;\n payload: {\n width: number;\n height: number;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetViewAction {\n type: ActionType.MAP_SET_VIEW;\n payload: {\n mapName: string;\n view: IMapView;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ISetActiveMapToolAction {\n type: ActionType.MAP_SET_ACTIVE_TOOL;\n payload: ActiveMapTool;\n}\n\n/**\n * @since 0.12\n */\nexport interface ISetActiveMapAction {\n type: ActionType.MAP_SET_ACTIVE_MAP;\n payload: string;\n}\n\n/**\n * @since 0.12\n */\nexport interface ISetFeatureTooltipsEnabledAction {\n type: ActionType.MAP_SET_MAPTIP;\n payload: boolean;\n}\n\n/**\n * @since 0.14.2\n */\nexport interface IEnableSelectDragPanAction {\n type: ActionType.MAP_ENABLE_SELECT_DRAGPAN;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface ISetManualFeatureTooltipsEnabledAction {\n type: ActionType.MAP_SET_MANUAL_MAPTIP;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetViewRotationAction {\n type: ActionType.MAP_SET_VIEW_ROTATION;\n payload: number;\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapSetViewRotationEnabledAction {\n type: ActionType.MAP_SET_VIEW_ROTATION_ENABLED;\n payload: boolean;\n}\n\n/**\n * @since 0.12\n */\nexport interface IShowSelectedFeatureAction {\n type: ActionType.MAP_SHOW_SELECTED_FEATURE;\n payload: {\n mapName: string;\n layerId: string;\n selectionKey: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ILegendSetGroupVisibilityAction {\n type: ActionType.LEGEND_SET_GROUP_VISIBILITY;\n payload: {\n id: string;\n value: boolean;\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ILegendSetLayerVisibilityAction {\n type: ActionType.LEGEND_SET_LAYER_VISIBILITY;\n payload: {\n id: string;\n value: boolean;\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ILegendSetGroupExpandedAction {\n type: ActionType.LEGEND_SET_GROUP_EXPANDABLE;\n payload: {\n id: string;\n value: boolean;\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface ILegendSetGroupSelectableAction {\n type: ActionType.LEGEND_SET_LAYER_SELECTABLE;\n payload: {\n id: string;\n value: boolean;\n mapName: string;\n }\n}\n\n/**\n * @since 0.12\n */\nexport interface IMapRefreshAction {\n type: ActionType.MAP_REFRESH;\n payload: {\n mapName: string,\n map: RuntimeMap\n }\n}\n\n/**\n * An action to signal that a new external layer has been added for a given map\n * \n * @since 0.13\n * @since 0.14 payload.defaultStyle changed to IVectorLayerStyle\n */\nexport interface IAddedLayerAction {\n type: ActionType.LAYER_ADDED,\n payload: {\n mapName: string,\n layer: ILayerInfo,\n defaultStyle?: IVectorLayerStyle\n }\n}\n\n/**\n * @since 0.14\n */\nexport interface IExternalLayersReadyAction {\n type: ActionType.EXTERNAL_LAYERS_READY,\n payload: {\n mapName: string\n }\n}\n\n/**\n * Removes a given external layer for the given map\n * \n * @since 0.13\n */\nexport interface IRemoveLayerAction {\n type: ActionType.REMOVE_LAYER,\n payload: {\n mapName: string,\n layerName: string\n }\n}\n\n/**\n * Sets the display order index for the given external layer for the given map\n * \n * @since 0.13\n */\nexport interface ISetLayerIndexAction {\n type: ActionType.SET_LAYER_INDEX,\n payload: {\n mapName: string,\n layerName: string,\n index: number\n }\n}\n\n/**\n * Sets the opacity for the given external layer for the given map\n * \n * @since 0.13\n */\nexport interface ISetLayerOpacityAction {\n type: ActionType.SET_LAYER_OPACITY,\n payload: {\n mapName: string,\n layerName: string,\n opacity: number\n }\n}\n\n/**\n * Sets the heatmap blur for the given external heatmap layer for the given map\n * \n * @since 0.14\n */\nexport interface ISetHeatmapLayerBlurAction {\n type: ActionType.SET_HEATMAP_LAYER_BLUR,\n payload: {\n mapName: string,\n layerName: string,\n blur: number\n }\n}\n\n/**\n * Sets the heatmap radius for the given external heatmap layer for the given map\n * \n * @since 0.14\n */\nexport interface ISetHeatmapLayerRadiusAction {\n type: ActionType.SET_HEATMAP_LAYER_RADIUS,\n payload: {\n mapName: string,\n layerName: string,\n radius: number\n }\n}\n\n/**\n * Sets the visibility for the given external layer for the given map\n * \n * @since 0.13\n */\nexport interface ISetLayerVisibilityAction {\n type: ActionType.SET_LAYER_VISIBILITY,\n payload: {\n mapName: string,\n layerName: string,\n visible: boolean\n }\n}\n\n/**\n * Sets the vector style for the given external layer for the given map\n * \n * @since 0.13\n * @since 0.14 payload.style changed to IVectorLayerStyle and which property added\n */\nexport interface ISetMapLayerVectorStyle {\n type: ActionType.SET_LAYER_VECTOR_STYLE,\n payload: {\n mapName: string,\n layerName: string,\n style: IVectorLayerStyle,\n which: VectorStyleSource\n }\n}\n\n/**\n * Adds a busy worker for the given external layer for the given map\n * \n * @since 0.13\n */\nexport interface IAddMapLayerBusyWorkerAction {\n type: ActionType.ADD_LAYER_BUSY_WORKER,\n payload: {\n mapName: string,\n layerName: string\n }\n}\n\n/**\n * Removes a busy worker for the given external layer for the given map\n * \n * @since 0.13\n */\nexport interface IRemoveMapLayerBusyWorkerAction {\n type: ActionType.REMOVE_LAYER_BUSY_WORKER,\n payload: {\n mapName: string,\n layerName: string\n }\n}\n\n/**\n * Adds a feature to the client selection set for the given map\n * \n * @since 0.14\n */\nexport interface IAddClientSelectedFeatureAction {\n type: ActionType.MAP_ADD_CLIENT_SELECTED_FEATURE,\n payload: {\n mapName: string;\n layerName: string;\n feature: ClientSelectionFeature;\n }\n}\n\n/**\n * Clears the client selection set for the given map\n */\nexport interface IClearClientSelectionAction {\n type: ActionType.MAP_CLEAR_CLIENT_SELECTION,\n payload: {\n mapName: string\n }\n}\n\n/**\n * @since 0.12\n */\nexport type ViewerAction = IOpenFlyoutAction \n | ICloseFlyoutAction\n | IOpenContextMenuAction //@since 0.13\n | ICloseContextMenuAction //@since 0.13\n | IOpenComponentInFlyoutAction\n | ICloseComponentInFlyoutAction\n | IInitAppAction\n | IInitErrorAction\n | IAcknowledgeStartupWarningsAction\n | ITemplateSetElementStateAction\n | ITemplateSetTaskPaneVisibilityAction\n | ITemplateSetSelectionPanelVisibility\n | ITemplateSetLegendVisibility\n | ITaskPaneBackAction\n | ITaskPaneForwardAction\n | ITaskPanePushUrlAction\n | ITaskPaneInvokeUrlAction\n | ITaskPaneHomeAction\n | IShowComponentInModalAction\n | IShowModalUrlAction\n | ICloseModalAction\n | IMapSetBusyCountAction\n | IMapSetBaseLayerAction\n | IMapSetScaleAction\n | IMapSetMouseCoordinatesAction\n | IMapSetLayerTransparencyAction\n | IMapSetViewSizeUnitsAction\n | IMapPreviousViewAction\n | IMapNextViewAction\n | IMapSetSelectionAction\n | IMapResizedAction\n | IMapSetViewAction\n | ISetActiveMapToolAction\n | ISetActiveMapAction\n | ISetFeatureTooltipsEnabledAction\n | ISetManualFeatureTooltipsEnabledAction\n | IMapSetViewRotationAction\n | IMapSetViewRotationEnabledAction\n | IShowSelectedFeatureAction\n | ILegendSetGroupVisibilityAction\n | ILegendSetLayerVisibilityAction\n | ILegendSetGroupExpandedAction\n | ILegendSetGroupSelectableAction\n | IMapRefreshAction\n | ISetLocaleAction //@since 0.12.7\n | IAddedLayerAction //@since 0.13\n | IRemoveLayerAction //@since 0.13\n | ISetLayerIndexAction //@since 0.13\n | ISetLayerOpacityAction //@since 0.13\n | ISetLayerVisibilityAction //@since 0.13\n | ISetMapLayerVectorStyle //@since 0.13\n | IAddMapLayerBusyWorkerAction //@since 0.13\n | IRemoveMapLayerBusyWorkerAction //@since 0.13\n | IExternalLayersReadyAction //@since 0.14\n | IAddClientSelectedFeatureAction //@since 0.14\n | IClearClientSelectionAction //@since 0.14\n | ISetHeatmapLayerBlurAction //@since 0.14\n | ISetHeatmapLayerRadiusAction //@since 0.14\n | IEnableSelectDragPanAction //@since 0.14.2","import { IDOMElementMetrics } from \"../api/common\";\nimport {\n IOpenFlyoutAction, \n ICloseFlyoutAction,\n IOpenComponentInFlyoutAction,\n ICloseComponentInFlyoutAction,\n IOpenContextMenuAction,\n ICloseContextMenuAction\n} from \"./defs\";\nimport { ActionType } from '../constants/actions';\n\n/**\n * Opens the context menu at the specific position\n * \n * @param position The client x/y position\n * @since 0.13\n */\nexport function openContextMenu(position: { x: number, y: number }): IOpenContextMenuAction {\n return {\n type: ActionType.CONTEXT_MENU_OPEN,\n payload: {\n ...position\n }\n };\n}\n\n/**\n * Closes the context menu\n * \n * @since 0.13\n */\nexport function closeContextMenu(): ICloseContextMenuAction {\n return {\n type: ActionType.CONTEXT_MENU_CLOSE\n };\n}\n\n/**\n * Opens the specified flyout menu\n *\n * @export\n * @param {string} id\n * @param {IDOMElementMetrics} metrics\n * @returns {IOpenFlyoutAction}\n */\nexport function openFlyout(id: string, metrics: IDOMElementMetrics): IOpenFlyoutAction {\n return {\n type: ActionType.FLYOUT_OPEN,\n payload: {\n flyoutId: id,\n metrics: metrics\n }\n };\n}\n\n/**\n * Closes the specified flyout menu\n *\n * @export\n * @param {string} id\n * @returns {ICloseFlyoutAction}\n */\nexport function closeFlyout(id: string): ICloseFlyoutAction {\n return {\n type: ActionType.FLYOUT_CLOSE,\n payload: {\n flyoutId: id\n }\n };\n}\n\n/**\n * Load the specified component in the given flyout with the given component props\n *\n * @export\n * @param {string} id\n * @param {IDOMElementMetrics} metrics\n * @param {string} name\n * @param {*} props\n * @returns {IOpenComponentInFlyoutAction}\n */\nexport function openComponent(id: string, metrics: IDOMElementMetrics, name: string, props: any): IOpenComponentInFlyoutAction {\n return {\n type: ActionType.COMPONENT_OPEN,\n payload: {\n flyoutId: id,\n metrics: metrics,\n name: name,\n props: props\n }\n };\n}\n\n/**\n * Closes the component in the given flyout\n *\n * @export\n * @param {string} id\n * @returns {ICloseComponentInFlyoutAction}\n */\nexport function closeComponent(id: string): ICloseComponentInFlyoutAction {\n return {\n type: ActionType.COMPONENT_CLOSE,\n payload: {\n flyoutId: id\n }\n };\n}","import { IInitAsyncOptions, normalizeInitPayload } from './init';\nimport { ReduxDispatch, Dictionary, ActiveMapTool } from '../api/common';\nimport { IGenericSubjectMapLayer, IInitAppActionPayload, isGenericSubjectMapLayer, MapInfo } from './defs';\nimport { ToolbarConf, convertFlexLayoutUIItems, parseWidgetsInAppDef, prepareSubMenus } from '../api/registry/command-spec';\nimport { makeUnique } from '../utils/array';\nimport { ApplicationDefinition, MapConfiguration } from '../api/contracts/fusion';\nimport { warn, info } from '../utils/logger';\nimport { registerCommand } from '../api/registry/command';\nimport { tr, registerStringBundle, DEFAULT_LOCALE } from '../api/i18n';\nimport { WEBLAYOUT_CONTEXTMENU } from \"../constants\";\nimport { Client } from '../api/client';\nimport { ActionType } from '../constants/actions';\nimport { ensureParameters } from '../utils/url';\nimport { MgError } from '../api/error';\nimport { strStartsWith } from '../utils/string';\nimport { IClusterSettings } from '../api/ol-style-contracts';\n\nconst TYPE_SUBJECT = \"SubjectLayer\";\nconst TYPE_EXTERNAL = \"External\";\n\nexport type SessionInit = {\n session: string;\n sessionWasReused: boolean;\n}\n\nfunction getMapGuideConfiguration(appDef: ApplicationDefinition): [string, MapConfiguration][] {\n const configs = [] as [string, MapConfiguration][];\n if (appDef.MapSet) {\n for (const mg of appDef.MapSet.MapGroup) {\n for (const map of mg.Map) {\n if (map.Type == \"MapGuide\") {\n configs.push([mg[\"@id\"], map]);\n }\n }\n }\n }\n return configs;\n}\n\nfunction tryExtractMapMetadata(extension: any) {\n const ext: any = {};\n for (const k in extension) {\n if (strStartsWith(k, \"Meta_\")) {\n const sk = k.substring(\"Meta_\".length);\n ext[sk] = extension[k];\n }\n }\n return ext;\n}\n\nexport function buildSubjectLayerDefn(name: string, map: MapConfiguration): IGenericSubjectMapLayer {\n const st = map.Extension.source_type;\n const initiallyVisible = map.Extension.initially_visible ?? true;\n const sp: any = {};\n const lo: any = {};\n const meta: any = {};\n const keys = Object.keys(map.Extension);\n let popupTemplate = map.Extension.popup_template;\n let selectable: boolean | undefined = map.Extension.is_selectable ?? true;\n let disableHover: boolean | undefined = map.Extension.disable_hover ?? false;\n for (const k of keys) {\n const spidx = k.indexOf(\"source_param_\");\n const loidx = k.indexOf(\"layer_opt_\");\n const midx = k.indexOf(\"meta_\");\n if (spidx == 0) {\n const kn = k.substring(\"source_param_\".length);\n sp[kn] = map.Extension[k];\n } else if (loidx == 0) {\n const kn = k.substring(\"layer_opt_\".length);\n lo[kn] = map.Extension[k];\n } else if (midx == 0) {\n const kn = k.substring(\"meta_\".length);\n meta[kn] = map.Extension[k];\n }\n }\n const sl = {\n name: name,\n description: map.Extension.layer_description,\n displayName: map.Extension.display_name,\n driverName: map.Extension.driver_name,\n type: st,\n layerOptions: lo,\n sourceParams: sp,\n meta: (Object.keys(meta).length > 0 ? meta : undefined),\n initiallyVisible,\n selectable,\n disableHover,\n popupTemplate,\n vectorStyle: map.Extension.vector_layer_style\n } as IGenericSubjectMapLayer;\n\n if (map.Extension.cluster) {\n sl.cluster = {\n ...map.Extension.cluster\n } as IClusterSettings;\n }\n return sl;\n}\n\nexport function getMapDefinitionsFromFlexLayout(appDef: ApplicationDefinition): (MapToLoad | IGenericSubjectMapLayer)[] {\n const maps = [] as (MapToLoad | IGenericSubjectMapLayer)[];\n const configs = getMapGuideConfiguration(appDef);\n if (configs.length > 0) {\n for (const c of configs) {\n maps.push({ \n name: c[0],\n mapDef: c[1].Extension.ResourceId,\n metadata: tryExtractMapMetadata(c[1].Extension)\n });\n }\n }\n if (appDef.MapSet?.MapGroup) {\n for (const mGroup of appDef.MapSet.MapGroup) {\n for (const map of mGroup.Map) {\n if (map.Type == TYPE_SUBJECT) {\n const name = mGroup[\"@id\"];\n maps.push(buildSubjectLayerDefn(name, map));\n }\n }\n }\n }\n if (maps.length == 0)\n throw new MgError(\"No Map Definition or subject layer found in Application Definition\");\n\n return maps;\n}\n\nexport type MapToLoad = { name: string, mapDef: string, metadata: any };\n\nexport function isMapDefinition(arg: MapToLoad | IGenericSubjectMapLayer): arg is MapToLoad {\n return (arg as any).mapDef != null;\n}\n\nexport function isStateless(appDef: ApplicationDefinition) {\n // This appdef is stateless if:\n //\n // 1. It has a Stateless extension property set to \"true\" (ie. The author has opted-in to this feature)\n // 2. No MapGuide Map Definitions were found in the appdef\n if (appDef.Extension?.Stateless == \"true\")\n return true;\n\n try {\n const maps = getMapDefinitionsFromFlexLayout(appDef);\n for (const m of maps) {\n if (isMapDefinition(m)) {\n return false;\n }\n }\n return true;\n } catch (e) {\n return true;\n }\n}\n\nexport interface IViewerInitCommand {\n attachClient(client: Client): void;\n runAsync(options: IInitAsyncOptions): Promise;\n}\n\nexport abstract class ViewerInitCommand implements IViewerInitCommand {\n constructor(protected readonly dispatch: ReduxDispatch) { }\n public abstract attachClient(client: Client): void;\n public abstract runAsync(options: IInitAsyncOptions): Promise;\n protected abstract isArbitraryCoordSys(map: TSubject): boolean;\n protected abstract establishInitialMapNameAndSession(mapsByName: Dictionary): [string, string];\n protected abstract setupMaps(appDef: ApplicationDefinition, mapsByName: Dictionary, config: any, warnings: string[], locale: string): Dictionary;\n protected async initLocaleAsync(options: IInitAsyncOptions): Promise {\n //English strings are baked into this bundle. For non-en locales, we assume a strings/{locale}.json\n //exists for us to fetch\n const { locale } = options;\n if (locale != DEFAULT_LOCALE) {\n const r = await fetch(`strings/${locale}.json`);\n if (r.ok) {\n const res = await r.json();\n registerStringBundle(locale, res);\n // Dispatch the SET_LOCALE as it is safe to change UI strings at this point\n this.dispatch({\n type: ActionType.SET_LOCALE,\n payload: locale\n });\n info(`Registered string bundle for locale: ${locale}`);\n } else {\n //TODO: Push warning to init error/warning reducer when we implement it\n warn(`Failed to register string bundle for locale: ${locale}`);\n }\n }\n }\n protected getExtraProjectionsFromFlexLayout(appDef: ApplicationDefinition): string[] {\n //The only widget we care about is the coordinate tracker\n const epsgs: string[] = [];\n for (const ws of appDef.WidgetSet) {\n for (const w of ws.Widget) {\n if (w.Type == \"CoordinateTracker\") {\n const ps = w.Extension.Projection || [];\n for (const p of ps) {\n epsgs.push(p.split(':')[1]);\n }\n } else if (w.Type == \"CursorPosition\") {\n const dp = w.Extension.DisplayProjection;\n if (dp) {\n epsgs.push(dp.split(':')[1]);\n }\n }\n }\n }\n return makeUnique(epsgs);\n }\n \n protected async initFromAppDefCoreAsync(appDef: ApplicationDefinition, options: IInitAsyncOptions, mapsByName: Dictionary, warnings: string[]): Promise {\n const {\n taskPane,\n hasTaskBar,\n hasStatus,\n hasNavigator,\n hasSelectionPanel,\n hasLegend,\n viewSize,\n widgetsByKey,\n isStateless,\n initialTask\n } = parseWidgetsInAppDef(appDef, registerCommand);\n const { locale, featureTooltipsEnabled } = options;\n const config: any = {};\n config.isStateless = isStateless;\n const tbConf: Dictionary = {};\n \n //Now build toolbar layouts\n for (const widgetSet of appDef.WidgetSet) {\n for (const cont of widgetSet.Container) {\n let tbName = cont.Name;\n tbConf[tbName] = { items: convertFlexLayoutUIItems(isStateless, cont.Item, widgetsByKey, locale) };\n }\n for (const w of widgetSet.Widget) {\n if (w.Type == \"CursorPosition\") {\n config.coordinateProjection = w.Extension.DisplayProjection;\n config.coordinateDecimals = w.Extension.Precision;\n config.coordinateDisplayFormat = w.Extension.Template;\n }\n }\n }\n\n const mapsDict: any = mapsByName; //HACK: TS generics doesn't want to play nice with us\n const maps = this.setupMaps(appDef, mapsDict, config, warnings, locale);\n if (appDef.Title) {\n document.title = appDef.Title || document.title;\n }\n const [firstMapName, firstSessionId] = this.establishInitialMapNameAndSession(mapsDict);\n const [tb, bFoundContextMenu] = prepareSubMenus(tbConf);\n if (!bFoundContextMenu) {\n warnings.push(tr(\"INIT_WARNING_NO_CONTEXT_MENU\", locale, { containerName: WEBLAYOUT_CONTEXTMENU }));\n }\n return normalizeInitPayload({\n activeMapName: firstMapName,\n initialUrl: ensureParameters(initialTask, firstMapName, firstSessionId, locale),\n featureTooltipsEnabled: featureTooltipsEnabled,\n locale: locale,\n maps: maps,\n config: config,\n capabilities: {\n hasTaskPane: (taskPane != null),\n hasTaskBar: hasTaskBar,\n hasStatusBar: hasStatus,\n hasNavigator: hasNavigator,\n hasSelectionPanel: hasSelectionPanel,\n hasLegend: hasLegend,\n hasToolbar: (Object.keys(tbConf).length > 0),\n hasViewSize: (viewSize != null)\n },\n toolbars: tb,\n warnings: warnings,\n initialActiveTool: ActiveMapTool.Pan\n }, options.layout);\n }\n}\n","import { ApplicationDefinition } from '../api/contracts/fusion';\nimport { MapGroup, MapLayer, RuntimeMap } from '../api/contracts/runtime-map';\nimport { Dictionary, IExternalBaseLayer, ReduxDispatch, ActiveMapTool, IMapView } from '../api/common';\nimport { MapInfo, IInitAppActionPayload, IRestoredSelectionSets, IGenericSubjectMapLayer } from './defs';\nimport { tr, DEFAULT_LOCALE } from '../api/i18n';\nimport { isResourceId, strEndsWith, strIsNullOrEmpty } from '../utils/string';\nimport { Client } from '../api/client';\nimport { applyInitialBaseLayerVisibility, IInitAsyncOptions, processLayerInMapGroup } from './init';\nimport { RuntimeMapFeatureFlags } from '../api/request-builder';\nimport { info, debug } from '../utils/logger';\nimport { MgError } from '../api/error';\nimport { resolveProjectionFromEpsgIoAsync } from '../api/registry/projections';\nimport { register } from 'ol/proj/proj4';\nimport proj4 from \"proj4\";\nimport { buildSubjectLayerDefn, getMapDefinitionsFromFlexLayout, isMapDefinition, isStateless, MapToLoad, ViewerInitCommand } from './init-command';\nimport { WebLayout } from '../api/contracts/weblayout';\nimport { convertWebLayoutUIItems, parseCommandsInWebLayout, prepareSubMenus, ToolbarConf } from '../api/registry/command-spec';\nimport { clearSessionStore, retrieveSelectionSetFromLocalStorage } from '../api/session-store';\nimport { WEBLAYOUT_CONTEXTMENU, WEBLAYOUT_TASKMENU, WEBLAYOUT_TOOLBAR } from \"../constants\";\nimport { registerCommand } from '../api/registry/command';\nimport { ensureParameters } from '../utils/url';\nimport { assertIsDefined } from '../utils/assert';\nimport { MapDefinition } from '../api/contracts/map-definition';\nimport { TileSetDefinition } from '../api/contracts/tile-set-definition';\nimport { AsyncLazy } from '../api/lazy';\nimport { SiteVersionResponse } from '../api/contracts/common';\nimport { isRuntimeMap } from '../utils/type-guards';\nimport { tryParseArbitraryCs } from '../utils/units';\nimport { ScopedId } from '../utils/scoped-id';\n\nconst TYPE_SUBJECT = \"SubjectLayer\";\nconst TYPE_EXTERNAL = \"External\";\n\nconst scopedId = new ScopedId();\n\n/**\n * @since 0.14\n */\nexport type SubjectLayerType = RuntimeMap | IGenericSubjectMapLayer;\n\n/**\n * Default viewer init commmand\n * \n * @since 0.14\n */\nexport class DefaultViewerInitCommand extends ViewerInitCommand {\n private client: Client | undefined;\n private options: IInitAsyncOptions;\n constructor(dispatch: ReduxDispatch) {\n super(dispatch);\n }\n public attachClient(client: Client): void {\n this.client = client;\n }\n protected isArbitraryCoordSys(subject: SubjectLayerType | undefined) {\n if (subject) {\n if (isRuntimeMap(subject)) {\n const arbCs = tryParseArbitraryCs(subject.CoordinateSystem.MentorCode);\n return arbCs != null;\n }\n }\n return false;\n }\n /**\n * @override\n * @protected\n * @param {Dictionary} mapsByName\n * @memberof MgViewerInitCommand\n */\n protected establishInitialMapNameAndSession(mapsByName: Dictionary): [string, string] {\n let firstMapName = \"\";\n let firstSessionId = \"\";\n for (const mapName in mapsByName) {\n if (!firstMapName && !firstSessionId) {\n const map = mapsByName[mapName];\n if (isRuntimeMap(map)) {\n firstMapName = map.Name;\n firstSessionId = map.SessionId;\n break;\n }\n }\n }\n return [firstMapName, firstSessionId];\n }\n private getDesiredTargetMapName(mapDef: string) {\n const lastSlash = mapDef.lastIndexOf(\"/\");\n const lastDot = mapDef.lastIndexOf(\".\");\n if (lastSlash >= 0 && lastDot >= 0 && lastDot > lastSlash) {\n return `${mapDef.substring(lastSlash + 1, lastDot)}`;\n } else {\n return `Map_${scopedId.next()}`;\n }\n }\n private async initFromWebLayoutAsync(webLayout: WebLayout, session: AsyncLazy, sessionWasReused: boolean): Promise {\n const [mapsByName, warnings] = await this.createRuntimeMapsAsync(session, webLayout, false, wl => [{ name: this.getDesiredTargetMapName(wl.Map.ResourceId), mapDef: wl.Map.ResourceId, metadata: {} }], () => [], sessionWasReused);\n const { locale, featureTooltipsEnabled, externalBaseLayers } = this.options;\n const cmdsByKey = parseCommandsInWebLayout(webLayout, registerCommand);\n const mainToolbar = (webLayout.ToolBar.Visible\n ? convertWebLayoutUIItems(webLayout.ToolBar.Button, cmdsByKey, locale)\n : []);\n const taskBar = (webLayout.TaskPane.TaskBar.Visible\n ? convertWebLayoutUIItems(webLayout.TaskPane.TaskBar.MenuButton, cmdsByKey, locale, false)\n : []);\n const contextMenu = (webLayout.ContextMenu.Visible\n ? convertWebLayoutUIItems(webLayout.ContextMenu.MenuItem, cmdsByKey, locale, false)\n : []);\n const config: any = {};\n if (webLayout.SelectionColor != null) {\n config.selectionColor = webLayout.SelectionColor;\n }\n if (webLayout.MapImageFormat != null) {\n config.imageFormat = webLayout.MapImageFormat;\n }\n if (webLayout.SelectionImageFormat != null) {\n config.selectionImageFormat = webLayout.SelectionImageFormat;\n }\n if (webLayout.PointSelectionBuffer != null) {\n config.pointSelectionBuffer = webLayout.PointSelectionBuffer;\n }\n let initialView: IMapView | null = null;\n if (webLayout.Map.InitialView != null) {\n initialView = {\n x: webLayout.Map.InitialView.CenterX,\n y: webLayout.Map.InitialView.CenterY,\n scale: webLayout.Map.InitialView.Scale\n };\n }\n\n if (webLayout.Title != \"\") {\n document.title = webLayout.Title || document.title;\n }\n\n const maps: any = {};\n const [firstMapName, firstSessionId] = this.establishInitialMapNameAndSession(mapsByName);\n \n for (const mapName in mapsByName) {\n const map = mapsByName[mapName];\n maps[mapName] = {\n mapGroupId: mapName,\n map: map,\n externalBaseLayers: this.options.externalBaseLayers ?? [],\n initialView: initialView\n };\n }\n\n const menus: Dictionary = {};\n menus[WEBLAYOUT_TOOLBAR] = {\n items: mainToolbar\n };\n menus[WEBLAYOUT_TASKMENU] = {\n items: taskBar\n };\n menus[WEBLAYOUT_CONTEXTMENU] = {\n items: contextMenu\n };\n\n const tb = prepareSubMenus(menus)[0];\n return {\n activeMapName: firstMapName,\n featureTooltipsEnabled: featureTooltipsEnabled,\n initialUrl: ensureParameters(webLayout.TaskPane.InitialTask || \"server/TaskPane.html\", firstMapName, firstSessionId, locale),\n initialTaskPaneWidth: webLayout.TaskPane.Width,\n initialInfoPaneWidth: webLayout.InformationPane.Width,\n maps: maps,\n locale: locale,\n config: config,\n capabilities: {\n hasTaskPane: webLayout.TaskPane.Visible,\n hasTaskBar: webLayout.TaskPane.TaskBar.Visible,\n hasStatusBar: webLayout.StatusBar.Visible,\n hasNavigator: webLayout.ZoomControl.Visible,\n hasSelectionPanel: webLayout.InformationPane.Visible && webLayout.InformationPane.PropertiesVisible,\n hasLegend: webLayout.InformationPane.Visible && webLayout.InformationPane.LegendVisible,\n hasToolbar: webLayout.ToolBar.Visible,\n hasViewSize: webLayout.StatusBar.Visible\n },\n toolbars: tb,\n warnings: warnings,\n initialActiveTool: ActiveMapTool.Pan\n };\n }\n private async tryDescribeRuntimeMapAsync(mapName: string, session: AsyncLazy, mapDef: string) {\n assertIsDefined(this.client);\n try {\n const map = await this.client.describeRuntimeMap({\n mapname: mapName,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync()\n });\n return map;\n } catch (e) {\n if (e.message === \"MgResourceNotFoundException\") {\n const map = await this.client.createRuntimeMap({\n mapDefinition: mapDef,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync(),\n targetMapName: mapName\n });\n return map;\n }\n throw e;\n }\n }\n private async createRuntimeMapsAsync(session: AsyncLazy, res: TLayout, isStateless: boolean, mapDefSelector: (res: TLayout) => (MapToLoad | IGenericSubjectMapLayer)[], projectionSelector: (res: TLayout) => string[], sessionWasReused: boolean): Promise<[Dictionary, string[]]> {\n const mapDefs = mapDefSelector(res);\n const mapPromises: Promise[] = [];\n const warnings = [] as string[];\n const { locale } = this.options;\n const subjectLayers: Dictionary = {};\n const fetchEpsgs: { epsg: string, mapDef: string }[] = [];\n if (isStateless) {\n // We use an AsyncLazy because we only want to fetch the site version *iff* we encounter a MG map defn\n const siteVersion = new AsyncLazy(async () => {\n assertIsDefined(this.client);\n const sv = await this.client.getSiteVersion();\n return sv;\n });\n for (const m of mapDefs) {\n if (isMapDefinition(m)) {\n const siteVer = await siteVersion.getValueAsync();\n assertIsDefined(this.client);\n mapPromises.push(this.describeRuntimeMapStateless(this.client, siteVer.Version, m));\n } else {\n const proj = m.meta?.projection;\n if (!strIsNullOrEmpty(proj)) {\n //Must be registered to proj4js if not 4326 or 3857\n const [_, epsg] = proj.split(':');\n if (!proj4.defs[`EPSG:${epsg}`]) {\n fetchEpsgs.push({ epsg: epsg, mapDef: m.name });\n }\n }\n }\n }\n } else {\n for (const m of mapDefs) {\n if (isMapDefinition(m)) {\n //sessionWasReused is a hint whether to create a new runtime map, or recover the last runtime map state from the given map name\n if (sessionWasReused) {\n //FIXME: If the map state we're recovering has a selection, we need to re-init the selection client-side\n info(`Session ID re-used. Attempting recovery of map state of: ${m.name}`);\n mapPromises.push(this.tryDescribeRuntimeMapAsync(m.name, session, m.mapDef));\n } else {\n info(`Creating runtime map state (${m.name}) for: ${m.mapDef}`);\n assertIsDefined(this.client);\n mapPromises.push(this.client.createRuntimeMap({\n mapDefinition: m.mapDef,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync(),\n targetMapName: m.name\n }));\n }\n }\n }\n }\n const maps = await Promise.all(mapPromises);\n //All must be non-zero\n for (const m of maps) {\n const epsg = m.CoordinateSystem.EpsgCode;\n const mapDef = m.MapDefinition;\n const arbCs = tryParseArbitraryCs(m.CoordinateSystem.MentorCode);\n if (!arbCs) {\n if (epsg == \"0\") {\n throw new MgError(tr(\"INIT_ERROR_UNSUPPORTED_COORD_SYS\", locale || DEFAULT_LOCALE, { mapDefinition: mapDef }));\n }\n //Must be registered to proj4js if not 4326 or 3857\n if (!proj4.defs[`EPSG:${epsg}`]) {\n fetchEpsgs.push({ epsg: epsg, mapDef: mapDef });\n }\n }\n }\n const extraEpsgs = projectionSelector(res);\n for (const e of extraEpsgs) {\n fetchEpsgs.push({ epsg: e, mapDef: \"\" });\n }\n const epsgs = await Promise.all(fetchEpsgs.filter(fe => !strIsNullOrEmpty(fe.epsg)).map(f => resolveProjectionFromEpsgIoAsync(f.epsg, locale, f.mapDef)));\n\n //Previously, we register proj4 with OpenLayers on the bootstrap phase way before this init\n //process is started. This no longer works for OL6 where it doesn't seem to pick up the extra\n //projections we've registered with proj4 after linking proj4 to OpenLayers. So that registration\n //step has been relocated here, after all the custom projections have been fetched and registered\n //with proj4\n debug(`Register proj4 with OpenLayers`);\n register(proj4);\n\n //Build the Dictionary from loaded maps\n const mapsByName: Dictionary = {};\n for (const map of maps) {\n mapsByName[map.Name] = map;\n }\n for (const gs of mapDefs) {\n if (!isMapDefinition(gs)) {\n mapsByName[gs.name] = gs;\n }\n }\n return [mapsByName, warnings];\n }\n private async describeRuntimeMapStateless(client: Client, siteVersion: string, m: MapToLoad): Promise {\n const { name, mapDef, metadata } = m;\n const mdf = await this.client?.getResource(mapDef, { username: \"Anonymous\" });\n if (!mdf)\n throw new Error(\"Failed to fetch map def\");\n\n const rt: RuntimeMap = {\n SessionId: \"\",\n Extents: {\n LowerLeftCoordinate: {\n X: mdf.Extents.MinX,\n Y: mdf.Extents.MinY\n },\n UpperRightCoordinate: {\n X: mdf.Extents.MaxX,\n Y: mdf.Extents.MaxY\n }\n },\n SiteVersion: siteVersion,\n Name: name,\n DisplayDpi: 96,\n BackgroundColor: mdf.BackgroundColor,\n MapDefinition: mapDef,\n CoordinateSystem: {\n // We are assuming the app def specifies this data in each entry as extension properties\n // beginning with \"Meta_\" (eg. Meta_MentorCode, Meta_EpsgCode, etc)\n MentorCode: metadata.MentorCode,\n EpsgCode: metadata.EpsgCode,\n MetersPerUnit: metadata.MetersPerUnit,\n Wkt: mdf.CoordinateSystem\n },\n IconMimeType: \"image/png\",\n };\n\n const groups = [] as MapGroup[];\n const layers = [] as MapLayer[];\n\n if (mdf.TileSetSource) {\n rt.TileSetDefinition = mdf.TileSetSource.ResourceId;\n const tsd = await client.getResource(mdf.TileSetSource.ResourceId);\n if (tsd.TileStoreParameters.TileProvider == \"Default\") {\n const sTileWidth = tsd.TileStoreParameters.Parameter.find(p => p.Name == \"TileWidth\")?.Value;\n const sTileHeight = tsd.TileStoreParameters.Parameter.find(p => p.Name == \"TileHeight\")?.Value;\n if (!strIsNullOrEmpty(sTileWidth) && !strIsNullOrEmpty(sTileHeight)) {\n rt.TileWidth = parseInt(sTileWidth, 10);\n rt.TileHeight = parseInt(sTileHeight, 10);\n }\n } else if (tsd.TileStoreParameters.TileProvider == \"XYZ\") {\n rt.TileHeight = 256;\n rt.TileHeight = 256;\n }\n\n for (const bg of tsd.BaseMapLayerGroup) {\n groups.push({\n Name: bg.Name,\n DisplayInLegend: bg.ShowInLegend,\n LegendLabel: bg.LegendLabel,\n ObjectId: bg.Name,\n ExpandInLegend: bg.ExpandInLegend,\n Visible: bg.Visible,\n ActuallyVisible: bg.Visible,\n Type: 3 /* BaseMapFromTileSet */\n });\n\n for (const lyr of bg.BaseMapLayer) {\n layers.push({\n Name: lyr.Name,\n DisplayInLegend: lyr.ShowInLegend,\n // We don't have stateless QUERYMAPFEATURES (yet), so there is no point actually respecting this flag\n Selectable: false, //lyr.Selectable,\n LegendLabel: lyr.LegendLabel,\n ExpandInLegend: lyr.ExpandInLegend,\n Visible: true,\n ParentId: bg.Name,\n ActuallyVisible: true,\n LayerDefinition: lyr.ResourceId,\n ObjectId: lyr.Name,\n Type: 2 /* BaseMap */\n });\n }\n }\n }\n\n for (const grp of mdf.MapLayerGroup) {\n groups.push({\n Name: grp.Name,\n DisplayInLegend: grp.ShowInLegend,\n LegendLabel: grp.LegendLabel,\n ObjectId: grp.Name,\n ExpandInLegend: grp.ExpandInLegend,\n Visible: grp.Visible,\n ActuallyVisible: grp.Visible,\n Type: 1 /* Normal */\n });\n }\n\n for (const lyr of mdf.MapLayer) {\n layers.push({\n Name: lyr.Name,\n DisplayInLegend: lyr.ShowInLegend,\n // We don't have stateless QUERYMAPFEATURES (yet), so there is no point actually respecting this flag\n Selectable: false, // lyr.Selectable,\n LegendLabel: lyr.LegendLabel,\n ExpandInLegend: lyr.ExpandInLegend,\n Visible: true,\n ParentId: lyr.Group,\n ActuallyVisible: true,\n LayerDefinition: lyr.ResourceId,\n ObjectId: lyr.Name,\n Type: 1 /* Dynamic */\n })\n }\n\n rt.Group = groups;\n rt.Layer = layers;\n\n return rt;\n }\n /**\n * @override\n * @protected\n * @param {ApplicationDefinition} appDef\n * @param {Dictionary} mapsByName\n * @param {*} config\n * @param {string[]} warnings\n * @returns {Dictionary}\n * @memberof MgViewerInitCommand\n */\n protected setupMaps(appDef: ApplicationDefinition, mapsByName: Dictionary, config: any, warnings: string[], locale: string): Dictionary {\n const dict: Dictionary = {};\n if (appDef.MapSet) {\n for (const mGroup of appDef.MapSet.MapGroup) {\n let mapName: string | undefined;\n //Setup external layers\n const initExternalLayers = [] as IGenericSubjectMapLayer[];\n const externalBaseLayers = [] as IExternalBaseLayer[];\n let subject: SubjectLayerType | undefined;\n //Need to do this in 2 passes. 1st pass to try and get the MG map\n for (const map of mGroup.Map) {\n if (map.Type === \"MapGuide\") {\n //TODO: Based on the schema, different MG map groups could have different\n //settings here and our redux tree should reflect that. Currently the first one \"wins\"\n if (!config.selectionColor && map.Extension.SelectionColor != null) {\n config.selectionColor = map.Extension.SelectionColor;\n }\n if (!config.imageFormat && map.Extension.ImageFormat != null) {\n config.imageFormat = map.Extension.ImageFormat;\n }\n if (!config.selectionImageFormat && map.Extension.SelectionFormat != null) {\n config.selectionImageFormat = map.Extension.SelectionFormat;\n }\n\n //NOTE: Although non-sensical, if the same map definition exists across multiple\n //MapGroups, we might be matching the wrong one. We just assume such non-sensical\n //AppDefs won't exist\n for (const name in mapsByName) {\n const mapDef = mapsByName[name];\n if (isRuntimeMap(mapDef) && mapDef.MapDefinition == map.Extension.ResourceId) {\n mapName = name;\n subject = mapDef;\n break;\n }\n }\n }\n }\n const isArbitrary = this.isArbitraryCoordSys(subject);\n //2nd pass to process non-MG maps\n for (const map of mGroup.Map) {\n if (map.Type == \"MapGuide\") {\n continue;\n }\n if (map.Type == TYPE_SUBJECT) {\n mapName = mGroup[\"@id\"];\n } else {\n if (isArbitrary) {\n warnings.push(tr(\"INIT_WARNING_ARBITRARY_COORDSYS_INCOMPATIBLE_LAYER\", locale, { mapId: mGroup[\"@id\"], type: map.Type }));\n } else {\n if (map.Type == TYPE_EXTERNAL) {\n initExternalLayers.push(buildSubjectLayerDefn(map.Extension.layer_name, map));\n } else {\n processLayerInMapGroup(map, warnings, config, appDef, externalBaseLayers);\n }\n }\n }\n }\n\n if (isArbitrary) {\n //Check for incompatible widgets\n for (const wset of appDef.WidgetSet) {\n for (const widget of wset.Widget) {\n switch (widget.Type) {\n case \"CoordinateTracker\":\n warnings.push(tr(\"INIT_WARNING_ARBITRARY_COORDSYS_UNSUPPORTED_WIDGET\", locale, { mapId: mGroup[\"@id\"], widget: widget.Type }));\n break;\n }\n }\n }\n }\n\n applyInitialBaseLayerVisibility(externalBaseLayers);\n\n //Setup initial view\n let initialView: IMapView | undefined;\n if (mGroup.InitialView) {\n initialView = {\n x: mGroup.InitialView.CenterX,\n y: mGroup.InitialView.CenterY,\n scale: mGroup.InitialView.Scale\n };\n }\n\n if (mapName) {\n dict[mapName] = {\n mapGroupId: mGroup[\"@id\"],\n map: mapsByName[mapName],\n initialView: initialView,\n externalBaseLayers: externalBaseLayers,\n initialExternalLayers: initExternalLayers\n };\n }\n }\n }\n return dict;\n }\n private async initFromAppDefAsync(appDef: ApplicationDefinition, session: AsyncLazy, sessionWasReused: boolean): Promise {\n const [mapsByName, warnings] = await this.createRuntimeMapsAsync(session, appDef, isStateless(appDef), fl => getMapDefinitionsFromFlexLayout(fl), fl => this.getExtraProjectionsFromFlexLayout(fl), sessionWasReused);\n return await this.initFromAppDefCoreAsync(appDef, this.options, mapsByName, warnings);\n }\n private async sessionAcquiredAsync(session: AsyncLazy, sessionWasReused: boolean): Promise {\n const { resourceId, locale } = this.options;\n if (!resourceId) {\n //Try assumed default location of appdef.json that we are assuming sits in the same place as the viewer html files\n const cl = new Client(\"\", \"mapagent\");\n try {\n const fl = await cl.get(\"appdef.json\");\n return await this.initFromAppDefAsync(fl, session, sessionWasReused);\n } catch (e) { //The appdef.json doesn't exist at the assumed default location?\n throw new MgError(tr(\"INIT_ERROR_MISSING_RESOURCE_PARAM\", locale));\n }\n } else {\n if (typeof (resourceId) == 'string') {\n if (strEndsWith(resourceId, \"WebLayout\")) {\n assertIsDefined(this.client);\n const wl = await this.client.getResource(resourceId, { SESSION: await session.getValueAsync() });\n return await this.initFromWebLayoutAsync(wl, session, sessionWasReused);\n } else if (strEndsWith(resourceId, \"ApplicationDefinition\")) {\n assertIsDefined(this.client);\n const fl = await this.client.getResource(resourceId, { SESSION: await session.getValueAsync() });\n return await this.initFromAppDefAsync(fl, session, sessionWasReused);\n } else {\n if (isResourceId(resourceId)) {\n throw new MgError(tr(\"INIT_ERROR_UNKNOWN_RESOURCE_TYPE\", locale, { resourceId: resourceId }));\n } else {\n //Assume URL to a appdef json document\n let fl: ApplicationDefinition;\n if (!this.client) {\n // This wasn't set up with a mapagent URI (probably a non-MG viewer template), so make a new client on-the-fly\n const cl = new Client(\"\", \"mapagent\");\n fl = await cl.get(resourceId);\n } else {\n fl = await this.client.get(resourceId);\n }\n return await this.initFromAppDefAsync(fl, session, sessionWasReused);\n }\n }\n } else {\n const fl = await resourceId();\n return await this.initFromAppDefAsync(fl, session, sessionWasReused);\n }\n }\n }\n public async runAsync(options: IInitAsyncOptions): Promise {\n this.options = options;\n await this.initLocaleAsync(this.options);\n let sessionWasReused = false;\n let session: AsyncLazy;\n if (!this.options.session) {\n session = new AsyncLazy(async () => {\n assertIsDefined(this.client);\n const sid = await this.client.createSession(\"Anonymous\", \"\");\n return sid;\n });\n } else {\n info(`Re-using session: ${this.options.session}`);\n sessionWasReused = true;\n session = new AsyncLazy(() => Promise.resolve(this.options.session!));\n }\n const payload = await this.sessionAcquiredAsync(session, sessionWasReused);\n if (sessionWasReused) {\n let initSelections: IRestoredSelectionSets = {};\n for (const mapName in payload.maps) {\n const sset = await retrieveSelectionSetFromLocalStorage(session, mapName);\n if (sset) {\n initSelections[mapName] = sset;\n }\n }\n payload.initialSelections = initSelections;\n try {\n //In the interest of being a responsible citizen, clean up all selection-related stuff from\n //session store\n await clearSessionStore();\n } catch (e) {\n\n }\n }\n\n return payload;\n }\n}","import { Client } from \"../api/client\";\nimport { ReduxDispatch, IMapView } from \"../api/common\";\nimport {\n ApplicationDefinition,\n MapConfiguration\n} from \"../api/contracts/fusion\";\nimport {\n IExternalBaseLayer,\n ReduxThunkedAction,\n IMapViewer\n} from \"../api/common\";\nimport { strIsNullOrEmpty, strReplaceAll } from \"../utils/string\";\nimport { IAcknowledgeStartupWarningsAction, IInitAppActionPayload } from './defs';\nimport { ActionType } from '../constants/actions';\nimport { getViewer } from '../api/runtime';\nimport { tr } from '../api/i18n';\nimport { IViewerInitCommand } from './init-command';\nimport { getLayoutCapabilities } from \"../api/registry/layout\";\nimport { debug } from \"../utils/logger\";\n\nexport function applyInitialBaseLayerVisibility(externalBaseLayers: IExternalBaseLayer[]) {\n if (externalBaseLayers.length > 0) {\n // First visual base layer, first served\n const firstBase = externalBaseLayers.find(bl => bl.kind != \"UTFGrid\");\n if (firstBase) {\n firstBase.visible = true;\n }\n // Make all non-visual base layers (ie. UTFGrid) visible\n const nonVisuals = externalBaseLayers.filter(bl => bl.kind == \"UTFGrid\");\n for (const nv of nonVisuals) {\n nv.visible = true;\n }\n }\n}\n\nfunction processAndDispatchInitError(error: Error, includeStack: boolean, dispatch: ReduxDispatch, opts: IInitAsyncOptions): void {\n if (error.stack) {\n dispatch({\n type: ActionType.INIT_ERROR,\n payload: {\n error: {\n message: error.message,\n stack: (error.stack || \"\").split(\"\\n\")\n },\n includeStack: includeStack,\n options: opts\n }\n });\n } else {\n dispatch({\n type: ActionType.INIT_ERROR,\n payload: {\n error: {\n message: error.message,\n stack: []\n },\n includeStack: includeStack,\n options: opts\n }\n });\n }\n}\n\nexport interface IInitAppLayout {\n locale: string;\n resourceId: string | (() => Promise);\n externalBaseLayers?: IExternalBaseLayer[];\n session?: string;\n initialView?: IMapView;\n /**\n * \n * @since 0.11\n * @type {string}\n * @memberof IInitAppLayout\n */\n initialActiveMap?: string;\n /**\n * \n * @since 0.11\n * @type {string[]}\n * @memberof IInitAppLayout\n */\n initialShowLayers?: string[];\n /**\n * \n * @since 0.11\n * @type {string[]}\n * @memberof IInitAppLayout\n */\n initialShowGroups?: string[];\n /**\n * \n * @since 0.11\n * @type {string[]}\n * @memberof IInitAppLayout\n */\n initialHideLayers?: string[];\n /**\n * \n * @since 0.11\n * @type {string[]}\n * @memberof IInitAppLayout\n */\n initialHideGroups?: string[];\n onInit?: (viewer: IMapViewer) => void;\n /**\n * Sets whether feature tooltips should be initially enabled\n * \n * @since 0.13\n */\n featureTooltipsEnabled?: boolean;\n /**\n * @since 0.14\n */\n layout?: string;\n}\n\n/**\n * @hidden\n */\nexport function normalizeInitPayload(payload: IInitAppActionPayload, layout: string | undefined): IInitAppActionPayload {\n if (!strIsNullOrEmpty(layout)) {\n const caps = getLayoutCapabilities(layout);\n if (caps) {\n if (!caps.hasTaskPane) {\n debug(\"Overriding hasTaskPane capability to false\");\n payload.capabilities.hasTaskPane = false;\n }\n }\n }\n return payload;\n}\n\nexport interface IInitAsyncOptions extends IInitAppLayout {\n locale: string;\n}\n\nlet _counter = 0;\n\nexport function processLayerInMapGroup(map: MapConfiguration, warnings: string[], config: any, appDef: ApplicationDefinition, externalBaseLayers: IExternalBaseLayer[]) {\n switch (map.Type) {\n case \"Google\":\n warnings.push(tr(\"INIT_WARNING_UNSUPPORTED_GOOGLE_MAPS\", config.locale));\n break;\n case \"VirtualEarth\":\n {\n //HACK: De-arrayification of arbitrary extension elements\n //is shallow (hence name/type is string[]). Do we bother to fix this?\n const { name, type } = map.Extension.Options;\n const sName = Array.isArray(name) ? name[0] : name;\n const sType = Array.isArray(type) ? type[0] : type;\n const options: any = {};\n let bAdd = true;\n switch (sType) {\n case \"Aerial\":\n case \"a\":\n options.imagerySet = \"Aerial\";\n break;\n case \"AerialWithLabels\":\n options.imagerySet = \"AerialWithLabels\";\n break;\n case \"Road\":\n options.imagerySet = \"Road\";\n break;\n default:\n bAdd = false;\n warnings.push(tr(\"INIT_WARNING_BING_UNKNOWN_LAYER\", config.locale, { type: type }));\n break;\n }\n if (appDef.Extension.BingMapKey) {\n options.key = appDef.Extension.BingMapKey;\n }\n else {\n bAdd = false;\n warnings.push(tr(\"INIT_WARNING_BING_API_KEY_REQD\", config.locale));\n }\n if (bAdd) {\n externalBaseLayers.push({\n name: sName,\n kind: \"BingMaps\",\n options: options\n });\n }\n }\n break;\n case \"OpenStreetMap\":\n {\n //HACK: De-arrayification of arbitrary extension elements\n //is shallow (hence name/type is string[]). Do we bother to fix this?\n const { name, type } = map.Extension.Options;\n const sName = Array.isArray(name) ? name[0] : name;\n const sType = Array.isArray(type) ? type[0] : type;\n const options: any = {};\n switch (sType) {\n case \"CycleMap\":\n options.url = \"http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png\";\n break;\n case \"TransportMap\":\n options.url = \"http://tile2.opencyclemap.org/transport/{z}/{x}/{y}.png\";\n break;\n }\n externalBaseLayers.push({\n name: sName,\n kind: \"OSM\",\n options: options\n });\n }\n break;\n case \"Stamen\":\n {\n //HACK: De-arrayification of arbitrary extension elements\n //is shallow (hence name/type is string[]). Do we bother to fix this?\n const { name, type } = map.Extension.Options;\n const sName = Array.isArray(name) ? name[0] : name;\n const sType = Array.isArray(type) ? type[0] : type;\n externalBaseLayers.push({\n name: sName,\n kind: \"Stamen\",\n options: {\n layer: sType\n }\n });\n }\n break;\n case \"UTFGrid\":\n {\n externalBaseLayers.push({\n name: `UTFGridSource${_counter++}`,\n kind: \"UTFGrid\",\n options: {\n tileJSON: {\n scheme: \"xyz\",\n grids: Array.isArray(map.Extension.UrlTemplate) ? [...map.Extension.UrlTemplate] : [map.Extension.UrlTemplate]\n }\n }\n })\n }\n break;\n case \"XYZDebug\":\n //HACK: De-arrayification of arbitrary extension elements\n //is shallow (hence name/type is string[]). Do we bother to fix this?\n const { name } = map.Extension.Options;\n const sName = Array.isArray(name) ? name[0] : name;\n externalBaseLayers.push({\n name: sName,\n kind: \"XYZDebug\"\n });\n break;\n case \"XYZ\":\n {\n //HACK: De-arrayification of arbitrary extension elements\n //is shallow (hence name/type is string[]). Do we bother to fix this?\n const { name, type, attributions } = map.Extension.Options;\n const sName = Array.isArray(name) ? name[0] : name;\n const sType = Array.isArray(type) ? type[0] : type;\n let tilePixelRatio = 1;\n if (map.Extension.Options.tilePixelRatio) {\n tilePixelRatio = parseInt(map.Extension.Options.tilePixelRatio[0], 10);\n }\n //NOTE: From a fusion appdef, we're expecting placeholder tokens to be in ${this_format} instead of\n //{this_format} as the primary consumer is the Fusion viewer that is based on OpenLayers 2\n //As we're not using OL2, but OL4+ the expected format is {this_format}, so we need to convert these\n //placeholder tokens\n const urls = (map.Extension.Options.urls || []).map((s: string) => strReplaceAll(s, \"${\", \"{\"));\n externalBaseLayers.push({\n name: sName,\n kind: \"XYZ\",\n options: {\n layer: sType,\n urls,\n attributions,\n tilePixelRatio\n }\n });\n }\n break;\n }\n}\n\n/**\n * Initializes the viewer\n *\n * @export\n * @param {IViewerInitCommand} cmd\n * @param {IInitAppLayout} options\n * @returns {ReduxThunkedAction}\n */\nexport function initLayout(cmd: IViewerInitCommand, options: IInitAppLayout): ReduxThunkedAction {\n const opts: IInitAsyncOptions = { ...options };\n return (dispatch, getState) => {\n const args = getState().config;\n //TODO: Fetch and init the string bundle earlier if \"locale\" is present\n //so the English init messages are seen only for a blink if requesting a\n //non-english string bundle\n if (args.agentUri && args.agentKind) {\n const client = new Client(args.agentUri, args.agentKind);\n cmd.attachClient(client);\n }\n cmd.runAsync(options).then(payload => {\n let initPayload = payload;\n if (opts.initialView) {\n initPayload.initialView = {\n ...opts.initialView\n };\n }\n if (opts.initialActiveMap) {\n initPayload.activeMapName = opts.initialActiveMap;\n }\n initPayload.initialHideGroups = opts.initialHideGroups;\n initPayload.initialHideLayers = opts.initialHideLayers;\n initPayload.initialShowGroups = opts.initialShowGroups;\n initPayload.initialShowLayers = opts.initialShowLayers;\n initPayload.featureTooltipsEnabled = opts.featureTooltipsEnabled;\n dispatch({\n type: ActionType.INIT_APP,\n payload\n });\n if (options.onInit) {\n const viewer = getViewer();\n if (viewer) {\n options.onInit(viewer);\n }\n }\n }).catch(err => {\n processAndDispatchInitError(err, false, dispatch, opts);\n })\n };\n}\n\nexport function acknowledgeInitWarnings(): IAcknowledgeStartupWarningsAction {\n return {\n type: ActionType.INIT_ACKNOWLEDGE_WARNINGS\n }\n}","import { Client } from \"../api/client\";\nimport { RuntimeMapFeatureFlags } from \"../api/request-builder\";\nimport {\n ReduxThunkedAction,\n getRuntimeMap\n} from \"../api/common\";\nimport { ActionType } from '../constants/actions';\nimport { ILegendSetGroupVisibilityAction, ILegendSetGroupExpandedAction, ILegendSetLayerVisibilityAction, ILegendSetGroupSelectableAction } from './defs';\n\n/**\n * Sets the visibility for the given map group\n *\n * @export\n * @param {string} mapName\n * @param {{ id: string, value: boolean }} options\n * @returns\n */\nexport function setGroupVisibility(mapName: string, options: { id: string, value: boolean }): ILegendSetGroupVisibilityAction {\n return {\n type: ActionType.LEGEND_SET_GROUP_VISIBILITY,\n payload: { ...options, ...{ mapName: mapName } }\n };\n}\n\n/**\n * Sets the visibility for the given map layer\n *\n * @export\n * @param {string} mapName\n * @param {{ id: string, value: boolean }} options\n * @returns\n */\nexport function setLayerVisibility(mapName: string, options: { id: string, value: boolean }): ILegendSetLayerVisibilityAction {\n return {\n type: ActionType.LEGEND_SET_LAYER_VISIBILITY,\n payload: { ...options, ...{ mapName: mapName } }\n };\n}\n\n/**\n * Sets the expanded/collapsed state of the given group\n *\n * @export\n * @param {string} mapName\n * @param {{ id: string, value: boolean }} options\n * @returns\n */\nexport function setGroupExpanded(mapName: string, options: { id: string, value: boolean }): ILegendSetGroupExpandedAction {\n return {\n type: ActionType.LEGEND_SET_GROUP_EXPANDABLE,\n payload: { ...options, ...{ mapName: mapName } }\n };\n}\n\n/**\n * Sets the selectability state for the given map layer\n *\n * @export\n * @param {string} mapName\n * @param {{ id: string, value: boolean }} options\n * @returns\n */\nexport function setLayerSelectable(mapName: string, options: { id: string, value: boolean }): ILegendSetGroupSelectableAction {\n return {\n type: ActionType.LEGEND_SET_LAYER_SELECTABLE,\n payload: { ...options, ...{ mapName: mapName } }\n };\n}\n\n/**\n * Perform a full refresh with a requery of the layer/group structure\n *\n * @export\n * @returns {ReduxThunkedAction}\n */\nexport function refresh(): ReduxThunkedAction {\n return (dispatch, getState) => {\n const state = getState();\n const args = state.config;\n if (!args.viewer.isStateless) {\n const map = getRuntimeMap(state);\n if (map && args.agentUri && args.agentKind) {\n const client = new Client(args.agentUri, args.agentKind);\n client.describeRuntimeMap({\n mapname: map.Name,\n session: map.SessionId,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups\n }).then(res => {\n if (args.activeMapName) {\n dispatch({\n type: ActionType.MAP_REFRESH,\n payload: {\n mapName: args.activeMapName,\n map: res\n }\n });\n }\n });\n }\n }\n };\n}","import {\n ActiveMapTool,\n ICommand,\n IMapView,\n ReduxThunkedAction,\n getCurrentView,\n getRuntimeMap,\n getSelectionSet,\n UnitOfMeasure,\n ILayerInfo,\n Bounds\n} from \"../api/common\";\nimport { getViewer } from \"../api/runtime\";\nimport { getFiniteScaleIndexForScale } from '../utils/number';\nimport { Client } from \"../api/client\";\nimport { QueryMapFeaturesResponse, FeatureSet, SelectedFeature, SelectedFeatureSet } from '../api/contracts/query';\nimport { IQueryMapFeaturesOptions } from '../api/request-builder';\nimport { buildSelectionXml } from '../api/builders/deArrayify';\nimport { makeUnique } from \"../utils/array\";\nimport { ActionType } from '../constants/actions';\nimport {\n IMapSetBusyCountAction,\n IMapSetBaseLayerAction,\n IMapSetScaleAction,\n IMapSetMouseCoordinatesAction,\n IMapSetLayerTransparencyAction,\n IMapSetViewSizeUnitsAction,\n IMapPreviousViewAction,\n IMapNextViewAction,\n ISetActiveMapToolAction,\n ISetActiveMapAction,\n ISetManualFeatureTooltipsEnabledAction,\n ISetFeatureTooltipsEnabledAction,\n IMapSetViewRotationAction,\n IMapSetViewRotationEnabledAction,\n IShowSelectedFeatureAction,\n IMapSetSelectionAction,\n IMapResizedAction,\n IAddedLayerAction,\n IRemoveLayerAction,\n ISetLayerIndexAction,\n ISetLayerOpacityAction,\n ISetLayerVisibilityAction,\n ISetMapLayerVectorStyle,\n IAddMapLayerBusyWorkerAction,\n IRemoveMapLayerBusyWorkerAction,\n IAddClientSelectedFeatureAction,\n IClearClientSelectionAction,\n ISetHeatmapLayerBlurAction,\n ISetHeatmapLayerRadiusAction,\n IEnableSelectDragPanAction\n} from './defs';\nimport { persistSelectionSetToLocalStorage } from '../api/session-store';\nimport { getSiteVersion, canUseQueryMapFeaturesV4 } from '../utils/site-version';\nimport { areViewsCloseToEqual } from '../utils/viewer-state';\nimport { IVectorLayerStyle, VectorStyleSource } from '../api/ol-style-contracts';\nimport { ClientSelectionFeature } from \"../api/contracts/common\";\n\nfunction combineSelectedFeatures(oldRes: SelectedFeature[], newRes: SelectedFeature[]): SelectedFeature[] {\n const merged: SelectedFeature[] = [];\n for (const feat of oldRes) {\n merged.push(feat);\n }\n for (const feat of newRes) {\n //NOTE: Due to lack of identity property information, we have to\n //check all property values\n const matches = merged.filter(f => {\n for (const p of f.Property) {\n for (const np of feat.Property) {\n if (p.Name == np.Name) {\n if (p.Value != np.Value) {\n return false;\n }\n }\n }\n }\n return true;\n });\n if (matches.length == 0) {\n merged.push(feat);\n }\n }\n return merged;\n}\n\nfunction combineSelectedFeatureSets(oldRes: SelectedFeatureSet | undefined, newRes: SelectedFeatureSet | undefined): SelectedFeatureSet | undefined {\n if (oldRes == null) {\n return newRes;\n }\n const merged: SelectedFeatureSet = {\n SelectedLayer: []\n };\n for (const layer of oldRes.SelectedLayer) {\n merged.SelectedLayer.push(layer);\n }\n if (newRes) {\n for (const layer of newRes.SelectedLayer) {\n const layerId = layer[\"@id\"];\n const layerName = layer[\"@name\"];\n const existing = merged.SelectedLayer.filter(l => l[\"@id\"] == layerId && l[\"@name\"] == layerName);\n if (existing.length == 0) {\n merged.SelectedLayer.push(layer);\n } else {\n existing[0].Feature = combineSelectedFeatures(existing[0].Feature, layer.Feature);\n }\n }\n }\n return merged;\n}\n\nfunction combineFeatureSets(oldRes: FeatureSet | undefined, newRes: FeatureSet | undefined): FeatureSet | undefined {\n if (oldRes == null) {\n return newRes;\n }\n const merged: FeatureSet = {\n Layer: []\n };\n for (const layer of oldRes.Layer) {\n merged.Layer.push(layer);\n }\n if (newRes) {\n for (const layer of newRes.Layer) {\n const layerId = layer[\"@id\"];\n const existing = merged.Layer.filter(l => l[\"@id\"] == layerId);\n if (existing.length == 0) {\n merged.Layer.push(layer);\n } else {\n existing[0].Class.ID = makeUnique(existing[0].Class.ID.concat(layer.Class.ID));\n }\n }\n }\n return merged;\n}\n\nfunction combineSelections(oldRes: QueryMapFeaturesResponse | undefined, newRes: QueryMapFeaturesResponse): QueryMapFeaturesResponse {\n if (oldRes) {\n const merged: QueryMapFeaturesResponse = {\n SelectedFeatures: combineSelectedFeatureSets(oldRes.SelectedFeatures, newRes.SelectedFeatures),\n FeatureSet: combineFeatureSets(oldRes.FeatureSet, newRes.FeatureSet),\n Hyperlink: undefined,\n InlineSelectionImage: undefined\n };\n return merged;\n } else {\n return newRes;\n }\n}\n\n/**\n * Options for map querying\n *\n * @export\n * @interface QueryMapFeatureActionOptions\n */\nexport interface QueryMapFeatureActionOptions {\n /**\n * The main set of map querying options\n *\n * @type {IQueryMapFeaturesOptions}\n * @memberof QueryMapFeatureActionOptions\n */\n options: IQueryMapFeaturesOptions;\n /**\n * If true, the selection changes will be appended to the current selection set. False otherwise\n *\n * @type {boolean}\n * @memberof QueryMapFeatureActionOptions\n */\n append?: boolean;\n /**\n * An optional callback to invoke on successful operation\n *\n * @memberof QueryMapFeatureActionOptions\n */\n callback?: (res: QueryMapFeaturesResponse) => void;\n /**\n * An optional callback to invoke on failure\n *\n * @memberof QueryMapFeatureActionOptions\n */\n errBack?: (err: any) => void;\n}\n\n/**\n * Queries map features\n *\n * @export\n * @param {string} mapName The name of the current runtime map\n * @param {QueryMapFeatureActionOptions} opts query options\n * @returns {ReduxThunkedAction}\n */\nexport function queryMapFeatures(mapName: string, opts: QueryMapFeatureActionOptions): ReduxThunkedAction {\n return (dispatch, getState) => {\n const state = getState();\n const args = state.config;\n const map = getRuntimeMap(state);\n const selectionSet = getSelectionSet(state);\n if (map && args.agentKind && args.agentUri) {\n const client = new Client(args.agentUri, args.agentKind);\n const success = (res: QueryMapFeaturesResponse) => {\n if (opts.callback != null) {\n opts.callback(res);\n }\n };\n const failure = (err: Error) => {\n if (opts.errBack != null) {\n opts.errBack(err);\n }\n };\n //We want v4.0.0 QUERYMAPFEATURES if available\n const sv = getSiteVersion(map);\n const queryOp = canUseQueryMapFeaturesV4(sv)\n ? (opts: IQueryMapFeaturesOptions) => client.queryMapFeatures_v4(opts)\n : (opts: IQueryMapFeaturesOptions) => client.queryMapFeatures(opts);\n queryOp(opts.options).then(res => {\n if (opts.options.persist === 1) {\n if (opts.append === true) {\n const combined = combineSelections(selectionSet, res);\n const mergedXml = buildSelectionXml(combined.FeatureSet);\n //Need to update the server-side selection with the merged result\n queryOp({\n session: map.SessionId,\n mapname: map.Name,\n persist: 1,\n featurefilter: mergedXml\n }).then(() => {\n persistSelectionSetToLocalStorage(map.SessionId, mapName, combined); // set and forget\n dispatch(setSelection(mapName, combined));\n success(combined);\n });\n } else {\n persistSelectionSetToLocalStorage(map.SessionId, mapName, res); // set and forget\n dispatch(setSelection(mapName, res));\n success(res);\n }\n } else {\n success(res);\n }\n }).catch(failure);\n }\n };\n}\n\n/**\n * Sets the current map view.\n *\n * NOTE: Subscribing components are not guaranteed to receive every new view change sent by\n * calling this method. For purposes of optimization, views passed in that are \"close enough\"\n * to the current view are not dispatched to subscribing components.\n * \n * @export\n * @param {IMapView} view The map view to set\n * @returns {ReduxThunkedAction}\n */\nexport function setCurrentView(view: IMapView): ReduxThunkedAction {\n return (dispatch, getState) => {\n // HACK-y:\n //\n // We don't want to dispatch SET_VIEW actions with redundant view\n // states if the one we're about to dispatch is the same as the\n // previous one\n const state = getState();\n const currentView = getCurrentView(state);\n const newView = { ...view };\n const mapName = state.config.activeMapName;\n let dispatchThis = true;\n if (currentView && mapName) {\n //If the current map is tiled (has finite scales), \"snap\" the view's scale\n //to the closest applicable finite scale then do the test \n const mapState = state.mapState[mapName];\n const fs = mapState?.mapguide?.runtimeMap?.FiniteDisplayScale;\n if (fs && fs.length > 0) {\n\n const fi = getFiniteScaleIndexForScale(fs, newView.scale);\n newView.scale = fs[fi];\n }\n if (areViewsCloseToEqual(currentView, newView)) {\n dispatchThis = false;\n }\n }\n if (dispatchThis && mapName) {\n dispatch({\n type: ActionType.MAP_SET_VIEW,\n payload: {\n mapName,\n view: newView\n }\n });\n }\n };\n}\n\n/**\n * Sends a map resized notification\n * \n * @export\n * @param {number} width \n * @param {number} height \n * @returns {IMapResizedAction} \n */\nexport function mapResized(width: number, height: number): IMapResizedAction {\n return {\n type: ActionType.MAP_RESIZED,\n payload: {\n width,\n height\n }\n }\n}\n\n/**\n * Sets the selection set for the given map\n * \n * @param mapName \n * @param selectionSet \n * @returns \n * \n * @since 0.14 Fixed up the type of selectionSet parameter\n */\nexport function setSelection(mapName: string, selectionSet: QueryMapFeaturesResponse | undefined): IMapSetSelectionAction {\n return {\n type: ActionType.MAP_SET_SELECTION,\n payload: {\n mapName,\n selection: selectionSet\n }\n };\n}\n\n/**\n * Invokes the specified command\n *\n * @export\n * @param {ICommand} cmd\n * @param {*} [parameters]\n * @returns {ReduxThunkedAction}\n */\nexport function invokeCommand(cmd: ICommand, parameters?: any): ReduxThunkedAction {\n return (dispatch, getState) => {\n return cmd.invoke(dispatch, getState, getViewer(), parameters);\n };\n}\n\n/**\n * Sets the busy count of the viewer. A value greater than zero signifies that the viewer is currently\n * busy performing various actions (eg. Loading/Rendering the current map image)\n *\n * @export\n * @param {number} busyCount The current busy count\n * @returns {IMapSetBusyCountAction}\n */\nexport function setBusyCount(busyCount: number): IMapSetBusyCountAction {\n return {\n type: ActionType.MAP_SET_BUSY_COUNT,\n payload: busyCount\n };\n}\n\n/**\n * Set the given external base layer as the active base layer\n *\n * @export\n * @param {string} mapName The name of the current runtime map\n * @param {string} layerName The name of the external base layer to set as active\n * @returns\n */\nexport function setBaseLayer(mapName: string, layerName: string): IMapSetBaseLayerAction {\n return {\n type: ActionType.MAP_SET_BASE_LAYER,\n payload: {\n mapName,\n layerName\n }\n };\n}\n\n/**\n * Sets the view scale\n *\n * @export\n * @param {string} mapName The name of the current runtime map\n * @param {number} scale The scale to set\n * @returns\n */\nexport function setScale(mapName: string, scale: number): IMapSetScaleAction {\n const viewer = getViewer();\n let resolution;\n if (viewer) {\n resolution = viewer.scaleToResolution(scale);\n }\n return {\n type: ActionType.MAP_SET_SCALE,\n payload: {\n mapName,\n scale,\n resolution\n }\n };\n}\n\n/**\n * Sets the current mouse coordinates\n *\n * @export\n * @param {string} mapName The name of the current runtime map\n * @param {*} coord The current mouse coordinates\n * @returns\n */\nexport function setMouseCoordinates(mapName: string, coord: any): IMapSetMouseCoordinatesAction {\n return {\n type: ActionType.UPDATE_MOUSE_COORDINATES,\n payload: {\n mapName,\n coord\n }\n };\n}\n\n/**\n * Set the transparency for the given OL layer\n * \n * @export\n * @param {string} mapName The name of the current runtime map\n * @param {string} layerName The name of the OL layer\n * @param {number} opacity A value between 0 and 1. 1 - Fully Opaque, 0 - Fully Transparent\n * @returns \n */\nexport function setLayerTransparency(mapName: string, layerName: string, opacity: number): IMapSetLayerTransparencyAction {\n return {\n type: ActionType.MAP_SET_LAYER_TRANSPARENCY,\n payload: {\n mapName,\n layerName,\n opacity\n }\n };\n}\n\n/**\n * Sets the units for the map view size display\n * \n * @export\n * @param {UnitOfMeasure} unit \n * @returns {IMapSetViewSizeUnitsAction} \n */\nexport function setViewSizeUnits(unit: UnitOfMeasure): IMapSetViewSizeUnitsAction {\n return {\n type: ActionType.MAP_SET_VIEW_SIZE_UNITS,\n payload: unit\n };\n}\n\n/**\n * Goes back to the previous view on the navigation stack\n *\n * @export\n * @param {string} mapName The name of the current runtime map\n * @returns\n */\nexport function previousView(mapName: string): IMapPreviousViewAction {\n return {\n type: ActionType.MAP_PREVIOUS_VIEW,\n payload: {\n mapName\n }\n };\n}\n\n/**\n * Goes to the next view on the navigation stack\n *\n * @export\n * @param {string} mapName The name of the current runtime amp\n * @returns\n */\nexport function nextView(mapName: string): IMapNextViewAction {\n return {\n type: ActionType.MAP_NEXT_VIEW,\n payload: {\n mapName\n }\n };\n}\n\n/**\n * Sets the active map tool\n *\n * @export\n * @param {ActiveMapTool} tool The active map tool command\n * @returns\n */\nexport function setActiveTool(tool: ActiveMapTool): ISetActiveMapToolAction {\n return {\n type: ActionType.MAP_SET_ACTIVE_TOOL,\n payload: tool\n };\n}\n\n/**\n * Sets the active runtime map\n *\n * @export\n * @param {string} mapName The name of the runtime map to set as active\n * @returns\n */\nexport function setActiveMap(mapName: string): ISetActiveMapAction {\n return {\n type: ActionType.MAP_SET_ACTIVE_MAP,\n payload: mapName\n };\n}\n\n/**\n * Sets whether feature tooltips (aka. Map Tips) are enabled\n *\n * @export\n * @param {boolean} enabled\n * @returns\n */\nexport function setFeatureTooltipsEnabled(enabled: boolean): ISetFeatureTooltipsEnabledAction {\n return {\n type: ActionType.MAP_SET_MAPTIP,\n payload: enabled\n };\n}\n\n/**\n * Sets whether the select tool can pan while dragging\n * \n * @param enabled \n * @since 0.14.2\n */\nexport function enableSelectDragPan(enabled: boolean): IEnableSelectDragPanAction {\n return {\n type: ActionType.MAP_ENABLE_SELECT_DRAGPAN,\n payload: enabled\n }\n}\n\n/**\n * Sets whether manual feature tooltips (aka. Map Tips) are enabled\n *\n * @export\n * @param {boolean} enabled\n * @returns\n */\nexport function setManualFeatureTooltipsEnabled(enabled: boolean): ISetManualFeatureTooltipsEnabledAction {\n return {\n type: ActionType.MAP_SET_MANUAL_MAPTIP,\n payload: enabled\n };\n}\n\n/**\n * Sets the rotation of the current view\n * \n * @export\n * @param {number} rotation \n * @returns \n */\nexport function setViewRotation(rotation: number): IMapSetViewRotationAction {\n return {\n type: ActionType.MAP_SET_VIEW_ROTATION,\n payload: rotation\n };\n}\n\n/**\n * Sets whether view rotation is enabled or not\n * \n * @export\n * @param {boolean} enabled \n */\nexport function setViewRotationEnabled(enabled: boolean): IMapSetViewRotationEnabledAction {\n return {\n type: ActionType.MAP_SET_VIEW_ROTATION_ENABLED,\n payload: enabled\n };\n}\n\n/**\n * Shows the selected feature on the map\n * \n * @export\n * @param {string} mapName \n * @param {string} layerId \n * @param {string} selectionKey \n * @returns {IShowSelectedFeatureAction} \n */\nexport function showSelectedFeature(mapName: string, layerId: string, selectionKey: string): IShowSelectedFeatureAction {\n return {\n type: ActionType.MAP_SHOW_SELECTED_FEATURE,\n payload: {\n mapName,\n layerId,\n selectionKey\n }\n };\n}\n\n/**\n * NOTE: Dispatching this action does not add the layer to the map. This is a means to notify others\n * that a new layer has been added. It is expected to be dispatched by any component that is managing\n * layers\n * \n * @export\n * @param {string} mapName\n * @param {ILayerInfo} layer\n * @param {IVectorLayerStyle} [defaultStyle]\n * @returns {IAddedLayerAction}\n * @since 0.13\n * @since 0.14 defaultStyle argument changed to IVectorLayerStyle\n */\nexport function mapLayerAdded(mapName: string, layer: ILayerInfo, defaultStyle?: IVectorLayerStyle): IAddedLayerAction {\n return {\n type: ActionType.LAYER_ADDED,\n payload: {\n mapName,\n layer,\n defaultStyle\n }\n };\n}\n\n/**\n * An action that signals the externa layers for the given map name is ready. This action\n * is only dispatched when there is no external layers to initially add\n * \n * @param mapName \n * @since 0.14\n */\nexport function externalLayersReady(mapName: string) {\n return {\n type: ActionType.EXTERNAL_LAYERS_READY,\n payload: {\n mapName\n }\n }\n}\n\n/**\n * Removes a given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @returns {IRemoveLayerAction}\n * @since 0.13\n */\nexport function removeMapLayer(mapName: string, layerName: string): IRemoveLayerAction {\n return {\n type: ActionType.REMOVE_LAYER,\n payload: {\n mapName,\n layerName\n }\n };\n}\n\n/**\n * Sets the display order index for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @param {number} index\n * @returns {ISetLayerIndexAction}\n * @since 0.13\n */\nexport function setMapLayerIndex(mapName: string, layerName: string, index: number): ISetLayerIndexAction {\n return {\n type: ActionType.SET_LAYER_INDEX,\n payload: {\n mapName,\n layerName,\n index\n }\n };\n}\n\n/**\n * Sets the opacity for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @param {number} opacity\n * @returns {ISetLayerOpacityAction}\n * @since 0.13\n */\nexport function setMapLayerOpacity(mapName: string, layerName: string, opacity: number): ISetLayerOpacityAction {\n return {\n type: ActionType.SET_LAYER_OPACITY,\n payload: {\n mapName,\n layerName,\n opacity\n }\n };\n}\n\n/**\n * Sets the heatmap blur for the given external heatmap layer for the given map\n * \n * @param mapName \n * @param layerName \n * @param blur \n */\nexport function setHeatmapLayerBlur(mapName: string, layerName: string, blur: number): ISetHeatmapLayerBlurAction {\n return {\n type: ActionType.SET_HEATMAP_LAYER_BLUR,\n payload: {\n mapName,\n layerName,\n blur\n }\n };\n}\n\n/**\n * Sets the heatmap radius for the given external heatmap layer for the given map\n * \n * @param mapName \n * @param layerName \n * @param radius \n */\nexport function setHeatmapLayerRadius(mapName: string, layerName: string, radius: number): ISetHeatmapLayerRadiusAction {\n return {\n type: ActionType.SET_HEATMAP_LAYER_RADIUS,\n payload: {\n mapName,\n layerName,\n radius\n }\n };\n}\n\n/**\n * Sets the visibility for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @param {boolean} visible\n * @returns {ISetLayerVisibilityAction}\n * @since 0.13\n */\nexport function setMapLayerVisibility(mapName: string, layerName: string, visible: boolean): ISetLayerVisibilityAction {\n return {\n type: ActionType.SET_LAYER_VISIBILITY,\n payload: {\n mapName,\n layerName,\n visible\n }\n };\n}\n\n/**\n * Sets the vector style for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @param {IVectorLayerStyle} style\n * @param {VectorStyleSource} which\n * @returns {ISetMapLayerVectorStyle}\n * @since 0.13\n * @since 0.14 style and which arguments changed to IVectorLayerStyle\n */\nexport function setMapLayerVectorStyle(mapName: string, layerName: string, style: IVectorLayerStyle, which: VectorStyleSource): ISetMapLayerVectorStyle {\n return {\n type: ActionType.SET_LAYER_VECTOR_STYLE,\n payload: {\n mapName,\n layerName,\n style,\n which\n }\n };\n}\n\n/**\n * Adds a busy worker for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @returns {IAddMapLayerBusyWorkerAction}\n * @since 0.13\n */\nexport function addMapLayerBusyWorker(mapName: string, layerName: string): IAddMapLayerBusyWorkerAction {\n return {\n type: ActionType.ADD_LAYER_BUSY_WORKER,\n payload: {\n mapName,\n layerName\n }\n }\n}\n\n/**\n * Removes a busy worker for the given external layer for the given map\n * \n * @export\n * @param {string} mapName\n * @param {string} layerName\n * @returns {IRemoveMapLayerBusyWorkerAction}\n * @since 0.13\n */\nexport function removeMapLayerBusyWorker(mapName: string, layerName: string): IRemoveMapLayerBusyWorkerAction {\n return {\n type: ActionType.REMOVE_LAYER_BUSY_WORKER,\n payload: {\n mapName,\n layerName\n }\n }\n}\n\n/**\n * Adds a feature to the client selection set for the given map\n * \n * @param mapName \n * @param layerName \n * @param feature \n * @returns \n * @since 0.14\n */\nexport function addClientSelectedFeature(mapName: string, layerName: string, feature: ClientSelectionFeature): IAddClientSelectedFeatureAction {\n return {\n type: ActionType.MAP_ADD_CLIENT_SELECTED_FEATURE,\n payload: {\n mapName,\n layerName,\n feature\n }\n }\n}\n\n/**\n * Clears the client selection set for the given map\n * \n * @param mapName \n * @since 0.14\n */\nexport function clearClientSelection(mapName: string): IClearClientSelectionAction {\n return {\n type: ActionType.MAP_CLEAR_CLIENT_SELECTION,\n payload: {\n mapName\n }\n }\n}","import {\n IModalComponentDisplayOptions,\n IModalDisplayOptions\n} from \"../api/common\";\nimport { ActionType } from '../constants/actions';\nimport { ICloseModalAction, IShowModalUrlAction, IShowComponentInModalAction } from './defs';\n\n/**\n * Displays the specified component in a modal dialog\n *\n * @export\n * @param {*} options Modal dialog display options\n * @returns {IShowComponentInModalAction}\n */\nexport function showModalComponent(options: IModalComponentDisplayOptions): IShowComponentInModalAction {\n return {\n type: ActionType.MODAL_SHOW_COMPONENT,\n payload: {\n ...options\n }\n };\n}\n\n/**\n * Displays the specified URL in a modal dialog\n *\n * @export\n * @param {*} options Modal dialog display options\n * @returns {IShowModalUrlAction}\n */\nexport function showModalUrl(options: IModalDisplayOptions): IShowModalUrlAction {\n return {\n type: ActionType.MODAL_SHOW_URL,\n payload: {\n ...options\n }\n };\n}\n\n/**\n * Hides an open modal dialog\n *\n * @export\n * @param name The name of the modal to hide\n * @returns {ICloseModalAction}\n */\nexport function hideModal(name: string): ICloseModalAction {\n return {\n type: ActionType.MODAL_CLOSE,\n payload: name\n };\n}","import { MgError } from \"../api/error\";\nimport {\n ReduxThunkedAction\n} from \"../api/common\";\nimport { ActionType } from '../constants/actions';\nimport { ITaskPaneBackAction, ITaskPaneForwardAction, ITaskPanePushUrlAction } from './defs';\n\n/**\n * Go back to the initial task URL\n *\n * @export\n * @returns {ReduxThunkedAction}\n */\nexport function goHome(): ReduxThunkedAction {\n return (dispatch, getState) => {\n const initUrl = getState().taskpane.initialUrl;\n if (initUrl != null) {\n dispatch({\n type: ActionType.TASK_PANE_HOME\n });\n } else {\n throw new MgError(\"Case not handled yet: Home action when no initial task URL set\");\n }\n };\n}\n\n/**\n * Go back one entry in the task pane navigation history\n *\n * @export\n * @returns\n */\nexport function goBack(): ITaskPaneBackAction {\n return {\n type: ActionType.TASK_PANE_BACK\n };\n}\n\n/**\n * Go forward one entry in the task pane navigation history\n *\n * @export\n * @returns\n */\nexport function goForward(): ITaskPaneForwardAction {\n return {\n type: ActionType.TASK_PANE_FORWARD\n };\n}\n\n/**\n * Pushes the given URL to the task pane navigation history stack\n *\n * @export\n * @param {string} url\n * @param {boolean} [silent]\n * @returns\n */\nexport function pushUrl(url: string, silent?: boolean): ITaskPanePushUrlAction {\n return {\n type: ActionType.TASK_PANE_PUSH_URL,\n payload: {\n url: url,\n silent: silent\n }\n };\n}","/**\n * template.ts\n *\n * Actions to support fusion templates\n */\nimport { ActionType } from '../constants/actions';\nimport { IElementState, ITemplateSetElementStateAction, ITemplateSetTaskPaneVisibilityAction, ITemplateSetSelectionPanelVisibility, ITemplateSetLegendVisibility } from './defs';\n\nexport function setElementStates(states: IElementState): ITemplateSetElementStateAction {\n return {\n type: ActionType.FUSION_SET_ELEMENT_STATE,\n payload: states\n };\n}\n\nexport function setTaskPaneVisibility(visible: boolean): ITemplateSetTaskPaneVisibilityAction {\n return {\n type: ActionType.FUSION_SET_TASK_PANE_VISIBILITY,\n payload: visible\n };\n}\n\nexport function setSelectionPanelVisibility(visible: boolean): ITemplateSetSelectionPanelVisibility {\n return {\n type: ActionType.FUSION_SET_SELECTION_PANEL_VISIBILITY,\n payload: visible\n };\n}\n\n/*\nexport function setOverviewMapVisibility(visible: boolean): ReduxAction {\n return {\n type: ActionType.FUSION_SET_OVERVIEW_MAP_VISIBILITY,\n payload: visible\n };\n}\n*/\n\nexport function setLegendVisibility(visible: boolean): ITemplateSetLegendVisibility {\n return {\n type: ActionType.FUSION_SET_LEGEND_VISIBILITY,\n payload: visible\n };\n}","/**\n * @module\n * @hidden\n */\n\nimport { ILayerSetOL } from './layer-set-contracts';\nimport LayerGroup from 'ol/layer/Group';\nimport { Bounds, IExternalBaseLayer, RefreshMode, LayerTransparencySet, Size } from './common';\nimport View from 'ol/View';\nimport LayerBase from \"ol/layer/Base\";\nimport * as olHas from \"ol/has\";\nimport Source from 'ol/source/Source';\nimport { ProjectionLike } from 'ol/proj';\n\n/**\n * @hidden\n */\nexport abstract class BaseLayerSetOL implements ILayerSetOL {\n constructor(public readonly externalBaseLayersGroup: LayerGroup | undefined,\n public readonly projection: ProjectionLike,\n public readonly dpi: number,\n public readonly extent: Bounds,\n private readonly inPerUnit: number,\n public readonly view: View) {\n\n }\n public getMetersPerUnit(): number {\n return this.inPerUnit / 39.37\n }\n public scaleToResolution(scale: number): number {\n return (scale / this.inPerUnit / this.dpi) * olHas.DEVICE_PIXEL_RATIO;\n }\n public resolutionToScale(resolution: number): number {\n return (resolution * this.dpi * this.inPerUnit) / olHas.DEVICE_PIXEL_RATIO;\n }\n public updateExternalBaseLayers(externalBaseLayers: IExternalBaseLayer[]) {\n if (this.externalBaseLayersGroup) {\n const layers = this.externalBaseLayersGroup.getLayers();\n layers.forEach((l: LayerBase) => {\n const match = (externalBaseLayers || []).filter(el => el.name === l.get(\"title\"));\n if (match.length == 1) {\n l.setVisible(!!match[0].visible);\n } else {\n l.setVisible(false);\n }\n });\n }\n }\n /**\n *\n * @virtual\n * @param {RefreshMode} mode\n * @memberof BaseLayerSetOL\n */\n refreshMap(mode: RefreshMode): void { }\n abstract getLayers(): LayerBase[];\n abstract getSourcesForProgressTracking(): Source[];\n abstract updateTransparency(trans: LayerTransparencySet): void;\n abstract showActiveSelectedFeature(mapExtent: Bounds, size: Size, uri: string): void;\n abstract update(showGroups: string[] | undefined, showLayers: string[] | undefined, hideGroups: string[] | undefined, hideLayers: string[] | undefined): void;\n abstract updateSelectionColor(color: string): void;\n}","/**\n * Sets up key dependencies needed by the viewer. This only needs to be called on the entry point of your custom viewer bundle\n *\n * @export\n */\nexport function bootstrap() {\n \n}","/**\n * deArrayify.ts\n *\n * This module provides JSON sanitization of JSON responses from the mapagent\n *\n * Being a transformation of the XML form, and taking a lowest-common-denominator\n * approach to JSON conversion, the JSON responses from MapGuide are un-wieldy to\n * use from the client-side due to:\n *\n * a) All properties being arrays\n * b) All property values being strings\n *\n * These functions help \"clean\" those responses to be of the form we expect (and prefer)\n */\nimport { MgError } from \"../error\";\nimport { ActiveSelectedFeature, getExternalBaseLayers } from \"../common\";\nimport { RuleInfo, FeatureStyleInfo, ScaleRangeInfo, FeatureSourceInfo, MapLayer, MapGroup, CoordinateSystemType, EnvCoordinate, Envelope, RuntimeMap } from '../contracts/runtime-map';\nimport { FeatureSetClass, FeatureSetLayer, FeatureSet, SelectionImage, FeatureProperty, SelectedFeature, LayerPropertyMetadata, LayerMetadata, SelectedLayer, SelectedFeatureSet, QueryMapFeaturesResponse } from '../contracts/query';\nimport { WebLayoutMap, WebLayoutControl, WebLayoutInfoPane, MapView, TaskButton, WebLayoutTaskBar, UIItem, WebLayoutTaskPane, CommandUIItem, FlyoutUIItem, ResultColumnSet, ResultColumn, LayerSet, ParameterPair, CommandDef, BasicCommandDef, InvokeScriptCommandDef, InvokeURLCommandDef, SearchCommandDef, WebLayoutCommandSet, WebLayout, WebLayoutToolbar, WebLayoutContextMenu, WebLayoutStatusBar, WebLayoutZoomControl } from '../contracts/weblayout';\nimport { MapSetGroup, MapInitialView, MapConfiguration, MapSet, ContainerItem, FlyoutItem, WidgetItem, ContainerDefinition, Widget, UIWidget, MapWidget, WidgetSet, ApplicationDefinition } from '../contracts/fusion';\nimport { MDF_INFINITY } from '../../constants';\nimport { MapDefinition, MapDefinitionLayerGroup, MapDefinitionLayer as MdfLayer, TileSetSource } from \"../contracts/map-definition\";\nimport { BaseMapLayer, BaseMapLayerGroup, TileSetDefinition, TileStoreParameters } from \"../contracts/tile-set-definition\";\nimport { SiteVersionResponse } from '../contracts/common';\n\ntype ElementType = \"string\" | \"boolean\" | \"int\" | \"float\";\n\nfunction buildPropertyGetter() {\n return (el: any, name: keyof T, type: ElementType = \"string\") => {\n return tryGetAsProperty(el, name, type);\n }\n}\n\nfunction tryGetAsProperty(el: any, name: keyof T, type: ElementType = \"string\"): any {\n if (!el[name]) {\n return null;\n } else if (el[name].length === 1) {\n const val: string = el[name][0];\n switch (type) {\n case \"int\":\n return parseInt(val, 10);\n case \"float\":\n return parseFloat(val);\n case \"boolean\":\n return val.toLowerCase() === \"true\";\n default:\n return val;\n }\n }\n}\n\nfunction deArrayifyRules(rules: any[]): RuleInfo[] {\n const getter = buildPropertyGetter();\n return rules.map(r => {\n const rule: RuleInfo = {\n LegendLabel: getter(r, \"LegendLabel\"),\n Filter: getter(r, \"Filter\"),\n Icon: getter(r, \"Icon\")\n };\n return rule;\n });\n}\n\nfunction deArrayifyFeatureStyles(fts: any[]): FeatureStyleInfo[] {\n if (!fts) {\n return [];\n }\n const getter = buildPropertyGetter();\n return fts.map(ft => {\n const featureStyle: FeatureStyleInfo = {\n Type: getter(ft, \"Type\", \"int\"),\n Rule: deArrayifyRules(ft.Rule)\n };\n return featureStyle;\n });\n}\n\nfunction deArrayifyScaleRanges(scales: any[]): ScaleRangeInfo[] {\n if (!scales) { //Happens with raster layers (this is probably a bug in CREATERUNTIMEMAP)\n const defaultRange: ScaleRangeInfo = {\n MinScale: 0,\n MaxScale: MDF_INFINITY,\n FeatureStyle: []\n };\n return [defaultRange];\n }\n \n const getter = buildPropertyGetter();\n return scales.map(sc => {\n const scale: ScaleRangeInfo = {\n MinScale: getter(sc, \"MinScale\", \"float\"),\n MaxScale: getter(sc, \"MaxScale\", \"float\"),\n FeatureStyle: deArrayifyFeatureStyles(sc.FeatureStyle)\n };\n return scale;\n });\n}\n\nfunction deArrayifyFeatureSourceInfo(fs: any[]): FeatureSourceInfo | undefined {\n if (!fs || fs.length !== 1) {\n return undefined;\n }\n const getter = buildPropertyGetter();\n return {\n ResourceId: getter(fs[0], \"ResourceId\"),\n ClassName: getter(fs[0], \"ClassName\"),\n Geometry: getter(fs[0], \"Geometry\")\n };\n}\n\nfunction deArrayifyLayers(layers: any[]): MapLayer[] {\n if (!layers)\n return layers;\n\n const getter = buildPropertyGetter();\n return layers.map(lyr => {\n const layer: MapLayer = {\n Type: getter(lyr, \"Type\", \"int\"),\n Selectable: getter(lyr, \"Selectable\", \"boolean\"),\n LayerDefinition: getter(lyr, \"LayerDefinition\"),\n Name: getter(lyr, \"Name\"),\n LegendLabel: getter(lyr, \"LegendLabel\"),\n ObjectId: getter(lyr, \"ObjectId\"),\n ParentId: getter(lyr, \"ParentId\"),\n DisplayInLegend: getter(lyr, \"DisplayInLegend\", \"boolean\"),\n ExpandInLegend: getter(lyr, \"ExpandInLegend\", \"boolean\"),\n Visible: getter(lyr, \"Visible\", \"boolean\"),\n ActuallyVisible: getter(lyr, \"ActuallyVisible\", \"boolean\"),\n FeatureSource: deArrayifyFeatureSourceInfo(lyr.FeatureSource),\n ScaleRange: deArrayifyScaleRanges(lyr.ScaleRange)\n };\n //This is either a raster or drawing layer, in this case disregard the\n //selectability flag (and set it to false). This is to prevent false positive\n //errors trying to do tooltip/selections against raster/drawing layers\n if (!lyr.ScaleRange) {\n layer.Selectable = false;\n }\n return layer;\n });\n}\n\nfunction deArrayifyGroups(groups: any[]): MapGroup[] | undefined {\n if (!groups)\n return undefined;\n\n const getter = buildPropertyGetter();\n return groups.map(grp => {\n const group: MapGroup = {\n Type: getter(grp, \"Type\", \"int\"),\n Name: getter(grp, \"Name\"),\n LegendLabel: getter(grp, \"LegendLabel\"),\n ObjectId: getter(grp, \"ObjectId\"),\n ParentId: getter(grp, \"ParentId\"),\n DisplayInLegend: getter(grp, \"DisplayInLegend\", \"boolean\"),\n ExpandInLegend: getter(grp, \"ExpandInLegend\", \"boolean\"),\n Visible: getter(grp, \"Visible\", \"boolean\"),\n ActuallyVisible: getter(grp, \"ActuallyVisible\", \"boolean\")\n };\n return group;\n });\n}\n\nfunction deArrayifyCoordinateSystem(cs: any[]): CoordinateSystemType {\n if (!cs || cs.length !== 1) {\n throw new MgError(\"Malformed input. Expected CoordinateSystem element\");\n }\n const getter = buildPropertyGetter();\n const res: CoordinateSystemType = {\n Wkt: getter(cs[0], \"Wkt\"),\n MentorCode: getter(cs[0], \"MentorCode\"),\n EpsgCode: getter(cs[0], \"EpsgCode\"),\n MetersPerUnit: getter(cs[0], \"MetersPerUnit\", \"float\")\n };\n return res;\n}\n\nfunction deArrayifyCoordinate(coord: any[]): EnvCoordinate {\n if (!coord || coord.length !== 1) {\n throw new MgError(\"Malformed input. Expected coordinate array\");\n }\n const getter = buildPropertyGetter();\n return {\n X: getter(coord[0], \"X\", \"float\"),\n Y: getter(coord[0], \"Y\", \"float\")\n };\n}\n\nfunction deArrayifyExtents(extents: any[]): Envelope {\n if (!extents || extents.length !== 1) {\n throw new MgError(\"Malformed input. Expected extent element\");\n }\n const env: Envelope = {\n LowerLeftCoordinate: deArrayifyCoordinate(extents[0].LowerLeftCoordinate),\n UpperRightCoordinate: deArrayifyCoordinate(extents[0].UpperRightCoordinate)\n };\n return env;\n}\n\nfunction deArrayifyFiniteDisplayScales(fds: any[]): number[] | undefined {\n if (!fds)\n return undefined;\n\n return fds.map(parseFloat);\n}\n\nfunction deArrayifyRuntimeMap(json: any): RuntimeMap {\n const root = json;\n const getter = buildPropertyGetter();\n const rtMap: RuntimeMap = {\n SessionId: getter(root, \"SessionId\"),\n SiteVersion: getter(root, \"SiteVersion\"),\n Name: getter(root, \"Name\"),\n MapDefinition: getter(root, \"MapDefinition\"),\n TileSetDefinition: getter(root, \"TileSetDefinition\"),\n TileWidth: getter(root, \"TileWidth\", \"int\"),\n TileHeight: getter(root, \"TileHeight\", \"int\"),\n BackgroundColor: getter(root, \"BackgroundColor\"),\n DisplayDpi: getter(root, \"DisplayDpi\", \"int\"),\n IconMimeType: getter(root, \"IconMimeType\"),\n CoordinateSystem: deArrayifyCoordinateSystem(root.CoordinateSystem),\n Extents: deArrayifyExtents(root.Extents),\n Group: deArrayifyGroups(root.Group),\n Layer: deArrayifyLayers(root.Layer),\n FiniteDisplayScale: deArrayifyFiniteDisplayScales(root.FiniteDisplayScale)\n };\n return rtMap;\n}\n\nfunction deArrayifyFeatureSetClass(json: any): FeatureSetClass {\n const root = json;\n const getter = buildPropertyGetter();\n if (root.length != 1) {\n throw new MgError(\"Malformed input. Expected Class element\");\n }\n const cls = {\n \"@id\": getter(root[0], \"@id\"),\n ID: root[0].ID\n };\n return cls;\n}\n\nfunction deArrayifyFeatureSetLayers(json: any[]): FeatureSetLayer[] {\n const getter = buildPropertyGetter();\n return (json || []).map(root => {\n const layer = {\n \"@id\": getter(root, \"@id\"),\n \"@name\": getter(root, \"@name\"),\n Class: deArrayifyFeatureSetClass(root.Class)\n };\n return layer;\n });\n}\n\nfunction deArrayifyFeatureSet(json: any): FeatureSet | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n return undefined;\n }\n const fs = {\n Layer: deArrayifyFeatureSetLayers(root[0].Layer)\n };\n return fs;\n}\n\nfunction deArrayifyInlineSelectionImage(json: any): SelectionImage | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n return undefined;\n }\n const getter = buildPropertyGetter();\n const img = {\n MimeType: getter(root[0], \"MimeType\"),\n Content: getter(root[0], \"Content\")\n };\n return img;\n}\n\nfunction deArrayifyFeatureProperties(json: any[]): FeatureProperty[] {\n const getter = buildPropertyGetter();\n return (json || []).map(root => {\n const prop = {\n Name: getter(root, \"Name\"),\n Value: getter(root, \"Value\")\n };\n return prop;\n });\n}\n\nfunction deArrayifyFeatures(json: any[]): SelectedFeature[] {\n const getter = buildPropertyGetter();\n return (json || []).map(root => {\n const feat = {\n Bounds: getter(root, \"Bounds\"),\n Property: deArrayifyFeatureProperties(root.Property),\n SelectionKey: getter(root, \"SelectionKey\")\n };\n return feat;\n });\n}\n\nfunction deArrayifyLayerMetadataProperties(json: any[]): LayerPropertyMetadata[] {\n const getter = buildPropertyGetter();\n return (json || []).map(root => {\n const prop = {\n DisplayName: getter(root, \"DisplayName\"),\n Name: getter(root, \"Name\"),\n Type: getter(root, \"Type\", \"int\")\n };\n return prop;\n });\n}\n\nfunction deArrayifyLayerMetadata(json: any): LayerMetadata | undefined {\n const root = json;\n //NOTE: root could be null if the layer selected has no properties beyond id/geom\n if (root == null || root.length != 1) {\n return undefined;\n }\n const meta = {\n Property: deArrayifyLayerMetadataProperties(root[0].Property)\n };\n return meta;\n}\n\nfunction deArrayifySelectedLayer(json: any[]): SelectedLayer[] {\n const getter = buildPropertyGetter();\n return (json || []).map(root => {\n const layer = {\n \"@id\": getter(root, \"@id\"),\n \"@name\": getter(root, \"@name\"),\n Feature: deArrayifyFeatures(root.Feature),\n LayerMetadata: deArrayifyLayerMetadata(root.LayerMetadata)\n };\n return layer;\n });\n}\n\nfunction deArrayifySelectedFeatures(json: any): SelectedFeatureSet | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n return undefined;\n }\n const sf = {\n SelectedLayer: deArrayifySelectedLayer(root[0].SelectedLayer)\n };\n return sf;\n}\n\nfunction deArrayifyFeatureInformation(json: any): QueryMapFeaturesResponse {\n const root = json;\n const getter = buildPropertyGetter();\n const resp = {\n FeatureSet: deArrayifyFeatureSet(root.FeatureSet),\n Hyperlink: getter(root, \"Hyperlink\"),\n InlineSelectionImage: deArrayifyInlineSelectionImage(root.InlineSelectionImage),\n SelectedFeatures: deArrayifySelectedFeatures(root.SelectedFeatures),\n Tooltip: getter(root, \"Tooltip\")\n };\n return resp;\n}\n\nfunction deArrayifyWebLayoutControl(json: any): T {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected control element\");\n }\n const getter = buildPropertyGetter();\n const control: any = {\n Visible: getter(root[0], \"Visible\", \"boolean\")\n };\n return control;\n}\n\nfunction deArrayifyWebLayoutInfoPane(json: any): WebLayoutInfoPane {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected InformationPane element\");\n }\n const getter = buildPropertyGetter();\n const infoPane = {\n Visible: getter(root[0], \"Visible\", \"boolean\"),\n Width: getter(root[0], \"Width\", \"int\"),\n LegendVisible: getter(root[0], \"LegendVisible\", \"boolean\"),\n PropertiesVisible: getter(root[0], \"PropertiesVisible\", \"boolean\")\n };\n return infoPane;\n}\n\nfunction deArrayifyWebLayoutInitialView(json: any): MapView | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n return undefined;\n }\n const getter = buildPropertyGetter();\n const view = {\n CenterX: getter(root[0], \"CenterX\", \"float\"),\n CenterY: getter(root[0], \"CenterY\", \"float\"),\n Scale: getter(root[0], \"Scale\", \"float\")\n };\n return view;\n}\n\nfunction deArrayifyWebLayoutMap(json: any): WebLayoutMap {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected Map element\");\n }\n const getter = buildPropertyGetter();\n const map = {\n ResourceId: getter(root[0], \"ResourceId\"),\n InitialView: deArrayifyWebLayoutInitialView(root[0].InitialView),\n HyperlinkTarget: getter(root[0], \"HyperlinkTarget\"),\n HyperlinkTargetFrame: getter(root[0], \"HyperlinkTargetFrame\")\n };\n return map;\n}\n\nfunction deArrayifyTaskButton(json: any): TaskButton {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected TaskButton element\");\n }\n const getter = buildPropertyGetter();\n const button = {\n Name: getter(root[0], \"Name\"),\n Tooltip: getter(root[0], \"Tooltip\"),\n Description: getter(root[0], \"Description\"),\n ImageURL: getter(root[0], \"ImageURL\"),\n DisabledImageURL: getter(root[0], \"DisabledImageURL\")\n };\n return button;\n}\n\nfunction deArrayifyWebLayoutTaskBar(json: any): WebLayoutTaskBar {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected TaskBar element\");\n }\n const getter = buildPropertyGetter();\n const taskbar = {\n Visible: getter(root[0], \"Visible\", \"boolean\"),\n Home: deArrayifyTaskButton(root[0].Home),\n Forward: deArrayifyTaskButton(root[0].Forward),\n Back: deArrayifyTaskButton(root[0].Back),\n Tasks: deArrayifyTaskButton(root[0].Tasks),\n MenuButton: [] as UIItem[]\n };\n if (root[0].MenuButton) {\n for (const mb of root[0].MenuButton) {\n taskbar.MenuButton.push(deArrayifyUIItem(mb));\n }\n }\n return taskbar;\n}\n\nfunction deArrayifyWebLayoutTaskPane(json: any): WebLayoutTaskPane {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected TaskPane element\");\n }\n const getter = buildPropertyGetter();\n const taskPane = {\n Visible: getter(root[0], \"Visible\", \"boolean\"),\n InitialTask: getter(root[0], \"InitialTask\"),\n Width: getter(root[0], \"Width\", \"int\"),\n TaskBar: deArrayifyWebLayoutTaskBar(root[0].TaskBar)\n };\n return taskPane;\n}\n\nfunction deArrayifyUIItem(json: any): UIItem {\n const root = json;\n const getter = buildPropertyGetter();\n const func: string = getter(root, \"Function\");\n //Wouldn't it be nice if we could incrementally build up a union type that then becomes a specific\n //type once certain properties are set?\n //\n //Well, that's currently not possible. So we have to resort to \"any\"\n const item: any = {\n Function: func\n };\n switch (func) {\n case \"Command\":\n item.Command = getter(root, \"Command\");\n break;\n case \"Flyout\":\n item.Label = getter(root, \"Label\");\n item.Tooltip = getter(root, \"Tooltip\");\n item.Description = getter(root, \"Description\");\n item.ImageURL = getter(root, \"ImageURL\");\n item.DisabledImageURL = getter(root, \"DisabledImageURL\");\n item.SubItem = [];\n for (const si of root.SubItem) {\n item.SubItem.push(deArrayifyUIItem(si));\n }\n break;\n }\n return item;\n}\n\nfunction deArrayifyItemContainer(json: any, name: string): T {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected container element\");\n }\n const getter = buildPropertyGetter();\n const container: any = {};\n container[name] = [];\n for (const item of root[0][name]) {\n container[name].push(deArrayifyUIItem(item));\n }\n if (typeof (root[0].Visible) != 'undefined') {\n container.Visible = getter(root[0], \"Visible\", \"boolean\");\n }\n return container;\n}\n\nfunction deArrayifyWebLayoutSearchResultColumnSet(json: any): ResultColumnSet {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected ResultColumns element\");\n }\n const getter = buildPropertyGetter();\n const res = {\n Column: [] as ResultColumn[]\n };\n for (const col of root[0].Column) {\n res.Column.push({\n Name: getter(col, \"Name\"),\n Property: getter(col, \"Property\")\n });\n }\n return res;\n}\n\nfunction deArrayifyWebLayoutInvokeURLLayerSet(json: any): LayerSet | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n return undefined;\n }\n const layerset = {\n Layer: root[0].Layer\n };\n return layerset;\n}\n\nfunction deArrayifyWebLayoutParameterPairs(json: any): ParameterPair[] {\n const root = json;\n const pairs = [] as ParameterPair[]\n if (!root) {\n return pairs;\n }\n const getter = buildPropertyGetter();\n for (const kvp of root) {\n pairs.push({\n Key: getter(kvp, \"Key\"),\n Value: getter(kvp, \"Value\")\n });\n }\n return pairs;\n}\n\nfunction deArrayifyCommand(json: any): CommandDef {\n const root = json;\n const getter = buildPropertyGetter();\n const cmd: any = {\n \"@xsi:type\": getter(root, \"@xsi:type\"),\n Name: getter(root, \"Name\"),\n Label: getter(root, \"Label\"),\n Tooltip: getter(root, \"Tooltip\"),\n Description: getter(root, \"Description\"),\n ImageURL: getter(root, \"ImageURL\"),\n DisabledImageURL: getter(root, \"DisabledImageURL\"),\n TargetViewer: getter(root, \"TargetViewer\")\n };\n //Basic\n if (typeof (root.Action) != 'undefined') {\n cmd.Action = getter(root, \"Action\");\n }\n //Targeted\n if (typeof (root.Target) != 'undefined') {\n cmd.Target = getter(root, \"Target\");\n }\n if (typeof (root.TargetFrame) != 'undefined') {\n cmd.TargetFrame = getter(root, \"TargetFrame\");\n }\n //Search\n if (typeof (root.Layer) != 'undefined') {\n cmd.Layer = getter(root, \"Layer\");\n cmd.Prompt = getter(root, \"Prompt\");\n cmd.ResultColumns = deArrayifyWebLayoutSearchResultColumnSet(root.ResultColumns);\n cmd.Filter = getter(root, \"Filter\");\n cmd.MatchLimit = getter(root, \"MatchLimit\", \"int\");\n }\n //InvokeURL | Help\n if (typeof (root.URL) != 'undefined') {\n cmd.URL = getter(root, \"URL\");\n }\n if (typeof (root.DisableIfSelectionEmpty) != 'undefined') {\n cmd.LayerSet = deArrayifyWebLayoutInvokeURLLayerSet(root.LayerSet);\n cmd.AdditionalParameter = deArrayifyWebLayoutParameterPairs(root.AdditionalParameter);\n cmd.DisableIfSelectionEmpty = getter(root, \"DisableIfSelectionEmpty\", \"boolean\");\n }\n //InvokeScript\n if (typeof (root.Script) != 'undefined') {\n cmd.Script = getter(root, \"Script\");\n }\n return cmd;\n}\n\nfunction deArrayifyWebLayoutCommandSet(json: any): WebLayoutCommandSet {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected CommandSet element\");\n }\n const set = {\n Command: [] as CommandDef[]\n };\n if (root[0].Command) {\n for (const cmd of root[0].Command) {\n set.Command.push(deArrayifyCommand(cmd));\n }\n }\n return set;\n}\n\nfunction deArrayifyWebLayout(json: any): WebLayout {\n const root = json;\n const getter = buildPropertyGetter();\n const resp = {\n Title: getter(root, \"Title\"),\n Map: deArrayifyWebLayoutMap(root.Map),\n EnablePingServer: getter(root, \"EnablePingServer\", \"boolean\"),\n SelectionColor: getter(root, \"SelectionColor\"),\n PointSelectionBuffer: getter(root, \"PointSelectionBuffer\", \"int\"),\n MapImageFormat: getter(root, \"MapImageFormat\"),\n SelectionImageFormat: getter(root, \"SelectionImageFormat\"),\n StartupScript: getter(root, \"StartupScript\"),\n ToolBar: deArrayifyItemContainer(root.ToolBar, \"Button\"),\n InformationPane: deArrayifyWebLayoutInfoPane(root.InformationPane),\n ContextMenu: deArrayifyItemContainer(root.ContextMenu, \"MenuItem\"),\n TaskPane: deArrayifyWebLayoutTaskPane(root.TaskPane),\n StatusBar: deArrayifyWebLayoutControl(root.StatusBar),\n ZoomControl: deArrayifyWebLayoutControl(root.ZoomControl),\n CommandSet: deArrayifyWebLayoutCommandSet(root.CommandSet)\n };\n return resp;\n}\n\nfunction deArrayifyMapGroup(json: any): MapSetGroup {\n const root = json;\n if (root == null) {\n throw new MgError(\"Malformed input. Expected MapGroup element\");\n }\n const getter = buildPropertyGetter();\n const mapGroup: MapSetGroup = {\n \"@id\": getter(root, \"@id\", \"string\"),\n InitialView: undefined,\n Map: [] as MapConfiguration[]\n };\n if (root.InitialView) {\n const iview = root.InitialView[0];\n mapGroup.InitialView = {\n CenterX: getter(iview, \"CenterX\", \"float\"),\n CenterY: getter(iview, \"CenterY\", \"float\"),\n Scale: getter(iview, \"Scale\", \"float\")\n };\n }\n if (root.Map) {\n for (const m of root.Map) {\n mapGroup.Map.push({\n Type: getter(m, \"Type\", \"string\"),\n //SingleTile: getter(m, \"SingleTile\", \"boolean\"),\n Extension: deArrayifyExtension(m.Extension)\n });\n }\n }\n return mapGroup;\n}\n\nfunction deArrayifyMapSet(json: any): MapSet | undefined {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected MapSet element\");\n }\n const set = {\n MapGroup: [] as MapSetGroup[]\n };\n if (root[0].MapGroup) {\n for (const map of root[0].MapGroup) {\n set.MapGroup.push(deArrayifyMapGroup(map));\n }\n }\n return set;\n}\n\nfunction deArrayifyContainerItems(json: any[]): ContainerItem[] {\n const items = [] as ContainerItem[];\n const getter = buildPropertyGetter();\n if (json && json.length) {\n for (const i of json) {\n const func = getter(i, \"Function\", \"string\");\n switch (func) {\n case \"Separator\":\n items.push({\n Function: \"Separator\"\n });\n break;\n case \"Widget\":\n items.push({\n Function: \"Widget\",\n Widget: getter(i, \"Widget\", \"string\")\n })\n break;\n case \"Flyout\":\n items.push({\n Function: \"Flyout\",\n Label: getter(i, \"Label\", \"string\"),\n Tooltip: getter(i, \"Tooltip\", \"string\"),\n ImageUrl: getter(i, \"ImageUrl\", \"string\"),\n ImageClass: getter(i, \"ImageClass\", \"string\"),\n Item: deArrayifyContainerItems(i.Item || [])\n })\n break;\n }\n }\n }\n return items;\n}\n\nfunction deArrayifyContainer(json: any[]): ContainerDefinition[] {\n const containers = [] as ContainerDefinition[];\n const getter = buildPropertyGetter();\n for (const c of json) {\n containers.push({\n Name: getter(c, \"Name\", \"string\"),\n Type: getter(c, \"Type\", \"string\"),\n //Position: getter(c, \"Position\", \"string\"),\n Extension: deArrayifyExtension(c.Extension),\n Item: deArrayifyContainerItems(c.Item)\n });\n }\n return containers;\n}\n\nfunction deArrayifyWidgets(json: any[]): Widget[] {\n const widgets = [] as Widget[];\n for (const w of json) {\n if (w[\"@xsi:type\"] == \"UiWidgetType\") {\n const uiw = deArrayifyUiWidget(w);\n widgets.push(uiw);\n } else {\n widgets.push(deArrayifyWidget(w));\n }\n }\n return widgets;\n}\n\nfunction deArrayifyWidget(json: any): Widget {\n const root = json;\n if (root == null) {\n throw new MgError(\"Malformed input. Expected Widget element\");\n }\n const getter = buildPropertyGetter();\n const w: Widget = {\n WidgetType: getter(root, \"@xsi:type\", \"string\"),\n Name: getter(root, \"Name\", \"string\"),\n Type: getter(root, \"Type\", \"string\"),\n //Location: getter(root, \"Location\", \"string\"),\n Extension: deArrayifyExtension(root.Extension)\n };\n return w;\n}\n\nfunction deArrayifyExtension(json: any, arrayCheck: boolean = true): any {\n const root = json;\n if (root == null) {\n return null;\n }\n if (arrayCheck && root.length != 1) {\n throw new MgError(\"Malformed input. Expected Extension element\");\n }\n const getter = buildPropertyGetter<{ Key: string, Value: string, [key: string]: string}>();\n const ext: any = {};\n for (const key in root[0]) {\n if (Array.isArray(root[0][key])) {\n //Special case handling\n switch (key) {\n case \"AdditionalParameter\":\n {\n const params = [];\n for (const p of root[0][key]) {\n params.push({\n Key: getter(p, \"Key\", \"string\"),\n Value: getter(p, \"Value\", \"string\")\n });\n }\n ext[key] = params;\n }\n break;\n case \"Projection\":\n {\n ext[key] = root[0][key];\n }\n break;\n default:\n ext[key] = getter(root[0], key, \"string\");\n break;\n }\n } else {\n ext[key] = deArrayifyExtension(root[0][key], false);\n }\n }\n return ext;\n}\n\nfunction deArrayifyUiWidget(json: any): UIWidget {\n const root = json;\n if (root == null) {\n throw new MgError(\"Malformed input. Expected Widget element\");\n }\n const getter = buildPropertyGetter();\n const w: UIWidget = {\n WidgetType: getter(root, \"@xsi:type\", \"string\"),\n ImageUrl: getter(root, \"ImageUrl\", \"string\"),\n ImageClass: getter(root, \"ImageClass\", \"string\"),\n Label: getter(root, \"Label\", \"string\"),\n Tooltip: getter(root, \"Tooltip\", \"string\"),\n StatusText: getter(root, \"StatusText\", \"string\"),\n Disabled: getter(root, \"Disabled\", \"boolean\"),\n Name: getter(root, \"Name\", \"string\"),\n Type: getter(root, \"Type\", \"string\"),\n //Location: getter(root, \"Location\", \"string\"),\n Extension: deArrayifyExtension(root.Extension)\n };\n return w;\n}\n\nfunction deArrayifyMapWidget(json: any): MapWidget {\n const root = json;\n if (root == null || root.length != 1) {\n throw new MgError(\"Malformed input. Expected MapWidget element\");\n }\n const getter = buildPropertyGetter();\n const mw: MapWidget = {\n WidgetType: getter(root, \"@xsi:type\", \"string\"),\n MapId: getter(root, \"MapId\", \"string\"),\n Name: getter(root, \"Name\", \"string\"),\n Type: getter(root, \"Type\", \"string\"),\n //Location: getter(root, \"Location\", \"string\"),\n Extension: deArrayifyExtension(root.Extension)\n };\n return mw;\n}\n\nfunction deArrayifyWidgetSet(json: any): WidgetSet[] {\n const widgetSet = [] as WidgetSet[];\n for (const ws of json) {\n widgetSet.push({\n Container: deArrayifyContainer(ws.Container),\n MapWidget: deArrayifyMapWidget(ws.MapWidget),\n Widget: deArrayifyWidgets(ws.Widget)\n })\n }\n return widgetSet;\n}\n\nfunction deArrayifyFlexibleLayout(json: any): ApplicationDefinition {\n const root = json;\n const getter = buildPropertyGetter();\n const resp = {\n Title: getter(root, \"Title\"),\n TemplateUrl: getter(root, \"TemplateUrl\"),\n MapSet: deArrayifyMapSet(root.MapSet),\n WidgetSet: deArrayifyWidgetSet(root.WidgetSet),\n Extension: deArrayifyExtension(root.Extension)\n };\n return resp;\n}\n\nfunction deArrayifyMapDefinitionGroups(json: any): MapDefinitionLayerGroup[] {\n const groups = [] as MapDefinitionLayerGroup[];\n const getter = buildPropertyGetter();\n for (const g of json) {\n groups.push({\n Name: getter(g, \"Name\"),\n ExpandInLegend: getter(g, \"ExpandInLegend\", \"boolean\"),\n ShowInLegend: getter(g, \"ShowInLegend\", \"boolean\"),\n Visible: getter(g, \"Visible\", \"boolean\"),\n LegendLabel: getter(g, \"LegendLabel\"),\n Group: getter(g, \"Group\")\n });\n }\n return groups;\n}\n\nfunction deArrayifyMapDefinitionLayers(json: any): MdfLayer[] {\n const layers = [] as MdfLayer[];\n const getter = buildPropertyGetter();\n for (const g of json) {\n layers.push({\n Name: getter(g, \"Name\"),\n ResourceId: getter(g, \"ResourceId\"),\n ExpandInLegend: getter(g, \"ExpandInLegend\", \"boolean\"),\n ShowInLegend: getter(g, \"ShowInLegend\", \"boolean\"),\n Selectable: getter(g, \"Selectable\", \"boolean\"),\n Visible: getter(g, \"Visible\", \"boolean\"),\n LegendLabel: getter(g, \"LegendLabel\"),\n Group: getter(g, \"Group\"),\n });\n }\n return layers;\n}\n\nfunction deArrayifyMapDefinition(json: any): MapDefinition {\n const root = json;\n const getter = buildPropertyGetter();\n const eGetter = buildPropertyGetter();\n const resp: MapDefinition = {\n BackgroundColor: getter(root, \"BackgroundColor\"),\n CoordinateSystem: getter(root, \"CoordinateSystem\"),\n Extents: {\n MinX: eGetter(root.Extents[0], \"MinX\", \"float\"),\n MinY: eGetter(root.Extents[0], \"MinY\", \"float\"),\n MaxX: eGetter(root.Extents[0], \"MaxX\", \"float\"),\n MaxY: eGetter(root.Extents[0], \"MaxY\", \"float\")\n },\n MapLayer: deArrayifyMapDefinitionLayers(root.MapLayer ?? []),\n MapLayerGroup: deArrayifyMapDefinitionGroups(root.MapLayerGroup ?? [])\n };\n if (root.TileSetSource) {\n const tGetter = buildPropertyGetter();\n resp.TileSetSource = {\n ResourceId: tGetter(root.TileSetSource, \"ResourceId\")\n };\n }\n return resp;\n}\n\nfunction deArrayifyTileSetDefinitionLayers(json: any): BaseMapLayer[] {\n const getter = buildPropertyGetter();\n const layers = [] as BaseMapLayer[];\n for (const l of json) {\n layers.push({\n Name: getter(l, \"Name\"),\n ResourceId: getter(l, \"ResourceId\"),\n Selectable: getter(l, \"Selectable\", \"boolean\"),\n ShowInLegend: getter(l, \"ShowInLegend\", \"boolean\"),\n LegendLabel: getter(l, \"LegendLabel\"),\n ExpandInLegend: getter(l, \"ExpandInLegend\", \"boolean\")\n })\n }\n return layers;\n}\n\nfunction deArrayifyTileSetDefinitionGroups(json: any): BaseMapLayerGroup[] {\n const getter = buildPropertyGetter();\n const groups = [] as BaseMapLayerGroup[];\n for (const g of json) {\n groups.push({\n Name: getter(g, \"Name\"),\n Visible: getter(g, \"Visible\", \"boolean\"),\n ShowInLegend: getter(g, \"ShowInLegend\", \"boolean\"),\n ExpandInLegend: getter(g, \"ExpandInLegend\", \"boolean\"),\n LegendLabel: getter(g, \"LegendLabel\"),\n BaseMapLayer: deArrayifyTileSetDefinitionLayers(g.BaseMapLayer)\n });\n }\n return groups;\n}\n\nfunction deArrayifyTileSetDefinitionParamList(root: any): { Name: string, Value: string }[] {\n const getter = buildPropertyGetter<{ Name: string, Value: string }>();\n const params = [] as { Name: string, Value: string }[];\n for (const p of root) {\n params.push({\n Name: getter(p, \"Name\"),\n Value: getter(p, \"Value\")\n });\n }\n return params;\n}\n\nfunction deArrayifyTileSetDefinitionParams(root: any): TileStoreParameters {\n const getter = buildPropertyGetter();\n const tsp: TileStoreParameters = {\n TileProvider: getter(root, \"TileProvider\"),\n Parameter: deArrayifyTileSetDefinitionParamList(root[0].Parameter)\n };\n return tsp;\n}\n\nfunction deArrayifyTileSetDefinition(json: any): TileSetDefinition {\n const root = json;\n const eGetter = buildPropertyGetter();\n const resp: TileSetDefinition = {\n Extents: {\n MinX: eGetter(root.Extents[0], \"MinX\", \"float\"),\n MinY: eGetter(root.Extents[0], \"MinY\", \"float\"),\n MaxX: eGetter(root.Extents[0], \"MaxX\", \"float\"),\n MaxY: eGetter(root.Extents[0], \"MaxY\", \"float\")\n },\n TileStoreParameters: deArrayifyTileSetDefinitionParams(json.TileStoreParameters),\n BaseMapLayerGroup: deArrayifyTileSetDefinitionGroups(json.BaseMapLayerGroup)\n };\n return resp;\n}\n\n/**\n * Indicates if the de-arrayified result is a {@link WebLayout}\n * \n * @since 0.14\n */\nexport function isWebLayout(arg: DeArrayifiedResult): arg is WebLayout {\n return (arg as any).CommandSet != null\n && (arg as any).ContextMenu != null\n && (arg as any).Map != null\n}\n\n/**\n * Indicates if the de-arrayified result is an {@link ApplicationDefinition}\n * \n * @since 0.14\n */\nexport function isAppDef(arg: DeArrayifiedResult): arg is ApplicationDefinition {\n return (arg as any).WidgetSet != null;\n}\n\n/**\n * Indicates if the de-arrayified result is a {@link MapDefinition}\n * \n * @since 0.14\n */\nexport function isMapDef(arg: DeArrayifiedResult): arg is MapDefinition {\n return (arg as any).Extents != null\n && (arg as any).BackgroundColor != null\n && (arg as any).CoordinateSystem != null\n && (arg as any).MapLayer != null\n && (arg as any).MapLayerGroup != null;\n}\n\n/**\n * Indicates if the de-arrayified result is a {@link TileSetDefinition}\n * \n * @since 0.14\n */\nexport function isTileSet(arg: DeArrayifiedResult): arg is TileSetDefinition {\n return (arg as any).Extents != null\n && (arg as any).TileStoreParameters != null\n && (arg as any).BaseMapLayerGroup != null;\n}\n\n/**\n * Indicates if the de-arrayified result is a {@link SiteVersionResponse}\n * \n * @since 0.14\n */\nexport function isSiteVersion(arg: DeArrayifiedResult): arg is SiteVersionResponse {\n return (arg as any).Version != null;\n}\n\n/**\n * Indicates if the de-arrayified result is a {@link QueryMapFeaturesResponse}\n * \n * @since 0.14\n */\nexport function isQueryMapFeaturesResponse(arg: DeArrayifiedResult): arg is QueryMapFeaturesResponse {\n return (arg as any).FeatureSet != null\n || (arg as any).Hyperlink != null\n || (arg as any).InlineSelectionImage != null\n || (arg as any).SelectedFeatures != null\n || (arg as any).Tooltip != null;\n}\n\n/**\n * The result of the normalization of JSON from the mapagent\n * \n * @since 0.14\n */\nexport type DeArrayifiedResult = RuntimeMap | QueryMapFeaturesResponse | WebLayout | ApplicationDefinition | MapDefinition | TileSetDefinition | SiteVersionResponse;\n\n/**\n * Normalizes the given JSON object to match the content model of its original XML form\n *\n * @export\n * @param {*} json The JSON object to normalize\n * @returns {*} The normalized JSON object\n */\nexport function deArrayify(json: any): DeArrayifiedResult {\n if (json[\"RuntimeMap\"]) {\n return deArrayifyRuntimeMap(json.RuntimeMap);\n }\n if (json[\"FeatureInformation\"]) {\n return deArrayifyFeatureInformation(json.FeatureInformation);\n }\n if (json[\"WebLayout\"]) {\n return deArrayifyWebLayout(json.WebLayout);\n }\n if (json[\"ApplicationDefinition\"]) {\n return deArrayifyFlexibleLayout(json.ApplicationDefinition);\n }\n if (json[\"MapDefinition\"]) {\n return deArrayifyMapDefinition(json.MapDefinition);\n }\n if (json[\"TileSetDefinition\"]) {\n return deArrayifyTileSetDefinition(json.TileSetDefinition);\n }\n if (json[\"SiteVersion\"]) {\n return {\n Version: json.SiteVersion.Version[0]\n } as SiteVersionResponse;\n }\n const keys = [] as string[];\n for (const k in json) {\n keys.push(k);\n }\n throw new MgError(`Unsure how to process JSON response. Root elements are: (${keys.join(\", \")})`);\n}\n\n/**\n * Builds an XML selection string from the given selection set.\n *\n * @export\n * @param {(FeatureSet | undefined)} selection The selection set\n * @param {string[]} [layerIds] If specified, the selection XML will only include selections from the specified layers\n * @returns {string} The selection XML string\n */\nexport function buildSelectionXml(selection: FeatureSet | undefined, layerIds?: string[]): string {\n let xml = '';\n xml += '';\n if (selection) {\n const selLayers = selection.Layer;\n for (const layer of selLayers) {\n const layerId = layer[\"@id\"];\n if (layerIds != null && layerIds.indexOf(layerId) < 0) {\n continue;\n }\n xml += ``;\n const cls = layer.Class;\n xml += ``;\n for (const id of cls.ID) {\n xml += `${id}`;\n }\n xml += '';\n xml += '';\n }\n }\n xml += '';\n return xml;\n}\n\n/**\n * Can only be used for a v4.0.0 or higher QUERYMAPFEATURES request\n * \n * @param selection Current selection set\n * @param feat The active selected feature\n */\nexport function getActiveSelectedFeatureXml(selection: FeatureSet, feat: ActiveSelectedFeature): string | undefined {\n for (const layer of selection.Layer) {\n const layerId = layer[\"@id\"];\n if (layerId == feat.layerId) {\n const key = feat.selectionKey;\n let xml = '';\n xml += '';\n xml += ``;\n xml += ``;\n xml += `${key}`;\n xml += '';\n xml += '';\n xml += '';\n return xml;\n }\n }\n}","import { RequestBuilder } from '../request-builder';\nimport { MgError } from '../error';\nimport { ClientKind } from '../common';\nimport { MapAgentRequestBuilder } from './mapagent';\n\n/**\n * A factory method for creating request builders\n * \n * @since 0.13\n */\nexport type RequestBuilderFactory = (agentUri: string, locale?: string) => RequestBuilder;\n\nconst _builders: { [kind: string]: RequestBuilderFactory } = {};\n\n/**\n * Registers a factory for creating request builders for the given kind. This only needs to be called in the entry point of your custom viewer bundle.\n * \n * @param kind \n * @param factory \n * @since 0.13\n */\nexport function registerRequestBuilder(kind: ClientKind, factory: RequestBuilderFactory): void {\n _builders[kind] = factory;\n}\n\n/**\n * Creates the request builder for the given kind\n * \n * @param agentUri \n * @param kind \n * @since 0.13\n */\nexport function createRequestBuilder(agentUri: string, kind: ClientKind): RequestBuilder {\n if (_builders[kind]) {\n return _builders[kind](agentUri);\n }\n throw new MgError(`Unknown or unsupported client kind: ${kind}`);\n}","import { MgError } from '../error';\nimport { deArrayify } from './deArrayify';\nimport { DEFAULT_LOCALE } from \"../i18n\";\nimport { RequestBuilder, ICreateRuntimeMapOptions, IQueryMapFeaturesOptions, IDescribeRuntimeMapOptions } from '../request-builder';\nimport { RuntimeMap } from '../contracts/runtime-map';\nimport { QueryMapFeaturesResponse } from '../contracts/query';\nimport { ResourceIdentifier, ResourceBase, SiteVersionResponse } from '../contracts/common';\n\nconst MG_MAPAGENT_ERROR_CODE = 559;\n\n/**\n * Indicates if the given response is an error response\n *\n * @export\n * @param {Response} response\n * @returns {boolean}\n */\nexport function isErrorResponse(response: Response): boolean {\n return !response.ok || response.status === MG_MAPAGENT_ERROR_CODE;\n}\n\n/**\n * Encodes the given object for a POST submission\n *\n * @export\n * @param {*} data\n * @returns {string}\n */\nexport function serialize(data: any, uppercase: boolean = true): string {\n return Object.keys(data).map((keyName) => {\n return encodeURIComponent(uppercase ? keyName.toUpperCase() : keyName) + '=' + encodeURIComponent(data[keyName])\n }).join('&');\n}\n\n/**\n * The mapagent client\n *\n * @export\n * @class MapAgentRequestBuilder\n * @extends {RequestBuilder}\n */\nexport class MapAgentRequestBuilder extends RequestBuilder {\n private locale: string;\n constructor(agentUri: string, locale: string = DEFAULT_LOCALE) {\n super(agentUri);\n this.locale = locale;\n }\n\n public async get(url: string): Promise {\n const response = await fetch(url, {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n } as any,\n method: \"GET\"\n });\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n const json = await response.json();\n return deArrayify(json) as T;\n }\n }\n\n public async post(url: string, data: any): Promise {\n if (!data.format) {\n data.format = \"application/json\";\n }\n //const form = new FormData();\n //for (const key in data) {\n // form.append(key.toUpperCase(), data[key]);\n //}\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n } as any,\n method: \"POST\",\n body: serialize(data) //form\n });\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n const json = await response.json();\n return deArrayify(json) as T;\n }\n }\n\n private stringifyGetUrl(options: any): string {\n if (!options.version) {\n options.version = \"1.0.0\";\n }\n if (!options.locale) {\n options.locale = this.locale;\n }\n if (!options.format) {\n options.format = \"application/json\";\n }\n let url = this.agentUri;\n let bFirst = true;\n for (const key in options) {\n if (bFirst) {\n url += `?${key.toUpperCase()}=${options[key]}`;\n bFirst = false;\n } else {\n url += `&${key.toUpperCase()}=${options[key]}`;\n }\n }\n return url;\n }\n\n public async createSession(username: string, password: string): Promise {\n const url = this.agentUri;\n const data = { operation: \"CREATESESSION\", version: \"1.0.0\", USERNAME: username, PASSWORD: password };\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n } as any,\n method: \"POST\",\n body: serialize(data) //form\n });\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n return await response.text();\n }\n }\n\n public async getServerSessionTimeout(session: string): Promise {\n const url = this.agentUri;\n const data = { operation: \"GETSESSIONTIMEOUT\", version: \"1.0.0\", SESSION: session };\n const response = await fetch(url, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n } as any,\n method: \"POST\",\n body: serialize(data) //form\n });\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n const val = await response.text();\n return parseInt(val, 10);\n }\n }\n\n public getResource(resourceId: ResourceIdentifier, args?: any): Promise {\n if (args != null) {\n const p1 = { operation: \"GETRESOURCECONTENT\", resourceId: resourceId };\n const url = this.stringifyGetUrl({ ...args, ...p1 });\n return this.get(url);\n } else {\n const url = this.stringifyGetUrl({ operation: \"GETRESOURCE\", resourceId: resourceId });\n return this.get(url);\n }\n }\n\n public getSiteVersion(): Promise {\n const p1 = { operation: \"GETSITEVERSION\", version: \"1.0.0\", username: \"Anonymous\" };\n const url = this.stringifyGetUrl({ ...p1 });\n return this.get(url);\n }\n\n public createRuntimeMap(options: ICreateRuntimeMapOptions): Promise {\n const p1 = { operation: \"CREATERUNTIMEMAP\", version: \"3.0.0\" };\n const url = this.stringifyGetUrl({ ...options, ...p1 });\n return this.get(url);\n }\n\n public queryMapFeatures(options: IQueryMapFeaturesOptions): Promise {\n const p1 = { operation: \"QUERYMAPFEATURES\", version: \"2.6.0\" };\n return this.post(this.agentUri, { ...options, ...p1 });\n }\n\n public queryMapFeatures_v4(options: IQueryMapFeaturesOptions): Promise {\n const p1 = { operation: \"QUERYMAPFEATURES\", version: \"4.0.0\" };\n return this.post(this.agentUri, { ...options, ...p1 });\n }\n\n public describeRuntimeMap(options: IDescribeRuntimeMapOptions): Promise {\n const p1 = { operation: \"DESCRIBERUNTIMEMAP\", version: \"3.0.0\" };\n const url = this.stringifyGetUrl({ ...options, ...p1 });\n return this.get(url);\n }\n\n public getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string): string {\n const urlTemplate = `${this.agentUri}?OPERATION=GETTILEIMAGE&VERSION=1.2.0&USERNAME=Anonymous&MAPDEFINITION=${resourceId}&BASEMAPLAYERGROUPNAME=${groupName}&TILECOL=${xPlaceholder}&TILEROW=${yPlaceholder}&SCALEINDEX=${zPlaceholder}`;\n return urlTemplate;\n }\n}","import { MgError } from './error';\nimport { MapAgentRequestBuilder, isErrorResponse, serialize } from './builders/mapagent';\nimport { ClientKind } from './common';\nimport { createRequestBuilder } from './builders/factory';\nimport { ResourceBase, ResourceIdentifier, SiteVersionResponse } from './contracts/common';\nimport { ICreateRuntimeMapOptions, IMapGuideClient, RequestBuilder, IDescribeRuntimeMapOptions, IQueryMapFeaturesOptions } from './request-builder';\nimport { RuntimeMap } from './contracts/runtime-map';\nimport { QueryMapFeaturesResponse } from './contracts/query';\n\n/**\n * The MapGuide HTTP client\n *\n * @export\n * @class Client\n * @implements {IMapGuideClient}\n */\nexport class Client implements IMapGuideClient {\n private builder: RequestBuilder;\n constructor(agentUri: string, kind: ClientKind) {\n this.builder = createRequestBuilder(agentUri, kind);\n }\n public async getText(url: string): Promise {\n const r = await fetch(url);\n if (!r.ok)\n throw new MgError(r.statusText);\n const text = await r.text();\n return text;\n }\n\n /**\n * Performs a generic GET request at the specified URL\n *\n * @template T The type of the object you are expecting to receive\n * @param {string} url The url to make the request to\n * @returns {Promise} A promise for the value of the requested type\n *\n * @memberOf Client\n */\n public get(url: string): Promise {\n return new Promise((resolve, reject) => {\n fetch(url, {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n } as any,\n method: \"GET\"\n })\n .then(response => {\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n resolve(response.json());\n }\n })\n .catch(reject);\n });\n }\n\n /**\n * Performs a generic POST request at the specified URL\n *\n * @template T The type of the object you are expecting to receive\n * @param {string} url The url to make the request to\n * @param {*} data The POST form data\n * @returns {Promise} A promise for the value of the requested type\n *\n * @memberOf Client\n */\n public post(url: string, data: any): Promise {\n if (!data.format) {\n data.format = \"application/json\";\n }\n //const form = new FormData();\n //for (const key in data) {\n // form.append(key.toUpperCase(), data[key]);\n //}\n return new Promise((resolve, reject) => {\n fetch(url, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n } as any,\n method: \"POST\",\n body: serialize(data) //form\n })\n .then(response => {\n if (isErrorResponse(response)) {\n throw new MgError(response.statusText);\n } else {\n resolve(response.json());\n }\n })\n .catch(reject);\n });\n }\n\n /**\n * Creates a new MapGuide session\n *\n * @param {string} username\n * @param {string} password\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public createSession(username: string, password: string): Promise {\n return this.builder.createSession(username, password);\n }\n\n /**\n * Gets the server session timeout for the given session id\n *\n * @param {string} session\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public getServerSessionTimeout(session: string): Promise {\n return this.builder.getServerSessionTimeout(session);\n }\n\n /**\n * gets the MapGuide Server version\n * \n * @since 0.14\n */\n public getSiteVersion(): Promise {\n return this.builder.getSiteVersion();\n }\n\n /**\n * Retrieves the requested resource\n *\n * @template T\n * @param {ResourceIdentifier} resourceId\n * @param {*} [args]\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public getResource(resourceId: ResourceIdentifier, args?: any): Promise {\n return this.builder.getResource(resourceId, args);\n }\n\n /**\n * Creates a runtime map from the specified map definition\n *\n * @param {ICreateRuntimeMapOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public createRuntimeMap(options: ICreateRuntimeMapOptions): Promise {\n return this.builder.createRuntimeMap(options);\n }\n\n /**\n * Describes a runtime map\n *\n * @param {IDescribeRuntimeMapOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public describeRuntimeMap(options: IDescribeRuntimeMapOptions): Promise {\n return this.builder.describeRuntimeMap(options);\n }\n\n /**\n * Performs a map selection query on the current map\n *\n * @param {IQueryMapFeaturesOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public queryMapFeatures(options: IQueryMapFeaturesOptions): Promise {\n return this.builder.queryMapFeatures(options);\n }\n\n /**\n * Performs a map selection query on the current map. Only applicable for use in MapGuide Open Source\n * 4.0 and higher\n *\n * @param {IQueryMapFeaturesOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n */\n public queryMapFeatures_v4(options: IQueryMapFeaturesOptions): Promise {\n return this.builder.queryMapFeatures_v4(options);\n }\n\n /**\n * Gets the tile template URL used by the viewer to send tile requests\n *\n * @param {string} resourceId\n * @param {string} groupName\n * @param {string} xPlaceholder\n * @param {string} yPlaceholder\n * @param {string} zPlaceholder\n * @returns {string}\n *\n * @memberOf Client\n */\n public getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string): string {\n return this.builder.getTileTemplateUrl(resourceId, groupName, xPlaceholder, yPlaceholder, zPlaceholder);\n }\n}","import { ResultColumnSet } from \"./contracts/weblayout\";\nimport { RuntimeMap } from \"./contracts/runtime-map\";\nimport { FeatureSet, LayerMetadata, QueryMapFeaturesResponse, SelectedFeature } from \"./contracts/query\";\nimport { IQueryMapFeaturesOptions } from './request-builder';\n\nimport olPoint from \"ol/geom/Point\";\nimport olLineString from \"ol/geom/LineString\";\nimport olCircle from \"ol/geom/Circle\";\nimport olPolygon from \"ol/geom/Polygon\";\nimport olGeometry from \"ol/geom/Geometry\";\n\nimport olLayerBase from \"ol/layer/Base\";\nimport olInteraction from \"ol/interaction/Interaction\";\nimport olOverlay from \"ol/Overlay\";\n\nimport { IOLFactory } from \"./ol-factory\";\nimport { ViewerAction, IGenericSubjectMapLayer, IInitialExternalLayer, ISelectedFeaturePopupTemplateConfiguration } from '../actions/defs';\nimport { ProjectionLike } from 'ol/proj';\nimport { IParsedFeatures } from './layer-manager/parsed-features';\nimport Collection from 'ol/Collection';\nimport Feature from 'ol/Feature';\nimport { ISubscriberProps } from '../containers/subscriber';\nimport Geometry from 'ol/geom/Geometry';\nimport { IBasicPointCircleStyle, IPointIconStyle, IBasicVectorLineStyle, IBasicVectorPolygonStyle, IVectorLayerStyle, IClusterSettings, ClusterClickAction, IHeatmapSettings } from './ol-style-contracts';\nimport { IToolbarAppState } from './registry/command';\nimport { ClientSelectionSet } from \"./contracts/common\";\n\n// Event boilerplate\nexport type GenericEvent = any;\n\nexport type GenericEventHandler = (e: GenericEvent) => void;\n\n/**\n * Defines a size\n */\nexport type Size = { w: number, h: number };\n\n/**\n * The default blank size\n */\nexport const BLANK_SIZE: Size = { w: 1, h: 1 } as const;\n\n/**\n * @deprecated Use UnitOfMeasure enum instead\n */\nexport type UnitName = 'Unknown' | 'Inches' | 'Feet' | 'Yards' | 'Miles' | 'Nautical Miles'\n | 'Millimeters' | 'Centimeters' | 'Meters' | 'Kilometers'\n | 'Degrees' | 'Decimal Degrees' | 'Degrees Minutes Seconds' | 'Pixels';\nexport enum UnitOfMeasure {\n /**\n * An unknown unit\n */\n Unknown = 0,\n /**\n * Inch unit\n */\n Inches = 1,\n /**\n * Feet unit\n */\n Feet = 2,\n /**\n * Yard unit\n */\n Yards = 3,\n /**\n * Mile unit\n */\n Miles = 4,\n /**\n * Nautical Mile unit\n */\n NauticalMiles = 5,\n /**\n * Millimeter unit\n */\n Millimeters = 6,\n /**\n * Centimeter unit\n */\n Centimeters = 7,\n /**\n * Meter unit\n */\n Meters = 8,\n /**\n * Kilometer unit\n */\n Kilometers = 9,\n /**\n * Degree unit\n */\n Degrees = 10,\n /**\n * Decimal Degree unit\n */\n DecimalDegrees = 11,\n /**\n * DMS unit\n */\n DMS = 12,\n /**\n * Pixel unit\n */\n Pixels = 13,\n}\n\nexport interface UnitInfo {\n unitsPerMeter: number;\n metersPerUnit: number;\n name: UnitName;\n /**\n * @since 0.12.2\n */\n localizedName: (locale?: string) => string;\n abbreviation: (locale?: string) => string;\n}\n\n/**\n * Describes a map view\n * @export\n * @interface IMapView\n */\nexport interface IMapView {\n /**\n * The x coordinate\n *\n * @type {number}\n * @memberof IMapView\n */\n x: number;\n /**\n * The Y coordinate\n *\n * @type {number}\n * @memberof IMapView\n */\n y: number;\n /**\n * The scale\n *\n * @type {number}\n * @memberof IMapView\n */\n scale: number;\n /**\n * The view resolution\n * \n * @type {number | undefined}\n * @memberof IMapView\n */\n resolution?: number;\n}\n\n/**\n * Describes a function that is called when a command is invoked\n */\nexport type DispatcherFunc = (dispatch: ReduxDispatch, getState: () => Readonly, viewer?: IMapViewer, parameters?: any) => any;\n\n/**\n * Describes a viewer command\n *\n * @export\n * @interface ICommand\n */\nexport interface ICommand {\n /**\n * The icon for this command\n *\n * @type {string}\n * @memberof ICommand\n */\n icon?: string;\n iconClass?: string;\n //tooltip?: string;\n /**\n * @since 0.12.8\n */\n title?: string;\n /**\n * Indicates if this command is enabled based on the given application state\n *\n *\n * @memberof ICommand\n */\n enabled: (state: Readonly, parameters?: any) => boolean;\n /**\n * Indicates if this command is enabled based on the given application state\n *\n *\n * @memberof ICommand\n */\n selected: (state: Readonly) => boolean;\n /**\n * Invokes the command\n *\n * @type {DispatcherFunc}\n * @memberof ICommand\n */\n invoke: DispatcherFunc;\n}\n\n/**\n * Valid command targets for an InvokeURL command\n */\nexport type CommandTarget = \"TaskPane\" | \"NewWindow\" | \"SpecifiedFrame\";\n\n/**\n * An InvokeURL command parameter\n *\n * @export\n * @interface IInvokeUrlCommandParameter\n */\nexport interface IInvokeUrlCommandParameter {\n /**\n * The name of the parameter\n *\n * @type {string}\n * @memberof IInvokeUrlCommandParameter\n */\n name: string;\n /**\n * The value of the parameter\n *\n * @type {string}\n * @memberof IInvokeUrlCommandParameter\n */\n value: string;\n}\n\n/**\n * Describes a command that will run in a pre-defined target frame or window\n *\n * @export\n * @interface ITargetedCommand\n */\nexport interface ITargetedCommand {\n /**\n * Specifies the target which the URL should be invoked in\n *\n * @type {CommandTarget}\n * @memberof IInvokeUrlCommand\n */\n target: CommandTarget;\n /**\n * The name of the frame to run this command in. Only applies if the target is\n * \"SpecifiedFrame\"\n */\n targetFrame?: string;\n}\n\n/**\n * Describes a command that invokes a URL into a specified target\n *\n * @export\n * @interface IInvokeUrlCommand\n */\nexport interface IInvokeUrlCommand extends ITargetedCommand {\n /**\n * The icon for this command\n *\n * @type {string}\n * @memberof IInvokeUrlCommand\n */\n icon?: string;\n iconClass?: string;\n /**\n * @since 0.12.8\n */\n title?: string;\n /**\n * The URL to invoke\n *\n * @type {string}\n * @memberof IInvokeUrlCommand\n */\n url: string;\n /**\n * Indicates whether to disable this command if there is no map selection\n *\n * @type {boolean}\n * @memberof IInvokeUrlCommand\n */\n disableIfSelectionEmpty?: boolean;\n /**\n * Additional command parameters\n * @memberof IInvokeUrlCommand\n */\n parameters: IInvokeUrlCommandParameter[];\n}\n\n/**\n * Describes a search command\n *\n * @export\n * @interface ISearchCommand\n */\nexport interface ISearchCommand extends ITargetedCommand {\n /**\n * The icon for this command\n *\n * @type {string}\n * @memberof ISearchCommand\n */\n icon?: string;\n iconClass?: string;\n /**\n * The name of the map layer this commmand applies to\n *\n * @type {string}\n * @memberof ISearchCommand\n */\n layer: string;\n /**\n * The prompt to display in the search command UI\n *\n * @type {string}\n * @memberof ISearchCommand\n */\n prompt: string;\n /**\n * The title to display in the search command UI\n *\n * @type {string}\n * @memberof ISearchCommand\n */\n title: string;\n /**\n * The set of feature properties to show in the search results\n *\n * @type {ResultColumnSet}\n * @memberof ISearchCommand\n */\n resultColumns: ResultColumnSet;\n /**\n * The search filter to apply based on user input\n *\n * @type {string}\n * @memberof ISearchCommand\n */\n filter?: string;\n /**\n * The maximum number of results to return\n *\n * @type {number}\n * @memberof ISearchCommand\n */\n matchLimit: number;\n}\n\n/**\n * Type alias for a dictionary-like structure\n */\nexport type Dictionary = { [key: string]: T };\n\n/**\n * A 2d coordinate (renamed to Coordinate2D from Coordinate in 0.13)\n */\nexport type Coordinate2D = [number, number];\n\n/**\n * A size quantity\n * @since 0.13\n */\nexport type Size2 = [number, number];\n\n/**\n * A bounding box array\n */\nexport type Bounds = [number, number, number, number];\n\n/**\n * An active map viewer tool\n *\n * @export\n * @enum {number}\n */\nexport enum ActiveMapTool {\n /**\n * Zoom tool\n */\n Zoom,\n /**\n * Selection tool\n */\n Select,\n /**\n * Pan tool\n */\n Pan,\n /**\n * None\n */\n None\n}\n\n/**\n * Describes an external base layer\n *\n * @export\n * @interface IExternalBaseLayer\n */\nexport interface IExternalBaseLayer {\n /**\n * The name of the external base layer\n *\n * @type {string}\n * @memberof IExternalBaseLayer\n */\n name: string;\n /**\n * The kind of external base layer\n *\n * @type {string}\n * @memberof IExternalBaseLayer\n */\n kind: string;\n /**\n * Indicates if this external base layer is visible\n *\n * @type {boolean}\n * @memberof IExternalBaseLayer\n */\n visible?: boolean;\n /**\n * Additional options for initializing the external base layer\n *\n * @type {*}\n * @memberof IExternalBaseLayer\n */\n options?: any;\n}\n\n\n/**\n * Describes a menu entry on the Map Menu component\n *\n * @export\n * @interface IMapMenuEntry\n */\nexport interface IMapMenuEntry {\n /**\n * The runtime map name\n *\n * @type {string}\n * @memberof IMapMenuEntry\n */\n mapName: string;\n /**\n * The menu entry label\n *\n * @type {string}\n * @memberof IMapMenuEntry\n */\n label: string;\n}\n\n/**\n * A bit mask indicating how a map viewer should refresh\n *\n * @export\n * @enum {number}\n */\nexport enum RefreshMode {\n /**\n * Refresh only the layers\n */\n LayersOnly = 1,\n /**\n * Refresh only the selection\n */\n SelectionOnly = 2\n}\n\n/**\n * The spatial operator to use for selection operations\n */\nexport type SelectionVariant = \"INTERSECTS\" | \"TOUCHES\" | \"WITHIN\" | \"ENVELOPEINTERSECTS\";\n\n/**\n * MapGuide-specific viewer functionality\n *\n * @export\n * @interface IMapGuideViewerSupport\n * @since 0.14\n */\nexport interface IMapGuideViewerSupport {\n /**\n * Sets the selection XML\n *\n * @param {string} xml\n * @param {IQueryMapFeaturesOptions} [queryOpts]\n * @param {(res: QueryMapFeaturesResponse) => void} [success]\n * @param {(err: Error) => void} [failure]\n *\n * @memberof IMapViewer\n */\n setSelectionXml(xml: string, queryOpts?: Partial, success?: (res: QueryMapFeaturesResponse) => void, failure?: (err: Error) => void): void;\n /**\n * Clears the map selection\n *\n *\n * @memberof IMapViewer\n */\n clearSelection(): void;\n /**\n * Performs a map selection by the given geometry\n *\n * @param {olGeometry} geom The geometry to select with\n * @param {SelectionVariant} selectionMethod The selection method\n * @memberof IMapViewer\n */\n selectByGeometry(geom: olGeometry, selectionMethod?: SelectionVariant): void;\n /**\n * Performs a map selection by the given query options\n *\n * @param {IQueryMapFeaturesOptions} options\n * @param {(res: QueryMapFeaturesResponse) => void} [success]\n * @param {(err: Error) => void} [failure]\n *\n * @memberof IMapViewer\n */\n queryMapFeatures(options: IQueryMapFeaturesOptions, success?: (res: QueryMapFeaturesResponse) => void, failure?: (err: Error) => void): void;\n /**\n * Gets the current selection model\n *\n * @returns {QueryMapFeaturesResponse}\n *\n * @memberof IMapViewer\n */\n getSelection(): QueryMapFeaturesResponse | null;\n /**\n * Gets the current selection model as a selection XML string\n *\n * @param {FeatureSet} selection\n * @param {string[]} [layerIds]\n * @returns {string}\n *\n * @memberof IMapViewer\n */\n getSelectionXml(selection: FeatureSet, layerIds?: string[]): string;\n /**\n * Gets the current session id\n * \n * @returns {string}\n * @memberof IMapViewer\n */\n getSessionId(): string;\n /**\n * Gets whether feature tooltips are enabled\n *\n * @returns {boolean}\n *\n * @memberof IMapViewer\n */\n isFeatureTooltipEnabled(): boolean;\n /**\n * Enables/disables feature tooltips\n *\n * @param {boolean} enabled\n *\n * @memberof IMapViewer\n */\n setFeatureTooltipEnabled(enabled: boolean): void;\n}\n\n/**\n * Map image export options\n *\n * @export\n * @interface IMapImageExportOptions\n * @since 0.14\n */\nexport interface IMapImageExportOptions {\n /**\n * The size of the image to export. If not specified, it will use the map's current size\n *\n * @type {Size2}\n * @memberof IMapImageExportOptions\n */\n size?: Size2;\n /**\n * The type to export the mime type as. If not specified, it will default to PNG (image/png)\n *\n * @type {string}\n * @memberof IMapImageExportOptions\n */\n exportMimeType?: string;\n /**\n * The callback that will receive the content of the exported map image\n *\n * @memberof IMapImageExportOptions\n */\n callback: (imageBase64: string) => void;\n}\n\n/**\n * Describes the API for interacting with the map viewer\n *\n * @export\n * @interface IMapViewer\n */\nexport interface IMapViewer {\n /**\n * Gets MapGuide-specific viewer functionality. If this viewer was not set up with MapGuide support, this is undefined\n *\n * @returns {(IMapGuideViewerSupport | undefined)}\n * @memberof IMapViewer\n * @since 0.14\n */\n mapguideSupport(): IMapGuideViewerSupport | undefined;\n /**\n * Gets the projection of the map\n *\n * @returns {ol.ProjectionLike}\n *\n * @memberof IMapViewer\n */\n getProjection(): ProjectionLike;\n /**\n * Gets the view for the given extent\n *\n * @param {Bounds} extent\n * @returns {IMapView}\n *\n * @memberof IMapViewer\n * @since 0.14 If given an extent with zero-width or zero-height, the view will be computed off of an \"inflated\" version of this extent. If inflation is required, it will be inflated by 30 meters\n */\n getViewForExtent(extent: Bounds): IMapView;\n /**\n * Gets the current extent\n *\n * @returns {Bounds}\n *\n * @memberof IMapViewer\n */\n getCurrentExtent(): Bounds;\n /**\n * Gets the current map view\n *\n * @returns {IMapView}\n *\n * @memberof IMapViewer\n */\n getCurrentView(): IMapView;\n /**\n * Gets the current physical size of the map\n *\n * @returns {[number, number]}\n *\n * @memberof IMapViewer\n */\n getSize(): [number, number];\n /**\n * Zooms to the specified map view\n *\n * @param {number} x\n * @param {number} y\n * @param {number} scale\n *\n * @memberof IMapViewer\n */\n zoomToView(x: number, y: number, scale: number): void;\n /**\n * Refreshes the map\n *\n * @param {RefreshMode} [mode]\n *\n * @memberof IMapViewer\n */\n refreshMap(mode?: RefreshMode): void;\n /**\n * Gets the meters per unit value\n *\n * @returns {number}\n *\n * @memberof IMapViewer\n */\n getMetersPerUnit(): number;\n /**\n * Sets the active tool\n *\n * @param {ActiveMapTool} tool\n *\n * @memberof IMapViewer\n */\n setActiveTool(tool: ActiveMapTool): void;\n /**\n * Gets the active tool\n *\n * @returns {ActiveMapTool}\n *\n * @memberof IMapViewer\n */\n getActiveTool(): ActiveMapTool;\n /**\n * Sets the initial map view\n *\n *\n * @memberof IMapViewer\n */\n initialView(): void;\n /**\n * Zooms in or out by the specified delta\n *\n * @param {number} delta\n *\n * @memberof IMapViewer\n */\n zoomDelta(delta: number): void;\n /**\n * Gets whether the viewer is currently in the state of digitizing\n *\n * @returns {boolean}\n *\n * @memberof IMapViewer\n */\n isDigitizing(): boolean;\n /**\n * Cancels active digitization\n *\n * @memberof IMapViewer\n */\n cancelDigitization(): void;\n /**\n * Starts the digitization process for a point\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizePoint(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Starts the digitization process for a line\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizeLine(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Starts the digitization process for a line string\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizeLineString(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Starts the digitization process for a circle\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizeCircle(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Starts the digitization process for a rectangle\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizeRectangle(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Starts the digitization process for a polygon\n *\n * @param {DigitizerCallback} handler\n * @param {string} [prompt]\n *\n * @memberof IMapViewer\n */\n digitizePolygon(handler: DigitizerCallback, prompt?: string): void;\n /**\n * Zooms to the specified extent\n *\n * @param {Bounds} extent\n *\n * @memberof IMapViewer\n */\n zoomToExtent(extent: Bounds): void;\n /**\n * Gets the layer manager for the given map. If map name is not specifed\n * it will get the layer manager for the currently active map.\n *\n * @param {string} [mapName]\n * @returns {ILayerManager}\n * @memberof IMapViewer\n * @since 0.12\n */\n getLayerManager(mapName?: string): ILayerManager;\n /**\n * Adds an OpenLayers interaction\n *\n * @template T\n * @param {T} interaction\n * @returns {T}\n *\n * @memberof IMapViewer\n */\n addInteraction(interaction: T): T;\n /**\n * Removes the given OpenLayers interaction\n *\n * @template T\n * @param {T} interaction\n *\n * @memberof IMapViewer\n */\n removeInteraction(interaction: T): void;\n /**\n * Adds an OpenLayers overlay\n *\n * @param {olOverlay} overlay\n *\n * @memberof IMapViewer\n */\n addOverlay(overlay: olOverlay): void;\n /**\n * Removes the given OpenLayers overlay\n *\n * @param {olOverlay} overlay\n *\n * @memberof IMapViewer\n */\n removeOverlay(overlay: olOverlay): void;\n /**\n * Adds an event handler for the specified event\n *\n * @param {string} eventName\n * @param {Function} handler\n *\n * @memberof IMapViewer\n */\n addHandler(eventName: string, handler: Function): void;\n /**\n * Removes an event handler for the specified event\n *\n * @param {string} eventName\n * @param {Function} handler\n *\n * @memberof IMapViewer\n */\n removeHandler(eventName: string, handler: Function): void;\n /**\n * Gets the OL object factory\n */\n getOLFactory(): IOLFactory;\n /**\n * Gets the view resolution\n *\n * @returns {number}\n *\n * @memberof IMapViewer\n */\n getResolution(): number | undefined;\n /**\n * Gets the resolution for the given scale\n *\n * @returns {number}\n *\n * @memberof IMapViewer\n */\n scaleToResolution(scale: number): number;\n /**\n * Gets the name of the current runtime map\n * \n * @returns {string} \n * @memberof IMapViewer\n */\n getMapName(): string;\n /**\n * Sets the current view rotation\n * \n * @param {number} rotation \n * @memberof IMapViewer\n */\n setViewRotation(rotation: number): void;\n /**\n * Gets the current view rotation\n * \n * @returns {number} \n * @memberof IMapViewer\n */\n getViewRotation(): number;\n /**\n * Gets whether view rotation is enabled\n * \n * @returns {boolean} \n * @memberof IMapViewer\n */\n isViewRotationEnabled(): boolean;\n /**\n * Sets whether view rotation is enabled or not\n * \n * @param {boolean} enabled \n * @memberof IMapViewer\n */\n setViewRotationEnabled(enabled: boolean): void;\n /**\n * \n * @since 0.11\n * @param {number} x \n * @param {number} y \n * @returns {[number, number]} \n * @memberof IMapViewer\n */\n screenToMapUnits(x: number, y: number): [number, number];\n\n toastSuccess(icon: string, message: string | JSX.Element): string | undefined;\n toastWarning(icon: string, message: string | JSX.Element): string | undefined;\n toastError(icon: string, message: string | JSX.Element): string | undefined;\n toastPrimary(icon: string, message: string | JSX.Element): string | undefined;\n dismissToast(key: string): void;\n updateSize(): void;\n\n /**\n * Returns the collection of selected client-side vector features. This collection\n * is observable, so you may hold onto a reference to this collection and subscribe\n * to events on this collection for when new features are added or removed from this collection\n * \n * @returns {Collection}\n * @memberof IMapViewer\n * @since 0.13\n * @since 0.14 - The return value may be undefined if called when the map viewer is detached/disposed/destroyed\n */\n getSelectedFeatures(): Collection> | undefined;\n\n /**\n * INTERNAL API. Not for public use\n * @hidden\n */\n addImageLoading(): void;\n /**\n * INTERNAL API. Not for public use\n * @hidden\n */\n addImageLoaded(): void;\n /**\n * EXPERIMENTAL:\n * Adds the given application state subscribers\n * \n * NOTE: Calling this method will trigger a re-render of the component. Due to this quirk, \n * calling this method again while a re-render is taking place may cause the subscriber to\n * not actually be registered. Calling this method multiple times in succession is therefore\n * not advised. If you need to add multiple subscribers, pass an array of the subscribers to\n * register in a single method call.\n * \n * @param props \n * @since 0.13\n */\n addSubscribers(props: ISubscriberProps[]): string[];\n /**\n * EXPERIMENTAL:\n * Removes application state subscribers of the given names\n * \n * @param name \n * @since 0.13\n */\n removeSubscribers(names: string[]): boolean;\n /**\n * EXPERIMENTAL:\n * Gets all application state subscriber names\n * \n * @since 0.13\n */\n getSubscribers(): string[];\n /**\n * Dispatches the given action\n * \n * @remarks Usage outside of the react component context (eg. Plain HTML Task Pane content) should be used sparingly. In particular\n * you should avoid trying to call this method multiple times in succession. You should call this method once in response to a DOM element\n * event (eg. A button click)\n * @alpha\n * @since 0.13\n */\n dispatch(action: any): void;\n\n /**\n * Gets the default point circle style\n * @since 0.13\n */\n getDefaultPointCircleStyle(): IBasicPointCircleStyle;\n\n /**\n * Gets the default point icon style\n * @since 0.13\n */\n getDefaultPointIconStyle(): IPointIconStyle;\n\n /**\n * Gets the default line style\n * @since 0.13\n */\n getDefaultLineStyle(): IBasicVectorLineStyle;\n\n /**\n * Gets the default polygon style\n * @since 0.13\n */\n getDefaultPolygonStyle(): IBasicVectorPolygonStyle;\n\n /**\n * Exports an image of the current map view\n *\n * @param {IMapImageExportOptions} options\n * @memberof IMapViewer\n * @since 0.14\n */\n exportImage(options: IMapImageExportOptions): void;\n}\n\n/**\n * WMS layer extension data\n * \n * @since 0.13\n */\nexport interface IWmsLayerExtensions {\n type: \"WMS\";\n getLegendUrl?: (resolution?: number) => string;\n}\n\n/**\n * Layer extension data\n * \n * @since 0.13\n */\nexport type LayerExtensions = IWmsLayerExtensions;\n\nexport interface ILayerInfo {\n /**\n * The name of the layer\n * \n * @type {string}\n * @memberof ILayerInfo\n * */\n name: string;\n /**\n * The display name of this layer\n *\n * @type {string}\n * @memberof ILayerInfo\n * @since 0.14\n */\n displayName: string;\n /**\n * The type of layer\n * \n * @type {string}\n * @memberof ILayerInfo\n */\n type: string;\n /**\n * An optional description for the layer\n *\n * @type {string}\n * @memberof ILayerInfo\n * @since 0.14\n */\n description?: string;\n /**\n * Indicates if this layer is an external layer\n * \n * @since 0.13\n */\n isExternal: boolean;\n /** \n * Indicates if this layer is visible\n * \n * @since 0.13\n */\n visible: boolean;\n /**\n * Indicates if this layer is selectable by the select tool\n * \n * @since 0.13\n */\n selectable: boolean;\n /**\n * The opacity of this layer\n * \n * @since 0.13\n * @type {number}\n * @memberof ILayerInfo\n */\n opacity: number;\n /**\n * Extension data for this layer\n * \n * @since 0.13\n */\n extensions?: LayerExtensions;\n /**\n * The vector style for this layer. Not applicable for raster layers.\n * \n * @since 0.13\n * @since 0.14 Changed to IVectorLayerStyle\n */\n vectorStyle?: IVectorLayerStyle;\n /**\n * Cluster style settings\n * @since 0.14\n */\n cluster?: IClusterSettings;\n /**\n * Heatmap settings\n * @since 0.14\n */\n heatmap?: IHeatmapSettings;\n /**\n * The busy worker count of this layer. If greater than 0, the layer\n * is considered to be in the process of loading\n * \n * @since 0.13\n */\n busyWorkerCount: number;\n /**\n * Metadata attached to the layer\n * \n * @since 0.14\n * @memberof ILayerInfo\n */\n metadata?: any;\n}\n\n/**\n * Point layer clustering options\n * \n * @since 0.14\n */\nexport interface AddVectorLayerClusteringOptions {\n kind: \"Cluster\";\n /**\n * The distance to use for clustering. Setting this value will create a clustered layer.\n * \n * * If {@see clusterDistance} is set, but {@see clusterStyle} is not set, the {@see IAddLayerFromParsedFeaturesOptions.defaultStyle} will be used if set, otherwise the default vector style will be used\n */\n clusterDistance: number;\n /**\n * The style to use for this clustered layer. \n * \n * * If {@see clusterDistance} is not set, this has no effect\n * * If {@see clusterDistance} is set but this is not set, the {@see IAddLayerFromParsedFeaturesOptions.defaultStyle} will be used if set, otherwise the default vector style will be used\n */\n clusterStyle?: IVectorLayerStyle;\n /**\n * The action to perform when the cluster is clicked\n */\n onClusterClickAction?: ClusterClickAction;\n}\n\n/**\n * Theming options\n * @since 0.14\n */\nexport interface AddVectorLayerThemeOptions {\n kind: \"Theme\";\n /**\n * Generate a thematic ramp based on the given property\n */\n themeOnProperty: string;\n /**\n * The colorbrewer theme to apply\n */\n colorBrewerTheme: string;\n}\n\n/**\n * Heatmap options\n * @since 0.14\n */\nexport interface AddVectorLayerHeatmapOptions {\n kind: \"Heatmap\",\n /**\n * The weight property\n */\n weightProperty?: string;\n}\n\nexport type AddVectorLayerExtraOptions = AddVectorLayerClusteringOptions | AddVectorLayerThemeOptions | AddVectorLayerHeatmapOptions;\n\n/**\n * Options to add a new layer from parsed features\n * \n * @export\n * @interface IAddLayerFromParsedFeaturesOptions\n * @since 0.13\n */\nexport interface IAddLayerFromParsedFeaturesOptions {\n /**\n * The projection to assign for this layer. If not specified, the map's projection\n * is assumed\n */\n projection?: ProjectionLike;\n /**\n * The parsed features to add the layer with\n */\n features: IParsedFeatures;\n /**\n * The style to use for this layer. If not specified, a default style will be assigned\n * to this layer\n * \n * @since 0.13\n * @since 0.14 changed to IVectorLayerStyle\n */\n defaultStyle?: IVectorLayerStyle;\n /**\n * Extra options for the layer to be added\n * @since 0.14\n */\n extraOptions?: AddVectorLayerExtraOptions;\n /**\n * The property to use for labeling\n * @since 0.14\n */\n labelOnProperty?: string;\n /**\n * The popup template to use when features are selected on this layer\n * @since 0.14\n */\n selectedPopupTemplate?: ISelectedFeaturePopupTemplateConfiguration;\n /**\n * Metadata for this layer\n * @since 0.14\n */\n metadata?: any;\n /**\n * A definition to attach to this layer. This definition is application-defined and is primarily to\n * assist the application in implementing persistence/restoration of this layer on an application-defined\n * basis \n * @since 0.14.3\n */\n defn?: any;\n}\n\n/**\n * Options for parsing features from a file\n * \n * @export\n * @interface IParseFeaturesFromFileOptions\n * @since 0.13\n */\nexport interface IParseFeaturesFromFileOptions {\n file: File;\n name: string;\n locale: string;\n}\n\n/**\n * Manages custom layers for a map\n * \n * @export\n * @interface ILayerManager\n */\nexport interface ILayerManager {\n /**\n * Get the active subject layer if present on the current map. In a MapGuide-specific context, subject layers do not exist\n * and this method will always return undefined in such cases\n *\n * @returns {olLayerBase}\n * @memberof ILayerManager\n * @since 0.14\n */\n tryGetSubjectLayer(): olLayerBase | undefined;\n /**\n * Gets all custom layers on this map, sorted by draw order (First item is top-most layer. Last item is bottom-most layer.)\n * \n * @returns {ILayerInfo[]} \n * @memberof ILayerManager\n * */\n getLayers(): ILayerInfo[];\n /**\n * Gets whether the specified custom layer exists on the map\n */\n hasLayer(name: string): boolean;\n /**\n * Adds a layer to the map\n * \n * @template T \n * @param {string} name The name of the layer\n * @param {T} layer The layer object\n * @param {boolean} [allowReplace] If false or not set, this method will throw an error if a layer of the specified name already exists. Otherwise that layer will be replaced with the given layer\n * @returns {T} The added layer\n * @memberof ILayerManager\n */\n addLayer(name: string, layer: T, allowReplace?: boolean): ILayerInfo;\n /**\n * Removes a layer by the given name\n *\n * @param {string} name\n * @returns {(olLayerBase | undefined)}\n *\n * @memberof IMapViewer\n */\n removeLayer(name: string): olLayerBase | undefined;\n /**\n * Gets a layer by the given name\n *\n * @template T\n * @param {string} name\n * @returns {T}\n *\n * @memberof IMapViewer\n */\n getLayer(name: string): T | undefined;\n\n /**\n * Attempts to parse features for the given input file. A failed attempt is when\n * calling hasFeatures() on the returned parsed features returns false.\n * \n * @param {IParseFeaturesFromFileOptions} options\n * @returns {Promise}\n * @memberof ILayerManager\n * @since 0.13\n */\n parseFeaturesFromFile(options: IParseFeaturesFromFileOptions): Promise;\n\n /**\n * Adds the given parsed features as a new external layer\n * \n * @param {IAddLayerFromParsedFeaturesOptions} options\n * @returns {Promise}\n * @memberof ILayerManager\n * @since 0.13\n * @since 0.14 Styles for geometry types not found in the parsed features will be deleted\n */\n addLayerFromParsedFeatures(options: IAddLayerFromParsedFeaturesOptions): Promise;\n\n /**\n * Applies draw order/opacity/visibility\n * @hidden\n */\n apply(layers: ILayerInfo[]): void;\n}\n\n/**\n * Function signature for a digitization callback\n */\nexport type DigitizerCallback = (geom: T) => void;\n\n/**\n * Valid image formats\n */\nexport type ImageFormat = \"PNG\" | \"PNG8\" | \"JPG\" | \"GIF\";\n\n/**\n * The type of client\n */\nexport type ClientKind = \"mapagent\" | \"mapguide-rest\";\n\nexport interface IModalParameters {\n title: string;\n backdrop: boolean;\n size: [number, number];\n overflowYScroll?: boolean;\n}\n\n/**\n * The default modal dialog size\n */\nexport const DEFAULT_MODAL_SIZE: [number, number] = [350, 500];\n\n/**\n * Base modal display options\n *\n * @export\n * @interface IModalDisplayOptionsBase\n */\nexport interface IModalDisplayOptionsBase {\n modal: IModalParameters;\n name: string;\n}\n\n/**\n * Modal display options for URL content\n *\n * @export\n * @interface IModalDisplayOptions\n * @extends {IModalDisplayOptionsBase}\n */\nexport interface IModalDisplayOptions extends IModalDisplayOptionsBase {\n /**\n * The URL of the content to load in the modal dialog\n *\n * @type {string}\n * @memberof IModalDisplayOptions\n */\n url: string;\n}\n\nexport interface IModalComponentDisplayOptions extends IModalDisplayOptionsBase {\n /**\n * The id of the component to display\n *\n * @type {string}\n * @memberof IModalComponentDisplayOptions\n */\n component: string;\n /**\n * Component properties\n *\n * @type {*}\n * @memberof IModalComponentDisplayOptions\n */\n componentProps?: any;\n}\n\nexport interface IToolbarReducerState {\n toolbars: any;\n flyouts: any;\n}\n\n/**\n * Describes the reducer state branch for Task Pane component\n *\n * @export\n * @interface ITaskPaneReducerState\n */\nexport interface ITaskPaneReducerState {\n /**\n * The current navigation index\n *\n * @type {number}\n * @memberof ITaskPaneReducerState\n */\n navIndex: number;\n /**\n * The current navigation history stack\n *\n * @type {string[]}\n * @memberof ITaskPaneReducerState\n */\n navigation: string[];\n /**\n * The initial URL\n *\n * @type {(string | undefined)}\n * @memberof ITaskPaneReducerState\n */\n initialUrl: string | undefined;\n /**\n * The last pushed URL\n *\n * @type {boolean}\n * @memberof ITaskPaneReducerState\n */\n lastUrlPushed: boolean;\n}\n\nexport type IModalReducerState = {\n /**\n * Gets the modal parameters for the given key\n */\n [key: string]: IModalDisplayOptions | IModalComponentDisplayOptions;\n};\n\n/*\nexport interface IModalReducerState {\n\n}\n*/\n\n/**\n * A set of layer transpareny values by layer name\n */\nexport type LayerTransparencySet = { [layerName: string]: number };\n\n/**\n * Selection key of an active selected feature\n */\nexport interface ActiveSelectedFeature {\n /**\n * The selected layer id\n * \n * @type {string}\n */\n layerId: string;\n /**\n * The selection key of the feature\n * \n * @type {string}\n */\n selectionKey: string;\n}\n\n/**\n * Generic layer sub-state\n *\n * @export\n * @interface IGenericLayerSubState\n * @since 0.14\n */\nexport interface IGenericLayerSubState {\n /**\n * The subject layer\n *\n * @type {IGenericSubjectMapLayer}\n * @memberof IGenericLayerSubState\n */\n subject: IGenericSubjectMapLayer;\n}\n\n/**\n * MapGuide-specific map sub-state\n *\n * @export\n * @interface IMapGuideSubState\n * @since 0.14\n */\nexport interface IMapGuideSubState {\n /**\n * The runtime map state\n *\n * @type {(RuntimeMap | undefined)}\n * @memberof IBranchedMapSubState\n */\n runtimeMap: RuntimeMap | undefined;\n /**\n * Indicates if this map is based on an arbitrary coordinate system\n * @since 0.14.3\n */\n isArbitraryCs: boolean;\n /**\n * A set of selectable layer ids\n *\n * @type {*}\n * @memberof IBranchedMapSubState\n */\n selectableLayers: any;\n /**\n * A set of expanded group ids\n *\n * @type {*}\n * @memberof IBranchedMapSubState\n */\n expandedGroups: any;\n /**\n * The current MapGuide selection state\n *\n * @type {(QueryMapFeaturesResponse | undefined)}\n * @memberof IBranchedMapSubState\n */\n selectionSet: QueryMapFeaturesResponse | undefined;\n /**\n * The array of ids of layers to show\n *\n * @type {string[]}\n * @memberof IBranchedMapSubState\n */\n showLayers: string[];\n /**\n * The array of ids of groups to show\n *\n * @type {string[]}\n * @memberof IBranchedMapSubState\n */\n showGroups: string[];\n /**\n * The array of ids of layers to hide\n *\n * @type {string[]}\n * @memberof IBranchedMapSubState\n */\n hideLayers: string[];\n /**\n * The array of ids of groups to hide\n *\n * @type {string[]}\n * @memberof IBranchedMapSubState\n */\n hideGroups: string[];\n /**\n * Layer transparency settings\n * \n * @type {{ [layerName: string]: number }}\n * @memberof IBranchedMapSubState\n */\n layerTransparency: LayerTransparencySet;\n /**\n * The active selected feature to highlight\n * \n * @type {(ActiveSelectedFeature | undefined)}\n * @memberof IBranchedMapSubState\n */\n activeSelectedFeature: ActiveSelectedFeature | undefined;\n}\n\n/**\n * Describes the reducer state branch for a particular map group\n *\n * @export\n * @interface IBranchedMapSubState\n */\nexport interface IBranchedMapSubState {\n /**\n * The external base layers for the map group\n *\n * @type {IExternalBaseLayer[]}\n * @memberof IBranchedMapSubState\n */\n externalBaseLayers: IExternalBaseLayer[];\n /**\n * Initial external layers. This does not reflect the current state of external layers added. This merely instructs what external layers\n * to pre-load on viewer startup.\n *\n * @type {IInitialExternalLayer[]}\n * @memberof IBranchedMapSubState\n * @since 0.14\n */\n initialExternalLayers: IInitialExternalLayer[];\n /**\n * The layers in this viewer. First item is top-most layer. Last item is bottom-most layer.\n * @since 0.13\n */\n layers: ILayerInfo[] | undefined;\n /**\n * The current map view\n *\n * @type {(IMapView | undefined)}\n * @memberof IBranchedMapSubState\n */\n currentView: IMapView | undefined;\n /**\n * The initial map view\n *\n * @type {(IMapView | undefined)}\n * @memberof IBranchedMapSubState\n */\n initialView: IMapView | undefined;\n /**\n * The view navigation history stack\n *\n * @type {IMapView[]}\n * @memberof IBranchedMapSubState\n */\n history: IMapView[];\n /**\n * The current position in the view navigation history stack\n *\n * @type {number}\n * @memberof IBranchedMapSubState\n */\n historyIndex: number;\n /**\n * MapGuide-specific sub-state\n *\n * @type {IMapGuideSubState}\n * @memberof IBranchedMapSubState\n * @since 0.14\n */\n mapguide: IMapGuideSubState | undefined;\n /**\n * The current client-side selection state\n * \n * @since 0.14\n */\n clientSelection: ClientSelectionSet | undefined;\n /**\n * Generic layer sub-state\n *\n * @type {(IGenericLayerSubState | undefined)}\n * @memberof IBranchedMapSubState\n * @since 0.14\n */\n generic: IGenericLayerSubState | undefined;\n}\n\n/**\n * The reducer state branch for runtime map state. Map-specific state is keyed on\n * their respective runtime map name as sub-branches on this branch\n *\n * @export\n * @interface IBranchedMapState\n */\nexport interface IBranchedMapState {\n [mapName: string]: IBranchedMapSubState;\n}\n\n/**\n * Coordinate display configuration\n *\n * @export\n * @interface ICoordinateConfiguration\n */\nexport interface ICoordinateConfiguration {\n /**\n * The number of decimal places to show\n *\n * @type {number}\n * @memberof ICoordinateConfiguration\n */\n decimals: number;\n /**\n * The display projection for these coordinates\n * \n * @type {string}\n * @memberof ICoordinateConfiguration\n */\n projection: string;\n /**\n * Display format string\n * \n * @type {string}\n * @memberof ICoordinateConfiguration\n */\n format?: string;\n}\n\n/**\n * Describes the capabilities of the current view\n *\n * @export\n * @interface IViewerCapabilities\n */\nexport interface IViewerCapabilities {\n /**\n * Indicates if this viewer as a Task Pane component mounted\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasTaskPane: boolean;\n /**\n * Indicates if the Task Pane on this viewer has a Task Bar\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasTaskBar: boolean;\n /**\n * Indicates if this viewer has a status bar\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasStatusBar: boolean;\n /**\n * Indicates if this viewer has a zoom slider\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasNavigator: boolean;\n /**\n * Indicates if this viewer has a selection panel component mounted\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasSelectionPanel: boolean;\n /**\n * Indicates if this viewer has a legend component mounted\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasLegend: boolean;\n /**\n * Indicates if this viewer has a primary toolbar mounted\n *\n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasToolbar: boolean;\n /**\n * Indicates if this viewer has the view size mounted\n * \n * @type {boolean}\n * @memberof IViewerCapabilities\n */\n hasViewSize: boolean;\n}\n\n/**\n * Describes a name/value pair\n *\n * @export\n * @interface INameValuePair\n */\nexport interface INameValuePair {\n /**\n * The name\n *\n * @type {string}\n * @memberof INameValuePair\n */\n name: string;\n /**\n * The value\n *\n * @type {string}\n * @memberof INameValuePair\n */\n value: string;\n}\n\n/**\n * Describes a redux reducer function\n */\nexport type ReducerFunction = (state: TState, action: ViewerAction) => TState;\n\n/**\n * Describes the reducer state branch for the current viewer template\n *\n * @export\n * @interface ITemplateReducerState\n */\nexport interface ITemplateReducerState {\n /**\n * The initial width of the information pane. Only certain templates will recognise this setting\n * \n * @type {number}\n * @memberof ITemplateReducerState\n */\n initialInfoPaneWidth: number;\n /**\n * The initial width of the task pane. Only certain templates will recognise this setting\n * \n * @type {number}\n * @memberof ITemplateReducerState\n */\n initialTaskPaneWidth: number;\n /**\n * Indicates if the task pane is visible\n *\n * @type {boolean}\n * @memberof ITemplateReducerState\n */\n taskPaneVisible: boolean;\n /**\n * Indicates if the legend is visible\n *\n * @type {boolean}\n * @memberof ITemplateReducerState\n */\n legendVisible: boolean;\n /**\n * Indicates if the selection panel is visible\n *\n * @type {boolean}\n * @memberof ITemplateReducerState\n */\n selectionPanelVisible: boolean;\n /**\n * If true, the selection panel will auto-display when a selection is made\n * and there are results to show\n * \n * @since 0.13\n */\n autoDisplaySelectionPanelOnSelection: boolean;\n}\n\n/**\n * Signature for a template state reducer function\n * \n * @since 0.13\n */\nexport type TemplateReducerFunction = (origState: ITemplateReducerState, currentState: ITemplateReducerState, action: ViewerAction) => ITemplateReducerState;\n\n/**\n * Keyboard code for ESCAPE\n */\nexport const KC_ESCAPE = 27;\n\n/**\n * Keyboard code for the letter U\n */\nexport const KC_U = 85;\n\n/**\n * The positioning of the map load indicator\n */\nexport type MapLoadIndicatorPositioning = \"top\" | \"bottom\";\n\n/**\n * Describes the reducer state branch for various configuration properties\n *\n * @export\n * @interface IConfigurationReducerState\n */\nexport interface IConfigurationReducerState {\n /**\n * The agent URI\n *\n * @type {(string | undefined)}\n * @memberof IConfigurationReducerState\n */\n agentUri: string | undefined;\n /**\n * The type of agent\n *\n * @type {ClientKind}\n * @memberof IConfigurationReducerState\n */\n agentKind: ClientKind;\n /**\n * The current locale\n *\n * @type {string}\n * @memberof IConfigurationReducerState\n */\n locale: string;\n /**\n * The current active map name\n *\n * @type {(string | undefined)}\n * @memberof IConfigurationReducerState\n */\n activeMapName: string | undefined;\n /**\n * The array of available runtime maps\n *\n * @type {(INameValuePair[] | undefined)}\n * @memberof IConfigurationReducerState\n */\n availableMaps: INameValuePair[] | undefined;\n /**\n * Coordinate display configuration\n *\n * @type {ICoordinateConfiguration}\n * @memberof IConfigurationReducerState\n */\n coordinates: ICoordinateConfiguration;\n /**\n * Viewer capabilities\n *\n * @type {IViewerCapabilities}\n * @memberof IConfigurationReducerState\n */\n capabilities: IViewerCapabilities;\n /**\n * A dictionary of arbitrary app settings\n * \n * @since 0.14\n */\n appSettings?: Dictionary;\n /**\n * Viewer configuration\n * \n * @memberof IConfigurationReducerState\n */\n viewer: {\n /**\n * Whether this viewer will use stateless MapGuide rendering operations\n * \n * @since 0.14\n */\n isStateless: boolean;\n /**\n * The current image format\n *\n * @type {ImageFormat}\n */\n imageFormat: ImageFormat;\n /**\n * The current selection image format\n *\n * @type {ImageFormat}\n */\n selectionImageFormat: ImageFormat;\n /**\n * The current selection color\n *\n * @type {string}\n */\n selectionColor: string;\n /**\n * The color to use for highlighting active selected features\n * \n * @type {string}\n */\n activeSelectedFeatureColor: string;\n /**\n * The current point selection pixel tolerance\n *\n * @type {number}\n */\n pointSelectionBuffer: number;\n /**\n * The position of the map loading indicator\n * \n * @type {MapLoadIndicatorPositioning}\n */\n loadIndicatorPositioning: MapLoadIndicatorPositioning;\n /**\n * The color of the map loading indicator. This is an valid CSS color expression\n * \n * @type {string}\n */\n loadIndicatorColor: string;\n },\n /**\n * Indicates if view rotation is enabled\n * \n * @type {boolean}\n * @memberof IConfigurationReducerState\n */\n viewRotationEnabled: boolean;\n /**\n * The current view rotation\n * \n * @type {number}\n * @memberof IConfigurationReducerState\n */\n viewRotation: number;\n /**\n * The unit to display view size in\n * \n * @type {UnitOfMeasure}\n * @memberof IConfigurationReducerState\n */\n viewSizeUnits: UnitOfMeasure;\n /**\n * @since 0.14.2\n */\n selectCanDragPan: boolean;\n /**\n * If specified and true and the MapTip component is active, then feature tooltips are activated\n * by mouse click instead of idle mouse cursor at a given point on the map for a certain period of time. \n * \n * An active MapTip component with this setting enabled will override normal click-based selection.\n * \n * @type {boolean}\n * @memberof IConfigurationReducerState\n */\n manualFeatureTooltips: boolean;\n /**\n * The key code to listen for cancelling an active digitization\n * \n * @type {number}\n * @memberof IKeyBindingConfiguration\n */\n cancelDigitizationKey: number;\n /**\n * The key code to listen for undoing the last drawn point of an active digitization\n * \n * @type {number}\n * @memberof IKeyBindingConfiguration\n */\n undoLastPointKey: number;\n}\n\n/**\n * Describes an error thrown during initialization\n *\n * @export\n * @interface InitError\n */\nexport interface InitError {\n /**\n * The error message\n *\n * @type {string}\n * @memberof InitError\n */\n message: string;\n /**\n * The error stack trace\n *\n * @type {string[]}\n * @memberof InitError\n */\n stack: string[];\n}\n\n/**\n * Describes the reducer state branch for initialization errors\n *\n * @export\n * @interface IInitErrorReducerState\n */\nexport interface IInitErrorReducerState {\n /**\n * The caught initialization error\n *\n * @type {(InitError | undefined)}\n * @memberof IInitErrorReducerState\n */\n error: InitError | undefined;\n /**\n * The initialization options\n *\n * @type {*}\n * @memberof IInitErrorReducerState\n */\n options: any;\n /**\n * Indicates if the stack trace should be shown\n *\n * @type {boolean}\n * @memberof IInitErrorReducerState\n */\n includeStack: boolean;\n /**\n * Any warnings that were encountered during initialization\n * \n * @type {string[]}\n * @memberof IInitErrorReducerState\n */\n warnings: string[];\n}\n\n/**\n * Describes the reducer state branch for viewer state\n *\n * @export\n * @interface IViewerReducerState\n */\nexport interface IViewerReducerState {\n /**\n * The current size of the map viewport (in pixels)\n * \n * @type {([number, number] | undefined)}\n * @memberof IViewerReducerState\n */\n size: [number, number] | undefined;\n /**\n * The number of active busy actions. Zero indicates no busy activity. One or more\n * indicates busy activity.\n *\n * @type {number}\n * @memberof IViewerReducerState\n */\n busyCount: number;\n /**\n * The active map tool\n *\n * @type {ActiveMapTool}\n * @memberof IViewerReducerState\n */\n tool: ActiveMapTool;\n /**\n * Indicates if feature tooltips are enabled\n *\n * @type {boolean}\n * @memberof IViewerReducerState\n */\n featureTooltipsEnabled: boolean;\n}\n\n/**\n * Describes the reducer state branch for tracked mouse coordinates\n *\n * @export\n * @interface IMouseReducerState\n */\nexport interface IMouseReducerState {\n /**\n * The last tracked mouse coordinate\n *\n * @type {(Coordinate2D | undefined)}\n * @memberof IMouseReducerState\n */\n coords: Coordinate2D | undefined;\n}\n\n/**\n * Describes the full application state tree. Redux-aware components can connect and subscribe to\n * various properties and branches of this tree and be automatically notified of any changes and\n * update and re-render themselves accordingly\n *\n * @export\n * @interface IApplicationState\n */\nexport interface IApplicationState {\n /**\n * Initialization errors\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n initError: Readonly;\n /**\n * Viewer configuration\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n config: Readonly;\n /**\n * Current template state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n template: Readonly;\n /**\n * Viewer state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n viewer: Readonly;\n /**\n * Runtime map state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n mapState: Readonly;\n /**\n * Toolbar state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n toolbar: Readonly;\n /**\n * Task Pane component state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n taskpane: Readonly;\n /**\n * Modal dialog state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n modal: Readonly;\n /**\n * Tracked mouse coordinate state\n *\n * @type {Readonly}\n * @memberof IApplicationState\n */\n mouse: Readonly;\n /**\n * Tracks the last dispatched action\n *\n * @type {*}\n * @memberof IApplicationState\n */\n lastaction: any;\n}\n\n// Redux typedefs to tighten up our redux code\n\n/**\n * Describes the redux store\n *\n * @export\n * @interface ReduxStore\n */\nexport interface ReduxStore {\n /**\n * Gets the application state\n *\n * @returns {Readonly}\n *\n * @memberof ReduxStore\n */\n getState(): Readonly;\n}\n\n/**\n * Describes a thunked redux action. Thunked redux actions are generally used for actions that push state\n * asynchronously (eg. In response to an AJAX request)\n */\nexport type ReduxThunkedAction = (dispatch: ReduxDispatch, getState: () => Readonly) => any;\n\n/**\n * Describes a redux dispatcher function. A redux dispatch pushes new state to the redux store\n */\nexport type ReduxDispatch = (action: ViewerAction | ReduxThunkedAction) => void;\n\n/**\n * A function that does nothing\n *\n * @export\n */\nexport function NOOP() { }\n\n/**\n * A function that always returns false\n *\n * @export\n * @returns false\n */\nexport function ALWAYS_FALSE() { return false; }\n\n/**\n * A function that always returns true\n *\n * @export\n * @returns true\n */\nexport function ALWAYS_TRUE() { return true; }\n\n/**\n * Describe the size/dimensions of a DOM element in a toolbar or flyout menu\n *\n * @export\n * @interface IDOMElementMetrics\n */\nexport interface IDOMElementMetrics {\n /**\n * The X position of this element\n *\n * @type {number}\n * @memberof IDOMElementMetrics\n */\n posX: number;\n /**\n * The Y position of this element\n *\n * @type {number}\n * @memberof IDOMElementMetrics\n */\n posY: number;\n /**\n * The width of this element\n *\n * @type {number}\n * @memberof IDOMElementMetrics\n */\n width: number;\n /**\n * The height of this element\n *\n * @type {number}\n * @memberof IDOMElementMetrics\n */\n height: number;\n /**\n * Indicates of this toolbar is vertically-oriented\n *\n * @type {boolean}\n * @memberof IDOMElementMetrics\n */\n vertical?: boolean;\n}\n\n/**\n * Helper function to get the initial map view from the application state\n *\n * @export\n * @param {Readonly} state\n * @returns {(IMapView | undefined)}\n */\nexport function getInitialView(state: Readonly): IMapView | undefined {\n if (state.config.activeMapName) {\n return state.mapState[state.config.activeMapName].initialView;\n }\n return undefined;\n}\n\n/**\n * Helper function to get the mapguide-specific sub state of the current map group\n *\n * @export\n * @param {Readonly} state\n * @returns {(IMapGuideSubState | undefined)}\n * @since 0.14\n */\nexport function getMapGuideSubState(state: Readonly): IMapGuideSubState | undefined {\n if (state.config.activeMapName) {\n return state.mapState[state.config.activeMapName].mapguide;\n }\n return undefined;\n}\n\n/**\n * Helper function to get the current selection set from the application state\n *\n * @export\n * @param {Readonly} state\n * @returns {(QueryMapFeaturesResponse | undefined)}\n */\nexport function getSelectionSet(state: Readonly): QueryMapFeaturesResponse | undefined {\n return getMapGuideSubState(state)?.selectionSet;\n}\n\n/**\n * Helper function to get the current runtime map state from the application state\n *\n * @export\n * @param {Readonly} state\n * @returns {(RuntimeMap | undefined)}\n */\nexport function getRuntimeMap(state: Readonly): RuntimeMap | undefined {\n return getMapGuideSubState(state)?.runtimeMap;\n}\n\n/**\n * Helper function to get the current view from the application state\n *\n * @export\n * @param {Readonly} state\n * @returns {(IMapView | undefined)}\n */\nexport function getCurrentView(state: Readonly): IMapView | undefined {\n if (state.config.activeMapName) {\n return state.mapState[state.config.activeMapName].currentView;\n }\n return undefined;\n}\n\n/**\n * Helper function to get the current set of available external base layers from the application state\n *\n * @remarks This does not include \"non-visual\" base layers such as UTFGrid tilesets\n * \n * @export\n * @param {Readonly} state\n * @param includeNonVisual Include \"non-visual\" base layers like UTFGrid tile sets\n * @returns {(IExternalBaseLayer[] | undefined)}\n */\nexport function getExternalBaseLayers(state: Readonly, includeNonVisual: boolean): IExternalBaseLayer[] | undefined {\n if (state.config.activeMapName) {\n if (includeNonVisual) {\n return state.mapState[state.config.activeMapName].externalBaseLayers;\n } else {\n // UTFGrid may exist as a \"base layer\", but it has no visual representation so it is not a switchable candidate, so\n // exclude it from the list if present\n return state.mapState[state.config.activeMapName].externalBaseLayers.filter(ebl => ebl.kind != \"UTFGrid\");\n }\n }\n return undefined;\n}\n\n/**\n * Defines the visibility of flyout menus\n */\nexport type FlyoutVisibilitySet = { [flyoutId: string]: boolean | undefined };\n\n/**\n * Defines the capabilities of a WMS service\n * \n * @since 0.11\n */\nexport interface WmsCapabilitiesDocument {\n /**\n * WMS service version\n * \n * @type {string}\n * @memberof WmsCapabilitiesDocument\n */\n version: string;\n Service: WMSServiceDescription;\n Capability: WMSServiceCapabilities;\n}\n\n/**\n * @since 0.11\n */\nexport interface WMSServiceCapabilities {\n Request: any;\n Exception: string[];\n Layer: WMSRootPublishedLayer;\n}\n\n/**\n * @since 0.12\n */\nexport interface WMSLayerBoundingBox {\n crs: string;\n extent: [number, number, number, number],\n res: [any, any]\n}\n\n/**\n * @since 0.11\n */\nexport interface WMSPublishedLayer {\n Name: string;\n Title: string;\n Abstract: string;\n KeywordList: string;\n CRS: string[];\n EX_GeographicBoundingBox: [number, number, number, number];\n BoundingBox: WMSLayerBoundingBox[];\n Style: WMSLayerStyle[];\n queryable: boolean;\n opaque: boolean;\n noSubsets: boolean;\n}\n\n/**\n * @since 0.11\n */\nexport interface WMSRootPublishedLayer extends WMSPublishedLayer {\n Layer: WMSPublishedLayer[];\n}\n\n/**\n * @since 0.12\n */\nexport interface WMSLegendURLDefinition {\n Format: string;\n OnlineResource: string;\n size: [number, number];\n}\n\n/**\n * @since 0.11\n */\nexport interface WMSLayerStyle {\n Name: string;\n Title: string;\n Abstract: string;\n LegendURL: WMSLegendURLDefinition[];\n}\n\n/**\n * @since 0.12\n */\nexport interface WMSContactAddress {\n AddressType: string,\n Address: string,\n City: string,\n StateOrProvince: string,\n PostCode: string,\n Country: string\n}\n\n/**\n * @since 0.12\n */\nexport interface WMSContact {\n ContactPerson: string;\n ContactOrganization: string;\n}\n\n/**\n * @since 0.12\n */\nexport interface WMSContactInformation {\n ContactPersonPrimary: WMSContact,\n ContactPosition: string,\n ContactAddress: WMSContactAddress,\n ContactVoiceTelephone: string,\n ContactFacsimileTelephone: string,\n ContactElectronicMailAddress: string\n}\n\n/**\n * @since 0.11\n */\nexport interface WMSServiceDescription {\n Name: string;\n Title: string;\n Abstract: string;\n KeywordList: string[];\n OnlineResource: string;\n ContactInformation: WMSContactInformation,\n Fees: string;\n AccessConstraints: string;\n}\n\nexport interface IMapGuideImageSource {\n on(event: string, handler: Function): void;\n updateParams(params: any): void;\n}\n\n/**\n * Custom properties that can be attached to OpenLayers layer instances\n * \n * @since 0.13\n */\nexport enum LayerProperty {\n LAYER_TYPE = \"layer_type\",\n LAYER_NAME = \"name\",\n /**\n * @since 0.14\n */\n LAYER_DISPLAY_NAME = \"display_name\",\n IS_GROUP = \"is_group\",\n IS_EXTERNAL = \"is_external\",\n IS_SELECTABLE = \"is_selectable\",\n /**\n * @since 0.14.5\n */\n DISABLE_HOVER = \"disable_hover\",\n IS_SCRATCH = \"is_scratch\",\n HAS_WMS_LEGEND = \"has_wms_legend\",\n VECTOR_STYLE = \"vector_style\",\n WGS84_BBOX = \"wgs84_bbox\",\n BUSY_WORKER_COUNT = \"busy_worker_count\",\n /**\n * @since 0.14\n */\n SELECTED_POPUP_CONFIGURATION = \"popup_config\",\n /**\n * @since 0.14\n */\n LAYER_DESCRIPTION = \"layer_description\",\n /**\n * @since 0.14\n */\n LAYER_METADATA = \"layer_metadata\",\n /**\n * @since 0.14\n */\n IS_HOVER_HIGHLIGHT = \"is_hover_highlight\",\n /**\n * @since 0.14\n */\n IS_MEASURE = \"is_measure\",\n /**\n * @since 0.14\n */\n IS_WMS_SELECTION_OVERLAY = \"is_wms_selection_overlay\",\n /**\n * @since 0.14\n */\n IS_HEATMAP = \"is_heatmap\",\n /**\n * A source definition to attach to the layer. This is to assist in persistence of this layer for easy\n * restoration on an application-defined basis\n * \n * @since 0.14.3\n */\n LAYER_DEFN = \"layer_defn\"\n}\n\n/**\n * Custom properties that can be attached to OpenLayers image source instances\n * \n * @since 0.13\n */\nexport enum SourceProperty {\n SUPPRESS_LOAD_EVENTS = \"suppress_load_events\"\n}\n\n/**\n * MapGuide layer types\n * \n * @since 0.13\n */\nexport enum MgLayerType {\n Untiled = \"MapGuide_Untiled\",\n Tiled = \"MapGuide_Tiled\"\n}\n\n/**\n * The type name for a MapGuide layer\n * \n * @since 0.13\n */\nexport const MG_LAYER_TYPE_NAME = \"MapGuide\";\n\n/**\n * The default group name for MapGuide tiled layers. This value\n * is not meant for localized display\n * \n * @since 0.13\n */\nexport const MG_BASE_LAYER_GROUP_NAME = \"Base Tile Layers\";\n\n/**\n * Default names for MapGuide built-in layer types. These value\n * are not meant for localized display\n * \n * @since 0.13\n */\nexport enum MgBuiltInLayers {\n Overlay = \"MapGuide Dynamic Overlay\",\n SelectionOverlay = \"MapGuide Selection Overlay\",\n ActiveFeatureSelectionOverlay = \"MapGuide Active Feature Selection Overlay\"\n}\n\n/**\n * A layer of a {@link ICompositeSelection}\n * \n * @since 0.14\n */\nexport interface ICompositeSelectionLayer {\n /**\n * The id of this selection layer\n */\n getLayerId(): string | undefined;\n /**\n * The name of this layer\n */\n getName(): string;\n /**\n * The metadata of this layer\n */\n getLayerMetadata(): LayerMetadata | undefined;\n /**\n * Gets the feature at the given index\n */\n getFeatureAt(featureIndex: number): SelectedFeature;\n /**\n * Gets the total number of features in this layer\n */\n getFeatureCount(): number;\n}\n\n/**\n * A composition of a MapGuide selection set and a client-side vector feature selection\n * \n * @since 0.14\n */\nexport interface ICompositeSelection {\n /**\n * Gets the number of layers in this selection set\n */\n getLayerCount(): number;\n /**\n * Gets the array of layers in this selection set\n */\n getLayers(): ICompositeSelectionLayer[];\n /**\n * Gets the layer at the specified index\n * \n * @param layerIndex The selection layer index\n */\n getLayerAt(layerIndex: number): ICompositeSelectionLayer | undefined;\n /**\n * Gets the feature for the given layer at the specified indices\n * \n * @param layerIndex The selection layer index\n * @param featureIndex The feature index\n */\n getFeatureAt(layerIndex: number, featureIndex: number): SelectedFeature | undefined;\n}","import { ICompositeSelectionLayer, ICompositeSelection, Bounds } from \"./common\";\nimport { ClientSelectionLayer, ClientSelectionSet } from \"./contracts/common\";\nimport { SelectedFeature, SelectedLayer, FeatureProperty, SelectedFeatureSet } from \"./contracts/query\";\n\n//FIXME: We are inlining extend of ol/Extent here so that this module can be included in any jest test case\n//without jest complaining about not being able to import ol's ES6 modules. I don't know how to get jest to\n//recognize ol imports. None of the solutions I tried worked!\nfunction extend(extent1: Bounds, extent2: Bounds) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n\n/**\n * A layer of a {@link CompositeSelection}\n * \n * @since 0.14\n */\nexport class CompositeSelectionLayer implements ICompositeSelectionLayer {\n private features: SelectedFeature[];\n constructor(private layer: SelectedLayer | ClientSelectionLayer) {\n this.features = [];\n if (this.isSelectedLayer(this.layer)) {\n for (const f of this.layer.Feature) {\n this.features.push(f);\n }\n } else {\n for (const f of this.layer.features) {\n const fp = [] as FeatureProperty[];\n for (const k in f.properties) {\n fp.push({\n Name: k,\n Value: f.properties[k]\n })\n }\n const fb = f.bounds ? f.bounds.join(\" \") : undefined;\n this.features.push({\n Bounds: fb,\n Property: fp\n });\n }\n }\n }\n private isSelectedLayer(layer: SelectedLayer | ClientSelectionLayer): layer is SelectedLayer {\n return (layer as any).Feature\n && (layer as any)[\"@id\"]\n && (layer as any)[\"@name\"]\n }\n /**\n * Gets the combined bounds of all selected features\n * \n * @returns The combined bounds of all selected features in the projection of the current map view\n */\n public getBounds(): Bounds | undefined {\n let bounds: Bounds | undefined;\n if (this.isSelectedLayer(this.layer)) {\n this.layer.Feature.forEach(feat => {\n const b: Bounds | undefined = feat.Bounds\n ? (feat.Bounds.split(\" \").map(s => parseFloat(s)) as Bounds)\n : undefined;\n if (b) {\n if (!bounds) {\n bounds = b;\n } else {\n bounds = extend(bounds, b) as Bounds;\n }\n }\n });\n } else {\n for (const f of this.layer.features) {\n if (f.bounds) {\n if (bounds == null) {\n bounds = f.bounds;\n } else {\n bounds = extend(bounds, f.bounds) as Bounds;\n }\n }\n }\n }\n return bounds;\n }\n public getLayerId() {\n if (this.isSelectedLayer(this.layer)) {\n return this.layer[\"@id\"];\n }\n return undefined;\n }\n public getName() {\n if (this.isSelectedLayer(this.layer)) {\n return this.layer[\"@name\"];\n } else {\n return this.layer.name;\n }\n }\n public getFeatureAt(featureIndex: number) {\n return this.features[featureIndex];\n }\n public getFeatureCount() { return this.features.length; }\n public getLayerMetadata() {\n if (this.isSelectedLayer(this.layer)) {\n return this.layer.LayerMetadata;\n }\n return undefined;\n }\n}\n\n/**\n * A composition of a MapGuide selection set and a client-side vector feature selection\n * \n * @since 0.14\n */\nexport class CompositeSelection implements ICompositeSelection {\n private layers: CompositeSelectionLayer[];\n constructor(mgSelection?: SelectedFeatureSet, clientSelection?: ClientSelectionSet) {\n this.layers = [];\n if (mgSelection) {\n for (const layer of mgSelection.SelectedLayer) {\n this.layers.push(new CompositeSelectionLayer(layer));\n }\n }\n if (clientSelection) {\n for (const layer of clientSelection.layers) {\n this.layers.push(new CompositeSelectionLayer(layer));\n }\n }\n }\n public getBounds(): Bounds | undefined {\n if (this.layers.length == 0) {\n return undefined;\n }\n let bounds: Bounds | undefined;\n for (const lyr of this.layers) {\n let layerBounds = lyr.getBounds();\n if (layerBounds) {\n if (bounds) {\n bounds = extend(bounds, layerBounds) as Bounds;\n } else {\n bounds = layerBounds;\n }\n }\n }\n return bounds;\n }\n public getLayers() { return this.layers; }\n public getLayerCount() {\n return this.layers.length;\n }\n public getLayerAt(layerIndex: number) {\n return this.layers[layerIndex];\n }\n public getFeatureAt(layerIndex: number, featureIndex: number) {\n const layer = this.getLayerAt(layerIndex);\n return layer?.getFeatureAt(featureIndex);\n }\n}","//TODO: When TypeScript 2.0 drops, some of these interfaces can be converted to discriminated unions\n\nimport { ResourceBase } from \"./common\";\n\nexport interface ResourceReference {\n ResourceId: string;\n}\n\nexport interface MapView {\n CenterX: number;\n CenterY: number;\n Scale: number;\n}\n\nexport type TargetType = \"TaskPane\" | \"NewWindow\" | \"SpecifiedFrame\";\n\nexport interface WebLayoutMap extends ResourceReference {\n InitialView?: MapView | undefined;\n HyperlinkTarget: TargetType;\n HyperlinkTargetFrame?: string | undefined;\n}\n\nexport interface WebLayoutControl {\n Visible: boolean;\n}\n\nexport interface WebLayoutResizableControl extends WebLayoutControl {\n Width: number;\n}\n\nexport interface FlyoutUIItem {\n Function: \"Flyout\";\n Label: string;\n Tooltip?: string | undefined;\n Description?: string | undefined;\n ImageURL?: string | undefined;\n DisabledImageURL?: string | undefined;\n SubItem?: UIItem[] | undefined;\n}\n\nexport interface SeparatorUIItem {\n Function: \"Separator\";\n}\n\nexport interface CommandUIItem {\n Function: \"Command\";\n Command: string;\n}\n\nexport type UIItem = FlyoutUIItem | SeparatorUIItem | CommandUIItem;\n\nexport function isCommandItem(item: UIItem): item is CommandUIItem {\n return item.Function === \"Command\";\n}\n\nexport function isFlyoutItem(item: UIItem): item is FlyoutUIItem {\n return item.Function === \"Flyout\";\n}\n\nexport function isSeparatorItem(item: UIItem): item is SeparatorUIItem {\n return item.Function === \"Separator\";\n}\n\nexport interface WebLayoutToolbar extends WebLayoutControl {\n Button: UIItem[];\n}\n\nexport interface WebLayoutContextMenu extends WebLayoutControl {\n MenuItem: UIItem[];\n}\n\nexport interface TaskButton {\n Name: string;\n Tooltip: string;\n Description: string;\n ImageURL: string;\n DisabledImageURL: string;\n}\n\nexport interface WebLayoutTaskBar extends WebLayoutControl {\n Home: TaskButton;\n Forward: TaskButton;\n Back: TaskButton;\n Tasks: TaskButton;\n MenuButton: UIItem[];\n}\n\nexport interface WebLayoutTaskPane extends WebLayoutResizableControl {\n InitialTask: string;\n TaskBar: WebLayoutTaskBar;\n}\n\nexport interface WebLayoutStatusBar extends WebLayoutControl {\n\n}\n\nexport interface WebLayoutZoomControl extends WebLayoutControl {\n\n}\n\nexport interface WebLayoutInfoPane extends WebLayoutResizableControl {\n LegendVisible: boolean;\n PropertiesVisible: boolean;\n}\n\nexport type TargetViewerType = \"Dwf\" | \"Ajax\" | \"All\";\n\nexport interface CommandDef {\n \"@xsi:type\": string;\n Name: string;\n Label: string;\n Tooltip?: string | undefined;\n Description?: string | undefined;\n ImageURL?: string | undefined;\n DisabledImageURL?: string | undefined;\n TargetViewer: TargetViewerType;\n}\n\nexport type BasicCommandActionType =\n \"Pan\" |\n \"PanUp\" |\n \"PanDown\" |\n \"PanRight\" |\n \"PanLeft\" |\n \"Zoom\" |\n \"ZoomIn\" |\n \"ZoomOut\" |\n \"ZoomRectangle\" |\n \"ZoomToSelection\" |\n \"FitToWindow\" |\n \"PreviousView\" |\n \"NextView\" |\n \"RestoreView\" |\n \"Select\" |\n \"SelectRadius\" |\n \"SelectPolygon\" |\n \"ClearSelection\" |\n \"Refresh\" |\n \"CopyMap\" |\n \"About\" |\n \"MapTip\";\n\nexport interface BasicCommandDef extends CommandDef {\n Action: BasicCommandActionType;\n}\n\nexport function isBasicCommand(cmd: any): cmd is BasicCommandDef {\n return typeof(cmd.Action) != 'undefined';\n}\n\nexport function isTargetedCommand(cmd: any): cmd is TargetedCommandDef {\n return typeof(cmd.Target) != 'undefined';\n}\n\nexport interface CustomCommandDef extends CommandDef {\n\n}\n\nexport interface TargetedCommandDef extends CustomCommandDef {\n Target: TargetType;\n TargetFrame?: string | undefined;\n}\n\nexport interface ParameterPair {\n Key: string;\n Value: string;\n}\n\nexport interface LayerSet {\n Layer?: string[] | undefined;\n}\n\nexport function isInvokeURLCommand(cmd: any): cmd is InvokeURLCommandDef {\n return typeof(cmd.URL) != 'undefined' && typeof(cmd.DisableIfSelectionEmpty) != 'undefined';\n}\n\nexport function isSearchCommand(cmd: CommandDef): cmd is SearchCommandDef {\n return cmd[\"@xsi:type\"] == \"SearchCommandType\";\n}\n\nexport interface InvokeURLCommandDef extends TargetedCommandDef {\n URL: string;\n LayerSet?: LayerSet | undefined;\n AdditionalParameter?: ParameterPair[] | undefined;\n DisableIfSelectionEmpty: boolean;\n}\n\nexport interface InvokeScriptCommandDef extends TargetedCommandDef {\n Script: string;\n}\n\nexport interface ResultColumn {\n Name: string;\n Property: string;\n}\n\nexport interface ResultColumnSet {\n Column?: ResultColumn[] | undefined;\n}\n\nexport interface SearchCommandDef extends TargetedCommandDef {\n Layer: string;\n Prompt: string;\n ResultColumns: ResultColumnSet;\n Filter?: string;\n MatchLimit: number;\n}\n\nexport interface BufferCommandDef extends TargetedCommandDef { }\n\nexport interface SelectWithinCommandDef extends TargetedCommandDef { }\n\nexport interface PrintCommandDef extends TargetedCommandDef {\n PrintLayout?: ResourceReference[];\n}\n\nexport interface GetPrintablePageCommandDef extends TargetedCommandDef { }\n\nexport interface MeasureCommandDef extends TargetedCommandDef { }\n\nexport interface ViewOptionsCommandDef extends TargetedCommandDef { }\n\nexport interface HelpCommandDef extends TargetedCommandDef {\n URL: string;\n}\n\nexport interface WebLayoutCommandSet {\n Command: CommandDef[];\n}\n\nexport interface WebLayout extends ResourceBase {\n Title: string;\n Map: WebLayoutMap;\n EnablePingServer?: boolean;\n SelectionColor?: string;\n PointSelectionBuffer?: number;\n MapImageFormat?: string;\n SelectionImageFormat?: string;\n StartupScript?: string;\n ToolBar: WebLayoutToolbar;\n InformationPane: WebLayoutInfoPane;\n ContextMenu: WebLayoutContextMenu;\n TaskPane: WebLayoutTaskPane;\n StatusBar: WebLayoutStatusBar;\n ZoomControl: WebLayoutZoomControl;\n CommandSet: WebLayoutCommandSet;\n}","import {\n registerCommand,\n DefaultCommands,\n CommandConditions,\n openUrlInTarget\n} from \"./registry/command\";\nimport {\n IMapViewer,\n ActiveMapTool,\n RefreshMode,\n ReduxDispatch,\n getInitialView,\n getRuntimeMap,\n getCurrentView,\n ITargetedCommand,\n IConfigurationReducerState,\n DEFAULT_MODAL_SIZE\n} from \"./common\";\nimport { tr } from \"../api/i18n\";\nimport { DefaultComponentNames } from \"../api/registry/component\";\nimport {\n SPRITE_SELECT,\n SPRITE_PAN,\n SPRITE_ZOOM_IN,\n SPRITE_ZOOM_IN_FIXED,\n SPRITE_ZOOM_OUT_FIXED,\n SPRITE_PAN_WEST,\n SPRITE_PAN_EAST,\n SPRITE_PAN_NORTH,\n SPRITE_PAN_SOUTH,\n SPRITE_ABOUT,\n SPRITE_HELP,\n SPRITE_MEASURE,\n SPRITE_INITIAL_CENTER,\n SPRITE_ZOOM_FULL,\n SPRITE_VIEW_BACK,\n SPRITE_ICON_REFRESHMAP,\n SPRITE_VIEW_FORWARD,\n SPRITE_GEOLOCATION,\n SPRITE_INVOKE_SCRIPT,\n SPRITE_COORDINATE_TRACKER,\n SPRITE_LAYER_ADD,\n SPRITE_PRINT\n} from \"../constants/assets\";\nimport { setCurrentView, setActiveTool, previousView, nextView } from '../actions/map';\nimport { showModalComponent, showModalUrl } from '../actions/modal';\nimport { refresh } from '../actions/legend';\nimport { setTaskPaneVisibility, setLegendVisibility, setSelectionPanelVisibility } from '../actions/template';\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nfunction panMap(dispatch: ReduxDispatch, viewer: IMapViewer, value: \"right\" | \"left\" | \"up\" | \"down\") {\n const settings: any = {\n \"right\": [2, 1],\n \"left\": [0, 1],\n \"down\": [0, 1],\n \"up\": [0, 3]\n };\n\n const view = viewer.getCurrentView();\n const current_center = [view.x, view.y];\n const currentExtent = viewer.getCurrentExtent();\n let newPos: number[];\n\n const direction = settings[value];\n\n if (value == \"right\" || value == \"left\") {\n newPos = [\n currentExtent[direction[0]],\n current_center[direction[1]]\n ];\n\n } else {\n newPos = [\n current_center[direction[0]],\n currentExtent[direction[1]]\n ];\n }\n\n dispatch(setCurrentView({ x: newPos[0], y: newPos[1], scale: view.scale }));\n}\n\nexport function buildTargetedCommand(config: Readonly, parameters: any): ITargetedCommand {\n const cmdTarget = (parameters || {}).Target;\n const cmdDef: ITargetedCommand = {\n target: cmdTarget || \"NewWindow\"\n };\n if (config.capabilities.hasTaskPane && cmdTarget == \"TaskPane\") {\n cmdDef.target = \"TaskPane\";\n }\n if (cmdTarget == \"SpecifiedFrame\") {\n cmdDef.target = cmdTarget;\n cmdDef.targetFrame = (parameters || {}).TargetFrame;\n }\n return cmdDef;\n}\n\n/**\n * Registers the default set of commands into the command registry. This is automatically called by the default viewer\n * bundle. If creating your own viewer bundle, be sure to call this function in your entry point, or individually register\n * the commands you want to make available in your custom viewer bundle\n *\n * @export\n */\nexport function initDefaultCommands() {\n //Select Tool\n registerCommand(DefaultCommands.Select, {\n iconClass: SPRITE_SELECT,\n selected: (state) => {\n return state.activeTool === ActiveMapTool.Select;\n },\n enabled: () => true,\n invoke: (dispatch) => {\n return dispatch(setActiveTool(ActiveMapTool.Select));\n }\n });\n //Pan Tool\n registerCommand(DefaultCommands.Pan, {\n iconClass: SPRITE_PAN,\n selected: (state) => {\n return state.activeTool === ActiveMapTool.Pan;\n },\n enabled: () => true,\n invoke: (dispatch) => {\n return dispatch(setActiveTool(ActiveMapTool.Pan));\n }\n });\n //Zoom Tool\n registerCommand(DefaultCommands.Zoom, {\n iconClass: SPRITE_ZOOM_IN,\n selected: (state) => {\n return state.activeTool === ActiveMapTool.Zoom;\n },\n enabled: () => true,\n invoke: (dispatch) => {\n return dispatch(setActiveTool(ActiveMapTool.Zoom));\n }\n });\n //Zoom in\n registerCommand(DefaultCommands.ZoomIn, {\n iconClass: SPRITE_ZOOM_IN_FIXED,\n selected: () => false,\n enabled: () => true,\n invoke: (_dispatch, _getState, viewer) => {\n if (viewer) {\n viewer.zoomDelta(1);\n }\n }\n });\n //Zoom Out\n registerCommand(DefaultCommands.ZoomOut, {\n iconClass: SPRITE_ZOOM_OUT_FIXED,\n selected: () => false,\n enabled: () => true,\n invoke: (_dispatch, _getState, viewer) => {\n if (viewer) {\n viewer.zoomDelta(-1);\n }\n }\n });\n //Pan Left\n registerCommand(DefaultCommands.PanLeft, {\n iconClass: SPRITE_PAN_WEST,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, _getState, viewer) => {\n if (viewer) {\n panMap(dispatch, viewer, \"left\");\n }\n }\n });\n //Pan Right\n registerCommand(DefaultCommands.PanRight, {\n iconClass: SPRITE_PAN_EAST,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, _getState, viewer) => {\n if (viewer) {\n panMap(dispatch, viewer, \"right\");\n }\n }\n });\n //Pan Up\n registerCommand(DefaultCommands.PanUp, {\n iconClass: SPRITE_PAN_NORTH,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, _getState, viewer) => {\n if (viewer) {\n panMap(dispatch, viewer, \"up\");\n }\n }\n });\n //Pan Down\n registerCommand(DefaultCommands.PanDown, {\n iconClass: SPRITE_PAN_SOUTH,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, _getState, viewer) => {\n if (viewer) {\n panMap(dispatch, viewer, \"down\");\n }\n }\n });\n //About\n registerCommand(DefaultCommands.About, {\n iconClass: SPRITE_ABOUT,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState) => {\n dispatch(showModalComponent({\n modal: {\n title: tr(\"ABOUT\", getState().config.locale),\n backdrop: true,\n size: DEFAULT_MODAL_SIZE\n },\n name: DefaultComponentNames.About,\n component: DefaultComponentNames.About\n }));\n }\n });\n //Help\n registerCommand(DefaultCommands.Help, {\n iconClass: SPRITE_HELP,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState) => {\n dispatch(showModalUrl({\n modal: {\n title: tr(\"HELP\", getState().config.locale),\n backdrop: true,\n size: DEFAULT_MODAL_SIZE\n },\n name: DefaultCommands.Help,\n url: \"help/index.html\"\n }));\n }\n });\n //Measure\n registerCommand(DefaultCommands.Measure, {\n iconClass: SPRITE_MEASURE,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState, _viewer, parameters) => {\n const config = getState().config;\n const url = \"component://Measure\";\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.Measure, cmdDef, config.capabilities.hasTaskPane, dispatch, url, tr(\"MEASURE\", config.locale));\n }\n });\n \n //Initial Center and scale\n registerCommand(DefaultCommands.RestoreView, {\n iconClass: SPRITE_INITIAL_CENTER,\n selected: () => false,\n enabled: () => true,\n invoke: (_dispatch, getState, viewer) => {\n if (viewer) {\n const view = getInitialView(getState());\n if (view != null) {\n viewer.zoomToView(view.x, view.y, view.scale);\n } else {\n viewer.initialView();\n }\n }\n }\n })\n //Zoom Extents\n registerCommand(DefaultCommands.ZoomExtents, {\n iconClass: SPRITE_ZOOM_FULL,\n selected: () => false,\n enabled: () => true,\n invoke: (_dispatch, _getState, viewer) => {\n if (viewer) {\n viewer.initialView();\n }\n }\n });\n //Refresh Map\n registerCommand(DefaultCommands.RefreshMap, {\n iconClass: SPRITE_ICON_REFRESHMAP,\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (dispatch, _getState, viewer) => {\n if (viewer) {\n viewer.refreshMap(RefreshMode.LayersOnly | RefreshMode.SelectionOnly);\n dispatch(refresh());\n }\n }\n });\n //Previous View\n registerCommand(DefaultCommands.PreviousView, {\n iconClass: SPRITE_VIEW_BACK,\n selected: () => false,\n enabled: CommandConditions.hasPreviousView,\n invoke: (dispatch, getState) => {\n const mapName = getState().config.activeMapName;\n if (mapName) {\n dispatch(previousView(mapName));\n }\n }\n });\n //Next View\n registerCommand(DefaultCommands.NextView, {\n iconClass: SPRITE_VIEW_FORWARD,\n selected: () => false,\n enabled: CommandConditions.hasNextView,\n invoke: (dispatch, getState) => {\n const mapName = getState().config.activeMapName;\n if (mapName) {\n dispatch(nextView(mapName));\n }\n }\n });\n //Geolocation\n registerCommand(DefaultCommands.Geolocation, {\n iconClass: SPRITE_GEOLOCATION,\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (_dispatch, getState, viewer, parameters) => {\n const state = getState();\n const view = getCurrentView(state);\n const rtMap = getRuntimeMap(state);\n const locale = state.config.locale;\n if (viewer && view && rtMap) {\n const fact = viewer.getOLFactory();\n const geoOptions: Partial = {};\n let zoomScale = view.scale;\n if (parameters.ZoomLevel) {\n zoomScale = parseInt(parameters.ZoomLevel, 10);\n }\n if (parameters.EnableHighAccuracy) {\n geoOptions.enableHighAccuracy = (parameters.EnableHighAccuracy == \"true\");\n }\n if (parameters.Timeout) {\n geoOptions.timeout = parseInt(parameters.Timeout, 10);\n }\n if (parameters.MaximumAge) {\n geoOptions.maximumAge = parseInt(parameters.MaximumAge, 10);\n }\n navigator.geolocation.getCurrentPosition(pos => {\n const proj = viewer.getProjection();\n const txCoord = fact.transformCoordinateFromLonLat([pos.coords.longitude, pos.coords.latitude], proj);\n const testCoord = fact.transformCoordinateFromLonLat([pos.coords.longitude, pos.coords.latitude], `EPSG:${rtMap.CoordinateSystem.EpsgCode}`);\n viewer.zoomToView(txCoord[0], txCoord[1], zoomScale);\n const extents: [number, number, number, number] = [\n rtMap.Extents.LowerLeftCoordinate.X,\n rtMap.Extents.LowerLeftCoordinate.Y,\n rtMap.Extents.UpperRightCoordinate.X,\n rtMap.Extents.UpperRightCoordinate.Y\n ];\n if (fact.extentContainsXY(extents, testCoord[0], testCoord[1])) {\n viewer.toastSuccess(\"geolocation\", tr(\"GEOLOCATION_SUCCESS\", locale));\n //getTopToaster().show({ icon: \"geolocation\", message: tr(\"GEOLOCATION_SUCCESS\", locale), intent: Intent.SUCCESS });\n } else {\n viewer.toastWarning(\"warning-sign\", tr(\"GEOLOCATION_WARN_OUTSIDE_MAP\", locale));\n //getTopToaster().show({ icon: \"warning-sign\", message: tr(\"GEOLOCATION_WARN_OUTSIDE_MAP\", locale), intent: Intent.WARNING });\n }\n }, err => {\n viewer.toastError(\"error\", tr(\"GEOLOCATION_ERROR\", locale, { message: err.message, code: err.code }));\n //getTopToaster().show({ icon: \"error\", message: tr(\"GEOLOCATION_ERROR\", locale, { message: err.message, code: err.code }), intent: Intent.DANGER });\n }, geoOptions);\n }\n }\n });\n //Coordinate Tracker\n registerCommand(DefaultCommands.CoordinateTracker, {\n iconClass: SPRITE_COORDINATE_TRACKER,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState, _viewer, parameters) => {\n const config = getState().config;\n const url = `component://CoordinateTracker?${(parameters.Projection || []).map((p: string) => \"projections=\" + p).join(\"&\")}`;\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.CoordinateTracker, cmdDef, config.capabilities.hasTaskPane, dispatch, url, tr(\"COORDTRACKER\", config.locale));\n }\n });\n //External Layer Manager\n registerCommand(DefaultCommands.AddManageLayers, {\n iconClass: SPRITE_LAYER_ADD,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState, _viewer, parameters) => {\n const config = getState().config;\n const url = `component://${DefaultComponentNames.AddManageLayers}`;\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.AddManageLayers, cmdDef, config.capabilities.hasTaskPane, dispatch, url, tr(\"ADD_MANAGE_LAYERS\", config.locale));\n }\n });\n //Print\n registerCommand(DefaultCommands.Print, {\n iconClass: SPRITE_PRINT,\n selected: () => false,\n enabled: () => true,\n invoke: (_dispatch, _getState, viewer, _parameters) => {\n viewer?.exportImage({\n callback: (image) => {\n const el = React.createElement(\"img\", { src: image });\n const printWindow = window.open();\n if (printWindow) {\n // Open and immediately close the document. This works around a problem in Firefox that is\n // captured here: https://bugzilla.mozilla.org/show_bug.cgi?id=667227.\n // Essentially, when we first create an iframe, it has no document loaded and asynchronously\n // starts a load of \"about:blank\". If we access the document object and start manipulating it\n // before that async load completes, a new document will be automatically created. But then\n // when the async load completes, the original, automatically-created document gets unloaded\n // and the new \"about:blank\" gets swapped in. End result: everything we add to the DOM before\n // the async load complete gets lost and Firefox ends up printing a blank page.\n // Explicitly opening and then closing a new document _seems_ to avoid this.\n printWindow.document.open();\n printWindow.document.close();\n \n printWindow.document.head.innerHTML = `\n \n Print View\n `;\n printWindow.document.body.innerHTML = '
';\n ReactDOM.render(el, printWindow.document.getElementById(\"print\"));\n }\n }\n });\n }\n });\n //Fusion template helper commands\n /*\n registerCommand(\"showOverview\", {\n icon: \"images/icons/invoke-script\",\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (dispatch, getState, viewer, parameters) => {\n\n }\n });\n */\n registerCommand(\"showTaskPane\", {\n iconClass: SPRITE_INVOKE_SCRIPT,\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (dispatch, _getState) => {\n dispatch(setTaskPaneVisibility(true));\n }\n });\n registerCommand(\"showLegend\", {\n iconClass: SPRITE_INVOKE_SCRIPT,\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (dispatch, _getState) => {\n dispatch(setLegendVisibility(true));\n }\n });\n registerCommand(\"showSelectionPanel\", {\n iconClass: SPRITE_INVOKE_SCRIPT,\n selected: () => false,\n enabled: CommandConditions.isNotBusy,\n invoke: (dispatch, _getState) => {\n dispatch(setSelectionPanelVisibility(true));\n }\n });\n}","import * as React from \"react\";\nimport { MouseCoordinatesContainer } from \"../containers/mouse-coordinates\";\nimport { NavigatorContainer } from \"../containers/navigator\";\nimport { ScaleDisplayContainer } from \"../containers/scale-display\";\nimport { TaskPaneContainer } from \"../containers/task-pane\";\nimport { About } from \"../components/about\";\nimport { MeasureContainer } from \"../containers/measure\";\nimport { BaseLayerSwitcherContainer } from \"../containers/base-layer-switcher\";\nimport { MapMenuContainer } from \"../containers/map-menu\";\nimport { CoordinateTrackerContainer } from \"../containers/coordinate-tracker\";\nimport { AddManageLayersContainer } from \"../containers/add-manage-layers\";\nimport { registerComponentFactory, DefaultComponentNames } from \"../api/registry/component\";\nimport { ViewSizeContainer } from \"../containers/view-size\";\nimport { ShareLinkToViewContainer } from '../containers/share-link-to-view';\n\n/**\n * Registers the default set of components\n *\n * @export\n */\nexport function registerDefaultComponents(): void {\n registerComponentFactory(DefaultComponentNames.Navigator, (props) => );\n registerComponentFactory(DefaultComponentNames.MouseCoordinates, (props) => );\n registerComponentFactory(DefaultComponentNames.ScaleDisplay, (props) => );\n registerComponentFactory(DefaultComponentNames.TaskPane, (props) => );\n registerComponentFactory(DefaultComponentNames.About, (props) => );\n registerComponentFactory(DefaultComponentNames.Measure, (props) => );\n registerComponentFactory(DefaultComponentNames.BaseMapSwitcher, (props) => );\n registerComponentFactory(DefaultComponentNames.MapMenu, (props) => );\n registerComponentFactory(DefaultComponentNames.ViewSize, (props) => );\n registerComponentFactory(DefaultComponentNames.CoordinateTracker, (props) => );\n registerComponentFactory(DefaultComponentNames.AddManageLayers, (props) => );\n registerComponentFactory(DefaultComponentNames.ShareLinkToView, (props) => );\n}","/**\n * The base of any viewer-related error\n *\n * @export\n * @class MgError\n * @extends {Error}\n */\nexport class MgError extends Error {\n constructor(public message: string) {\n super(message);\n this.name = \"MgError\";\n this.message = message;\n this.stack = (new Error()).stack;\n }\n}\n\n/**\n * Indicates if this error is a session expired error\n *\n * @export\n * @param {MgError} err\n * @returns {boolean}\n */\nexport function isSessionExpiredError(err: MgError): boolean {\n return err.message.indexOf(\"MgSessionExpiredException\") >= 0;\n}","import Feature from \"ol/Feature\";\nimport Geometry from 'ol/geom/Geometry';\nimport { Expression, Parser } from 'expr-eval';\nimport { strReplaceAll } from '../utils/string';\nimport { isClusteredFeature } from './ol-style-helpers';\nexport class ExprEvalContext {\n private exprCache: {\n [expr: string]: Expression;\n };\n private filterCache: {\n [expr: string]: Expression;\n };\n private clusterExprCache: {\n [expr: string]: Expression;\n };\n private clusterFilterCache: {\n [expr: string]: Expression;\n };\n private parser: Parser;\n constructor() {\n this.exprCache = {};\n this.filterCache = {};\n this.clusterExprCache = {};\n this.clusterFilterCache = {};\n this.parser = new Parser();\n this.parser.functions.agg_sum = function (collectionProperty: any, property: string) {\n if (Array.isArray(collectionProperty)) {\n const res = collectionProperty.reduce((running, currentItem) => running + (currentItem.get(property) ?? 0), 0);\n return res;\n }\n return undefined;\n };\n this.parser.functions.arr_size = function(collectionProperty: any) {\n if (Array.isArray(collectionProperty)) {\n return collectionProperty.length;\n }\n return 1;\n };\n this.parser.functions.feat_property = function(feature: any, name: string) {\n if (feature) {\n return feature.get(name);\n } else {\n return undefined;\n }\n }\n }\n public addFilter(expr: string) {\n if (!this.filterCache[expr]) {\n this.filterCache[expr] = this.parser.parse(expr);\n }\n }\n public addExpr(expr: string) {\n if (!this.exprCache[expr]) {\n this.exprCache[expr] = this.parser.parse(expr);\n }\n }\n public addClusterFilter(expr: string) {\n if (!this.clusterFilterCache[expr]) {\n this.clusterFilterCache[expr] = this.parser.parse(expr);\n }\n }\n public addClusterExpr(expr: string) {\n if (!this.clusterExprCache[expr]) {\n this.clusterExprCache[expr] = this.parser.parse(expr);\n }\n }\n private cleanValues(feat: Feature) {\n const vals = feat.getProperties();\n //UGLY: We have no guarantee that the properties in question will not have\n //spaces in them (that will break evaluation), so force the matter by replacing\n //spaces with underscores. What this means is if we find a property named \"OFFICE TYPE\", it\n //will be converted to \"OFFICE_TYPE\"\n const keys = Object.keys(vals);\n const cvals: any = {};\n for (const k of keys) {\n cvals[strReplaceAll(k, \" \", \"_\")] = vals[k];\n }\n return cvals;\n }\n public evaluateFilter(feat: Feature): string | undefined {\n const cvals = this.cleanValues(feat);\n const cache = isClusteredFeature(feat) ? this.clusterFilterCache : this.filterCache;\n for (const filter in cache) {\n // Does this feature match an expression?\n if (cache[filter].evaluate(cvals) == true) {\n return filter;\n }\n }\n return undefined;\n }\n public evaluate(expr: string, feat: Feature): any {\n const cvals = this.cleanValues(feat);\n if (isClusteredFeature(feat)) {\n this.addClusterExpr(expr);\n return this.clusterExprCache[expr].evaluate(cvals);\n }\n else {\n this.addExpr(expr);\n return this.exprCache[expr].evaluate(cvals);\n }\n }\n}\n","import { BaseLayerSetOL } from './base-layer-set';\nimport LayerGroup from 'ol/layer/Group';\nimport { Bounds, LayerTransparencySet, Size } from './common';\nimport View from 'ol/View';\nimport Source from 'ol/source/Source';\nimport LayerBase from \"ol/layer/Base\";\nimport TileLayer from \"ol/layer/Tile\";\nimport ImageLayer from \"ol/layer/Image\";\nimport { ProjectionLike } from 'ol/proj';\nimport { LAYER_ID_BASE, LAYER_ID_MG_BASE } from '../constants';\nimport { restrictToRange } from '../utils/number';\n\nexport const DEFAULT_METERS_PER_UNIT = 1.0;\nconst M_TO_IN = 39.37;\nconst DEFAULT_DPI = 96;\n\n/**\n * @hidden\n */\nexport class GenericLayerSetOL extends BaseLayerSetOL {\n constructor(view: View,\n public subjectLayer: LayerBase | undefined,\n extent: Bounds,\n externalBaseLayersGroup: LayerGroup | undefined,\n projection: ProjectionLike,\n metersPerUnit: number = DEFAULT_METERS_PER_UNIT,\n dpi: number = DEFAULT_DPI) {\n super(externalBaseLayersGroup, projection, dpi, extent, M_TO_IN * metersPerUnit, view);\n }\n getLayers(): LayerBase[] {\n const layers: LayerBase[] = [];\n if (this.externalBaseLayersGroup) {\n layers.push(this.externalBaseLayersGroup);\n }\n if (this.subjectLayer) {\n layers.push(this.subjectLayer);\n }\n return layers;\n }\n getSourcesForProgressTracking(): Source[] {\n const sources: Source[] = [];\n if (this.externalBaseLayersGroup) {\n const bls = this.externalBaseLayersGroup.getLayersArray();\n for (const bl of bls) {\n if (bl instanceof ImageLayer || bl instanceof TileLayer) {\n sources.push(bl.getSource());\n }\n }\n }\n if (this.subjectLayer instanceof ImageLayer) {\n sources.push(this.subjectLayer.getSource())\n } else if (this.subjectLayer instanceof TileLayer) {\n sources.push(this.subjectLayer.getSource())\n }\n return sources;\n }\n updateTransparency(trans: LayerTransparencySet): void {\n //If no external layers defined, this won't be set\n if (this.externalBaseLayersGroup) {\n if (LAYER_ID_BASE in trans) {\n this.externalBaseLayersGroup.setOpacity(restrictToRange(trans[LAYER_ID_BASE], 0, 1.0));\n } else {\n this.externalBaseLayersGroup.setOpacity(1.0);\n }\n }\n\n if (this.subjectLayer) {\n if (LAYER_ID_MG_BASE in trans) {\n const opacity = restrictToRange(trans[LAYER_ID_MG_BASE], 0, 1.0);\n this.subjectLayer.setOpacity(opacity);\n } else {\n this.subjectLayer.setOpacity(1.0);\n }\n }\n }\n showActiveSelectedFeature(mapExtent: Bounds, size: Size, uri: string): void {\n //throw new Error(\"Method not implemented.\");\n }\n update(showGroups: string[] | undefined, showLayers: string[] | undefined, hideGroups: string[] | undefined, hideLayers: string[] | undefined): void {\n //throw new Error(\"Method not implemented.\");\n }\n updateSelectionColor(color: string): void {\n //throw new Error(\"Method not implemented.\");\n }\n}","import { STRINGS_EN } from \"../strings/en\";\nimport { ILocalizedMessages } from \"../strings/msgdef\";\nimport { warn } from '../utils/logger';\n\nexport const DEFAULT_LOCALE = \"en\";\n\nconst STRINGS: { [locale: string]: ILocalizedMessages } = {\n \"en\": STRINGS_EN\n};\n\n/**\n * Registers a string bundle for the given locale\n *\n * @export\n * @param {string} locale\n * @param {ILocalizedMessages} bundle\n */\nexport function registerStringBundle(locale: string, bundle: ILocalizedMessages) {\n STRINGS[locale] = bundle;\n}\n\n/**\n * Formats the specified string and substitutes any placeholders (enclosed in {})\n * with the specified arguments\n *\n * @export\n * @param {string} format\n * @param {*} [args]\n * @returns {string}\n */\nexport function fmt(format: string, args?: any): string {\n let str = format;\n if (args != null) {\n for (const p in args) {\n //str = str.replace(new RegExp(`\\{${p}\\}`, \"g\"), `${args[p]}`);\n str = str.split(`{${p}}`).join(args[p]);\n }\n return str;\n };\n return str;\n}\n\n\n/**\n * Returns the localized string for the given key\n * \n * @export\n * @param {keyof ILocalizedMessages} key Any property name of {@link ILocalizedMessages}\n * @param {string} [locale=\"en\"] \n * @param {*} [args] If a localized string has placeholders, they will be replaced with the values defined here\n * @returns {string} \n */\nexport function tr(key: keyof ILocalizedMessages, locale = DEFAULT_LOCALE, args?: any): string {\n const bundle = STRINGS[locale];\n if (!bundle) {\n warn(`No such string bundle for locale: ${locale}`);\n return key;\n } else {\n let str = bundle[key];\n if (!str) {\n warn(`String bundle for locale (${locale}) is missing localized string for key: ${key}`);\n return key;\n } else {\n if (args != null) {\n return fmt(str, args);\n }\n return str;\n }\n }\n}","import { LayerProperty, ILayerManager, ILayerInfo, IParseFeaturesFromFileOptions, IAddLayerFromParsedFeaturesOptions, SourceProperty, IWmsLayerExtensions, LayerExtensions, Dictionary } from './common';\nimport olSourceVector from \"ol/source/Vector\";\nimport olMap from \"ol/Map\";\nimport olLayerBase from \"ol/layer/Base\";\nimport olPoint from \"ol/geom/Point\";\nimport { setOLVectorLayerStyle } from './ol-style-helpers';\nimport olTileLayer from \"ol/layer/Tile\";\nimport olImageLayer from \"ol/layer/Image\";\nimport olWmsSource from \"ol/source/ImageWMS\";\nimport olTileWmsSource from \"ol/source/TileWMS\";\nimport olVectorLayer from \"ol/layer/Vector\";\nimport olHeatmapLayer from \"ol/layer/Heatmap\";\nimport { getFormatDrivers } from './layer-manager/driver-registry';\nimport { IFormatDriver } from './layer-manager/format-driver';\nimport { tr } from './i18n';\nimport { IParsedFeatures } from './layer-manager/parsed-features';\nimport { LayerSetGroupBase } from './layer-set-group-base';\nimport { IInitialExternalLayer } from '../actions/defs';\nimport { IVectorLayerStyle, DEFAULT_VECTOR_LAYER_STYLE, IClusterSettings, ClusterClickAction, DEFAULT_CLUSTERED_LAYER_STYLE, IBasicVectorPointStyle, IBasicVectorPolygonStyle, IBasicVectorLineStyle, IVectorLabelSettings, ExprOr, IVectorFeatureStyle, IHeatmapSettings } from './ol-style-contracts';\nimport { OLStyleMapSet } from './ol-style-map-set';\nimport { clusterSourceIfRequired } from '../components/external-layer-factory';\nimport colorbrewer from \"colorbrewer\";\nimport { strIsNullOrEmpty } from '../utils/string';\nimport { getMaxRamp } from '../components/layer-manager/color-brewer';\n\nfunction cloneObject(obj: T) {\n return JSON.parse(JSON.stringify(obj)) as T;\n}\n\nfunction clonePointWithFill(baseTemplate: IBasicVectorPointStyle | undefined, fillColor: string) {\n if (!baseTemplate) {\n return undefined;\n }\n const clone = cloneObject(baseTemplate);\n switch (clone.type) {\n case \"Circle\":\n clone.fill.color = fillColor;\n break;\n }\n return clone;\n}\nfunction cloneLineWithFill(baseTemplate: IBasicVectorLineStyle | undefined, fillColor: string) {\n if (!baseTemplate) {\n return undefined;\n }\n const clone = cloneObject(baseTemplate);\n clone.color = fillColor;\n return clone;\n}\nfunction clonePolyWithFill(baseTemplate: IBasicVectorPolygonStyle | undefined, fillColor: string) {\n if (!baseTemplate) {\n return undefined;\n }\n const clone = cloneObject(baseTemplate);\n clone.fill.color = fillColor;\n return clone;\n}\nfunction ensureLabelText(style: IVectorLabelSettings, expr: ExprOr, isLine: boolean = false) {\n if (!style.label) {\n style.label = {\n text: expr,\n textAlign: \"left\",\n offsetX: 15,\n fill: {\n color: \"#000000\",\n alpha: 255\n },\n stroke: {\n color: \"#ffffff\",\n alpha: 255,\n width: 3\n }\n };\n if (isLine) {\n style.label.placement = \"line\";\n }\n } else {\n style.label.text = expr;\n }\n}\nfunction ensureLabelTextForStyle(fstyle: IVectorFeatureStyle, expr: ExprOr) {\n if (fstyle.line) {\n ensureLabelText(fstyle.line, expr, true);\n }\n if (fstyle.point) {\n ensureLabelText(fstyle.point, expr);\n }\n if (fstyle.polygon) {\n ensureLabelText(fstyle.polygon, expr);\n }\n}\n\nexport function getLayerInfo(layer: olLayerBase, isExternal: boolean): ILayerInfo {\n let vectorStyle: IVectorLayerStyle | undefined;\n let cs: IClusterSettings | undefined;\n let ext: LayerExtensions | undefined;\n let hs: IHeatmapSettings | undefined;\n if (layer instanceof olImageLayer || layer instanceof olTileLayer) {\n const source = layer.getSource();\n if (layer.get(LayerProperty.HAS_WMS_LEGEND) == true && (source instanceof olWmsSource || source instanceof olTileWmsSource)) {\n ext = {\n type: \"WMS\",\n getLegendUrl: (res?: number) => source.getLegendUrl(res)\n } as IWmsLayerExtensions;\n }\n }\n if (layer instanceof olVectorLayer) {\n const vs: OLStyleMapSet | undefined = layer.get(LayerProperty.VECTOR_STYLE);\n if (vs) {\n vectorStyle = vs.toVectorLayerStyle();\n cs = vs.toClusterSettings();\n }\n }\n if (layer instanceof olHeatmapLayer) {\n hs = {\n blur: layer.getBlur(),\n radius: layer.getRadius()\n };\n }\n return {\n visible: layer.getVisible(),\n selectable: layer.get(LayerProperty.IS_SELECTABLE) == true,\n name: layer.get(LayerProperty.LAYER_NAME),\n displayName: layer.get(LayerProperty.LAYER_DISPLAY_NAME) ?? layer.get(LayerProperty.LAYER_NAME),\n description: layer.get(LayerProperty.LAYER_DESCRIPTION),\n type: layer.get(LayerProperty.LAYER_TYPE),\n opacity: layer.getOpacity(),\n isExternal: isExternal,\n extensions: ext,\n vectorStyle,\n cluster: cs,\n heatmap: hs,\n busyWorkerCount: layer.get(LayerProperty.BUSY_WORKER_COUNT) ?? 0,\n metadata: layer.get(LayerProperty.LAYER_METADATA)\n }\n}\n\nexport class LayerManager implements ILayerManager {\n private _olFormats: IFormatDriver[];\n constructor(private map: olMap, private layerSet: LayerSetGroupBase) {\n this._olFormats = getFormatDrivers();\n }\n tryGetSubjectLayer(): olLayerBase | undefined {\n return this.layerSet.tryGetSubjectLayer();\n }\n /**\n * INTERNAL API\n * @param {IInitialExternalLayer} extLayer\n * @returns\n * @memberof LayerManager\n */\n addExternalLayer(extLayer: IInitialExternalLayer, onlyAddIfNotExists: boolean, appSettings: Dictionary) {\n if (onlyAddIfNotExists && this.hasLayer(extLayer.name)) {\n return undefined;\n }\n return this.layerSet.addExternalLayer(this.map, extLayer, appSettings);\n }\n getLayers(): ILayerInfo[] {\n return this.layerSet.getCustomLayers(this.map);\n }\n hasLayer(name: string): boolean {\n return this.layerSet.hasLayer(name);\n }\n addLayer(name: string, layer: T, allowReplace?: boolean | undefined): ILayerInfo {\n return this.layerSet.addLayer(this.map, name, layer, allowReplace);\n }\n removeLayer(name: string): olLayerBase | undefined {\n return this.layerSet.removeLayer(this.map, name);\n }\n getLayer(name: string): T | undefined {\n return this.layerSet.getLayer(name);\n }\n apply(layers: ILayerInfo[]): void {\n this.layerSet.apply(this.map, layers);\n }\n parseFeaturesFromFile(options: IParseFeaturesFromFileOptions): Promise {\n const { file, name: layerName, locale } = options;\n const that = this;\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n const handler = async function (e: ProgressEvent) {\n const result = e.target?.result;\n if (result && typeof (result) == 'string') {\n const formats = that._olFormats;\n if (formats.length == 0) {\n reject(new Error(tr(\"ADD_LOCAL_FILE_LAYER_FAILURE_NO_FORMATS\", locale)));\n }\n let loadedType: IParsedFeatures | undefined;\n let bLoaded = false;\n for (let i = 0, ii = formats.length; i < ii; ++i) {\n const format = formats[i];\n try {\n loadedType = await format.tryParse(file.size, result);\n } catch (e) {\n //console.log(e);\n }\n if (loadedType && loadedType.hasFeatures()) {\n loadedType.name = layerName;\n bLoaded = true;\n break;\n }\n }\n if (bLoaded && loadedType) {\n resolve(loadedType);\n } else {\n reject(new Error(tr(\"ADD_LOCAL_FILE_LAYER_FAILURE\", locale)));\n }\n } else {\n reject(new Error(tr(\"ADD_LOCAL_FILE_LAYER_FAILURE_NOT_TEXT\", locale)));\n }\n };\n reader.addEventListener(\"load\", handler);\n reader.readAsText(file);\n });\n }\n async addLayerFromParsedFeatures(options: IAddLayerFromParsedFeaturesOptions): Promise {\n const { features, projection, defaultStyle, extraOptions, labelOnProperty, selectedPopupTemplate, metadata, defn } = options;\n\n let proj = projection;\n if (!proj) {\n const view = this.map.getView();\n proj = view.getProjection();\n }\n const source = new olSourceVector();\n source.set(SourceProperty.SUPPRESS_LOAD_EVENTS, true);\n\n let csArgs;\n if (extraOptions?.kind == \"Cluster\") {\n csArgs = {\n distance: extraOptions.clusterDistance\n };\n }\n let layer: olLayerBase;\n if (extraOptions?.kind == \"Heatmap\") {\n layer = new olHeatmapLayer({\n source: source as olSourceVector,\n weight: extraOptions.weightProperty\n });\n } else {\n layer = new olVectorLayer({\n source: clusterSourceIfRequired(source, { cluster: csArgs }),\n className: \"external-vector-layer\", //This is to avoid false positives for map.forEachLayerAtPixel\n declutter: true\n });\n }\n await features.addTo(source, this.map.getView().getProjection(), proj);\n layer.set(LayerProperty.LAYER_NAME, features.name);\n layer.set(LayerProperty.LAYER_DISPLAY_NAME, features.name);\n layer.set(LayerProperty.LAYER_TYPE, features.type);\n layer.set(LayerProperty.LAYER_DEFN, defn);\n if (extraOptions?.kind == \"Heatmap\") {\n layer.set(LayerProperty.IS_HEATMAP, true);\n } else {\n layer.set(LayerProperty.IS_SELECTABLE, true);\n }\n layer.set(LayerProperty.IS_EXTERNAL, true);\n layer.set(LayerProperty.IS_GROUP, false);\n if (metadata) {\n layer.set(LayerProperty.LAYER_METADATA, metadata);\n }\n if (selectedPopupTemplate) {\n layer.set(LayerProperty.SELECTED_POPUP_CONFIGURATION, selectedPopupTemplate);\n }\n\n let clusterSettings: IClusterSettings | undefined;\n if (extraOptions?.kind == \"Cluster\") {\n clusterSettings = {\n distance: extraOptions.clusterDistance,\n onClick: extraOptions.onClusterClickAction ?? ClusterClickAction.ShowPopup,\n style: cloneObject(extraOptions.clusterStyle ?? defaultStyle ?? DEFAULT_CLUSTERED_LAYER_STYLE)\n };\n if (!strIsNullOrEmpty(labelOnProperty)) {\n for (const k in clusterSettings.style) {\n ensureLabelTextForStyle(clusterSettings.style[k], { expr: `if (arr_size(features) == 1, feat_property(features[0], '${labelOnProperty}'), '')` });\n }\n }\n }\n // Delete irrelevant styles based on geometry types encountered\n const bStyle: IVectorLayerStyle = defaultStyle ?? cloneObject(DEFAULT_VECTOR_LAYER_STYLE);\n if (!features.geometryTypes.includes(\"Point\")) {\n delete bStyle.default.point;\n delete clusterSettings?.style.default.point;\n }\n if (!features.geometryTypes.includes(\"LineString\")) {\n delete bStyle.default.line;\n delete clusterSettings?.style.default.line;\n }\n if (!features.geometryTypes.includes(\"Polygon\")) {\n delete bStyle.default.polygon;\n delete clusterSettings?.style.default.polygon;\n }\n\n if (!strIsNullOrEmpty(labelOnProperty)) {\n ensureLabelTextForStyle(bStyle.default, { expr: labelOnProperty });\n }\n\n if (extraOptions?.kind == \"Theme\") {\n const values = await features.getDistinctValues(extraOptions.themeOnProperty);\n let baseTemplatePoint = bStyle.default.point;\n let baseTemplateLine = bStyle.default.line;\n let baseTemplatePoly = bStyle.default.polygon;\n\n const th = extraOptions.colorBrewerTheme;\n let ramp = colorbrewer[th];\n if (!ramp) {\n ramp = colorbrewer.Blues;\n }\n const chosenRamp = getMaxRamp(ramp);\n const ruleCount = Math.min(values.length, chosenRamp.length);\n const palette = ramp[ruleCount];\n for (let i = 0; i < ruleCount; i++) {\n const v = values[i];\n const filter = `${extraOptions.themeOnProperty} == '${v}'`;\n const style = {\n label: v,\n point: clonePointWithFill(baseTemplatePoint, palette[i]),\n line: cloneLineWithFill(baseTemplateLine, palette[i]),\n polygon: clonePolyWithFill(baseTemplatePoly, palette[i]),\n };\n if (!strIsNullOrEmpty(labelOnProperty)) {\n ensureLabelTextForStyle(style, { expr: labelOnProperty });\n }\n (bStyle as any)[filter] = style;\n }\n }\n if (layer instanceof olVectorLayer) {\n setOLVectorLayerStyle(layer, bStyle, clusterSettings);\n }\n const layerInfo = this.addLayer(features.name, layer);\n return layerInfo;\n }\n}\n","import GeoJSON from \"ol/format/GeoJSON\";\nimport { IFormatDriver } from \"./format-driver\";\nimport { IParsedFeatures, ParsedFeatures } from './parsed-features';\nimport { strIsNullOrEmpty } from '../../utils/string';\n\nconst Papa = require(\"papaparse\");\n\ninterface IPapaParsedResults {\n data: any[];\n errors: {\n type: string;\n code: string;\n message: string;\n row: number;\n }[];\n meta: {\n delimiter?: string;\n linebreak?: string;\n aborted?: boolean;\n fields?: string[];\n truncated?: boolean;\n }\n}\n\nexport class CsvFormatDriver implements IFormatDriver {\n private type: string;\n constructor(private aliases: { xColumn: string, yColumn: string }[]) {\n this.type = \"CSV\";\n }\n public tryParse(size: number, text: string): Promise {\n const aliases = this.aliases;\n const type = this.type;\n return new Promise((resolve, reject) => {\n Papa.parse(text, {\n header: true,\n complete: function (results: IPapaParsedResults) {\n if (!results.data || results.data.length == 0) {\n reject(new Error(\"No data parsed. Probably not a CSV file\"));\n } else {\n if (results.meta.fields) {\n let parsed: IParsedFeatures | undefined;\n //Run through the alias list and see if we get any matches\n for (const alias of aliases) {\n if (parsed) {\n break;\n }\n const xc = results.meta.fields.filter(s => s.toLowerCase() == alias.xColumn.toLowerCase())?.[0];\n const yc = results.meta.fields.filter(s => s.toLowerCase() == alias.yColumn.toLowerCase())?.[0];\n // We found the columns, but before we accept this set, the columns\n // in question must be numeric. Being CSV and all, we'll use the most\n // scientific method to determine this: Sample the first row of data /s\n if (!strIsNullOrEmpty(xc) && !strIsNullOrEmpty(yc)) {\n const first = results.data[0];\n const firstX = parseFloat(first[xc]);\n const firstY = parseFloat(first[yc]);\n if (first && !isNaN(firstX) && !isNaN(firstY)) {\n const json = {\n type: 'FeatureCollection',\n features: [] as any[]\n };\n for (const d of results.data) {\n const x = parseFloat(d[xc]);\n const y = parseFloat(d[yc]);\n if (!isNaN(x) && !isNaN(y)) {\n const f = {\n type: 'Feature',\n geometry: {\n coordinates: [x, y],\n type: 'Point'\n },\n properties: d\n }\n delete f.properties[xc];\n delete f.properties[yc];\n json.features.push(f);\n }\n }\n const fmt = new GeoJSON();\n const features = fmt.readFeatures(json);\n const propNames: string[] = [];\n if (features.length > 0) {\n const first = features[0];\n for (const k of first.getKeys()) {\n if (k == first.getGeometryName()) {\n continue;\n }\n propNames.push(k);\n }\n }\n const pfs = async () => features;\n parsed = new ParsedFeatures(type, size, pfs, features.length > 0, [\"Point\"], propNames);\n break;\n }\n }\n }\n if (parsed) {\n resolve(parsed);\n } else {\n reject(new Error(\"Data successfully parsed as CSV, but coordinate columns could not be found\"));\n }\n } else {\n reject(new Error(\"No fields found in CSV metadata\"));\n }\n }\n }\n });\n });\n }\n}\n\nexport const CSV_COLUMN_ALIASES = [\n { xColumn: \"lon\", yColumn: \"lat\" },\n { xColumn: \"lng\", yColumn: \"lat\" },\n { xColumn: \"longitude\", yColumn: \"latitude\" },\n { xColumn: \"x\", yColumn: \"y\" },\n { xColumn: \"easting\", yColumn: \"northing\" }\n];","import { IFormatDriver } from \"./format-driver\";\n\nconst _drivers: IFormatDriver[] = [];\n\nexport function getFormatDrivers() { return _drivers; }\n\nexport function addFormatDriver(driver: IFormatDriver) {\n _drivers.push(driver);\n}","import { ParsedFeatures, IParsedFeatures } from './parsed-features';\nimport TextFeature from 'ol/format/TextFeature';\nimport JSONFeature from 'ol/format/JSONFeature';\nimport XMLFeature from 'ol/format/XMLFeature';\n\n/**\n * Defines a format driver for reading plain text into vector features\n *\n * @export\n * @interface IFormatDriver\n * @since 0.13\n */\nexport interface IFormatDriver {\n /**\n * Attempts to read the given text content into vector features. A failure\n * of this driver to parse the features is expressed by returning an object\n * where calling hasFeatures() on it returns false.\n *\n * @param {number} size\n * @param {string} text\n * @returns {Promise}\n * @memberof IFormatDriver\n */\n tryParse(size: number, text: string): Promise;\n}\n\n/**\n * A default format driver implementation primarily for interfacing with any\n * existing OpenLayers format driver instances\n *\n * @export\n * @class FormatDriver\n * @implements {IFormatDriver}\n * @since 0.13\n */\nexport class FormatDriver implements IFormatDriver {\n constructor(private type: string, private format: TextFeature | JSONFeature | XMLFeature, private defaultProjection: string | null = null) { }\n public async tryParse(size: number, text: string): Promise {\n const fs = this.format.readFeatures(text);\n let bHasPoint = false;\n let bHasLine = false;\n let bHasPoly = false;\n for (const f of fs) {\n const g = f.getGeometry();\n switch (g?.getType()) {\n case \"Point\":\n bHasPoint = true;\n break;\n case \"LineString\":\n bHasLine = true;\n break;\n case \"LinearRing\":\n bHasLine = true;\n break;\n case \"Polygon\":\n bHasPoly = true;\n break;\n case \"MultiPoint\":\n bHasPoint = true;\n break;\n case \"MultiLineString\":\n bHasLine = true;\n break;\n case \"MultiPolygon\":\n bHasPoly = true;\n break;\n case \"GeometryCollection\":\n bHasPoint = true;\n break;\n case \"Circle\":\n bHasPoly = true;\n break;\n }\n }\n let geomTypes: (\"Point\" | \"LineString\" | \"Polygon\")[] = [];\n if (bHasPoint) {\n geomTypes.push(\"Point\");\n }\n if (bHasLine) {\n geomTypes.push(\"LineString\");\n }\n if (bHasPoly) {\n geomTypes.push(\"Polygon\");\n }\n const propNames: string[] = [];\n if (fs.length > 0) {\n const first = fs[0];\n for (const k of first.getKeys()) {\n if (k == first.getGeometryName()) {\n continue;\n }\n propNames.push(k);\n }\n }\n const features = async () => fs;\n return new ParsedFeatures(this.type, size, features, fs.length > 0, geomTypes, propNames, this.defaultProjection);\n }\n}","import { ProjectionLike } from 'ol/proj';\nimport olSourceVector from \"ol/source/Vector\";\nimport Geometry from 'ol/geom/Geometry';\nimport Feature from 'ol/Feature';\nimport { strIsNullOrEmpty } from '../../utils/string';\n\n/**\n * Defines parsed features\n * \n * @export\n * @interface IParsedFeatures\n * @since 0.13\n */\nexport interface IParsedFeatures {\n /**\n * The name of this source\n */\n name: string;\n /**\n * Indicates if there are any features. If false, it signals that the parsing attempt failed\n */\n hasFeatures(): boolean;\n /**\n * The projection of this feature. If not set, the projection is unknown and the user should specify\n * the projection for these features. If set, it should be the projection used when adding the features\n * to a vector layer\n */\n projection: string | null;\n /**\n * The type of the source file\n */\n readonly type: string;\n /**\n * The size of the source file\n */\n readonly size: number;\n /**\n * Adds the parsed features from this file to the given vector data source\n * @param source \n * @param mapProjection \n * @param dataProjection \n * @since 0.14 This method is now async (returns a promise)\n */\n addTo(source: olSourceVector, mapProjection: ProjectionLike, dataProjection?: ProjectionLike): Promise;\n /**\n * The geometry types encountered in this source file\n * @since 0.14\n */\n geometryTypes: (\"Point\" | \"LineString\" | \"Polygon\")[];\n /**\n * The property names of features in this source file. This is generally based on sampling the first feature.\n * @since 0.14\n */\n propertyNames: string[];\n /**\n * Get all distinct values for the given property name\n * @param propertyName\n * @since 0.14\n */\n getDistinctValues(propertyName: string): Promise;\n}\n\nexport class ParsedFeatures implements IParsedFeatures {\n constructor(public type: string,\n public size: number,\n private features: () => Promise[]>,\n private hasFeaturesFlag: boolean,\n public geometryTypes: (\"Point\" | \"LineString\" | \"Polygon\")[],\n public propertyNames: string[],\n public projection: string | null = null) { }\n public hasFeatures(): boolean { return this.hasFeaturesFlag; }\n public name: string;\n public async addTo(source: olSourceVector, mapProjection: ProjectionLike, dataProjection?: ProjectionLike) {\n const features = await this.features();\n if (dataProjection) {\n for (const f of features) {\n const g = f.getGeometry();\n if (g) {\n const tg = g.transform(dataProjection, mapProjection)\n f.setGeometry(tg);\n }\n }\n }\n source.addFeatures(features);\n }\n public async getDistinctValues(propertyName: string): Promise {\n const values = [] as string[];\n const features = await this.features();\n for (const f of features) {\n const v = f.get(propertyName);\n if (!strIsNullOrEmpty(v) && !values.includes(v))\n values.push(v);\n }\n return values;\n }\n}","import LayerBase from \"ol/layer/Base\";\nimport { LayerProperty, IExternalBaseLayer, LayerTransparencySet, RefreshMode, Bounds, Size, ILayerInfo, Dictionary } from './common';\nimport { ILayerSetOL, IImageLayerEvents } from './layer-set-contracts';\nimport Feature from 'ol/Feature';\nimport { isMapGuideImageSource } from './ol-mapguide-source-factory';\nimport { getLayerInfo } from './layer-manager';\nimport { MgError } from './error';\nimport { tr } from './i18n';\nimport { setOLVectorLayerStyle } from './ol-style-helpers';\nimport VectorLayer from \"ol/layer/Vector\";\nimport VectorSource from \"ol/source/Vector\";\nimport Source from 'ol/source/Source';\nimport ImageSource from 'ol/source/Image';\nimport ImageWMSSource from \"ol/source/ImageWMS\";\nimport TileWMSSource from \"ol/source/TileWMS\";\nimport TileImageSource from \"ol/source/TileImage\";\nimport Map from \"ol/Map\";\nimport OverviewMap from \"ol/control/OverviewMap\"\nimport View from 'ol/View';\nimport { IInitialExternalLayer } from '../actions/defs';\nimport { createOLLayerFromSubjectDefn } from '../components/external-layer-factory';\nimport Geometry from 'ol/geom/Geometry';\nimport TileLayer from 'ol/layer/Tile';\nimport UrlTile from 'ol/source/UrlTile';\nimport ImageLayer from 'ol/layer/Image';\nimport { debug } from '../utils/logger';\nimport { OLVectorLayer } from \"./ol-types\";\nimport Fill from \"ol/style/Fill\";\nimport Stroke from \"ol/style/Stroke\";\nimport Style from \"ol/style/Style\";\nimport Text from \"ol/style/Text\";\nimport Heatmap from \"ol/layer/Heatmap\";\n\nconst HIGHLIGHT_STYLE = new Style({\n stroke: new Stroke({\n color: '#f00',\n width: 3,\n }),\n fill: new Fill({\n color: 'rgba(255,0,0,0.1)',\n }),\n text: new Text({\n font: '12px Calibri,sans-serif',\n fill: new Fill({\n color: '#000',\n }),\n stroke: new Stroke({\n color: '#f00',\n width: 3,\n }),\n }),\n});\n\nexport abstract class LayerSetGroupBase {\n protected mainSet: ILayerSetOL;\n protected overviewSet: ILayerSetOL;\n protected wmsSelOverlayLayer: OLVectorLayer;\n protected scratchLayer: OLVectorLayer;\n protected hoverHighlightLayer: OLVectorLayer;\n protected _customLayers: {\n [name: string]: {\n layer: LayerBase,\n order: number\n }\n };\n constructor(protected callback: IImageLayerEvents) {\n this._customLayers = {};\n this.scratchLayer = new VectorLayer({\n source: new VectorSource()\n });\n this.scratchLayer.set(LayerProperty.LAYER_NAME, \"__SCRATCH__\"); //NOXLATE\n this.scratchLayer.set(LayerProperty.IS_SCRATCH, true);\n this.wmsSelOverlayLayer = new VectorLayer({\n source: new VectorSource()\n });\n this.wmsSelOverlayLayer.set(LayerProperty.LAYER_NAME, \"__WMS_SELECTION_OVERLAY__\");\n this.wmsSelOverlayLayer.set(LayerProperty.IS_WMS_SELECTION_OVERLAY, true);\n this.hoverHighlightLayer = new VectorLayer({\n source: new VectorSource(),\n style: feature => {\n return HIGHLIGHT_STYLE\n }\n });\n this.hoverHighlightLayer.set(LayerProperty.LAYER_NAME, \"__HOVER_HIGHLIGHT__\"); //NOXLATE\n this.hoverHighlightLayer.set(LayerProperty.IS_HOVER_HIGHLIGHT, true)\n }\n addHighlightedFeature(feature: Feature) {\n this.hoverHighlightLayer.getSource()?.addFeature(feature);\n }\n removeHighlightedFeature(feature: Feature) {\n const hs = this.hoverHighlightLayer.getSource();\n if (hs?.hasFeature(feature)) {\n hs.removeFeature(feature);\n }\n }\n clearHighlightedFeatures() {\n this.hoverHighlightLayer.getSource()?.clear();\n }\n /**\n * @virtual\n * @returns {(LayerBase | undefined)}\n * @memberof LayerSetGroupBase\n */\n public tryGetSubjectLayer(): LayerBase | undefined { return undefined; }\n public addWmsSelectionOverlay(feat: Feature) {\n this.wmsSelOverlayLayer.getSource()?.addFeature(feat);\n }\n public clearWmsSelectionOverlay() {\n this.wmsSelOverlayLayer.getSource()?.clear();\n }\n public addScratchFeature(feat: Feature) {\n this.scratchLayer.getSource()?.addFeature(feat);\n }\n public clearScratchLayer() {\n this.scratchLayer.getSource()?.clear();\n }\n public abstract tryGetWmsSource(): [LayerBase, (ImageWMSSource | TileWMSSource)] | undefined;\n protected registerSourceEvents(source: Source): void {\n if (source instanceof ImageSource) {\n source.on(\"imageloadstart\", this.callback.addImageLoading);\n //onImageError is a MapGuide-specific callback\n if (isMapGuideImageSource(source)) {\n source.on(\"imageloaderror\", this.callback.onImageError);\n }\n source.on(\"imageloaderror\", this.callback.addImageLoaded);\n source.on(\"imageloadend\", this.callback.addImageLoaded);\n } else if (source instanceof TileImageSource) {\n source.on(\"tileloadstart\", this.callback.addImageLoading);\n source.on(\"tileloaderror\", this.callback.addImageLoaded);\n source.on(\"tileloadend\", this.callback.addImageLoaded);\n }\n }\n\n public updateExternalBaseLayers(externalBaseLayers: IExternalBaseLayer[]) {\n this.mainSet.updateExternalBaseLayers(externalBaseLayers);\n this.overviewSet.updateExternalBaseLayers(externalBaseLayers);\n }\n public updateTransparency = (trans: LayerTransparencySet) => this.mainSet.updateTransparency(trans);\n public fitViewToExtent = () => this.mainSet.view.fit(this.mainSet.extent);\n public getView = () => this.mainSet.view;\n public getDpi = () => this.mainSet.dpi;\n public getExtent = () => this.mainSet.extent;\n public getLayersForOverviewMap = () => this.overviewSet.getLayers();\n public getProjection = () => this.mainSet.projection;\n public refreshMap = (mode: RefreshMode) => this.mainSet.refreshMap(mode);\n public showActiveSelectedFeature = (mapExtent: Bounds, size: Size, uri: string) => this.mainSet.showActiveSelectedFeature(mapExtent, size, uri);\n public getMetersPerUnit = () => this.mainSet.getMetersPerUnit();\n public scaleToResolution = (scale: number) => this.mainSet.scaleToResolution(scale);\n public resolutionToScale = (resolution: number) => this.mainSet.resolutionToScale(resolution);\n\n public attach(map: Map, ovMapControl: OverviewMap, bSetLayers = true): void {\n // To guard against the possibility that we may be attaching layers to a map that\n // already has layers (eg. Measurements), we reverse iterate all the layers we need to\n // add and insert them to the front one-by-one, ensuring all the layers we add will be\n // at the bottom of the draw order\n const layers = map.getLayers();\n // Attach hover layers\n layers.insertAt(0, this.hoverHighlightLayer);\n // Attach scratch layer\n layers.insertAt(0, this.scratchLayer);\n // Attach custom layers\n const customLayers = Object.keys(this._customLayers).map(k => this._customLayers[k]);\n customLayers.sort((a, b) => {\n return a.order - b.order;\n });\n // External layers may have been pre-loaded, to clear out any existing external layers\n for (const item of customLayers) {\n layers.remove(item.layer);\n }\n for (const item of customLayers) {\n layers.insertAt(0, item.layer);\n }\n // Then the regular layers\n const allLayers = this.mainSet.getLayers();\n for (let i = allLayers.length - 1; i >= 0; i--) {\n layers.insertAt(0, allLayers[i]);\n }\n map.setView(this.mainSet.view);\n if (bSetLayers) {\n const ovMap = ovMapControl.getOverviewMap();\n const ovLayers = this.getLayersForOverviewMap();\n for (const layer of ovLayers) {\n ovMap.addLayer(layer);\n }\n //ol.View has immutable projection, so we have to replace the whole view on the OverviewMap\n const center = this.mainSet.view.getCenter();\n if (center) {\n ovMap.setView(new View({\n center: [center[0], center[1]],\n resolution: this.mainSet.view.getResolution(),\n projection: this.mainSet.view.getProjection()\n }));\n } else {\n const view = new View({\n projection: this.mainSet.view.getProjection()\n });\n ovMap.setView(view);\n view.fit(this.mainSet.extent, { size: ovMap.getSize() });\n }\n }\n }\n public detach(map: Map, ovMapControl: OverviewMap): void {\n const allLayers = this.mainSet.getLayers();\n for (const layer of allLayers) {\n map.removeLayer(layer);\n }\n //Detach custom layers\n for (const layerName in this._customLayers) {\n map.removeLayer(this._customLayers[layerName].layer);\n }\n //Detach scratch layer\n map.removeLayer(this.scratchLayer);\n //Detach hover highlight layer\n map.removeLayer(this.hoverHighlightLayer);\n const ovLayers = this.getLayersForOverviewMap();\n const ovMap = ovMapControl.getOverviewMap();\n for (const layer of ovLayers) {\n ovMap.removeLayer(layer);\n }\n }\n public getCustomLayers(map: Map): ILayerInfo[] {\n const larr = map.getLayers().getArray();\n const layers = larr\n .filter(l => this._customLayers[l.get(LayerProperty.LAYER_NAME)] != null)\n .map(l => ({\n ...getLayerInfo(l, true),\n //Smuggle these values out for debugging purposes\n isSelectable: this._customLayers[l.get(LayerProperty.LAYER_NAME)].layer.get(LayerProperty.IS_SELECTABLE) == true,\n order: this._customLayers[l.get(LayerProperty.LAYER_NAME)].order\n }));\n return layers.reverse();\n }\n public hasLayer(name: string): boolean {\n return this._customLayers[name] != null;\n }\n public addExternalLayer(map: Map, extLayer: IInitialExternalLayer, appSettings: Dictionary): ILayerInfo {\n const layer = createOLLayerFromSubjectDefn(extLayer, map.getView().getProjection(), true, appSettings);\n return this.addLayer(map, extLayer.name, layer);\n }\n public addLayer(map: Map, name: string, layer: T, allowReplace?: boolean): ILayerInfo {\n const bAllow = !!allowReplace;\n if (this._customLayers[name]) {\n if (!bAllow) {\n throw new MgError(tr(\"LAYER_NAME_EXISTS\", this.callback.getLocale(), { name: name }));\n } else {\n //Remove the layer that is about to be replaced first \n map.removeLayer(this._customLayers[name].layer);\n }\n }\n\n //These layer properties may have already been set, so only set if not set already (display name) or it is different (layer name)\n if (layer.get(LayerProperty.LAYER_NAME) != name)\n layer.set(LayerProperty.LAYER_NAME, name);\n if (!layer.get(LayerProperty.LAYER_DISPLAY_NAME))\n layer.set(LayerProperty.LAYER_DISPLAY_NAME, name);\n\n //console.log(`addLayer(): ${layer.get(LayerProperty.LAYER_NAME)}`);\n\n //HACK: For reasons unknown, measurement layers aren't being cleanly detached/attached during apply() so there is a possibility\n //we are re-adding this measurement layer (from measure context activation), and the layer is already there!\n //\n //So as a nuclear solution, remove the layer we're about to add (as un-intutitive as that sounds!)\n map.removeLayer(layer);\n map.addLayer(layer);\n this._customLayers[name] = { layer, order: map.getLayers().getArray().indexOf(layer) };\n\n const tileLoaders = this.callback.getTileLoaders();\n for (const k in tileLoaders) {\n const func = tileLoaders[k];\n const layer = this.getLayer(k);\n if (layer) {\n if (layer instanceof TileLayer) {\n const source = layer.getSource();\n if (source instanceof UrlTile) {\n source.setTileLoadFunction(func);\n debug(`Added custom tile loader for layer: ${k}`);\n }/* else {\n warn(`Layer has a source is not a valid candidate for adding a custom tile loader: ${k}`);\n }*/\n }/* else {\n warn(`Layer is not a valid candidate for adding a custom tile loader: ${k}`);\n }*/\n }\n }\n const imageLoaders = this.callback.getImageLoaders();\n for (const k in imageLoaders) {\n const func = imageLoaders[k];\n const layer = this.getLayer(k);\n if (layer) {\n if (layer instanceof ImageLayer) {\n const source: any = layer.getSource();\n if (typeof (source.setImageLoadFunction) == 'function') {\n source.setImageLoadFunction(func);\n debug(`Added custom tile loader for layer: ${k}`);\n }/* else {\n warn(`Layer has a source is not a valid candidate for adding a custom tile loader: ${k}`);\n }*/\n }/* else {\n warn(`Layer is not a valid candidate for adding a custom tile loader: ${k}`);\n }*/\n }\n }\n\n return {\n ...getLayerInfo(layer, true),\n //Smuggle these values out for debugging purposes\n ...{\n isSelectable: this._customLayers[name].layer.get(LayerProperty.IS_SELECTABLE) == true,\n order: this._customLayers[name].order\n }\n };\n }\n public removeLayer(map: Map, name: string): LayerBase | undefined {\n let layer: LayerBase;\n if (this._customLayers[name]) {\n layer = this._customLayers[name].layer;\n //console.log(`removeLayer(): ${layer.get(LayerProperty.LAYER_NAME)}`);\n map.removeLayer(layer);\n delete this._customLayers[name];\n return layer;\n }\n }\n public getLayer(name: string): T | undefined {\n let layer: T | undefined;\n if (this._customLayers[name]) {\n layer = this._customLayers[name]?.layer as T;\n }\n return layer;\n }\n public apply(map: Map, layers: ILayerInfo[]): void {\n const layersByName = layers.reduce((current, layer) => {\n current[layer.name] = layer;\n return current;\n }, {} as any);\n //Apply opacity/visibility/styling and other top-level properties\n for (const layer of layers) {\n const oll = this._customLayers[layer.name]?.layer;\n if (oll) {\n oll.setVisible(layer.visible);\n oll.setOpacity(layer.opacity);\n oll.set(LayerProperty.BUSY_WORKER_COUNT, layer.busyWorkerCount);\n if (oll instanceof VectorLayer && layer.vectorStyle) {\n setOLVectorLayerStyle(oll, layer.vectorStyle, layer.cluster);\n }\n if (layer.heatmap) {\n if (oll instanceof Heatmap) {\n oll.setBlur(layer.heatmap.blur);\n oll.setRadius(layer.heatmap.radius);\n }\n }\n }\n }\n\n //Measurement layer is hidden and is not tracked by the layer manager (in terms of round-tripped layer information)\n //so if it is present in our custom layers set, it may be removed. So if we find it, capture it for restoration\n let theMeasureLayer: LayerBase | undefined;\n //Apply removals \n for (const layerName in this._customLayers) {\n if (!layersByName[layerName]) {\n const removed = this.removeLayer(map, layerName);\n if (removed?.get(LayerProperty.IS_MEASURE) === true) {\n //console.log(`Removed measurement layer: ${removed.get(LayerProperty.LAYER_NAME)}`);\n theMeasureLayer = removed;\n }\n }\n }\n\n //Fix order if required\n //First item, top-most\n //Last item, bottom-most\n const cCurrentLayers = map.getLayers();\n const aCurrentLayers = cCurrentLayers.getArray();\n const currentLayers = aCurrentLayers.map(l => ({\n name: l.get(LayerProperty.LAYER_NAME),\n type: l.get(LayerProperty.LAYER_TYPE),\n isExternal: l.get(LayerProperty.IS_EXTERNAL),\n isGroup: l.get(LayerProperty.IS_GROUP),\n layer: l\n })).filter(l => l.isExternal == true);\n //console.assert(currentLayers.length == layers.length);\n //console.table(currentLayers);\n //console.table(layers);\n\n //If sizes don't match, do a full invalidation\n if (currentLayers.length != layers.length) {\n //Clear everything custom\n for (const toRemove of currentLayers) {\n map.removeLayer(toRemove.layer);\n }\n for (const rn in this._customLayers) {\n const toRemove = this._customLayers[rn];\n map.removeLayer(toRemove.layer);\n }\n //Re-add in order according to layers array\n for (let i = layers.length - 1; i >= 0; i--) {\n const item = this._customLayers[layers[i].name];\n if (item) {\n map.addLayer(item.layer);\n item.order = cCurrentLayers.getArray().indexOf(item.layer);\n }\n }\n } else { //Otherwise see if we need to re-order\n let bReorder = false;\n let ii = 0;\n for (let i = layers.length - 1; i >= 0; i--) {\n const layer = layers[i];\n //console.log(`Checking if layer (${layer.name}) needs re-ordering`);\n if (layer.name != currentLayers[ii].name) {\n bReorder = true;\n break;\n }\n ii++;\n }\n if (bReorder) {\n //console.log(\"Re-ordering layers\");\n for (const toRemove of currentLayers) {\n map.removeLayer(toRemove.layer);\n }\n //Re-add in order according to layers array\n for (let i = layers.length - 1; i >= 0; i--) {\n const toAdd = currentLayers.filter(l => l.name == layers[i].name)[0];\n map.addLayer(toAdd.layer);\n const item = this._customLayers[layers[i].name];\n if (item) {\n item.order = cCurrentLayers.getArray().indexOf(toAdd.layer);\n }\n }\n }\n }\n // The scratch layer (where client-side selection overlays and other temp vector features reside) must always be topmost\n if (cCurrentLayers.item(cCurrentLayers.getLength() - 1) != this.scratchLayer) {\n map.removeLayer(this.scratchLayer);\n map.addLayer(this.scratchLayer);\n //const layers2 = cCurrentLayers.getArray();\n //console.log(layers2);\n }\n\n // And the wms selection overlay layer\n if (cCurrentLayers.item(cCurrentLayers.getLength() - 1) != this.wmsSelOverlayLayer) {\n map.removeLayer(this.wmsSelOverlayLayer);\n map.addLayer(this.wmsSelOverlayLayer);\n //const layers2 = cCurrentLayers.getArray();\n //console.log(layers2);\n }\n\n // And the hover highlight layer on top of that\n if (cCurrentLayers.item(cCurrentLayers.getLength() - 1) != this.hoverHighlightLayer) {\n map.removeLayer(this.hoverHighlightLayer);\n map.addLayer(this.hoverHighlightLayer);\n //const layers2 = cCurrentLayers.getArray();\n //console.log(layers2);\n }\n\n // And then the measurement layer, if present\n if (theMeasureLayer) {\n if (cCurrentLayers.item(cCurrentLayers.getLength() - 1) != theMeasureLayer) {\n map.removeLayer(theMeasureLayer);\n map.addLayer(theMeasureLayer);\n //console.log(`Re-adding measurement layer: ${theMeasureLayer.get(LayerProperty.LAYER_NAME)}`);\n }\n }\n }\n}","import { RefreshMode, IExternalBaseLayer, Bounds, LayerTransparencySet, LayerProperty, MgBuiltInLayers, MgLayerType, MG_LAYER_TYPE_NAME, MG_BASE_LAYER_GROUP_NAME, ImageFormat, GenericEvent, ClientKind, Coordinate2D, Size, BLANK_SIZE, Dictionary, UnitOfMeasure } from './common';\nimport LayerGroup from \"ol/layer/Group\";\nimport TileGrid from \"ol/tilegrid/TileGrid\";\nimport AbstractSource from \"ol/source/Source\";\nimport TileImageSource from \"ol/source/TileImage\";\nimport { createMapGuideSource } from \"./ol-mapguide-source-factory\";\nimport ImageStaticSource from \"ol/source/ImageStatic\";\nimport { restrictToRange } from \"../utils/number\";\nimport View from \"ol/View\";\nimport * as olExtent from \"ol/extent\";\nimport TileLayer from \"ol/layer/Tile\";\nimport ImageLayer from \"ol/layer/Image\";\nimport LayerBase from \"ol/layer/Base\";\nimport { RuntimeMap } from './contracts/runtime-map';\nimport { createExternalSource, createOLLayerFromSubjectDefn } from '../components/external-layer-factory';\nimport { strIsNullOrEmpty } from '../utils/string';\nimport { parseUrl } from '../utils/url';\nimport ImageWrapper from 'ol/Image';\nimport { DEFAULT_LOCALE, tr } from './i18n';\nimport * as olHas from \"ol/has\";\nimport Feature from \"ol/Feature\";\nimport { debug } from '../utils/logger';\nimport { Client } from './client';\nimport { ILayerSetOL, IImageLayerEvents } from './layer-set-contracts';\nimport Geometry from 'ol/geom/Geometry';\nimport UrlTile from 'ol/source/UrlTile';\nimport { LoadFunction as TileLoadFunction } from 'ol/Tile';\nimport { MapGuideMockMode } from '../components/mapguide-debug-context';\nimport { BLANK_GIF_DATA_URI, LAYER_ID_BASE, LAYER_ID_MG_BASE, LAYER_ID_MG_SEL_OVERLAY } from '../constants';\nimport { OLImageLayer, OLTileLayer } from './ol-types';\nimport { IGenericSubjectMapLayer } from '../actions/defs';\nimport { GenericLayerSetOL } from './generic-layer-set';\nimport { get, METERS_PER_UNIT, Projection, ProjectionLike } from \"ol/proj\";\nimport { isRuntimeMap } from '../utils/type-guards';\nimport { MgError } from './error';\nimport { tryParseArbitraryCs } from '../utils/units';\n\nconst DEFAULT_BOUNDS_3857: Bounds = [\n -20026376.39,\n -20048966.10,\n 20026376.39,\n 20048966.10\n];\n\nconst DEFAULT_BOUNDS_4326: Bounds = [-180, -90, 180, 90];\n\nfunction getMetersPerUnit(projection: string) {\n const proj = get(projection);\n return proj?.getMetersPerUnit();\n}\n\nfunction toMetersPerUnit(unit: UnitOfMeasure) {\n const u = toProjUnit(unit);\n // Use OL-provided mpu if available\n let mpu = METERS_PER_UNIT[u];\n if (mpu) {\n return mpu;\n } else {\n // Otherwise, compute ourselves\n switch (unit) {\n case UnitOfMeasure.Centimeters:\n return 0.01;\n case UnitOfMeasure.DMS:\n case UnitOfMeasure.DecimalDegrees:\n case UnitOfMeasure.Degrees:\n return (2 * Math.PI * 6370997) / 360;\n case UnitOfMeasure.Feet:\n return 0.3048;\n case UnitOfMeasure.Inches:\n return 0.0254;\n case UnitOfMeasure.Kilometers:\n return 1000;\n case UnitOfMeasure.Meters:\n return 1;\n case UnitOfMeasure.Miles:\n return 1609.344;\n case UnitOfMeasure.Millimeters:\n return 0.001;\n case UnitOfMeasure.NauticalMiles:\n return 1852;\n case UnitOfMeasure.Pixels:\n return 1;\n case UnitOfMeasure.Unknown:\n return 1;\n case UnitOfMeasure.Yards:\n return 0.9144;\n }\n }\n}\n\nexport function toProjUnit(unit: UnitOfMeasure) {\n switch (unit) {\n case UnitOfMeasure.Meters:\n return \"m\";\n case UnitOfMeasure.Feet:\n return \"ft\";\n case UnitOfMeasure.Inches:\n return \"in\";\n case UnitOfMeasure.Centimeters:\n return \"cm\";\n case UnitOfMeasure.Kilometers:\n return \"km\";\n case UnitOfMeasure.Yards:\n return \"yd\";\n case UnitOfMeasure.Millimeters:\n return \"mm\";\n case UnitOfMeasure.Miles:\n return \"mi\";\n case UnitOfMeasure.NauticalMiles:\n return \"nm\";\n case UnitOfMeasure.Pixels:\n return \"px\";\n default:\n throw new MgError(\"Unsupported unit\");\n }\n}\n\nexport function blankImageLoadFunction(image: ImageWrapper) {\n (image.getImage() as any).src = BLANK_GIF_DATA_URI;\n}\n\nexport function mockMapGuideImageLoadFunction(image: ImageWrapper, src: string) {\n let el = document.getElementById(\"mg-debug-text-canvas\");\n if (!el) {\n el = document.createElement(\"canvas\");\n el.style.visibility = \"hidden\";\n el.id = \"mg-debug-text-canvas\";\n document.body.append(el);\n }\n const tCtx = (el as HTMLCanvasElement).getContext(\"2d\");\n if (tCtx) {\n tCtx.clearRect(0, 0, tCtx.canvas.width, tCtx.canvas.height);\n\n const strings = [];\n const parsed = parseUrl(src);\n strings.push(\"[Mock MapGuide Map Image Request]\");\n strings.push(`Agent: ${parsed.url}`);\n\n const xoff = 10;\n const yoff = 30;\n const fontSize = 14;\n let mm = tCtx.measureText(strings[0])\n let maxSize = mm.width + xoff;\n\n let ch = yoff + fontSize + 2;\n\n maxSize = Math.max(tCtx.measureText(strings[1]).width + xoff, maxSize);\n ch += (fontSize + 2);\n\n const keys = Object.keys(parsed.query);\n for (const k of keys) {\n if (k == \"MAPNAME\" || k == \"SETDISPLAYWIDTH\" || k == \"SETDISPLAYHEIGHT\" || k == \"SETVIEWCENTERX\" || k == \"SETVIEWCENTERY\" || k == \"SETVIEWSCALE\") {\n if (!strIsNullOrEmpty(parsed.query[k])) {\n const s = `${k}: ${parsed.query[k]}`;\n strings.push(s);\n maxSize = Math.max(tCtx.measureText(s).width + xoff, maxSize);\n ch += (fontSize + 2);\n }\n }\n }\n\n tCtx.canvas.width = maxSize;\n tCtx.canvas.height = ch;\n tCtx.fillStyle = \"rgba(255, 0, 0, 0.5)\";\n tCtx.fillRect(0, 0, maxSize, ch);\n\n tCtx.fillStyle = \"rgba(255, 255, 0, 1.0)\";\n //console.log(`Canvas size: [${tCtx.canvas.width}, ${tCtx.canvas.height}]`);\n tCtx.font = `${fontSize}px sans-serif`;\n\n let y = yoff;\n for (const str of strings) {\n //console.log(`Draw (${str}) at [10, ${y}]`);\n tCtx.fillText(str, 10, y);\n y += (fontSize + 1);\n }\n (image.getImage() as any).src = tCtx.canvas.toDataURL();\n }\n}\n\nexport enum MgLayerSetMode {\n Stateless,\n Stateful,\n OverviewMap\n}\n\n/**\n * @hidden\n */\nexport class MgLayerSetOL implements ILayerSetOL {\n constructor(public readonly mgTiledLayers: OLTileLayer[],\n public readonly externalBaseLayersGroup: LayerGroup | undefined,\n public readonly overlay: OLImageLayer,\n public readonly projection: ProjectionLike,\n public readonly dpi: number,\n public readonly extent: Bounds,\n private readonly inPerUnit: number,\n public readonly view: View) { }\n\n public selectionOverlay: OLImageLayer | undefined;\n public activeSelectedFeatureOverlay: OLImageLayer | undefined;\n\n public getMetersPerUnit(): number {\n return this.inPerUnit / 39.37\n }\n public scaleToResolution(scale: number): number {\n return (scale / this.inPerUnit / this.dpi) * olHas.DEVICE_PIXEL_RATIO;\n }\n public resolutionToScale(resolution: number): number {\n return (resolution * this.dpi * this.inPerUnit) / olHas.DEVICE_PIXEL_RATIO;\n }\n public getSourcesForProgressTracking(): AbstractSource[] {\n const sources: AbstractSource[] = [];\n if (this.externalBaseLayersGroup) {\n const bls = this.externalBaseLayersGroup.getLayersArray();\n for (const bl of bls) {\n if (bl instanceof ImageLayer || bl instanceof TileLayer) {\n sources.push(bl.getSource());\n }\n }\n }\n for (let i = this.mgTiledLayers.length - 1; i >= 0; i--) {\n const s = this.mgTiledLayers[i].getSource();\n if (s) {\n sources.push();\n }\n }\n const ovs = this.overlay.getSource();\n if (ovs) {\n sources.push(ovs);\n }\n if (this.selectionOverlay) {\n const sovs = this.selectionOverlay.getSource();\n if (sovs) {\n sources.push(sovs);\n }\n }\n if (this.activeSelectedFeatureOverlay) {\n const asovs = this.activeSelectedFeatureOverlay.getSource();\n if (asovs) {\n sources.push(asovs);\n }\n }\n return sources;\n }\n public getLayers(): LayerBase[] {\n const layers: LayerBase[] = [];\n if (this.externalBaseLayersGroup) {\n layers.push(this.externalBaseLayersGroup);\n }\n for (let i = this.mgTiledLayers.length - 1; i >= 0; i--) {\n layers.push(this.mgTiledLayers[i]);\n }\n layers.push(this.overlay);\n if (this.selectionOverlay) {\n layers.push(this.selectionOverlay);\n }\n if (this.activeSelectedFeatureOverlay) {\n layers.push(this.activeSelectedFeatureOverlay);\n }\n return layers;\n }\n public update(showGroups: string[] | undefined, showLayers: string[] | undefined, hideGroups: string[] | undefined, hideLayers: string[] | undefined) {\n //Send the request\n const imgSource = this.overlay.getSource() as any; //olMapGuideSource;\n //NOTE: Even if these group ids being shown/hidden are MG base layer groups, it still has to be\n //done as the server-side snapshot of the runtime map needs to be aware as well. This will be\n //apparent if you were to plot a runtime-map server-side that has base layer groups.\n imgSource.updateParams({\n showlayers: showLayers,\n showgroups: showGroups,\n hidelayers: hideLayers,\n hidegroups: hideGroups\n });\n //As MG base layer groups are separate ol layer instances, we have to toggle them on the client-side as well\n if (showGroups && showGroups.length > 0) {\n for (const groupId of showGroups) {\n const match = this.mgTiledLayers.filter(l => l.get(LayerProperty.LAYER_NAME) === groupId);\n if (match.length == 1) {\n match[0].setVisible(true);\n }\n }\n }\n if (hideGroups && hideGroups.length > 0) {\n for (const groupId of hideGroups) {\n const match = this.mgTiledLayers.filter(l => l.get(LayerProperty.LAYER_NAME) === groupId);\n if (match.length == 1) {\n match[0].setVisible(false);\n }\n }\n }\n }\n public updateSelectionColor(color: string) {\n if (this.selectionOverlay) {\n const source = this.selectionOverlay.getSource() as any; // olMapGuideSource;\n source.updateParams({\n SELECTIONCOLOR: color\n });\n }\n }\n public updateExternalBaseLayers(externalBaseLayers: IExternalBaseLayer[]) {\n if (this.externalBaseLayersGroup) {\n const layers = this.externalBaseLayersGroup.getLayers();\n layers.forEach((l: LayerBase) => {\n const match = (externalBaseLayers || []).filter(el => el.name === l.get(\"title\"));\n if (match.length == 1) {\n l.setVisible(!!match[0].visible);\n } else {\n l.setVisible(false);\n }\n });\n }\n }\n public updateTransparency(trans: LayerTransparencySet) {\n //If no external layers defined, this won't be set\n if (this.externalBaseLayersGroup) {\n if (LAYER_ID_BASE in trans) {\n this.externalBaseLayersGroup.setOpacity(restrictToRange(trans[LAYER_ID_BASE], 0, 1.0));\n } else {\n this.externalBaseLayersGroup.setOpacity(1.0);\n }\n }\n\n if (LAYER_ID_MG_BASE in trans) {\n const opacity = restrictToRange(trans[LAYER_ID_MG_BASE], 0, 1.0);\n this.overlay.setOpacity(opacity);\n for (const group of this.mgTiledLayers) {\n group.setOpacity(opacity);\n }\n } else {\n this.overlay.setOpacity(1.0);\n for (const group of this.mgTiledLayers) {\n group.setOpacity(1.0);\n }\n }\n\n if (this.selectionOverlay) {\n if (LAYER_ID_MG_SEL_OVERLAY in trans) {\n this.selectionOverlay.setOpacity(restrictToRange(trans[LAYER_ID_MG_SEL_OVERLAY], 0, 1.0));\n } else {\n this.selectionOverlay.setOpacity(1.0);\n }\n }\n }\n public refreshMap(mode: RefreshMode = RefreshMode.LayersOnly | RefreshMode.SelectionOnly): void {\n if ((mode & RefreshMode.LayersOnly) == RefreshMode.LayersOnly) {\n const imgSource = this.overlay.getSource() as any; // olMapGuideSource;\n imgSource.updateParams({\n seq: (new Date()).getTime()\n });\n }\n if (this.selectionOverlay) {\n if ((mode & RefreshMode.SelectionOnly) == RefreshMode.SelectionOnly) {\n const imgSource = this.selectionOverlay.getSource() as any; // olMapGuideSource;\n imgSource.updateParams({\n seq: (new Date()).getTime()\n });\n }\n }\n }\n private makeActiveSelectedFeatureSource(mapExtent: Bounds, size: Size, url: string = BLANK_GIF_DATA_URI) {\n return new ImageStaticSource({\n imageExtent: mapExtent,\n imageSize: [size.w, size.h],\n url: url\n });\n }\n public showActiveSelectedFeature(mapExtent: Bounds, size: Size, uri: string) {\n if (this.activeSelectedFeatureOverlay) {\n this.activeSelectedFeatureOverlay.setSource(this.makeActiveSelectedFeatureSource(mapExtent, size, uri));\n this.activeSelectedFeatureOverlay.setVisible(true);\n }\n }\n}\n\nexport interface IMapViewerContextCallback {\n getMockMode(): MapGuideMockMode | undefined;\n incrementBusyWorker(): void;\n decrementBusyWorker(): void;\n addImageLoading(): void;\n addImageLoaded(): void;\n onImageError(e: GenericEvent): void;\n onSessionExpired(): void;\n getSelectableLayers(): string[];\n getClient(): Client;\n isContextMenuOpen(): boolean;\n getAgentUri(): string;\n getAgentKind(): ClientKind;\n getMapName(): string;\n getSessionId(): string;\n getLocale(): string | undefined;\n isFeatureTooltipEnabled(): boolean;\n getPointSelectionBox(point: Coordinate2D): Bounds;\n openTooltipLink(url: string): void;\n addFeatureToHighlight(feat: Feature | undefined, bAppend: boolean): void;\n getBaseTileLoaders(): Dictionary;\n}\n\nexport interface ILayerSetFactory {\n create(locale: string | undefined,\n externalBaseLayers: IExternalBaseLayer[] | undefined,\n mode: MgLayerSetMode,\n appSettings: Dictionary): ILayerSetOL\n}\n\nexport class MgInnerLayerSetFactory implements ILayerSetFactory {\n private dynamicOverlayParams: any;\n private staticOverlayParams: any;\n private selectionOverlayParams: any;\n constructor(private callback: IMapViewerContextCallback,\n private map: RuntimeMap | IGenericSubjectMapLayer,\n private agentUri: string | undefined,\n imageFormat: string,\n selectionImageFormat: string | undefined,\n selectionColor: string | undefined) {\n if (isRuntimeMap(map)) {\n this.dynamicOverlayParams = {\n MAPNAME: map.Name,\n FORMAT: imageFormat,\n SESSION: map.SessionId,\n BEHAVIOR: 2\n };\n this.staticOverlayParams = {\n MAPDEFINITION: map.MapDefinition,\n FORMAT: imageFormat,\n CLIENTAGENT: \"ol.source.ImageMapGuide for OverviewMap\",\n USERNAME: \"Anonymous\",\n VERSION: \"3.0.0\"\n };\n this.selectionOverlayParams = {\n MAPNAME: map.Name,\n FORMAT: selectionImageFormat || \"PNG8\",\n SESSION: map.SessionId,\n SELECTIONCOLOR: selectionColor,\n BEHAVIOR: 1 | 4 //selected features + include outside current scale\n };\n }\n }\n private getTileUrlFunctionForGroup(resourceId: string, groupName: string, zOrigin: number) {\n const urlTemplate = this.callback.getClient().getTileTemplateUrl(resourceId, groupName, '{x}', '{y}', '{z}');\n return function (tileCoord: [number, number, number]) {\n const z = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2]; //NOTE: tileCoord format changed in OL 6.0, no longer need to negate and subtract by 1\n return urlTemplate\n .replace('{z}', (zOrigin - z).toString())\n .replace('{x}', x.toString())\n .replace('{y}', (y).toString());\n };\n }\n public create(locale: string | undefined,\n externalBaseLayers: IExternalBaseLayer[] | undefined,\n mode: MgLayerSetMode,\n appSettings: Dictionary): ILayerSetOL {\n const { map, agentUri } = this;\n if (isRuntimeMap(map)) {\n if (strIsNullOrEmpty(agentUri)) {\n throw new MgError(\"Expected agentUri to be set\");\n }\n //If a tile set definition is defined it takes precedence over the map definition, this enables\n //this example to work with older releases of MapGuide where no such resource type exists.\n const resourceId = map.TileSetDefinition || map.MapDefinition;\n //On MGOS 2.6 or older, tile width/height is never returned, so default to 300x300\n const tileWidth = map.TileWidth || 300;\n const tileHeight = map.TileHeight || 300;\n const metersPerUnit = map.CoordinateSystem.MetersPerUnit;\n const finiteScales = [] as number[];\n if (map.FiniteDisplayScale) {\n for (let i = map.FiniteDisplayScale.length - 1; i >= 0; i--) {\n finiteScales.push(map.FiniteDisplayScale[i]);\n }\n }\n const extent: olExtent.Extent = [\n map.Extents.LowerLeftCoordinate.X,\n map.Extents.LowerLeftCoordinate.Y,\n map.Extents.UpperRightCoordinate.X,\n map.Extents.UpperRightCoordinate.Y\n ];\n const dpi = map.DisplayDpi;\n const inPerUnit = 39.37 * map.CoordinateSystem.MetersPerUnit;\n const resolutions = new Array(finiteScales.length);\n let projection: ProjectionLike;\n for (let i = 0; i < finiteScales.length; ++i) {\n resolutions[i] = finiteScales[i] / inPerUnit / dpi;\n }\n\n const parsedArb = tryParseArbitraryCs(map.CoordinateSystem.MentorCode);\n if (parsedArb) {\n projection = new Projection({\n code: parsedArb.code,\n units: toProjUnit(parsedArb.units),\n metersPerUnit: toMetersPerUnit(parsedArb.units)\n })\n } else {\n if (map.CoordinateSystem.EpsgCode.length > 0) {\n projection = `EPSG:${map.CoordinateSystem.EpsgCode}`;\n }\n }\n\n const tileGrid = new TileGrid({\n origin: olExtent.getTopLeft(extent),\n resolutions: resolutions,\n tileSize: [tileWidth, tileHeight]\n });\n\n const zOrigin = finiteScales.length - 1;\n const mgTiledLayers = [];\n\n //const groupLayers = [] as TileLayer[];\n if (map.Group) {\n for (let i = 0; i < map.Group.length; i++) {\n const group = map.Group[i];\n if (group.Type != 2 && group.Type != 3) { //BaseMap or LinkedTileSet\n continue;\n }\n const tileSource = new TileImageSource({\n tileGrid: tileGrid,\n projection: projection,\n tileUrlFunction: this.getTileUrlFunctionForGroup(resourceId, group.Name, zOrigin),\n wrapX: false\n });\n const tileLayer = new TileLayer({\n //name: group.Name,\n source: tileSource\n });\n tileLayer.set(LayerProperty.LAYER_NAME, group.ObjectId);\n tileLayer.set(LayerProperty.LAYER_DISPLAY_NAME, group.ObjectId);\n tileLayer.set(LayerProperty.LAYER_TYPE, MgLayerType.Tiled);\n tileLayer.set(LayerProperty.IS_EXTERNAL, false);\n tileLayer.set(LayerProperty.IS_GROUP, false);\n tileLayer.setVisible(group.Visible);\n //groupLayers.push(tileLayer);\n mgTiledLayers.push(tileLayer);\n }\n }\n /*\n if (groupLayers.length > 0) {\n groupLayers.push(\n new ol.layer.Tile({\n source: new ol.source.TileDebug({\n tileGrid: tileGrid,\n projection: projection,\n tileUrlFunction: function(tileCoord) {\n const z = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2]; //NOTE: tileCoord format changed in OL 6.0, no longer need to negate and subtract by 1\n return urlTemplate\n .replace('{z}', (zOrigin - z).toString())\n .replace('{x}', x.toString())\n .replace('{y}', (y).toString());\n },\n wrapX: false\n })\n })\n );\n }\n */\n const overlay = this.createMgOverlayLayer(MgBuiltInLayers.Overlay, agentUri, locale, metersPerUnit, projection, mode == MgLayerSetMode.Stateful, mode == MgLayerSetMode.Stateful ? this.dynamicOverlayParams : this.staticOverlayParams);\n\n let selectionOverlay: OLImageLayer | undefined;\n let activeSelectedFeatureOverlay: OLImageLayer | undefined;\n if (mode == MgLayerSetMode.Stateful) {\n selectionOverlay = this.createMgOverlayLayer(MgBuiltInLayers.SelectionOverlay, agentUri, locale, metersPerUnit, projection, true, this.selectionOverlayParams);\n }\n if (mode == MgLayerSetMode.Stateful) {\n //NOTE: Not tracking this source atm\n activeSelectedFeatureOverlay = new ImageLayer({\n //OL6: need to specify a source up-front otherwise it will error blindly\n //trying to get a source out of this URL, so set up a source with an empty\n //image data URI, it will be updated if we receive a request to show an\n //active selected feature image\n source: new ImageStaticSource({\n imageExtent: extent,\n imageSize: [BLANK_SIZE.w, BLANK_SIZE.h],\n url: BLANK_GIF_DATA_URI\n })\n });\n activeSelectedFeatureOverlay.set(LayerProperty.LAYER_NAME, MgBuiltInLayers.ActiveFeatureSelectionOverlay);\n activeSelectedFeatureOverlay.set(LayerProperty.LAYER_DISPLAY_NAME, MgBuiltInLayers.ActiveFeatureSelectionOverlay);\n activeSelectedFeatureOverlay.set(LayerProperty.LAYER_TYPE, MG_LAYER_TYPE_NAME);\n activeSelectedFeatureOverlay.set(LayerProperty.IS_EXTERNAL, false)\n activeSelectedFeatureOverlay.set(LayerProperty.IS_GROUP, false);\n }\n let externalBaseLayersGroup: LayerGroup | undefined;\n //NOTE: Don't bother adding external base layers for overview map as the main map in the\n //overview is rendered with GETMAPIMAGE and not GETDYNAMICMAPOVERLAYIMAGE meaning the background\n //is opaque and you won't be able to see the base layers underneath anyways.\n if (mode != MgLayerSetMode.OverviewMap && externalBaseLayers != null) {\n const groupOpts: any = {\n title: tr(\"EXTERNAL_BASE_LAYERS\", locale),\n layers: externalBaseLayers.map(ext => {\n const tl = this.createExternalBaseLayer(ext);\n return tl;\n })\n };\n externalBaseLayersGroup = new LayerGroup(groupOpts);\n externalBaseLayersGroup.set(LayerProperty.LAYER_NAME, MG_BASE_LAYER_GROUP_NAME);\n externalBaseLayersGroup.set(LayerProperty.LAYER_DISPLAY_NAME, MG_BASE_LAYER_GROUP_NAME);\n externalBaseLayersGroup.set(LayerProperty.IS_EXTERNAL, false);\n externalBaseLayersGroup.set(LayerProperty.IS_GROUP, true);\n }\n\n debug(`Creating OL view with projection ${projection} and ${resolutions.length} resolutions`);\n let view: View;\n if (resolutions.length == 0) {\n view = new View({\n projection: projection\n });\n } else {\n view = new View({\n projection: projection,\n resolutions: resolutions\n });\n }\n\n const layerSet = new MgLayerSetOL(mgTiledLayers,\n externalBaseLayersGroup,\n overlay,\n projection,\n dpi,\n extent as Bounds,\n inPerUnit,\n view);\n layerSet.selectionOverlay = selectionOverlay;\n layerSet.activeSelectedFeatureOverlay = activeSelectedFeatureOverlay;\n return layerSet;\n } else {\n let projection: ProjectionLike = map?.meta?.projection;\n let bounds: Bounds | undefined;\n let externalBaseLayersGroup: LayerGroup | undefined;\n if (externalBaseLayers != null) {\n const groupOpts: any = {\n title: tr(\"EXTERNAL_BASE_LAYERS\", locale),\n layers: externalBaseLayers.map(ext => {\n const tl = this.createExternalBaseLayer(ext);\n return tl;\n })\n };\n externalBaseLayersGroup = new LayerGroup(groupOpts);\n externalBaseLayersGroup.set(LayerProperty.LAYER_NAME, MG_BASE_LAYER_GROUP_NAME);\n externalBaseLayersGroup.set(LayerProperty.IS_EXTERNAL, false);\n externalBaseLayersGroup.set(LayerProperty.IS_GROUP, true);\n //projection = \"EPSG:3857\";\n //bounds = DEFAULT_BOUNDS_3857;\n }\n let subjectLayer;\n if (map) {\n subjectLayer = createOLLayerFromSubjectDefn(map, projection, false, appSettings);\n if (map.meta) {\n projection = map.meta.projection;\n bounds = map.meta.extents;\n }\n }\n if (!projection && !bounds) {\n projection = \"EPSG:4326\";\n bounds = DEFAULT_BOUNDS_4326;\n }\n\n const parsedArb = tryParseArbitraryCs(projection);\n let metersPerUnit: number | undefined = 1;\n if (parsedArb) {\n projection = new Projection({\n code: parsedArb.code,\n units: toProjUnit(parsedArb.units),\n metersPerUnit: toMetersPerUnit(parsedArb.units),\n extent: bounds\n });\n } else {\n metersPerUnit = getMetersPerUnit(projection!);\n }\n const view = new View({\n projection: projection\n });\n return new GenericLayerSetOL(view, subjectLayer, bounds!, externalBaseLayersGroup, projection!, metersPerUnit);\n }\n }\n private createExternalBaseLayer(ext: IExternalBaseLayer) {\n const extSource = createExternalSource(ext);\n if (extSource instanceof UrlTile) {\n const loaders = this.callback.getBaseTileLoaders();\n if (loaders[ext.name])\n extSource.setTileLoadFunction(loaders[ext.name]);\n }\n const options: any = {\n title: ext.name,\n type: \"base\",\n visible: ext.visible === true,\n source: extSource\n };\n const tl = new TileLayer(options);\n tl.set(LayerProperty.LAYER_TYPE, ext.kind);\n tl.set(LayerProperty.LAYER_NAME, ext.name);\n tl.set(LayerProperty.LAYER_DISPLAY_NAME, ext.name);\n tl.set(LayerProperty.IS_EXTERNAL, false);\n tl.set(LayerProperty.IS_GROUP, false);\n return tl;\n }\n private createMgOverlayLayer(layerName: string, agentUri: string, locale: string | undefined, metersPerUnit: number, projection: ProjectionLike, useImageOverlayOp: boolean, params: any): OLImageLayer {\n const overlaySource = createMapGuideSource({\n projection: projection,\n url: agentUri,\n useOverlay: useImageOverlayOp,\n metersPerUnit: metersPerUnit,\n params: params,\n ratio: 1,\n // For mobile devices with retina/hidpi displays, the default 96 DPI produces\n // really low quality map images. For such devices, the DPI should be some\n // function of the device pixel ratio reported. As this value can be fractional\n // round it down to the nearest integer\n displayDpi: Math.floor(olHas.DEVICE_PIXEL_RATIO) * 96\n });\n overlaySource.setAttributions(tr(\"PBMG\", locale ?? DEFAULT_LOCALE));\n const layer = new ImageLayer({\n //name: \"MapGuide Dynamic Overlay\",\n source: overlaySource\n });\n layer.set(LayerProperty.LAYER_NAME, layerName);\n layer.set(LayerProperty.LAYER_DISPLAY_NAME, layerName);\n layer.set(LayerProperty.LAYER_TYPE, MG_LAYER_TYPE_NAME);\n layer.set(LayerProperty.IS_EXTERNAL, false);\n layer.set(LayerProperty.IS_GROUP, false);\n return layer;\n }\n}\n\nexport interface IMgLayerSetProps {\n /**\n * @since 0.14 This property can now also be a IGenericSubjectMapLayer\n */\n map: RuntimeMap | IGenericSubjectMapLayer;\n /**\n * Use stateless GETMAP requests for map rendering\n * @since 0.14\n */\n stateless?: boolean;\n imageFormat: ImageFormat;\n selectionImageFormat?: ImageFormat;\n selectionColor?: string;\n /**\n * @since 0.14 Made optional\n */\n agentUri?: string;\n externalBaseLayers?: IExternalBaseLayer[];\n locale?: string;\n /**\n * @since 0.14\n */\n appSettings: Dictionary;\n}\n\nexport interface IMgLayerSetCallback extends IImageLayerEvents {\n getMockMode(): MapGuideMockMode | undefined;\n incrementBusyWorker(): void;\n decrementBusyWorker(): void;\n onSessionExpired(): void;\n getSelectableLayers(): string[];\n getClient(): Client;\n isContextMenuOpen(): boolean;\n getAgentUri(): string;\n getAgentKind(): ClientKind;\n getMapName(): string;\n getSessionId(): string;\n isFeatureTooltipEnabled(): boolean;\n getPointSelectionBox(point: Coordinate2D): Bounds;\n openTooltipLink(url: string): void;\n addFeatureToHighlight(feat: Feature | undefined, bAppend: boolean): void;\n}","export class Lazy {\n private _value: T | undefined;\n constructor(private value: () => T) { }\n public getValue() { \n if (!this._value) {\n this._value = this.value();\n }\n return this._value;\n }\n}\n\nexport class AsyncLazy {\n private _value: Promise | undefined;\n constructor(private value: () => Promise) { }\n public getValueAsync(): Promise { \n if (!this._value) {\n this._value = this.value();\n }\n return this._value;\n }\n}","import { DefaultCommands, registerCommand, openUrlInTarget, CommandConditions } from './registry/command';\nimport { SPRITE_MAPTIP, SPRITE_PRINT, SPRITE_OPTIONS, SPRITE_SELECT_RADIUS, SPRITE_SELECT_POLYGON, SPRITE_SELECT_CLEAR, SPRITE_ICON_ZOOMSELECT, SPRITE_BUFFER, SPRITE_SELECT_FEATURES, SPRITE_REDLINE, SPRITE_FEATURE_INFO, SPRITE_QUERY, SPRITE_THEME, SPRITE_SELECT_CENTRE } from '../constants/assets';\nimport { setFeatureTooltipsEnabled, setCurrentView, clearClientSelection } from '../actions/map';\nimport { ensureParameters } from '../utils/url';\nimport { getRuntimeMap, getSelectionSet, Bounds } from './common';\nimport { getFusionRoot } from './runtime';\nimport { tr } from './i18n';\nimport { buildTargetedCommand } from './default-commands';\nimport { enableRedlineMessagePrompt } from '../containers/viewer-shim';\nimport * as olExtent from \"ol/extent\";\nimport { CompositeSelection } from './composite-selection';\n\nexport function initMapGuideCommands() {\n //Feature Tooltips\n registerCommand(DefaultCommands.MapTip, {\n iconClass: SPRITE_MAPTIP,\n selected: (state) => {\n return state.featureTooltipsEnabled === true;\n },\n enabled: state => !state.stateless,\n invoke: (dispatch, getState) => {\n const enabled = getState().viewer.featureTooltipsEnabled;\n return dispatch(setFeatureTooltipsEnabled(!enabled));\n }\n });\n //Quick Plot\n registerCommand(DefaultCommands.QuickPlot, {\n iconClass: SPRITE_PRINT,\n selected: () => false,\n enabled: state => !state.stateless,\n invoke: (dispatch, getState, _viewer, parameters) => {\n const config = getState().config;\n const url = \"component://QuickPlot\";\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.QuickPlot, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n });\n //Viewer Options\n registerCommand(DefaultCommands.ViewerOptions, {\n iconClass: SPRITE_OPTIONS,\n selected: () => false,\n enabled: () => true,\n invoke: (dispatch, getState, _viewer, parameters) => {\n const config = getState().config;\n const url = \"component://ViewerOptions\";\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.ViewerOptions, cmdDef, config.capabilities.hasTaskPane, dispatch, url, tr(\"VIEWER_OPTIONS\", config.locale));\n }\n });\n //Select Radius\n registerCommand(DefaultCommands.SelectRadius, {\n iconClass: SPRITE_SELECT_RADIUS,\n selected: () => false,\n enabled: state => !state.stateless,\n invoke: (_dispatch, _getState, viewer, parameters) => {\n if (viewer) {\n const selMethod = parameters.SelectionType || \"INTERSECTS\";\n viewer.digitizeCircle(circle => {\n const fact = viewer.getOLFactory();\n const geom = fact.createGeomPolygonFromCircle(circle);\n viewer.mapguideSupport()?.selectByGeometry(geom, selMethod);\n });\n }\n }\n });\n //Select Polygon\n registerCommand(DefaultCommands.SelectPolygon, {\n iconClass: SPRITE_SELECT_POLYGON,\n selected: () => false,\n enabled: state => !state.stateless,\n invoke: (_dispatch, _getState, viewer, parameters) => {\n if (viewer) {\n const selMethod = parameters.SelectionType || \"INTERSECTS\";\n viewer.digitizePolygon(geom => {\n viewer.mapguideSupport()?.selectByGeometry(geom, selMethod);\n });\n }\n }\n });\n //Clear Selection\n registerCommand(DefaultCommands.ClearSelection, {\n iconClass: SPRITE_SELECT_CLEAR,\n selected: () => false,\n enabled: state => CommandConditions.hasSelection(state) || CommandConditions.hasClientSelection(state),\n invoke: (dispatch, getState, viewer) => {\n const st = getState();\n if (st.config.activeMapName) {\n dispatch(clearClientSelection(st.config.activeMapName));\n }\n viewer?.mapguideSupport()?.clearSelection();\n }\n });\n //Zoom to Selection\n registerCommand(DefaultCommands.ZoomToSelection, {\n iconClass: SPRITE_ICON_ZOOMSELECT,\n selected: () => false,\n enabled: state => CommandConditions.hasSelection(state) || CommandConditions.hasClientSelection(state),\n invoke: (dispatch, getState, viewer) => {\n if (viewer) {\n const fact = viewer.getOLFactory();\n const st = getState();\n const selection = getSelectionSet(st);\n let cs;\n if (st.config.activeMapName) {\n cs = st.mapState[st.config.activeMapName].clientSelection;\n }\n const compSel = new CompositeSelection(selection?.SelectedFeatures, cs);\n const bounds = compSel.getBounds();\n if (bounds) {\n const view = viewer.getViewForExtent(bounds);\n dispatch(setCurrentView(view));\n }\n }\n }\n });\n //Buffer\n registerCommand(DefaultCommands.Buffer, {\n iconClass: SPRITE_BUFFER,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.hasSelection(state),\n invoke: (dispatch, getState, _viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n let url = ensureParameters(`${getFusionRoot()}/widgets/BufferPanel/BufferPanel.php`, map.Name, map.SessionId, config.locale, false);\n url += \"&popup=false&us=0\";\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.Buffer, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Select Within\n registerCommand(DefaultCommands.SelectWithin, {\n iconClass: SPRITE_SELECT_FEATURES,\n selected: () => false,\n enabled: (state, parameters) => !state.stateless && !CommandConditions.disabledIfEmptySelection(state, parameters),\n invoke: (dispatch, getState, _viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n let url = ensureParameters(`${getFusionRoot()}/widgets/SelectWithin/SelectWithinPanel.php`, map.Name, map.SessionId, config.locale, false);\n url += \"&popup=false\";\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.SelectWithin, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Redline\n registerCommand(DefaultCommands.Redline, {\n iconClass: SPRITE_REDLINE,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.isNotBusy(state),\n invoke: (dispatch, getState, viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n let bUseAdvancedStylization = true;\n let defaultDataStoreFormat = null;\n let defaultRedlineGeometryType = 0;\n let bCreateOnStartup = false;\n if (parameters.AutogenerateLayerNames)\n\n if (parameters.StylizationType)\n bUseAdvancedStylization = (parameters.StylizationType == \"advanced\");\n \n if (parameters.DataStoreFormat && parameters.RedlineGeometryFormat) {\n if (parameters.DataStoreFormat == \"SDF\" ||\n parameters.DataStoreFormat == \"SHP\" ||\n parameters.DataStoreFormat == \"SQLite\") {\n \n var geomTypes = parseInt(parameters.RedlineGeometryFormat);\n if (parameters.DataStoreFormat == \"SHP\") {\n //Only accept if geometry type is singular\n if (geomTypes == 1 || geomTypes == 2 || geomTypes == 4) {\n defaultDataStoreFormat = parameters.DataStoreFormat;\n defaultRedlineGeometryType = geomTypes;\n if (parameters.AutoCreateOnStartup)\n bCreateOnStartup = (parameters.AutoCreateOnStartup == \"true\");\n }\n } else {\n defaultDataStoreFormat = parameters.DataStoreFormat;\n defaultRedlineGeometryType = geomTypes;\n if (parameters.AutoCreateOnStartup)\n bCreateOnStartup = (parameters.AutoCreateOnStartup == \"true\");\n }\n }\n }\n\n enableRedlineMessagePrompt(parameters.UseMapMessage == \"true\");\n let url = ensureParameters(`${getFusionRoot()}/widgets/Redline/markupmain.php`, map.Name, map.SessionId, config.locale, true);\n url += \"&POPUP=false\";\n if (defaultDataStoreFormat != null && defaultRedlineGeometryType > 0) {\n url += `&REDLINEFORMAT=${defaultDataStoreFormat}`;\n url += `&REDLINEGEOMTYPE=${defaultRedlineGeometryType}`;\n url += `&AUTOCREATE=${bCreateOnStartup ? \"1\" : \"0\"}`;\n }\n url += `&REDLINESTYLIZATION=${bUseAdvancedStylization ? \"ADVANCED\" : \"BASIC\"}`;\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.Redline, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Feature Info\n registerCommand(DefaultCommands.FeatureInfo, {\n iconClass: SPRITE_FEATURE_INFO,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.isNotBusy(state),\n invoke: (dispatch, getState, _viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n const url = ensureParameters(`${getFusionRoot()}/widgets/FeatureInfo/featureinfomain.php`, map.Name, map.SessionId, config.locale, true);\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.FeatureInfo, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Query\n registerCommand(DefaultCommands.Query, {\n iconClass: SPRITE_QUERY,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.isNotBusy(state),\n invoke: (dispatch, getState, _viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n const url = ensureParameters(`${getFusionRoot()}/widgets/Query/querymain.php`, map.Name, map.SessionId, config.locale, true);\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.Query, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Theme\n registerCommand(DefaultCommands.Theme, {\n iconClass: SPRITE_THEME,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.isNotBusy(state),\n invoke: (dispatch, getState, _viewer, parameters) => {\n const state = getState();\n const map = getRuntimeMap(state);\n const config = state.config;\n if (map) {\n const url = ensureParameters(`${getFusionRoot()}/widgets/Theme/thememain.php`, map.Name, map.SessionId, config.locale, true);\n const cmdDef = buildTargetedCommand(config, parameters);\n openUrlInTarget(DefaultCommands.Theme, cmdDef, config.capabilities.hasTaskPane, dispatch, url);\n }\n }\n });\n //Center Selection\n registerCommand(DefaultCommands.CenterSelection, {\n iconClass: SPRITE_SELECT_CENTRE,\n selected: () => false,\n enabled: state => !state.stateless && CommandConditions.hasSelection(state),\n invoke: (dispatch, getState, viewer) => {\n const state = getState();\n const mapName = state.config.activeMapName;\n if (mapName && viewer) {\n const mapState = state.mapState[mapName];\n const sf = mapState?.mapguide?.selectionSet?.SelectedFeatures;\n if (sf) {\n let bbox;\n for (const layer of sf.SelectedLayer) {\n for (const f of layer.Feature.filter(f => f.Bounds != null)) {\n const b: any = f.Bounds!.split(\" \").map(s => parseFloat(s));\n if (!bbox) {\n bbox = b;\n } else {\n bbox = olExtent.extend(bbox, b);\n }\n }\n }\n if (bbox) {\n const view = viewer.getViewForExtent(bbox);\n dispatch(setCurrentView(view));\n }\n }\n }\n }\n });\n}","import * as React from \"react\";\nimport { LegendContainer } from \"../containers/legend\";\nimport { SelectedFeatureCountContainer } from \"../containers/selected-feature-count\";\nimport { SelectionPanelContainer } from \"../containers/selection-panel\";\nimport { PoweredByMapGuide } from \"../components/pbmg\";\nimport { SessionExpired } from \"../components/session-expired\";\nimport { ViewerOptions } from \"../containers/viewer-options\";\nimport { QuickPlotContainer } from \"../containers/quick-plot\";\nimport { registerComponentFactory, DefaultComponentNames } from \"../api/registry/component\";\n\nexport function registerMapGuideComponents() {\n registerComponentFactory(DefaultComponentNames.Legend, (props) => );\n registerComponentFactory(DefaultComponentNames.SelectionPanel, (props) => );\n registerComponentFactory(DefaultComponentNames.SelectedFeatureCount, (props) => );\n registerComponentFactory(DefaultComponentNames.PoweredByMapGuide, (props) => );\n registerComponentFactory(DefaultComponentNames.SessionExpired, (props) => );\n registerComponentFactory(DefaultComponentNames.ViewerOptions, (props) => );\n registerComponentFactory(DefaultComponentNames.QuickPlot, (props) => );\n}","import { SourceProperty } from './common';\nimport { defaultImageLoadFunction } from \"ol/source/Image\";\nimport olMapGuideSource from \"ol/source/ImageMapGuide\";\nimport olImageLayer from \"ol/layer/Image\";\nimport { assertNever } from '../utils/never';\nimport { LayerSetGroupBase } from './layer-set-group-base';\nimport { IMgLayerSetProps, IMgLayerSetCallback, MgInnerLayerSetFactory, mockMapGuideImageLoadFunction, blankImageLoadFunction, MgLayerSetMode, MgLayerSetOL } from './layer-set';\nimport { MapGuideMockMode } from '../components/mapguide-debug-context';\nimport { isRuntimeMap } from '../utils/type-guards';\nimport { strIsNullOrEmpty } from '../utils/string';\nimport { MgError } from './error';\nimport { GenericLayerSetOL } from './generic-layer-set';\nimport ImageLayer from 'ol/layer/Image';\nimport TileLayer from 'ol/layer/Tile';\nimport TileWMS from 'ol/source/TileWMS';\nimport ImageWMS from 'ol/source/ImageWMS';\nimport LayerBase from \"ol/layer/Base\";\n\nexport class MgLayerSetGroup extends LayerSetGroupBase {\n constructor(props: IMgLayerSetProps, callback: IMgLayerSetCallback) {\n super(callback);\n const { map, agentUri } = props;\n const isRtMap = isRuntimeMap(map);\n const hasAgentUri = strIsNullOrEmpty(agentUri);\n if (isRtMap) {\n if (hasAgentUri) {\n throw new MgError(\"Expected agentUri to be set\");\n }\n }\n const factory = new MgInnerLayerSetFactory(callback, map, agentUri, props.imageFormat, props.selectionImageFormat, props.selectionColor);\n \n //NOTE: MapGuide does not like concurrent map rendering operations of the same mapname/session pair, which\n //this will do when the MG overlay is shared between the main viewer and the overview map. This is probably\n //because the concurrent requests both have SET[X/Y/SCALE/DPI/etc] parameters attached, so there is concurrent\n //requests to modify and persist the runtime map state (in addition to the rendering) and there is most likely\n //server-side lock contention to safely update the map state. Long story short: re-using the main overlay for the\n //OverviewMap control IS A BAD THING. Same thing happens with selection overlays\n //\n //As of OL6, this unwanted behavior from shared layers extends to all layer types, so what this means is that\n //we have to create 2 sets of layers, one for the main map and one for the overview map. We CANNOT and DO NOT share\n //any of these layer instances between the main map and the overview map!\n this.mainSet = factory.create(props.locale, props.externalBaseLayers, props.stateless ? MgLayerSetMode.Stateless : MgLayerSetMode.Stateful, props.appSettings);\n this.overviewSet = factory.create(props.locale, props.externalBaseLayers, MgLayerSetMode.OverviewMap, props.appSettings);\n const progressNotifySources = this.mainSet.getSourcesForProgressTracking();\n /*\n console.log(\"Draw Order:\");\n for (let i = 0; i < layers.length; i++) {\n console.log(\" \" + layers[i].get(LayerProperty.LAYER_NAME));\n }\n */\n for (const src of progressNotifySources) {\n const suppress: boolean | undefined = src.get(SourceProperty.SUPPRESS_LOAD_EVENTS);\n if (!(suppress == true))\n this.registerSourceEvents(src);\n }\n }\n /**\n * @override\n */\n public tryGetSubjectLayer() {\n if (this.mainSet instanceof GenericLayerSetOL) {\n return this.mainSet.subjectLayer;\n } else if (this.mainSet instanceof MgLayerSetOL) {\n return this.mainSet.overlay;\n }\n return undefined;\n }\n /**\n * @override\n * @returns\n * @memberof MgLayerSetGroup\n */\n public tryGetWmsSource(): [LayerBase, (ImageWMS | TileWMS)] | undefined {\n const subjectLayer = this.tryGetSubjectLayer();\n if (subjectLayer instanceof ImageLayer || subjectLayer instanceof TileLayer) {\n const source = subjectLayer.getSource();\n if (source instanceof ImageWMS || source instanceof TileWMS) {\n return [subjectLayer, source];\n }\n }\n return undefined;\n }\n public updateSelectionColor = (color: string) => this.mainSet.updateSelectionColor(color);\n public setMapGuideMocking(mock: MapGuideMockMode | undefined) {\n const allLayers = this.mainSet.getLayers();\n for (const layer of allLayers) {\n if (layer instanceof olImageLayer) {\n const source = layer.getSource();\n if (source instanceof olMapGuideSource) {\n if (typeof (mock) != 'undefined') {\n switch (mock) {\n case MapGuideMockMode.RenderPlaceholder:\n source.setImageLoadFunction(mockMapGuideImageLoadFunction);\n break;\n case MapGuideMockMode.DoNotRender:\n source.setImageLoadFunction(blankImageLoadFunction);\n break;\n default:\n assertNever(mock);\n break;\n }\n }\n else {\n source.setImageLoadFunction(defaultImageLoadFunction);\n }\n }\n }\n }\n }\n public update = (showGroups: string[] | undefined, showLayers: string[] | undefined, hideGroups: string[] | undefined, hideLayers: string[] | undefined) => this.mainSet.update(showGroups, showLayers, hideGroups, hideLayers);\n}\n","import Point from \"ol/geom/Point\";\nimport LineString from \"ol/geom/LineString\";\nimport Circle from \"ol/geom/Circle\";\nimport Polygon, { fromCircle } from \"ol/geom/Polygon\";\nimport LinearRing from \"ol/geom/LinearRing\";\nimport MultiLineString from \"ol/geom/MultiLineString\";\nimport MultiPoint from \"ol/geom/MultiPoint\";\nimport MultiPolygon from \"ol/geom/MultiPolygon\";\nimport Geometry from \"ol/geom/Geometry\";\nimport GeometryCollection from \"ol/geom/GeometryCollection\";\n\nimport Overlay, { Options as OverlayOptions } from \"ol/Overlay\";\nimport * as olExtent from \"ol/extent\";\nimport * as olProj from \"ol/proj\";\nimport Projection, { Options as ProjectionOptions } from \"ol/proj/Projection\";\n\nimport { Options as VectorLayerOptions } from \"ol/layer/BaseVector\";\nimport VectorLayer from \"ol/layer/Vector\";\nimport VectorSource, { Options as VectorOptions } from \"ol/source/Vector\";\n\nimport Collection from \"ol/Collection\";\nimport Feature from \"ol/Feature\";\n\nimport ExtentInteraction, { Options as ExtentOptions } from \"ol/interaction/Extent\";\nimport SnapInteraction, { Options as SnapOptions } from \"ol/interaction/Snap\";\nimport DrawInteraction, { Options as DrawOptions } from \"ol/interaction/Draw\";\nimport TranslateInteraction, { Options as TranslateOptions } from \"ol/interaction/Translate\";\nimport ModifyInteraction, { Options as ModifyOptions } from \"ol/interaction/Modify\";\nimport SelectInteraction, { Options as SelectOptions } from \"ol/interaction/Select\";\n\nimport GeoJSONFormat, { Options as GeoJSONOptions } from \"ol/format/GeoJSON\";\nimport WKTFormat, { Options as WKTOptions } from \"ol/format/WKT\";\n\nimport Style, { Options as StyleOptions } from \"ol/style/Style\";\nimport IconStyle, { Options as IconOptions } from \"ol/style/Icon\";\nimport RegularShapeStyle, { Options as RegularShapeOptions } from \"ol/style/RegularShape\";\nimport TextStyle, { Options as TextOptions } from \"ol/style/Text\";\nimport FillStyle, { Options as FillOptions } from \"ol/style/Fill\";\nimport StrokeStyle, { Options as StrokeOptions } from \"ol/style/Stroke\";\nimport CircleStyle, { Options as CircleOptions } from \"ol/style/Circle\";\nimport { Bounds, Coordinate2D } from './common';\nimport { ProjectionLike } from 'ol/proj';\nimport { OLVectorLayer, OLVectorLayerOptions } from \"./ol-types\";\n\n/**\n * Creates various OpenLayers types used by the viewer\n *\n * @export\n * @interface IOLFactory\n */\nexport interface IOLFactory {\n /**\n * \n * @param options \n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyle(options?: StyleOptions): Style;\n /**\n * \n * @param options \n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleFill(options?: FillOptions): FillStyle;\n /**\n * \n * @param options \n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleStroke(options?: StrokeOptions): StrokeStyle;\n /**\n * \n * @param options \n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleCircle(options?: CircleOptions): CircleStyle;\n /**\n * @since 0.12.6\n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleIcon(options?: IconOptions): IconStyle;\n /**\n * @since 0.12.6\n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleRegularShape(options: RegularShapeOptions): RegularShapeStyle;\n /**\n * @since 0.12.6\n * @deprecated Will be removed in favor of the IVectorFeatureStyle as that better integrates with the external layer manager component\n */\n createStyleText(options?: TextOptions): TextStyle;\n createFeatureCollection(): Collection>;\n extentContainsXY(extent: Bounds, x: number, y: number): boolean;\n extendExtent(extent: Bounds, other: Bounds): Bounds;\n createProjection(options: ProjectionOptions): Projection;\n transformCoordinateFromLonLat(lonlat: Coordinate2D, proj?: ProjectionLike): Coordinate2D;\n transformCoordinate(coordinate: Coordinate2D, source: ProjectionLike, target: ProjectionLike): Coordinate2D;\n transformExtent(extent: Bounds, source: ProjectionLike, target: ProjectionLike): Bounds;\n createGeomPoint(coordinates: Coordinate2D): Point;\n createGeomLineString(coordinates: Coordinate2D[]): LineString;\n createGeomCircle(center: Coordinate2D, radius: number | undefined): Circle;\n createGeomLinearRing(coordinates: Coordinate2D[]): LinearRing;\n createGeomPolygon(coordinates: Coordinate2D[][]): Polygon;\n createGeomPolygonFromCircle(circle: Circle): Polygon;\n createGeomMultiLineString(coordinates: Coordinate2D[][]): MultiLineString;\n createGeomMultiPoint(coordinates: Coordinate2D[]): MultiPoint;\n createGeomMultiPolygon(coordinates: Coordinate2D[][][]): MultiPolygon;\n createGeomCollection(geometries: Geometry[]): GeometryCollection;\n createVectorSource(options?: VectorOptions): VectorSource;\n createVectorLayer(options?: OLVectorLayerOptions | undefined): OLVectorLayer;\n createOverlay(options: OverlayOptions): Overlay;\n createInteractionDraw(options: DrawOptions): DrawInteraction;\n /**\n * \n * @since 0.11\n * @param {ModifyOptions} options \n * @returns {ModifyInteraction} \n * @memberof IOLFactory\n */\n createInteractionModify(options: ModifyOptions): ModifyInteraction;\n /**\n * \n * @since 0.11\n * @param {SelectOptions} options \n * @returns {SelectInteraction} \n * @memberof IOLFactory\n */\n createInteractionSelect(options: SelectOptions): SelectInteraction;\n createInteractionExtent(options: ExtentOptions): ExtentInteraction;\n createInteractionSnap(options: SnapOptions): SnapInteraction;\n createInteractionTranslate(options: TranslateOptions): TranslateInteraction;\n createFeature(geomOrProps?: Geometry | { [key: string]: any }): Feature;\n createFormatGeoJSON(options?: GeoJSONOptions | undefined): GeoJSONFormat;\n createFormatWKT(options?: WKTOptions | undefined): WKTFormat;\n}\n\n/**\n * Creates various OpenLayers types used by the viewer\n *\n * @export\n * @class OLFactory\n * @implements {IOLFactory}\n */\nexport class OLFactory implements IOLFactory {\n public createStyle(options?: StyleOptions): Style {\n return new Style(options);\n }\n public createStyleFill(options?: FillOptions): FillStyle {\n return new FillStyle(options);\n }\n public createStyleStroke(options?: StrokeOptions): StrokeStyle {\n return new StrokeStyle(options);\n }\n public createStyleCircle(options?: CircleOptions): CircleStyle {\n return new CircleStyle(options);\n }\n public createFeatureCollection(): Collection> {\n return new Collection>();\n }\n public extentContainsXY(extent: Bounds, x: number, y: number): boolean {\n return olExtent.containsXY(extent, x, y);\n }\n public extendExtent(extent: Bounds, other: Bounds): Bounds {\n return olExtent.extend(extent, other) as Bounds;\n }\n public createProjection(options: ProjectionOptions): Projection {\n return new Projection(options);\n }\n public transformCoordinateFromLonLat(lonlat: Coordinate2D, proj?: ProjectionLike): Coordinate2D {\n return olProj.fromLonLat(lonlat, proj) as Coordinate2D;\n }\n public transformCoordinate(coordinate: Coordinate2D, source: ProjectionLike, target: ProjectionLike): Coordinate2D {\n return olProj.transform(coordinate, source, target) as Coordinate2D;\n }\n public transformExtent(extent: Bounds, source: ProjectionLike, target: ProjectionLike): Bounds {\n return olProj.transformExtent(extent, source, target) as Bounds;\n }\n public createGeomPoint(coordinates: Coordinate2D): Point {\n return new Point(coordinates);\n }\n public createGeomLineString(coordinates: Coordinate2D[]): LineString {\n return new LineString(coordinates);\n }\n public createGeomCircle(center: Coordinate2D, radius: number | undefined): Circle {\n return new Circle(center, radius);\n }\n public createGeomLinearRing(coordinates: Coordinate2D[]): LinearRing {\n return new LinearRing(coordinates);\n }\n public createGeomPolygon(coordinates: Coordinate2D[][]): Polygon {\n return new Polygon(coordinates);\n }\n public createGeomPolygonFromCircle(circle: Circle): Polygon {\n return fromCircle(circle);\n }\n public createGeomMultiLineString(coordinates: Coordinate2D[][]): MultiLineString {\n return new MultiLineString(coordinates);\n }\n public createGeomMultiPoint(coordinates: Coordinate2D[]): MultiPoint {\n return new MultiPoint(coordinates);\n }\n public createGeomMultiPolygon(coordinates: Coordinate2D[][][]): MultiPolygon {\n return new MultiPolygon(coordinates);\n }\n public createGeomCollection(geometries: Geometry[]): GeometryCollection {\n return new GeometryCollection(geometries);\n }\n public createVectorSource(options?: VectorOptions): VectorSource {\n return new VectorSource(options);\n }\n public createVectorLayer(options?: OLVectorLayerOptions | undefined): OLVectorLayer {\n return new VectorLayer(options);\n }\n public createOverlay(options: OverlayOptions): Overlay {\n return new Overlay(options);\n }\n public createInteractionDraw(options: DrawOptions): DrawInteraction {\n return new DrawInteraction(options);\n }\n public createInteractionExtent(options: ExtentOptions): ExtentInteraction {\n return new ExtentInteraction(options);\n }\n public createInteractionTranslate(options: TranslateOptions): TranslateInteraction {\n return new TranslateInteraction(options);\n }\n public createInteractionSnap(options: SnapOptions): SnapInteraction {\n return new SnapInteraction(options);\n }\n public createInteractionModify(options: ModifyOptions): ModifyInteraction {\n return new ModifyInteraction(options);\n }\n public createInteractionSelect(options: SelectOptions): SelectInteraction {\n return new SelectInteraction(options);\n }\n public createFeature(geomOrProps?: Geometry | { [key: string]: any }): Feature {\n return new Feature(geomOrProps);\n }\n public createFormatGeoJSON(options?: GeoJSONOptions | undefined): GeoJSONFormat {\n return new GeoJSONFormat(options);\n }\n public createFormatWKT(options?: WKTOptions | undefined): WKTFormat {\n return new WKTFormat(options);\n }\n\n /**\n * @since 0.12.6\n */\n public createStyleIcon(options?: IconOptions | undefined): IconStyle {\n return new IconStyle(options);\n }\n /**\n * @since 0.12.6\n */\n public createStyleRegularShape(options: RegularShapeOptions): RegularShapeStyle {\n return new RegularShapeStyle(options);\n }\n /**\n * @since 0.12.6\n */\n public createStyleText(options?: TextOptions | undefined): TextStyle {\n return new TextStyle(options);\n }\n}","import { IMapGuideImageSource } from \"./common\";\n//import { MapGuideImageSource } from \"./ol-mapguide-source\";\nimport olMapGuideSource from \"ol/source/ImageMapGuide\";\nimport { OLMapGuideImageSourceOptions } from './ol-types';\n\n/**\n * @hidden\n */\nexport function isMapGuideImageSource(arg: any): arg is IMapGuideImageSource {\n return typeof(arg.updateParams) != 'undefined';\n}\n\n/**\n * @hidden\n */\nexport function createMapGuideSource(options: OLMapGuideImageSourceOptions): olMapGuideSource {\n //const ctor: any = MapGuideImageSource;\n //const source = new ctor(options);\n const source = new olMapGuideSource(options);\n return source;\n}","import { ExprOr, isEvaluatable, IVectorLabelSettings, IBasicStroke, IBasicFill, IEvaluatable } from \"./ol-style-contracts\";\nimport { ExprEvalContext } from \"./expr-eval-context\";\nimport TextStyle, { Options as TextStyleOptions } from \"ol/style/Text\";\nimport Stroke from 'ol/style/Stroke';\nimport Fill from 'ol/style/Fill';\nimport { asArray } from 'ol/color';\nimport { OLFeature } from \"./ol-types\";\n\nfunction toOLColor(color: string, alpha: number | undefined) {\n const c = asArray(color);\n if (typeof (alpha) != 'undefined') {\n c[3] = (alpha / 255);\n }\n return c;\n}\n\nexport function evalFeature(expr: ExprOr, feat: OLFeature | undefined, context: ExprEvalContext | undefined): any | undefined {\n if (!isEvaluatable(expr)) {\n return expr;\n } else if (feat && context) {\n try {\n return context.evaluate(expr.expr, feat);\n } catch (e) {\n return undefined;\n }\n } else {\n return undefined;\n }\n}\n\nfunction setIfNotUndefined(obj: T, prop: K, value: T[K]) {\n if (typeof (value) != 'undefined') {\n obj[prop] = value;\n }\n}\n\nexport function buildStroke(stroke: IBasicStroke, feat: OLFeature | undefined, context: ExprEvalContext | undefined): Stroke {\n return new Stroke({\n color: toOLColor(evalFeature(stroke.color, feat, context), evalFeature(stroke.alpha, feat, context)),\n width: evalFeature(stroke.width, feat, context)\n })\n}\n\nexport function buildFill(fill: IBasicFill, feat: OLFeature | undefined, context: ExprEvalContext | undefined): Fill {\n return new Fill({\n color: toOLColor(evalFeature(fill.color, feat, context), evalFeature(fill.alpha, feat, context))\n });\n}\n\nexport function tryBuildTextStyle(style: IVectorLabelSettings, feat: OLFeature | undefined, context: ExprEvalContext | undefined): TextStyle | undefined {\n const { label } = style;\n if (label) {\n const textOpts: TextStyleOptions = {};\n setIfNotUndefined(textOpts, \"font\", evalFeature(label.font, feat, context));\n setIfNotUndefined(textOpts, \"maxAngle\", evalFeature(label.maxAngle, feat, context));\n setIfNotUndefined(textOpts, \"offsetX\", evalFeature(label.offsetX, feat, context));\n setIfNotUndefined(textOpts, \"offsetY\", evalFeature(label.offsetY, feat, context));\n setIfNotUndefined(textOpts, \"overflow\", evalFeature(label.overflow, feat, context));\n setIfNotUndefined(textOpts, \"placement\", evalFeature(label.placement, feat, context));\n setIfNotUndefined(textOpts, \"rotateWithView\", evalFeature(label.rotateWithView, feat, context));\n setIfNotUndefined(textOpts, \"rotation\", evalFeature(label.rotation, feat, context));\n setIfNotUndefined(textOpts, \"scale\", evalFeature(label.scale, feat, context));\n const txt = evalFeature(label.text, feat, context);\n if (typeof (txt) != 'undefined') {\n textOpts.text = `${txt}`; //Need to stringify this\n }\n setIfNotUndefined(textOpts, \"textAlign\", evalFeature(label.textAlign, feat, context));\n setIfNotUndefined(textOpts, \"textBaseline\", evalFeature(label.textBaseline, feat, context));\n const text = new TextStyle(textOpts);\n if (label.padding) {\n text.setPadding(label.padding);\n }\n if (label.fill) {\n const f = buildFill(label.fill, feat, context);\n text.setFill(f);\n }\n if (label.backgroundFill) {\n const f = buildFill(label.backgroundFill, feat, context);\n text.setBackgroundFill(f);\n }\n if (label.stroke) {\n const s = buildStroke(label.stroke, feat, context);\n text.setStroke(s);\n }\n if (label.backgroundStroke) {\n const s = buildStroke(label.backgroundStroke, feat, context);\n text.setBackgroundStroke(s);\n }\n return text;\n }\n return undefined;\n}","import type Style from 'ol/style/Style';\nimport { MAP_MARKER_ICON } from '../constants/assets';\nimport { ExprEvalContext } from './expr-eval-context';\nimport { OLFeature } from './ol-types';\n\n/**\n * The source of a vector layer style\n * \n * @since 0.14\n */\nexport enum VectorStyleSource {\n /**\n * The base vector layer style\n */\n Base,\n /**\n * The clustered layer style\n */\n Cluster\n}\n\n/**\n * Defines a style for a vector layer\n */\nexport interface IVectorLayerStyle {\n /**\n * The vector style for the given filter\n */\n [filter: string]: IVectorFeatureStyle;\n /**\n * The default vector style\n */\n default: IVectorFeatureStyle;\n}\n\n/**\n * @since 0.14\n */\nexport enum ClusterClickAction {\n ZoomToClusterExtents = \"ZoomToClusterExtents\",\n ShowPopup = \"ShowPopup\"\n}\n\n/**\n * Point cluster settings\n * \n * @since 0.14\n */\nexport interface IClusterSettings {\n /**\n * The clustering distance\n */\n distance: number;\n /**\n * What happens if this cluster is clicked\n */\n onClick: ClusterClickAction;\n /**\n * The style to use for point clusters\n */\n style: IVectorLayerStyle;\n}\n\n/**\n * Heatmap layer settings\n * @since 0.14\n */\nexport interface IHeatmapSettings {\n /**\n * Heatmap blur\n */\n blur: number;\n /**\n * Heatmap radius\n */\n radius: number;\n}\n\n/**\n * @since 0.14\n */\nexport type TextPlacement = \"point\" | \"line\";\n\n/**\n * @since 0.14\n */\nexport type TextBaseline = \"bottom\" | \"top\" | \"middle\" | \"alphabetic\" | \"hanging\" | \"ideographic\";\n\n/**\n * @since 0.14\n */\nexport interface IEvaluatable {\n expr: string;\n}\n\n/**\n * @since 0.14\n */\nexport type ExprOr = IEvaluatable | T;\n\n/**\n * @since 0.14\n */\nexport function isEvaluatable(arg: any): arg is IEvaluatable {\n return typeof (arg?.expr) == 'string';\n}\n\n/**\n * Label settings\n * @since 0.14\n */\nexport interface ILabelSettings {\n font?: ExprOr;\n maxAngle?: ExprOr;\n offsetX?: ExprOr;\n offsetY?: ExprOr;\n overflow?: ExprOr;\n placement?: TextPlacement;\n scale?: ExprOr;\n rotateWithView?: ExprOr;\n rotation?: ExprOr;\n text?: ExprOr;\n textAlign?: ExprOr;\n textBaseline?: ExprOr;\n fill?: IBasicFill;\n stroke?: IBasicStroke;\n backgroundFill?: IBasicFill;\n backgroundStroke?: IBasicStroke;\n padding?: [number, number, number, number];\n}\n\n/**\n * Defines label settings for a vector layer\n * @since 0.14\n */\nexport interface IVectorLabelSettings {\n label?: ILabelSettings;\n}\n\n/**\n * Defines a style for vector features\n * @since 0.13\n */\nexport interface IVectorFeatureStyle {\n /**\n * @since 0.14\n */\n label?: string;\n point?: IBasicVectorPointStyle;\n line?: IBasicVectorLineStyle;\n polygon?: IBasicVectorPolygonStyle;\n}\n\n/**\n * Point circle style settings\n * @since 0.13\n */\nexport interface IBasicPointCircleStyle extends IVectorLabelSettings {\n type: \"Circle\";\n fill: IBasicFill;\n radius: ExprOr;\n stroke: IBasicStroke;\n}\n\n/**\n * Point icon style settings\n * @since 0.13\n */\nexport interface IPointIconStyle extends IVectorLabelSettings {\n type: \"Icon\";\n anchor: [number, number],\n src: ExprOr;\n //size: [number, number];\n rotateWithView: ExprOr;\n rotation: ExprOr;\n //opacity: ExprOr;\n scale: ExprOr;\n}\n\n/**\n * Point style settings\n * @since 0.13\n */\nexport type IBasicVectorPointStyle = (IBasicPointCircleStyle | IPointIconStyle) & IVectorLabelSettings;\n\n/**\n * Line style settings\n * @since 0.13\n */\nexport type IBasicVectorLineStyle = IBasicStroke & IVectorLabelSettings;\n\n/**\n * Polygon style settings\n * @since 0.13\n */\nexport interface IBasicVectorPolygonStyle extends IVectorLabelSettings {\n fill: IBasicFill;\n stroke: IBasicStroke;\n}\n\n/**\n * Line stroke settings\n * @since 0.13\n */\nexport interface IBasicStroke {\n color: ExprOr;\n alpha: ExprOr;\n width: ExprOr;\n}\n\n/**\n * Color fill settings\n * @since 0.13\n */\nexport interface IBasicFill {\n color: ExprOr;\n alpha: ExprOr;\n}\n\n/**\n * The default style for point features\n * @since 0.13\n * @since 0.14 Made deep const immutable\n */\nexport const DEFAULT_POINT_CIRCLE_STYLE: IBasicPointCircleStyle = {\n type: \"Circle\",\n fill: {\n color: \"#ff0000\",\n alpha: 255\n },\n radius: 5,\n stroke: {\n color: \"#0000ff\",\n alpha: 255,\n width: 1\n }\n} as const;\n\n/**\n * The default style for clustered point features\n * @since 0.14\n */\nexport const DEFAULT_CLUSTERED_POINT_CIRCLE_STYLE: IBasicPointCircleStyle = {\n type: \"Circle\",\n fill: {\n color: \"#ff0000\",\n alpha: 255\n },\n radius: { expr: \"min(arr_size(features) + 4, 25)\" },\n /*\n label: {\n text: expr(\"if(arr_size(features) > 1, '', arr_size(features))\"),\n },*/\n stroke: {\n color: \"#0000ff\",\n alpha: 255,\n width: 1\n }\n} as const;\n\n/**\n * The default icon style for point features\n * @since 0.13\n * @since 0.14 Made deep const immutable\n */\nexport const DEFAULT_POINT_ICON_STYLE: IPointIconStyle = {\n type: \"Icon\",\n anchor: [0.5, 0.5] as [number, number],\n src: MAP_MARKER_ICON,\n //size: [24, 24],\n rotateWithView: false,\n rotation: 0,\n //opacity: 255,\n scale: 1\n} as const;\n\n/**\n * The default color\n * @since 0.13\n */\nexport const DEFAULT_COLOR = \"#000000\";\n\n/**\n * The default style for line features\n * @since 0.13\n * @since 0.14 Made deep const immutable\n */\nexport const DEFAULT_LINE_STYLE: IBasicVectorLineStyle = {\n color: \"#0000ff\",\n alpha: 255,\n width: 1\n} as const;\n\n/**\n * The default style for polygon features\n * @since 0.13\n * @since 0.14 Made deep const immutable\n */\nexport const DEFAULT_POLY_STYLE: IBasicVectorPolygonStyle = {\n fill: {\n color: \"#00ff00\",\n alpha: 255\n },\n stroke: {\n color: DEFAULT_COLOR,\n alpha: 255,\n width: 1\n }\n} as const;\n\n/**\n * The default vector layer style\n * @since 0.14\n */\nexport const DEFAULT_VECTOR_LAYER_STYLE = {\n default: {\n point: DEFAULT_POINT_CIRCLE_STYLE,\n line: DEFAULT_LINE_STYLE,\n polygon: DEFAULT_POLY_STYLE\n }\n} as const;\n\n/**\n * The default vector layer style for clustered points\n * @since 0.14\n */\nexport const DEFAULT_CLUSTERED_LAYER_STYLE = {\n default: {\n point: DEFAULT_CLUSTERED_POINT_CIRCLE_STYLE\n }\n} as const;\n\n/**\n * An OpenLayers style map\n * \n * @export\n * @interface IOlStyleMap\n * @since 0.13\n */\nexport interface IOlStyleMap {\n id: string;\n \"Point\": Style;\n \"LineString\": Style;\n \"MultiLineString\": Style;\n \"MultiPoint\": Style;\n \"MultiPolygon\": Style;\n \"Polygon\": Style;\n \"GeometryCollection\": Style;\n \"Circle\": Style;\n}\n\nexport type DynamicStyleMap = (feature: OLFeature | undefined, context: ExprEvalContext | undefined) => IOlStyleMap;","import { IVectorLayerStyle, IClusterSettings } from './ol-style-contracts';\nimport Feature from 'ol/Feature';\nimport { OLStyleMapSet } from './ol-style-map-set';\nimport Geometry from 'ol/geom/Geometry';\nimport { LayerProperty } from './common';\nimport VectorTileLayer from 'ol/layer/VectorTile';\nimport { OLFeature, OLVectorLayer } from './ol-types';\n\n/**\n * @since 0.14\n */\nexport const DEFAULT_STYLE_KEY = \"default\";\n\nexport function isClusteredFeature(feature: OLFeature): boolean {\n if (getClusterSubFeatures(feature)?.length) {\n return true;\n }\n return false;\n}\n\nexport function getClusterSubFeatures(feature: OLFeature): OLFeature[] {\n return feature.get(\"features\");\n}\n\n/**\n * Sets the vector layer style for the given OpenLayers vector layer\n * \n * @since 0.13\n * @since 0.14 style now takes IVectorLayerStyle instead of IVectorFeatureStyle and accepts an optional cluster style \n * and layer can be either a vector layer or a vector tile layer\n */\nexport function setOLVectorLayerStyle(layer: OLVectorLayer | VectorTileLayer, style: IVectorLayerStyle, clusterStyle: IClusterSettings | undefined) {\n const olstyles = new OLStyleMapSet(style, clusterStyle);\n layer.set(LayerProperty.VECTOR_STYLE, olstyles);\n const layerStyleFunc = function (feature: Feature) {\n //TODO: Perf opportunity, cache styles by type_filter|default. Of course, if we ever\n //decide to go for fully dynamic styles (where any property could be an expression to evaluate)\n //such styles are not candidates for caching.\n const sset: OLStyleMapSet = this;\n return sset.evaluateStyle(feature);\n }.bind(olstyles);\n layer.setStyle(layerStyleFunc);\n}\n\n/**\n * Gets the OL style function for the given style\n * \n * @param style \n * @param clusterStyle \n * @returns \n * @since 0.14\n */\nexport function getOLStyleFunction(style: IVectorLayerStyle, clusterStyle: IClusterSettings | undefined) {\n const olstyles = new OLStyleMapSet(style, clusterStyle);\n const layerStyleFunc = function (feature: Feature) {\n //TODO: Perf opportunity, cache styles by type_filter|default. Of course, if we ever\n //decide to go for fully dynamic styles (where any property could be an expression to evaluate)\n //such styles are not candidates for caching.\n const sset: OLStyleMapSet = this;\n return sset.evaluateStyle(feature);\n }.bind(olstyles);\n return layerStyleFunc;\n}","import { DEFAULT_STYLE_KEY, isClusteredFeature } from './ol-style-helpers';\nimport { ExprEvalContext } from './expr-eval-context';\nimport Feature from 'ol/Feature';\nimport Geometry from 'ol/geom/Geometry';\nimport { DynamicStyleMap, IOlStyleMap, IVectorLayerStyle, IVectorFeatureStyle, DEFAULT_POINT_CIRCLE_STYLE, DEFAULT_LINE_STYLE, DEFAULT_POLY_STYLE, IBasicStroke, isEvaluatable, IBasicFill, IVectorLabelSettings, IBasicVectorPointStyle, IBasicVectorLineStyle, IBasicVectorPolygonStyle, IClusterSettings, ClusterClickAction } from './ol-style-contracts';\nimport Style from 'ol/style/Style';\nimport CircleStyle from 'ol/style/Circle';\nimport { buildFill, buildStroke, tryBuildTextStyle, evalFeature } from './ol-style-builders';\nimport IconStyle from \"ol/style/Icon\";\nimport { deg2rad } from '../utils/number';\nimport { ScopedId } from '../utils/scoped-id';\n\nconst scopedId = new ScopedId();\n\nfunction isDynamicStroke(stroke: IBasicStroke | undefined): boolean {\n if (!stroke) {\n return false;\n }\n return isEvaluatable(stroke.alpha)\n || isEvaluatable(stroke.color)\n || isEvaluatable(stroke.width);\n}\n\nfunction isDynamicFill(fill: IBasicFill | undefined): boolean {\n if (!fill) {\n return false;\n }\n return isEvaluatable(fill.alpha)\n || isEvaluatable(fill.color);\n}\n\nfunction isDynamicLabel(labelSettings: IVectorLabelSettings): boolean {\n const { label } = labelSettings;\n if (!label) {\n return false;\n }\n return isDynamicFill(label.backgroundFill)\n || isDynamicStroke(label.backgroundStroke)\n || isDynamicFill(label.fill)\n || isEvaluatable(label.font)\n || isEvaluatable(label.maxAngle)\n || isEvaluatable(label.offsetX)\n || isEvaluatable(label.offsetY)\n || isEvaluatable(label.overflow)\n || isEvaluatable(label.padding)\n || isEvaluatable(label.placement)\n || isEvaluatable(label.rotateWithView)\n || isEvaluatable(label.rotation)\n || isEvaluatable(label.scale)\n || isDynamicStroke(label.stroke)\n || isEvaluatable(label.text)\n || isEvaluatable(label.textAlign)\n || isEvaluatable(label.textBaseline);\n}\n\nfunction isDynamicPointStyle(style: IBasicVectorPointStyle): boolean {\n const apts: any = style;\n const isBaseDynamic = isEvaluatable(apts.radius)\n || isDynamicFill(apts.fill)\n || isDynamicStroke(apts.stroke);\n if (isBaseDynamic) {\n return true;\n }\n return isDynamicLabel(style);\n}\n\nfunction isDynamicLineStyle(style: IBasicVectorLineStyle): boolean {\n return isDynamicStroke(style)\n || isDynamicLabel(style);\n}\n\nfunction isDynamicPolygonStyle(style: IBasicVectorPolygonStyle): boolean {\n return isDynamicStroke(style.stroke)\n || isDynamicFill(style.fill)\n || isDynamicLabel(style);\n}\n\nfunction buildStyleMap(pts: Style, lns: Style, pls: Style) {\n //For GeometryCollection, combine point and polygon styles\n const cpts = pts.clone();\n const cpls = pls.clone();\n const gcs = new Style({\n image: cpts.getImage(),\n stroke: cpls.getStroke(),\n fill: cpls.getFill()\n });\n return {\n id: `${scopedId.next()}`,\n Point: pts,\n MultiPoint: pts,\n LineString: lns,\n MultiLineString: lns,\n Polygon: pls,\n MultiPolygon: pls,\n Circle: pls,\n GeometryCollection: gcs\n };\n}\n\nexport function vectorStyleToStyleMap(style: IVectorFeatureStyle): IOlStyleMap | DynamicStyleMap {\n const ptStyle = style.point ?? DEFAULT_POINT_CIRCLE_STYLE;\n const lnStyle = style.line ?? DEFAULT_LINE_STYLE;\n const plStyle = style.polygon ?? DEFAULT_POLY_STYLE;\n\n const builder: DynamicStyleMap = (feat, context) => {\n const pts = new Style();\n if (ptStyle.type == \"Circle\") {\n pts.setImage(new CircleStyle({\n radius: evalFeature(ptStyle.radius, feat, context),\n fill: buildFill(ptStyle.fill, feat, context),\n stroke: buildStroke(ptStyle.stroke, feat, context)\n }));\n } else {\n pts.setImage(new IconStyle({\n anchor: ptStyle.anchor,\n src: evalFeature(ptStyle.src, feat, context),\n rotateWithView: evalFeature(ptStyle.rotateWithView, feat, context),\n rotation: deg2rad(evalFeature(ptStyle.rotation, feat, context)),\n scale: evalFeature(ptStyle.scale, feat, context)\n }));\n }\n const lns = new Style({\n stroke: buildStroke(lnStyle, feat, context)\n });\n const pls = new Style({\n stroke: buildStroke(plStyle.stroke, feat, context),\n fill: buildFill(plStyle.fill, feat, context)\n });\n\n const ptText = tryBuildTextStyle(ptStyle, feat, context);\n const lnText = tryBuildTextStyle(lnStyle, feat, context);\n const plsText = tryBuildTextStyle(plStyle, feat, context);\n if (ptText) {\n pts.setText(ptText);\n }\n if (lnText) {\n lns.setText(lnText);\n }\n if (plsText) {\n pls.setText(plsText);\n }\n return buildStyleMap(pts, lns, pls);\n }\n\n const isDynamic = isDynamicPointStyle(ptStyle)\n || isDynamicLineStyle(lnStyle)\n || isDynamicPolygonStyle(plStyle);\n\n if (isDynamic) {\n return builder;\n } else {\n return builder(undefined, undefined);\n }\n}\n\n/**\n * @since 0.14\n */\nexport class OLStyleMapSet {\n private rules: {\n [filter: string]: IOlStyleMap | DynamicStyleMap;\n default: IOlStyleMap | DynamicStyleMap;\n };\n private clusterRules: {\n [filter: string]: IOlStyleMap | DynamicStyleMap;\n default: IOlStyleMap | DynamicStyleMap;\n } | undefined;\n private exprContext: ExprEvalContext;\n private defaultStyleMap: IOlStyleMap | DynamicStyleMap;\n constructor(private readonly origStyleDef: IVectorLayerStyle, private readonly clusterStyleDef: IClusterSettings | undefined) {\n this.rules = {\n default: vectorStyleToStyleMap(origStyleDef.default)\n };\n this.exprContext = new ExprEvalContext();\n for (const k in origStyleDef) {\n if (k != DEFAULT_STYLE_KEY && origStyleDef[k]) {\n this.rules[k] = vectorStyleToStyleMap(origStyleDef[k]);\n }\n if (k != DEFAULT_STYLE_KEY) {\n this.exprContext.addFilter(k);\n }\n }\n if (clusterStyleDef?.style) {\n const { style } = clusterStyleDef;\n this.clusterRules = {\n default: vectorStyleToStyleMap(style.default)\n };\n for (const k in style) {\n if (k != DEFAULT_STYLE_KEY && style[k]) {\n this.clusterRules[k] = vectorStyleToStyleMap(style[k]);\n }\n if (k != DEFAULT_STYLE_KEY) {\n this.exprContext.addClusterFilter(k);\n }\n }\n }\n this.defaultStyleMap = vectorStyleToStyleMap({});\n }\n public toVectorLayerStyle(): IVectorLayerStyle {\n return this.origStyleDef;\n }\n public toClusterSettings(): IClusterSettings | undefined {\n return this.clusterStyleDef;\n }\n public getClusterClickAction(): ClusterClickAction | undefined {\n return this.clusterStyleDef?.onClick;\n }\n public evaluateStyle(feature: Feature) {\n try {\n const g = feature.getGeometry();\n if (!g) {\n return null;\n }\n const gt: any = g.getType();\n const filter = this.exprContext.evaluateFilter(feature);\n let matchingStyle: IOlStyleMap | DynamicStyleMap;\n const r = isClusteredFeature(feature) ? this.clusterRules : this.rules;\n if (filter) {\n matchingStyle = r?.[filter] ?? this.defaultStyleMap;\n } else {\n //Fallback to default\n matchingStyle = r?.default ?? this.defaultStyleMap;\n }\n if (typeof (matchingStyle) == 'function') {\n const esm = matchingStyle(feature, this.exprContext);\n return (esm as any)[gt];\n } else {\n return (matchingStyle as any)[gt];\n }\n } catch (e) {\n console.error(e);\n return null;\n }\n }\n}","import { ApplicationDefinition, ContainerItem, UIWidget, Widget } from '../contracts/fusion';\nimport { DefaultCommands, isSupportedCommandInStatelessMode } from './command';\nimport { DefaultComponentNames } from './component';\nimport { tr } from '../i18n';\nimport { CommandTarget, Dictionary, ICommand, IInvokeUrlCommand, ISearchCommand } from '../common';\nimport { assertNever } from '../../utils/never';\nimport { strIsNullOrEmpty } from '../../utils/string';\nimport { warn } from '../../utils/logger';\nimport { UIItem, CommandDef, isCommandItem, isTargetedCommand, isBasicCommand, isSeparatorItem, isFlyoutItem, WebLayout, isInvokeURLCommand, isSearchCommand } from '../contracts/weblayout';\nimport { isStateless } from '../../actions/init-command';\nimport { SPRITE_INVOKE_SCRIPT, SPRITE_INVOKE_URL } from '../../constants/assets';\nimport { WEBLAYOUT_CONTEXTMENU, WEBLAYOUT_TASKMENU } from '../../constants';\nimport { ScopedId } from '../../utils/scoped-id';\n\nconst scopedId = new ScopedId();\n\nfunction isCommandSpec(cmd: ICommandSpec | IUnknownCommandSpec): cmd is ICommandSpec {\n return !strIsNullOrEmpty((cmd as any).command);\n}\n\nexport function isUIWidget(widget: any): widget is UIWidget {\n return widget.WidgetType === \"UiWidgetType\";\n}\n\n/**\n *\n */\nexport interface ToolbarConf {\n items: (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec)[];\n}\n\n/**\n *\n */\nexport interface PreparedSubMenuSet {\n toolbars: Dictionary;\n flyouts: Dictionary;\n}\n\n/**\n * @hidden\n */\nexport function isFlyoutSpec(item: any): item is IFlyoutSpec {\n return typeof (item.children) != 'undefined';\n}\n\n/**\n *\n */\nexport interface IFlyoutSpec {\n label?: string;\n tooltip?: string;\n icon?: string;\n spriteClass?: string;\n children: (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec)[];\n}\n\n/**\n *\n */\nexport interface ISeparatorSpec {\n isSeparator: boolean;\n}\n\n/**\n *\n */\nexport interface IUnknownCommandSpec {\n error: string;\n}\n\n/**\n *\n */\nexport interface ICommandSpec {\n icon: string;\n spriteClass: string;\n label: string | null;\n tooltip: string;\n parameters: any;\n command?: string;\n componentName?: string;\n flyoutId?: string;\n}\n\nfunction makeCommand(widget: UIWidget, noToolbarLabels: boolean, cmdType: DefaultCommands): ICommandSpec {\n return { icon: widget.ImageUrl, spriteClass: widget.ImageClass, command: cmdType, label: (noToolbarLabels ? null : widget.Label), tooltip: widget.Tooltip, parameters: widget.Extension };\n}\n\nfunction convertWidget(widget: UIWidget, locale: string, noToolbarLabels: boolean): ICommandSpec | IUnknownCommandSpec {\n switch (widget.Type) {\n case \"Select\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Select);\n case \"Pan\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Pan);\n //case \"PanQuery\":\n //case \"PanOnClick\":\n case \"Zoom\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Zoom);\n case \"ZoomOnClick\": //Covers in and out. Look at Factor parameter\n {\n const factor = parseFloat(widget.Extension.Factor);\n if (factor >= 1.0) {\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ZoomIn);\n } else {\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ZoomOut);\n }\n }\n case \"InitialMapView\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ZoomExtents);\n case \"ZoomToSelection\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ZoomToSelection);\n case \"ExtentHistory\": //Covers prev and next. Look at Direction parameter\n {\n if (widget.Extension.Direction == \"previous\") {\n return makeCommand(widget, noToolbarLabels, DefaultCommands.PreviousView);\n } else {\n return makeCommand(widget, noToolbarLabels, DefaultCommands.NextView);\n }\n }\n case \"CenterSelection\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.CenterSelection);\n case \"About\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.About);\n case \"BufferPanel\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Buffer);\n case \"ClearSelection\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ClearSelection);\n //case \"ColorPicker\":\n case \"CoordinateTracker\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.CoordinateTracker);\n case \"FeatureInfo\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.FeatureInfo);\n case \"Geolocation\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Geolocation);\n //case \"GoogleStreetViewer\":\n case \"Help\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Help);\n case \"Maptip\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.MapTip);\n case \"MapMenu\":\n return { icon: widget.ImageUrl, spriteClass: widget.ImageClass, label: (noToolbarLabels ? null : widget.Label), tooltip: widget.Tooltip, componentName: DefaultComponentNames.MapMenu, flyoutId: `${DefaultComponentNames.MapMenu}_${scopedId.next()}`, parameters: widget.Extension };\n case \"Query\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Query);\n case \"QuickPlot\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.QuickPlot);\n case \"Redline\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Redline);\n case \"RefreshMap\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.RefreshMap);\n //case \"SaveMap\":\n case \"InvokeURL\": //Commands with this name would've been registered beforehand\n case \"Search\":\n return { icon: widget.ImageUrl, spriteClass: widget.ImageClass, command: widget.Name, label: (noToolbarLabels ? null : widget.Label), tooltip: widget.Tooltip, parameters: widget.Extension };\n case \"SelectPolygon\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.SelectPolygon);\n case \"SelectRadius\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.SelectRadius);\n //case \"SelectRadiusValue\":\n case \"SelectWithin\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.SelectWithin);\n case \"Theme\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Theme);\n case \"ViewOptions\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ViewerOptions);\n case \"ZoomToSelection\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.ZoomToSelection);\n case \"Measure\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Measure);\n case \"Print\":\n return makeCommand(widget, noToolbarLabels, DefaultCommands.Print);\n case \"BasemapSwitcher\":\n return { icon: widget.ImageUrl, spriteClass: widget.ImageClass, label: (noToolbarLabels ? null : widget.Label), tooltip: widget.Tooltip, componentName: DefaultComponentNames.BaseMapSwitcher, flyoutId: `${DefaultComponentNames.BaseMapSwitcher}_${scopedId.next()}`, parameters: widget.Extension };\n case \"InvokeScript\":\n return { icon: widget.ImageUrl, spriteClass: widget.ImageClass, command: widget.Name, label: (noToolbarLabels ? null : widget.Label), tooltip: widget.Tooltip, parameters: widget.Extension };\n default:\n return { error: tr(\"UNKNOWN_WIDGET\", locale, { widget: widget.Type }) }\n }\n}\n\n/**\n * @hidden\n * \n * @param isStateless \n * @param items \n * @param widgetsByKey \n * @param locale \n * @param noToolbarLabels \n * @returns \n */\nexport function convertFlexLayoutUIItems(isStateless: boolean, items: ContainerItem[], widgetsByKey: Dictionary, locale: string, noToolbarLabels = false): (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec)[] {\n const converted = items.map(item => {\n switch (item.Function) {\n case \"Widget\":\n {\n const widget = widgetsByKey[item.Widget];\n if (widget && isUIWidget(widget)) {\n const cmd = convertWidget(widget, locale, noToolbarLabels);\n if (isStateless && isCommandSpec(cmd) && !isSupportedCommandInStatelessMode(cmd.command)) {\n console.warn(`The widget (${widget.Name}) references a command (${cmd.command}) that is not supported in stateless mode. This widget will always be disabled`);\n }\n return cmd;\n }\n }\n case \"Separator\":\n return { isSeparator: true } as ISeparatorSpec;\n case \"Flyout\":\n return {\n label: item.Label,\n tooltip: item.Tooltip,\n icon: item.ImageUrl,\n spriteClass: item.ImageClass,\n children: convertFlexLayoutUIItems(isStateless, item.Item, widgetsByKey, locale)\n } as IFlyoutSpec;\n default:\n assertNever(item);\n }\n return null;\n })\n .filter(i => i != null)\n .map(i => i as (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec));\n return converted;\n}\n\nfunction tryTranslateImageUrlToSpriteClass(imageUrl: string): string | undefined {\n switch (imageUrl) {\n case \"../stdicons/icon_invokeurl.gif\":\n return SPRITE_INVOKE_URL;\n case \"../stdicons/icon_invokescript.gif\":\n return SPRITE_INVOKE_SCRIPT;\n }\n}\n\n/**\n * @hidden\n * \n * @param items \n * @param cmdsByKey \n * @param locale \n * @param noToolbarLabels \n * @returns \n */\nexport function convertWebLayoutUIItems(items: UIItem[] | undefined, cmdsByKey: Dictionary, locale: string, noToolbarLabels = true): (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec)[] {\n const converted = (items || []).map(item => {\n if (isCommandItem(item)) {\n const cmdDef: CommandDef = cmdsByKey[item.Command];\n if (!cmdDef) {\n warn(`Invalid reference to command: ${item.Command}`);\n return { error: tr(\"UNKNOWN_COMMAND_REFERENCE\", locale, { command: item.Command }) } as IUnknownCommandSpec;\n } else if (cmdDef.TargetViewer != \"Dwf\") {\n let icon: Partial> = {};\n if (cmdDef.ImageURL) {\n icon.spriteClass = tryTranslateImageUrlToSpriteClass(cmdDef.ImageURL);\n if (!icon.spriteClass) {\n icon.icon = cmdDef.ImageURL;\n }\n }\n const commonParams: any = {};\n if (isTargetedCommand(cmdDef)) {\n commonParams.Target = cmdDef.Target;\n commonParams.TargetFrame = cmdDef.TargetFrame;\n }\n if (isBasicCommand(cmdDef)) {\n let action: string = cmdDef.Action;\n if (action == \"ZoomRectangle\") {\n action = DefaultCommands.Zoom;\n } else if (action == \"FitToWindow\") {\n action = DefaultCommands.ZoomExtents;\n } else if (action == \"Refresh\") {\n action = DefaultCommands.RefreshMap;\n }\n return { command: action, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams, ...icon };\n } else {\n switch (cmdDef[\"@xsi:type\"]) {\n case \"ViewOptionsCommandType\":\n return { command: DefaultCommands.ViewerOptions, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n case \"MeasureCommandType\":\n return { command: DefaultCommands.Measure, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n case \"HelpCommandType\":\n return { command: DefaultCommands.Help, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n case \"BufferCommandType\":\n return { command: DefaultCommands.Buffer, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n case \"SelectWithinCommandType\":\n return { command: DefaultCommands.SelectWithin, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n case \"GetPrintablePageCommandType\":\n return { command: DefaultCommands.QuickPlot, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams };\n default:\n return { command: cmdDef.Name, label: (noToolbarLabels ? null : cmdDef.Label), tooltip: cmdDef.Tooltip, parameters: commonParams, ...icon };\n }\n }\n }\n } else if (isSeparatorItem(item)) {\n return { isSeparator: true } as ISeparatorSpec;\n } else if (isFlyoutItem(item)) {\n return {\n label: item.Label,\n tooltip: item.Tooltip,\n children: convertWebLayoutUIItems(item.SubItem, cmdsByKey, locale, false)\n } as IFlyoutSpec;\n } else {\n assertNever(item);\n }\n return null;\n })\n .filter(i => i != null)\n .map(i => i as (IFlyoutSpec | ISeparatorSpec | IUnknownCommandSpec | ICommandSpec));\n return converted;\n}\n\nfunction convertToCommandTarget(fusionCmdTarget: string): CommandTarget {\n //Treat empty/undefined target as new window\n if (strIsNullOrEmpty(fusionCmdTarget)) {\n return \"NewWindow\";\n }\n switch (fusionCmdTarget) {\n case \"SearchWindow\":\n case \"InvokeUrlWindow\":\n return \"NewWindow\";\n case \"TaskPane\":\n return \"TaskPane\";\n default:\n return \"SpecifiedFrame\";\n }\n}\nexport type CommandRegistrationFunc = (name: string, cmdDef: ICommand | IInvokeUrlCommand | ISearchCommand) => void;\n\nexport function parseWidgetsInAppDef(appDef: ApplicationDefinition, cmdRegister: CommandRegistrationFunc) {\n let taskPane: Widget | undefined;\n let viewSize: Widget | undefined;\n let hasLegend = false;\n let hasStatus = false;\n let hasNavigator = false;\n let hasSelectionPanel = false;\n let hasTaskBar = false;\n let initialTask: string;\n const isStatelessAppDef = isStateless(appDef);\n const widgetsByKey: Dictionary = {};\n //Register any InvokeURL and Search commands. Also set capabilities along the way\n for (const widgetSet of appDef.WidgetSet) {\n for (const widget of widgetSet.Widget) {\n const cmd = widget.Extension;\n switch (widget.Type) {\n case \"TaskPane\":\n taskPane = widget;\n break;\n case \"ViewSize\":\n viewSize = widget;\n break;\n case \"Legend\":\n hasLegend = true;\n break;\n case \"SelectionPanel\":\n hasSelectionPanel = true;\n break;\n case \"CursorPosition\":\n case \"SelectionInfo\":\n hasStatus = true;\n break;\n case \"Navigator\":\n hasNavigator = true;\n break;\n case \"Search\":\n cmdRegister(widget.Name, {\n layer: cmd.Layer,\n prompt: cmd.Prompt,\n resultColumns: cmd.ResultColumns,\n filter: cmd.Filter,\n matchLimit: cmd.MatchLimit,\n title: (cmd.Title || (isUIWidget(widget) ? widget.Label : undefined)),\n target: convertToCommandTarget(cmd.Target),\n targetFrame: cmd.Target\n });\n if (isStatelessAppDef) {\n console.warn(`The search command (${widget.Name}) is not supported in stateless mode. This widget will always be disabled`);\n }\n break;\n case \"InvokeURL\":\n cmdRegister(widget.Name, {\n url: cmd.Url,\n disableIfSelectionEmpty: cmd.DisableIfSelectionEmpty,\n target: convertToCommandTarget(cmd.Target),\n targetFrame: cmd.Target,\n parameters: (cmd.AdditionalParameter || []).map((p: any) => {\n return { name: p.Key, value: p.Value };\n }),\n title: isUIWidget(widget) ? widget.Label : undefined\n });/*\n if (config.isStateless && !strStartsWith(cmd.Url, \"component://\")) {\n console.warn(`The InvokeURL command (${widget.Name}) is not supported in stateless mode. This widget will always be disabled`);\n }*/\n break;\n }\n widgetsByKey[widget.Name] = widget;\n }\n }\n\n if (taskPane) {\n hasTaskBar = true; //Fusion flex layouts can't control the visiblity of this\n initialTask = taskPane.Extension.InitialTask || \"server/TaskPane.html\";\n } else {\n initialTask = \"server/TaskPane.html\";\n }\n\n return {\n taskPane,\n viewSize,\n initialTask,\n hasLegend,\n hasStatus,\n hasNavigator,\n hasSelectionPanel,\n hasTaskBar,\n isStateless: isStatelessAppDef,\n widgetsByKey\n };\n}\n\nexport function parseCommandsInWebLayout(webLayout: WebLayout, cmdRegister: CommandRegistrationFunc) {\n const cmdsByKey: Dictionary = {};\n //Register any InvokeURL and Search commands\n for (const cmd of webLayout.CommandSet.Command) {\n if (isInvokeURLCommand(cmd)) {\n cmdRegister(cmd.Name, {\n url: cmd.URL,\n disableIfSelectionEmpty: cmd.DisableIfSelectionEmpty,\n target: cmd.Target,\n targetFrame: cmd.TargetFrame,\n parameters: (cmd.AdditionalParameter || []).map(p => {\n return { name: p.Key, value: p.Value };\n }),\n title: cmd.Label\n });\n } else if (isSearchCommand(cmd)) {\n cmdRegister(cmd.Name, {\n layer: cmd.Layer,\n prompt: cmd.Prompt,\n target: cmd.Target,\n targetFrame: cmd.TargetFrame,\n resultColumns: cmd.ResultColumns,\n filter: cmd.Filter,\n matchLimit: cmd.MatchLimit,\n title: cmd.Label\n });\n }\n cmdsByKey[cmd.Name] = cmd;\n }\n return cmdsByKey;\n}\n\n/**\n * @hidden\n * \n * @param tbConf \n * @returns \n */\nexport function prepareSubMenus(tbConf: Dictionary): [PreparedSubMenuSet, boolean] {\n const prepared: PreparedSubMenuSet = {\n toolbars: {},\n flyouts: {}\n };\n let bFoundContextMenu = false;\n for (const key in tbConf) {\n if (key == WEBLAYOUT_CONTEXTMENU) {\n bFoundContextMenu = true;\n }\n\n //Special cases: Task pane and Context Menu. Transfer all to flyout\n if (key == WEBLAYOUT_TASKMENU || key == WEBLAYOUT_CONTEXTMENU) {\n const flyoutId = key;\n prepared.flyouts[flyoutId] = {\n children: tbConf[key].items\n }\n } else {\n prepared.toolbars[key] = {\n items: []\n };\n for (const item of tbConf[key].items) {\n //Special case: contextmenu is all inline\n if (isFlyoutSpec(item) && key != WEBLAYOUT_CONTEXTMENU) {\n const flyoutId = `${item.label}_${scopedId.next()}`;\n prepared.toolbars[key].items.push({\n label: item.label,\n tooltip: item.tooltip,\n icon: item.icon,\n spriteClass: item.spriteClass,\n flyoutId: flyoutId\n } as ICommandSpec);\n prepared.flyouts[flyoutId] = {\n children: item.children\n }\n } else {\n prepared.toolbars[key].items.push(item);\n }\n }\n }\n }\n return [prepared, bFoundContextMenu]\n}","import {\n IMapViewer,\n ICommand,\n Dictionary,\n IInvokeUrlCommand,\n ISearchCommand,\n ITargetedCommand,\n IApplicationState,\n ReduxDispatch,\n ReduxStore,\n getSelectionSet,\n getRuntimeMap,\n DEFAULT_MODAL_SIZE,\n NOOP,\n ALWAYS_FALSE,\n IInvokeUrlCommandParameter,\n ActiveMapTool\n} from \"../../api/common\";\nimport { getFusionRoot } from \"../../api/runtime\";\nimport { IItem, IInlineMenu, IFlyoutMenu, IComponentFlyoutItem } from \"../../components/toolbar\";\nimport { tr } from \"../i18n\";\nimport { getAssetRoot } from \"../../utils/asset\";\nimport {\n SPRITE_ICON_ERROR\n} from \"../../constants/assets\";\nimport { assertNever } from \"../../utils/never\";\nimport { ensureParameters } from \"../../utils/url\";\nimport { ActionType } from '../../constants/actions';\nimport { showModalUrl } from '../../actions/modal';\nimport { error } from '../../utils/logger';\n\nconst FUSION_ICON_REGEX = /images\\/icons\\/[a-zA-Z\\-]*.png/\n\nfunction fixIconPath(path: string): string {\n if (FUSION_ICON_REGEX.test(path)) {\n return `${getAssetRoot()}/${path}`.replace(/\\/\\//g, \"/\");\n }\n return path;\n}\n\nfunction fusionFixSpriteClass(tb: any, cmd?: ICommand): string | undefined {\n if (tb.spriteClass) {\n return tb.spriteClass;\n }\n if (cmd && cmd.iconClass) {\n return cmd.iconClass;\n }\n return undefined;\n}\n\n/**\n * @hidden\n */\nexport function mergeInvokeUrlParameters(currentParameters: IInvokeUrlCommandParameter[], extraParameters?: any) {\n const currentP = currentParameters.reduce((prev, current, i, arr) => {\n prev[current.name] = current.value;\n return prev;\n }, {});\n if (extraParameters) {\n const keys = Object.keys(extraParameters);\n for (const k of keys) {\n currentP[k] = extraParameters[k];\n }\n }\n const merged: IInvokeUrlCommandParameter[] = [];\n const mkeys = Object.keys(currentP);\n for (const k of mkeys) {\n merged.push({ name: k, value: currentP[k] });\n }\n return merged;\n}\n\nfunction fixChildItems(childItems: any[], state: IToolbarAppState, commandInvoker: (cmd: ICommand, parameters?: any) => void): IItem[] {\n return childItems\n .map(tb => mapToolbarReference(tb, state, commandInvoker))\n .filter(tb => tb != null) as IItem[];\n}\n\n//TODO: This function should be its own react hook that layers on top of the\n//useDispatch() and useSelector() hooks provided by react-redux\n/**\n * @hidden\n */\nexport function mapToolbarReference(tb: any, state: IToolbarAppState, commandInvoker: (cmd: ICommand, parameters?: any) => void): IItem | IInlineMenu | IFlyoutMenu | IComponentFlyoutItem | null {\n if (tb.error) {\n const cmdItem: IItem = {\n iconClass: SPRITE_ICON_ERROR,\n tooltip: tb.error,\n label: tr(\"ERROR\"),\n selected: ALWAYS_FALSE,\n enabled: ALWAYS_FALSE,\n invoke: NOOP\n };\n return cmdItem;\n } else if (tb.componentName) {\n return {\n icon: tb.icon,\n iconClass: fusionFixSpriteClass(tb),\n flyoutId: tb.flyoutId,\n tooltip: tb.tooltip,\n label: tb.label,\n componentName: tb.componentName,\n componentProps: tb.componentProps\n };\n } else if (tb.isSeparator === true) {\n return { isSeparator: true };\n } else if (tb.command) {\n const cmd = getCommand(tb.command);\n if (cmd != null) {\n const cmdItem: IItem = {\n icon: fixIconPath(tb.icon || cmd.icon),\n iconClass: fusionFixSpriteClass(tb, cmd),\n tooltip: tb.tooltip,\n label: tb.label,\n selected: () => cmd.selected(state),\n enabled: () => cmd.enabled(state, tb.parameters),\n invoke: () => commandInvoker(cmd, tb.parameters)\n };\n return cmdItem;\n }\n } else if (tb.children) {\n const childItems: any[] = tb.children;\n return {\n icon: fixIconPath(tb.icon),\n iconClass: fusionFixSpriteClass(tb),\n label: tb.label,\n tooltip: tb.tooltip,\n childItems: fixChildItems(childItems, state, commandInvoker)\n };\n } else if (tb.label && tb.flyoutId) {\n return {\n icon: fixIconPath(tb.icon),\n iconClass: fusionFixSpriteClass(tb),\n label: tb.label,\n tooltip: tb.tooltip,\n flyoutId: tb.flyoutId\n }\n }\n return null;\n}\n\n/**\n * A subset of IApplicationState that's only relevant for toolbar items\n * @since 0.13\n */\nexport interface IToolbarAppState {\n /**\n * @since 0.14\n */\n stateless: boolean;\n visibleAndSelectableWmsLayerCount: number;\n busyWorkerCount: number;\n hasSelection: boolean;\n /**\n * @since 0.14\n */\n hasClientSelection: boolean;\n hasPreviousView: boolean;\n hasNextView: boolean;\n featureTooltipsEnabled: boolean;\n activeTool: ActiveMapTool;\n}\n\n/**\n * Helper function to reduce full application state to state relevant for toolbar items\n * \n * @param state The full application state\n * @since 0.13\n */\nexport function reduceAppToToolbarState(state: Readonly): Readonly {\n let hasSelection = false;\n let hasClientSelection = false;\n let hasPreviousView = false;\n let hasNextView = false;\n let visibleWmsLayerCount = 0;\n const selection = getSelectionSet(state);\n hasSelection = (selection != null && selection.SelectedFeatures != null);\n if (state.config.activeMapName) {\n hasClientSelection = state.mapState[state.config.activeMapName].clientSelection != null;\n hasPreviousView = state.mapState[state.config.activeMapName].historyIndex > 0;\n hasNextView = state.mapState[state.config.activeMapName].historyIndex < state.mapState[state.config.activeMapName].history.length - 1;\n visibleWmsLayerCount = (state.mapState[state.config.activeMapName].layers ?? []).filter(l => l.visible && l.selectable && l.type == \"WMS\").length;\n }\n return {\n stateless: state.config.viewer.isStateless,\n visibleAndSelectableWmsLayerCount: visibleWmsLayerCount,\n busyWorkerCount: state.viewer.busyCount,\n hasSelection,\n hasClientSelection,\n hasPreviousView,\n hasNextView,\n activeTool: state.viewer.tool,\n featureTooltipsEnabled: state.viewer.featureTooltipsEnabled\n }\n}\n\n/**\n * Common command condition evaluators\n *\n * @export\n * @class CommandConditions\n */\nexport class CommandConditions {\n /**\n * The viewer is not busy\n *\n * @static\n * @param {Readonly} state\n * @returns {boolean}\n *\n * @memberof CommandConditions\n */\n public static isNotBusy(state: Readonly): boolean {\n return state.busyWorkerCount == 0;\n }\n /**\n * The viewer has a MapGuide selection set\n *\n * @static\n * @param {Readonly} state\n * @returns {boolean}\n *\n * @memberof CommandConditions\n */\n public static hasSelection(state: Readonly): boolean {\n return state.hasSelection;\n }\n /**\n * The viewer has a client-side selection set\n *\n * @static\n * @param state \n * @returns \n * \n * @since 0.14\n */\n public static hasClientSelection(state: Readonly): boolean {\n return state.hasClientSelection;\n }\n /**\n * The command is set to be disabled if selection is empty\n *\n * @static\n * @param {*} [parameters]\n * @returns {boolean}\n *\n * @memberof CommandConditions\n */\n public static disabledIfEmptySelection(state: Readonly, parameters?: any): boolean {\n if (!state.hasSelection) {\n return (parameters != null && (parameters.DisableIfSelectionEmpty == \"true\" || parameters.DisableIfSelectionEmpty == true));\n } else\n return false;\n }\n /**\n * The viewer has a previous view in the view navigation stack\n *\n * @static\n * @param {Readonly} state\n * @returns {boolean}\n *\n * @memberof CommandConditions\n */\n public static hasPreviousView(state: Readonly): boolean {\n return state.hasPreviousView;\n }\n /**\n * The viewer has a next view in the view navigation stack\n *\n * @static\n * @param {Readonly} state\n * @returns {boolean}\n *\n * @memberof CommandConditions\n */\n public static hasNextView(state: Readonly): boolean {\n return state.hasNextView;\n }\n}\n\n/**\n * The set of default command names\n *\n * @export\n * @class DefaultCommands\n */\nexport enum DefaultCommands {\n Select = \"Select\",\n Pan = \"Pan\",\n Zoom = \"Zoom\",\n MapTip = \"MapTip\",\n ZoomIn = \"ZoomIn\",\n ZoomOut = \"ZoomOut\",\n RestoreView = \"RestoreView\",\n ZoomExtents = \"ZoomExtents\",\n SelectRadius = \"SelectRadius\",\n SelectPolygon = \"SelectPolygon\",\n ClearSelection = \"ClearSelection\",\n ZoomToSelection = \"ZoomToSelection\",\n PanLeft = \"PanLeft\",\n PanRight = \"PanRight\",\n PanUp = \"PanUp\",\n PanDown = \"PanDown\",\n RefreshMap = \"RefreshMap\",\n PreviousView = \"PreviousView\",\n NextView = \"NextView\",\n About = \"About\",\n Help = \"Help\",\n Measure = \"Measure\",\n ViewerOptions = \"ViewerOptions\",\n Buffer = \"Buffer\",\n SelectWithin = \"SelectWithin\",\n QuickPlot = \"QuickPlot\",\n Redline = \"Redline\",\n FeatureInfo = \"FeatureInfo\",\n Theme = \"Theme\",\n Query = \"Query\",\n Geolocation = \"Geolocation\",\n CoordinateTracker = \"CoordinateTracker\",\n /**\n * @since 0.11\n */\n AddManageLayers = \"AddManageLayers\",\n /**\n * @since 0.11\n */\n CenterSelection = \"CenterSelection\",\n /**\n * @since 0.14\n */\n Print = \"Print\"\n}\n\nconst commands: Dictionary = {};\n\nfunction isInvokeUrlCommand(cmdDef: any): cmdDef is IInvokeUrlCommand {\n return typeof cmdDef.url !== 'undefined';\n}\n\nfunction isSearchCommand(cmdDef: any): cmdDef is ISearchCommand {\n return typeof cmdDef.layer !== 'undefined';\n}\n\nfunction openModalUrl(name: string, dispatch: ReduxDispatch, url: string, modalTitle?: string) {\n dispatch(showModalUrl({\n modal: {\n title: modalTitle || tr(name as any),\n backdrop: false,\n size: DEFAULT_MODAL_SIZE,\n overflowYScroll: true\n },\n name: name,\n url: url\n }));\n}\n\nexport function isSupportedCommandInStatelessMode(name: string | undefined) {\n switch (name) {\n case DefaultCommands.MapTip:\n case DefaultCommands.QuickPlot:\n case DefaultCommands.SelectRadius:\n case DefaultCommands.SelectPolygon:\n case DefaultCommands.Buffer:\n case DefaultCommands.SelectWithin:\n case DefaultCommands.Redline:\n case DefaultCommands.FeatureInfo:\n case DefaultCommands.Query:\n case DefaultCommands.Theme:\n case DefaultCommands.CenterSelection:\n return false;\n }\n return true;\n}\n\n/**\n * Opens the given URL in the specified target\n *\n * @hidden\n * @param name\n * @param cmdDef\n * @param dispatch\n * @param url\n */\nexport function openUrlInTarget(name: string, cmdDef: ITargetedCommand, hasTaskPane: boolean, dispatch: ReduxDispatch, url: string, modalTitle?: string): void {\n const target = cmdDef.target;\n if (target == \"TaskPane\") {\n //If there's no actual task pane, fallback to modal dialog\n if (!hasTaskPane) {\n openModalUrl(name, dispatch, url, modalTitle);\n } else {\n dispatch({\n type: ActionType.TASK_INVOKE_URL,\n payload: {\n url: url\n }\n });\n }\n } else if (target == \"NewWindow\") {\n openModalUrl(name, dispatch, url, modalTitle);\n } else if (target == \"SpecifiedFrame\") {\n if (cmdDef.targetFrame) {\n const frames = (window as any).frames as any[];\n let bInvoked = false;\n for (let i = 0; i < frames.length; i++) {\n if (frames[i].name == cmdDef.targetFrame) {\n frames[i].location = url;\n bInvoked = true;\n break;\n }\n }\n if (!bInvoked) {\n error(`Frame not found: ${cmdDef.targetFrame}`);\n }\n } else {\n error(`Command ${name} has a target of \"SpecifiedFrame\", but does not specify a target frame`);\n }\n } else {\n assertNever(target);\n }\n}\n\n/**\n * Registers a viewer command\n *\n * @export\n * @param {string} name\n * @param {(ICommand | IInvokeUrlCommand | ISearchCommand)} cmdDef\n */\nexport function registerCommand(name: string, cmdDef: ICommand | IInvokeUrlCommand | ISearchCommand) {\n let cmd: ICommand;\n if (isInvokeUrlCommand(cmdDef)) {\n cmd = {\n icon: cmdDef.icon,\n iconClass: cmdDef.iconClass,\n title: cmdDef.title,\n enabled: (state) => {\n if (cmdDef.disableIfSelectionEmpty === true) {\n return CommandConditions.hasSelection(state);\n }\n return true;\n },\n selected: () => false,\n invoke: (dispatch: ReduxDispatch, getState: () => IApplicationState, viewer: IMapViewer, parameters?: any) => {\n const state = getState();\n const config = state.config;\n const map = getRuntimeMap(state);\n const params = mergeInvokeUrlParameters(cmdDef.parameters, parameters);\n const url = ensureParameters(cmdDef.url, map?.Name, map?.SessionId, config.locale, true, params);\n openUrlInTarget(name, cmdDef, config.capabilities.hasTaskPane, dispatch, url, cmd.title);\n }\n };\n } else if (isSearchCommand(cmdDef)) {\n cmd = {\n icon: cmdDef.icon,\n iconClass: cmdDef.iconClass,\n title: cmdDef.title,\n enabled: state => !state.stateless,\n selected: () => false,\n invoke: (dispatch: ReduxDispatch, getState: () => IApplicationState, viewer: IMapViewer, parameters?: any) => {\n const state = getState();\n const config = state.config;\n const map = getRuntimeMap(state);\n if (map) {\n const url = ensureParameters(`${getFusionRoot()}/widgets/Search/SearchPrompt.php`, map.Name, map.SessionId, config.locale, false)\n + `&popup=0`\n + `&target=TaskPane`\n + `&title=${encodeURIComponent(cmdDef.title)}`\n + `&prompt=${encodeURIComponent(cmdDef.prompt)}`\n + `&layer=${encodeURIComponent(cmdDef.layer)}`\n + `&pointZoomLevel=${parameters.PointZoomLevel}`\n + (cmdDef.filter ? `&filter=${encodeURIComponent(cmdDef.filter)}` : '')\n + `&limit=${cmdDef.matchLimit}`\n + `&properties=${(cmdDef.resultColumns.Column || []).map(col => col.Property).join(\",\")}`\n + `&propNames=${(cmdDef.resultColumns.Column || []).map(col => col.Name).join(\",\")}`;\n openUrlInTarget(name, cmdDef, config.capabilities.hasTaskPane, dispatch, url, cmd.title);\n }\n }\n };\n } else {\n cmd = cmdDef;\n }\n commands[name] = cmd;\n}\n\n/**\n * Gets a registered viewer command by its name\n *\n * @export\n * @param {string} name\n * @returns {(ICommand | undefined)}\n */\nexport function getCommand(name: string): ICommand | undefined {\n return commands[name];\n}","import * as React from \"react\";\nimport { Error } from \"../../components/error\";\nimport { tr } from \"../i18n\";\n\n/**\n * The default set of component names\n *\n * @export\n * @class DefaultComponentNames\n */\nexport enum DefaultComponentNames {\n Legend = \"Legend\",\n SelectionPanel = \"SelectionPanel\",\n Map = \"Map\",\n Navigator = \"Navigator\",\n MouseCoordinates = \"MouseCoordinates\",\n ScaleDisplay = \"ScaleDisplay\",\n SelectedFeatureCount = \"SelectedFeatureCount\",\n PoweredByMapGuide = \"PoweredByMapGuide\",\n TaskPane = \"TaskPane\",\n About = \"About\",\n SessionExpired = \"SessionExpired\",\n Measure = \"Measure\",\n ViewerOptions = \"ViewerOptions\",\n QuickPlot = \"QuickPlot\",\n BaseMapSwitcher = \"BaseMapSwitcher\",\n MapMenu = \"MapMenu\",\n ViewSize = \"ViewSize\",\n CoordinateTracker = \"CoordinateTracker\",\n AddManageLayers = \"AddManageLayers\",\n ShareLinkToView = \"ShareLinkToView\"\n}\n\n/**\n * A react component factory function signature\n */\nexport type ComponentFactory = (props: any) => JSX.Element;\n\nconst components: { [id: string]: ComponentFactory } = {};\n\n/**\n * Registers a react component factory function for the given component id\n *\n * @export\n * @param {string} id\n * @param {ComponentFactory} factory\n */\nexport function registerComponentFactory(id: string, factory: ComponentFactory): void {\n components[id] = factory;\n}\n\n/**\n * Gets the registered component factory function for the given component id\n *\n * @export\n * @param {string} id\n * @returns {ComponentFactory}\n */\nexport function getComponentFactory(id: string): ComponentFactory | undefined {\n return components[id];\n}\n\n/**\n * Placeholder component properties\n *\n * @export\n * @interface IPlaceholderComponentProps\n */\nexport interface IPlaceholderComponentProps {\n /**\n * The id of the component this placeholder is for\n *\n * @type {string}\n * @memberOf IPlaceholderComponentProps\n */\n id: string;\n /**\n * The locale\n *\n * @type {string}\n * @memberOf IPlaceholderComponentProps\n */\n locale?: string;\n /**\n * The props of the underlying component\n *\n * @type {*}\n * @memberOf IPlaceholderComponentProps\n */\n componentProps?: any;\n}\n\n/**\n * A component placeholder\n *\n * @export\n * @class PlaceholderComponent\n * @extends {React.Component}\n */\nexport class PlaceholderComponent extends React.Component {\n constructor(props: IPlaceholderComponentProps) {\n super(props);\n }\n render(): JSX.Element {\n const { id, componentProps } = this.props;\n const factory = getComponentFactory(id);\n if (factory) {\n return factory(componentProps);\n } else {\n return ;\n }\n }\n}","import BaseLayer from 'ol/layer/Base';\nimport { IGenericSubjectMapLayerMetadata } from '../../actions/defs';\nimport { Dictionary } from '../common';\n\n/**\n * A factory method for creating OpenLayers layers from a JSON definition\n * \n * @since 0.14\n */\nexport type ExternalLayerCreator = (data: any, meta: IGenericSubjectMapLayerMetadata | undefined, layerOptions: any, appSettings: Dictionary) => BaseLayer;\n\n/**\n * Defines a registry of custom vector layer source drivers\n */\nexport class ExternalLayerFactoryRegistry {\n\n private static _instance: ExternalLayerFactoryRegistry = new ExternalLayerFactoryRegistry();\n\n private _vectorCreators: { [driverName: string]: ExternalLayerCreator } = {};\n\n constructor() {\n if (ExternalLayerFactoryRegistry._instance) {\n throw new Error(\"Error: Instantiation failed: Use ExternalLayerFactoryRegistry.getInstance() instead of new.\");\n }\n ExternalLayerFactoryRegistry._instance = this;\n }\n\n /**\n * Gets the registry instance\n * @since 0.14\n */\n public static getInstance(): ExternalLayerFactoryRegistry {\n return ExternalLayerFactoryRegistry._instance;\n }\n\n /**\n * Registers the given external vector layer factory method\n * \n * @param driverName \n * @param creator \n * @since 0.14\n */\n public registerExternalVectorLayerCreator(driverName: string, creator: ExternalLayerCreator) {\n this._vectorCreators[driverName] = creator;\n }\n\n /**\n * Gets the external vector layer factory method for the given driver\n * \n * @param driverName \n */\n public getExternalVectorLayerCreator(driverName: string): ExternalLayerCreator | undefined {\n return this._vectorCreators[driverName];\n }\n}","/**\n * A react layout template component factory function signature\n */\nexport type LayoutFactory = (() => JSX.Element);\n\n/**\n * Capabilities of a viewer layout template\n * \n * @since 0.14\n */\nexport type LayoutCapabilities = {\n /**\n * Indicates if this viewer layout template has a task pane\n */\n readonly hasTaskPane: boolean;\n};\n\nconst layouts: { [key: string]: LayoutFactory } = {};\nconst layoutCaps: { [key: string]: LayoutCapabilities } = {};\n\n/**\n * Gets the capabilities of the given layout template\n * \n * @param name \n * @returns \n * @since 0.14\n */\nexport function getLayoutCapabilities(name: string): LayoutCapabilities | undefined {\n return layoutCaps[name];\n}\n\n/**\n * Register the given react layout template component factory function for the given\n * template name\n *\n * @export\n * @param {string} name\n * @param {LayoutFactory} factory\n * @param caps The capabilities of this template\n * @since 0.14 \n */\nexport function registerLayout(name: string, factory: LayoutFactory, caps: LayoutCapabilities) {\n layouts[name] = factory;\n layoutCaps[name] = caps;\n}\n\n/**\n * Gets the registerd react layout template component factory function for the given\n * template name\n *\n * @export\n * @param {string} name\n * @returns {LayoutFactory}\n */\nexport function getLayout(name: string): LayoutFactory {\n return layouts[name];\n}","import proj4 from \"proj4\";\nimport { MgError } from '../error';\nimport { tr } from '../i18n';\nimport { strIsNullOrEmpty } from '../../utils/string';\nimport { register } from 'ol/proj/proj4';\nimport { debug } from '../../utils/logger';\n\n/**\n * Performs a projection definititon lookup at epsg.io for the given EPSG code\n *\n * @export\n * @param {string | number} epsg\n * @param {string} locale\n * @param {string} mapDef\n * @returns {Promise}\n * @since 0.13\n */\nexport async function resolveProjectionFromEpsgIoAsync(epsg: string | number, locale: string, mapDef: string): Promise {\n const r = await fetch(`//epsg.io?format=json&q=${epsg}`);\n const resp = await r.json();\n if (resp.results && resp.results.length > 0) {\n proj4.defs(`EPSG:${epsg}`, resp.results[0].proj4);\n debug(`Registered projection EPSG:${epsg} from epsg.io`);\n return proj4.defs[`EPSG:${epsg}`];\n } else {\n throw new MgError(tr(\"INIT_ERROR_UNREGISTERED_EPSG_CODE\", locale, { epsg: epsg, mapDefinition: mapDef }));\n }\n}\n\n/**\n * Ensures the given projection (by EPSG code) exists and if not invokes the given factory function (or does an epsg.io lookup)\n * to fetch the definition to be registered.\n * \n * Once registered, it will update the projection set within OpenLayers\n * \n * @export\n * @param {number} epsgCode\n * @param {() => Promise} [factoryIfNotFound] A custom factory function to provide the required proj4js string for this projection. If not specified, a lookup to epsg.io will be done instead\n * @param {string} alias\n * @returns {Promise}\n * @since 0.13\n */\nexport async function ensureProjection(epsgCode: number, locale: string, alias?: string, factoryIfNotFound?: () => Promise): Promise<[number, string]> {\n let resolvedName: string;\n let bAdded = false;\n const name = `EPSG:${epsgCode}`;\n if (proj4.defs[name]) {\n resolvedName = name;\n } else {\n if (factoryIfNotFound) {\n proj4.defs[name] = factoryIfNotFound();\n bAdded = true;\n resolvedName = name;\n } else {\n await resolveProjectionFromEpsgIoAsync(epsgCode, locale, \"\");\n resolvedName = name;\n }\n }\n //Register the alias if specified\n if (!strIsNullOrEmpty(alias) && !proj4.defs[alias]) {\n proj4.defs[alias] = proj4.defs[resolvedName];\n bAdded = true;\n }\n //Need to call re-register if proj4.defs got changed so OL can pick it up\n if (bAdded) {\n register(proj4);\n }\n return [epsgCode, resolvedName];\n}","import { SelectionVariant } from './common';\nimport { ResourceIdentifier, ResourceBase, SiteVersionResponse } from './contracts/common';\nimport { RuntimeMap } from './contracts/runtime-map';\nimport { QueryMapFeaturesResponse } from './contracts/query';\n\n/**\n * Describes a request that takes either a session or username/password pair\n *\n * @export\n * @interface IAuthenticatedRequest\n */\nexport interface IAuthenticatedRequest {\n /**\n * The session id\n *\n * @type {string}\n * @memberOf IAuthenticatedRequest\n */\n session?: string;\n /**\n * The username\n *\n * @type {string}\n * @memberOf IAuthenticatedRequest\n */\n username?: string;\n /**\n * The password\n *\n * @type {string}\n * @memberOf IAuthenticatedRequest\n */\n password?: string;\n}\n\n/**\n * Bitmask describing what data to return when creating a runtime map\n *\n * @export\n * @enum {number}\n */\nexport enum RuntimeMapFeatureFlags {\n /**\n * Include data about layers and groups\n */\n LayersAndGroups = 1,\n /**\n * Include layer icons\n */\n LayerIcons = 2,\n /**\n * Include data about layer feature sources\n */\n LayerFeatureSources = 4\n}\n\n/**\n * Describes options for creating a runtime map\n *\n * @export\n * @interface ICreateRuntimeMapOptions\n * @extends {IAuthenticatedRequest}\n */\nexport interface ICreateRuntimeMapOptions extends IAuthenticatedRequest {\n /**\n * The map definition id\n *\n * @type {ResourceIdentifier}\n * @memberOf ICreateRuntimeMapOptions\n */\n mapDefinition: ResourceIdentifier;\n /**\n * A bitmask indicating what data to return\n *\n * @type {(number | RuntimeMapFeatureFlags)}\n * @memberOf ICreateRuntimeMapOptions\n */\n requestedFeatures: number | RuntimeMapFeatureFlags;\n /**\n * If requesting icons, the number of icons per scale range\n *\n * @type {number}\n * @memberOf ICreateRuntimeMapOptions\n */\n iconsPerScaleRange?: number;\n /**\n * The image format for requested icons\n *\n * @type {(\"PNG\" | \"PNG8\" | \"GIF\" | \"JPG\")}\n * @memberOf ICreateRuntimeMapOptions\n */\n iconFormat?: \"PNG\" | \"PNG8\" | \"GIF\" | \"JPG\";\n /**\n * The width of requested icons\n *\n * @type {number}\n * @memberOf ICreateRuntimeMapOptions\n */\n iconWidth?: number;\n /**\n * The height of requested icons\n *\n * @type {number}\n * @memberOf ICreateRuntimeMapOptions\n */\n iconHeight?: number;\n /**\n * The target map name to assign. Otherwise the map name will be computed from the map definition id\n *\n * @type {string}\n * @memberOf ICreateRuntimeMapOptions\n */\n targetMapName?: string;\n}\n\n/**\n * Describes operations requiring a session id\n *\n * @export\n * @interface ISessionBasedRequest\n */\nexport interface ISessionBasedRequest {\n /**\n * The session id\n *\n * @type {string}\n * @memberOf ISessionBasedRequest\n */\n session: string;\n}\n\n/**\n * Describes operations against a runtime map\n *\n * @export\n * @interface IRuntimeMapRequest\n * @extends {ISessionBasedRequest}\n */\nexport interface IRuntimeMapRequest extends ISessionBasedRequest {\n /**\n * The name of the runtime map\n *\n * @type {string}\n * @memberOf IRuntimeMapRequest\n */\n mapname: string;\n}\n\n/**\n * A bitmask indicating what to return when querying map features\n *\n * @export\n * @enum {number}\n */\nexport enum QueryFeaturesSet {\n /**\n * Include attributes of selected features\n */\n Attributes = 1,\n /**\n * Include an inline image of the selected features\n */\n InlineSelection = 2,\n /**\n * Include tooltips for the first matching feature\n */\n Tooltip = 4,\n /**\n * Include hyperlink for the first matching feature\n */\n Hyperlink = 8\n}\n\n\n\n/**\n * Options for querying map features\n *\n * @export\n * @interface IQueryMapFeaturesOptions\n * @extends {IRuntimeMapRequest}\n */\nexport interface IQueryMapFeaturesOptions extends IRuntimeMapRequest {\n /**\n * A comma-seperated list of layer name to restrict the query on. Omit to\n * cover all selectable layers\n *\n * @type {string}\n */\n layernames?: string;\n /**\n * The WKT of the query geometry\n *\n * @type {string}\n */\n geometry?: string;\n /**\n * The spatial query operator to use with the input geometry\n *\n * @type {SelectionVariant}\n */\n selectionvariant?: SelectionVariant;\n /**\n * A bitmask containing what features to ask for\n *\n * @type {QueryFeaturesSet}\n */\n requestdata?: QueryFeaturesSet;\n /**\n * The color of the selection\n *\n * @type {string}\n */\n selectioncolor?: string;\n /**\n * The image format of the requested selection image\n *\n * @type {(\"PNG\" | \"JPG\" | \"GIF\" | \"PNG8\")}\n */\n selectionformat?: \"PNG\" | \"JPG\" | \"GIF\" | \"PNG8\";\n /**\n * The maximum number of features to select. Use -1 for no limit.\n *\n * @type {number}\n */\n maxfeatures?: number;\n /**\n * 1 = Persist the query selection changes to the current selection set\n * 0 = The query selection does not modify the current selection set\n *\n * @type {number}\n */\n persist?: number;\n /**\n * An optional selection XML string. If specified, the rendering/query will be based off of\n * a selection initialized with this selection XML\n */\n featurefilter?: string;\n layerattributefilter?: number;\n}\n\n/**\n * Options for describing a runtime map\n *\n * @export\n * @interface IDescribeRuntimeMapOptions\n * @extends {IRuntimeMapRequest}\n */\nexport interface IDescribeRuntimeMapOptions extends IRuntimeMapRequest {\n /**\n * A bitmask of data to return about a runtime map\n *\n * @type {(number | RuntimeMapFeatureFlags)}\n * @memberOf IDescribeRuntimeMapOptions\n */\n requestedFeatures?: number | RuntimeMapFeatureFlags;\n /**\n * If requesting icons, the number of icons per scale range\n *\n * @type {number}\n * @memberOf IDescribeRuntimeMapOptions\n */\n iconsPerScaleRange?: number;\n /**\n * The image format for requested icons\n *\n * @type {(\"PNG\" | \"PNG8\" | \"GIF\" | \"JPG\")}\n * @memberOf IDescribeRuntimeMapOptions\n */\n iconFormat?: \"PNG\" | \"PNG8\" | \"GIF\" | \"JPG\";\n /**\n * The width of requested icons\n *\n * @type {number}\n * @memberOf IDescribeRuntimeMapOptions\n */\n iconWidth?: number;\n /**\n * The height of requested icons\n *\n * @type {number}\n * @memberOf IDescribeRuntimeMapOptions\n */\n iconHeight?: number;\n}\n\n/**\n * Provides client services for a MapGuide map viewer\n *\n * @export\n * @interface IMapGuideClient\n */\nexport interface IMapGuideClient {\n /**\n * Creates a new MapGuide session\n *\n * @param {string} username\n * @param {string} password\n * @returns {Promise}\n */\n createSession(username: string, password: string): Promise;\n\n /**\n * Retrieves the requested resource\n *\n * @abstract\n * @template T\n * @param {string} resourceId\n * @returns {PromiseLike}\n */\n getResource(resourceId: ResourceIdentifier, args?: any): Promise;\n\n /**\n * Creates a runtime map from the specified map definition\n *\n * @abstract\n * @param {ICreateRuntimeMapOptions} options\n * @returns {PromiseLike}\n */\n createRuntimeMap(options: ICreateRuntimeMapOptions): Promise;\n\n /**\n * Performs a map selection query on the current map\n *\n * @abstract\n * @param {IQueryMapFeaturesOptions} options\n * @returns {PromiseLike}\n */\n queryMapFeatures(options: IQueryMapFeaturesOptions): Promise;\n\n /**\n * Performs a map selection query on the current map. Only applicable for use with MapGuide\n * Open Source 4.0 and higher\n *\n * @abstract\n * @param {IQueryMapFeaturesOptions} options\n * @returns {PromiseLike}\n */\n queryMapFeatures_v4(options: IQueryMapFeaturesOptions): Promise;\n\n /**\n * Describes a runtime map\n *\n * @abstract\n * @param {IDescribeRuntimeMapOptions} options\n * @returns {PromiseLike}\n */\n describeRuntimeMap(options: IDescribeRuntimeMapOptions): Promise;\n\n /**\n * Gets the tile template URL used by the viewer to send tile requests\n *\n * @param {string} resourceId\n * @param {string} groupName\n * @param {string} xPlaceholder\n * @param {string} yPlaceholder\n * @param {string} zPlaceholder\n * @returns {string}\n */\n getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string): string;\n}\n\n/**\n * An abstract MapGuide service client\n *\n * @export\n * @abstract\n * @class RequestBuilder\n * @implements {IMapGuideClient}\n */\nexport abstract class RequestBuilder implements IMapGuideClient {\n protected agentUri: string;\n constructor(agentUri: string) {\n this.agentUri = agentUri;\n }\n\n public abstract createSession(username: string, password: string): Promise;\n\n public abstract getServerSessionTimeout(session: string): Promise;\n\n public abstract getResource(resourceId: ResourceIdentifier, args?: any): Promise;\n\n public abstract createRuntimeMap(options: ICreateRuntimeMapOptions): Promise;\n\n public abstract queryMapFeatures(options: IQueryMapFeaturesOptions): Promise;\n\n public abstract queryMapFeatures_v4(options: IQueryMapFeaturesOptions): Promise;\n\n public abstract describeRuntimeMap(options: IDescribeRuntimeMapOptions): Promise;\n\n public abstract getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string): string;\n\n public abstract getSiteVersion(): Promise;\n}","/**\n * runtime.ts\n *\n * This represents a runtime environment where components can interact with the map viewer\n * in the traditional way. This module is mainly for servicing the AJAX viewer API emulation.\n *\n * Where possible, use actions instead of this module\n */\nimport { IMapViewer } from \"../api/common\";\nimport { debug } from '../utils/logger';\n\nlet _fusionRoot: string | undefined;\nlet _viewer: IMapViewer | undefined;\n\n/**\n * Sets the Fusion base URL\n *\n * @export\n * @param {string} root\n */\nexport function setFusionRoot(root: string): void {\n _fusionRoot = root;\n debug(`Fusion root set to: ${root}. Access to Fusion backend services and widget content will be relative to this value`);\n}\n\n/**\n * Gets the Fusion base URL\n *\n * @export\n * @returns {string}\n */\nexport function getFusionRoot(): string {\n return _fusionRoot || \"../fusion\";\n}\n\n/**\n * Sets the viewer instance. Called by the map viewer component when it has mounted.\n *\n * DO NOT CALL DIRECTLY\n *\n * @hidden\n * @param {IMapViewer} viewer\n */\nexport function setViewer(viewer: IMapViewer): void {\n _viewer = viewer;\n}\n\n/**\n * Gets whether the runtime environment is ready\n *\n * @export\n * @returns {boolean}\n */\nexport function isReady(): boolean {\n return _viewer != null;\n}\n\n/**\n * Gets the map viewer in this runtime environment\n *\n * @export\n * @returns {IMapViewer}\n * @deprecated You should be using the map provider context accessed via the {@link useMapProviderContext} hook where possible\n */\nexport function getViewer(): IMapViewer | undefined {\n return _viewer;\n}","import { ClientSelectionSet } from \"./contracts/common\";\nimport { SelectedFeatureSet, FeatureSet } from \"./contracts/query\";\n\nfunction isSelectedFeatureSet(ss: SelectedFeatureSet | FeatureSet): ss is SelectedFeatureSet {\n return (ss as any).SelectedLayer;\n}\n\nexport function countSelection(mgSelection?: SelectedFeatureSet | FeatureSet, clientSelection?: ClientSelectionSet) {\n const summary = { total: 0, layerCount: 0 };\n if (mgSelection) {\n if (isSelectedFeatureSet(mgSelection)) {\n summary.layerCount = mgSelection.SelectedLayer.length;\n for (const lyr of mgSelection.SelectedLayer) {\n summary.total += lyr.Feature?.length ?? 0;\n }\n } else {\n summary.layerCount = mgSelection.Layer.length;\n for (const lyr of mgSelection.Layer) {\n summary.total += lyr.Class?.ID?.length ?? 0;\n }\n }\n }\n if (clientSelection) {\n summary.layerCount = clientSelection.layers.length;\n for (const lyr of clientSelection.layers) {\n summary.total += lyr.features?.length ?? 0;\n }\n }\n if (summary.total == 0 && summary.layerCount == 0) {\n return undefined;\n }\n return summary;\n}","import { strStartsWith } from '../utils/string';\nimport { QueryMapFeaturesResponse } from './contracts/query';\nimport { AsyncLazy } from './lazy';\n\n/**\n * session-store.ts\n * \n * A thin-wrapper layer over local storage for storing any data related to viewer sessions\n */\n\n/**\n * @since 0.12\n */\nexport async function clearSessionStore(): Promise {\n try {\n for (const key in window.localStorage) {\n if (strStartsWith(key, \"selection_\")) {\n window.localStorage.removeItem(key);\n }\n }\n } catch (e) {\n\n }\n}\n\nfunction encodeKey(sessionId: string, mapName: string) {\n return `selection_${sessionId}_${mapName}`;\n}\n\nexport async function persistSelectionSetToLocalStorage(sessionId: string, mapName: string, resp: QueryMapFeaturesResponse): Promise {\n const key = encodeKey(sessionId, mapName);\n const value = JSON.stringify(resp);\n try {\n window.localStorage.setItem(key, value);\n } catch (e) {\n\n }\n}\n\nexport async function retrieveSelectionSetFromLocalStorage(sessionId: AsyncLazy, mapName: string): Promise {\n const key = encodeKey(await sessionId.getValueAsync(), mapName);\n const content = window.localStorage.getItem(key);\n if (content) {\n return JSON.parse(content);\n }\n}","import * as React from \"react\";\n\n/**\n * The About component displays information about this viewer\n * @param props\n */\nexport const About: React.StatelessComponent = (props) => {\n return
\n

mapguide-react-layout

\n
\n

Hash: {__COMMITHASH__}

\n
\n

GitHub

\n

Issues

\n

Uses icons from the Fugue icon set by Yusuke Kamiyamane

\n
;\n};","import * as React from \"react\";\nimport {\n GenericEvent\n} from \"../api/common\";\nimport { Collapse, Icon as BpIcon, ResizeSensor, IResizeEntry } from '@blueprintjs/core';\n\n/**\n * Accordion panel dimensions\n *\n * @export\n * @interface IAccordionPanelContentDimensions\n */\nexport interface IAccordionPanelContentDimensions {\n width: number;\n height: number;\n}\n\n/**\n * Describes a panel in the accordion\n *\n * @export\n * @interface IAccordionPanelSpec\n */\nexport interface IAccordionPanelSpec {\n id: string;\n title: string;\n contentRenderer: (dim: IAccordionPanelContentDimensions, isResizing?: boolean) => JSX.Element;\n}\n\n/**\n * Accordion component props\n *\n * @export\n * @interface IAccordionProps\n */\nexport interface IAccordionProps {\n style: React.CSSProperties;\n panels: IAccordionPanelSpec[];\n onActivePanelChanged?: (id: string) => void;\n activePanelId?: string;\n isResizing?: boolean;\n}\n\nconst PANEL_HEADER_HEIGHT = 24;\n\nfunction validatePanelId(panels: IAccordionPanelSpec[], id: string | undefined): string | null {\n if (!id) {\n return null;\n }\n const panel = panels.filter(p => p.id == id)[0];\n if (panel) {\n return id;\n }\n return null;\n}\n\n/**\n * A generic, reusable Accordion component\n * @param props \n */\nexport const Accordion = (props: IAccordionProps) => {\n const { style, panels, isResizing, onActivePanelChanged } = props;\n const activeId = validatePanelId(props.panels, props.activePanelId);\n const [dim, setDim] = React.useState>({\n width: -1,\n height: -1\n });\n const [openPanel, setOpenPanel] = React.useState(activeId || panels[panels.length - 1].id);\n React.useEffect(() => {\n setOpenPanel(activeId || panels[panels.length - 1].id);\n }, [activeId]);\n const onResize = (entries: IResizeEntry[]) => {\n setDim(entries[0].contentRect);\n };\n const onTogglePanel = (e: GenericEvent) => {\n const id = e.currentTarget.attributes[\"data-accordion-panel-id\"].value;\n if (openPanel != id) {\n setOpenPanel(id);\n onActivePanelChanged?.(id);\n }\n }\n return \n
\n {panels.map(p => {\n const isOpen = (p.id == openPanel);\n return
\n
\n {p.title}\n
\n \n {p.contentRenderer({ width: dim.width, height: (dim.height - (panels.length * PANEL_HEADER_HEIGHT)) }, isResizing)}\n \n
;\n })}\n
\n
;\n}","import * as React from \"react\";\nimport { IExternalBaseLayer } from \"../api/common\";\nimport { STR_EMPTY, strIsNullOrEmpty } from \"../utils/string\";\nimport { tr } from \"../api/i18n\";\n\n/**\n * BaseLayersSwitcher component props\n *\n * @export\n * @interface IBaseLayerSwitcherProps\n */\nexport interface IBaseLayerSwitcherProps {\n locale: string | undefined;\n externalBaseLayers: IExternalBaseLayer[];\n onBaseLayerChanged?: (name: string) => void;\n}\n\n/**\n * The BaseLayerSwitcher component provides a user interface for switching the active external\n * base layer of the current map\n * @param props \n */\nexport const BaseLayerSwitcher = (props: IBaseLayerSwitcherProps) => {\n const { locale, externalBaseLayers } = props;\n const visLayers = externalBaseLayers.filter(layer => layer.visible === true);\n const [selected, setSelected] = React.useState(visLayers.length == 1 ? visLayers[0].name : STR_EMPTY);\n const onBaseLayerChanged = (e: any) => {\n const value = e.currentTarget.value;\n setSelected(value);\n props.onBaseLayerChanged?.(value);\n }\n React.useEffect(() => {\n setSelected(visLayers.length == 1 ? visLayers[0].name : STR_EMPTY);\n }, [visLayers]);\n return
\n
\n \n
\n {externalBaseLayers.map(layer => {\n return
\n \n
;\n })}\n
;\n}","import * as React from \"react\";\nimport { Collapse, Button, Intent, Card } from '@blueprintjs/core';\nimport { tr } from \"../api/i18n\";\nimport { NBSP } from '../constants';\nimport { DEFAULT_COLOR } from '../api/ol-style-contracts';\nimport { HexColorPicker } from \"react-colorful\";\n\n/**\n * Color picker props\n * \n * @since 0.13\n */\nexport interface IColorPickerProps {\n value?: string;\n locale: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n}\n\n/**\n * A basic color picker component\n * \n * @since 0.13\n */\nexport const ColorPicker = (props: IColorPickerProps) => {\n const [isPickerOpen, setIsPickerOpen] = React.useState(false);\n const onPickerToggle = () => {\n setIsPickerOpen(!isPickerOpen);\n };\n return
\n \n \n \n props.onChange(c)} />\n \n \n \n
\n}","/**\n * context.ts\n *\n * This module holds various React component contexts and validation maps\n */\nimport * as React from \"react\";\nimport { IDOMElementMetrics } from \"../api/common\";\nimport { MapLayer, MapGroup } from \"../api/contracts/runtime-map\";\nimport { DEFAULT_LOCALE } from '../api/i18n';\nimport { STR_EMPTY } from '../utils/string';\n\nconst VOID_NOOP = () => {}\n\nexport interface IApplicationContext {\n /**\n * Gets whether to display HTML property values in the selection panel (provided via mount option)\n * \n * @since 0.11\n * @memberof IApplicationContext\n */\n allowHtmlValuesInSelection: () => boolean;\n /**\n * Gets a HTML sanitization function (if provided via mount option)\n * \n * @since 0.11\n * @memberof IApplicationContext\n */\n getHTMLCleaner: () => (((value: string) => string) | undefined);\n}\n\nexport const AppContext = React.createContext({\n allowHtmlValuesInSelection: () => false,\n getHTMLCleaner: () => v => v\n});\n\nexport interface ILegendContext {\n stateless: boolean;\n isFiltering(): boolean;\n getMapName(): string | undefined;\n getFilterText(): string;\n getLocale(): string;\n getBaseIconSize(): number;\n getIconMimeType(): string | undefined;\n getChildren(objectId: string): (MapLayer | MapGroup)[];\n getCurrentScale(): number;\n getTree(): any;\n getLayerVisibility(layer: MapLayer): boolean;\n getGroupVisibility(group: MapGroup): boolean;\n setGroupVisibility(groupId: string, visible: boolean): void;\n setLayerVisibility(layerId: string, visible: boolean): void;\n getLayerSelectability(layerId: string): boolean;\n setLayerSelectability(layerId: string, selectable: boolean): void;\n getGroupExpanded(groupId: string): boolean;\n setGroupExpanded(groupId: string, expanded: boolean): void;\n getLayerExpanded(layerId: string): boolean;\n setLayerExpanded(layerId: string, expanded: boolean): void;\n}\n\nexport const LegendContext = React.createContext({\n stateless: false,\n getMapName: () => undefined,\n isFiltering: () => false,\n getFilterText: () => STR_EMPTY,\n getLocale: () => DEFAULT_LOCALE,\n getBaseIconSize: () => 0,\n getIconMimeType: () => STR_EMPTY,\n getChildren: () => [],\n getCurrentScale: () => -1,\n getTree: VOID_NOOP,\n getLayerVisibility: () => false,\n getGroupVisibility: () => false,\n setGroupVisibility: VOID_NOOP,\n setLayerVisibility: VOID_NOOP,\n getLayerSelectability: () => false,\n setLayerSelectability: () => false,\n getGroupExpanded: () => false,\n setGroupExpanded: VOID_NOOP,\n getLayerExpanded: () => false,\n setLayerExpanded: VOID_NOOP,\n});\n\nexport interface IToolbarContext {\n openFlyout(id: string, metrics: IDOMElementMetrics): void;\n closeFlyout(id: string): void;\n openComponent(id: string, metrics: IDOMElementMetrics, name: string, props?: any): void;\n closeComponent(id: string): void;\n}\n\nexport const ToolbarContext = React.createContext({\n openFlyout: VOID_NOOP,\n closeFlyout: VOID_NOOP,\n openComponent: VOID_NOOP,\n closeComponent: VOID_NOOP\n});","import * as React from \"react\";\nimport { InitError } from \"../api/common\";\nimport { isError, isInitError } from \"../utils/type-guards\";\nimport { Intent, Callout } from '@blueprintjs/core';\n\n/**\n * Error component props\n *\n * @export\n * @interface IErrorProps\n */\nexport interface IErrorProps {\n error: Error|InitError|string;\n errorRenderer?: (err: Error|InitError) => JSX.Element;\n}\n\n/**\n * Returns a normalized stack trace for the given error object\n *\n * @export\n * @param {(Error|InitError)} err\n * @returns {string[]}\n */\nexport function normalizeStack(err: Error|InitError): string[] {\n let stack: string[];\n if (err.stack instanceof Array) {\n stack = err.stack || [];\n } else if (typeof(err.stack) == 'string') {\n stack = (err.stack || \"\").split(\"\\n\");\n } else {\n stack = [];\n }\n return stack;\n}\n\n/**\n * The Error component displays an error object in a nicely formatted manner\n * @param props\n */\nexport const Error = (props: IErrorProps) => {\n const err = props.error;\n if (isError(err) || isInitError(err)) {\n if (props.errorRenderer) {\n return props.errorRenderer(err);\n } else {\n const message = err.message;\n const stack = normalizeStack(err);\n return \n
{err.message}
\n
    \n {stack.map((ln, i) =>
  • {ln}
  • )}\n
\n
;\n }\n } else {\n return \n
{err}
\n
;\n }\n};","import { MgError } from \"../api/error\";\nimport { Dictionary, IExternalBaseLayer, ILayerInfo, LayerProperty } from \"../api/common\";\nimport { IGenericSubjectMapLayer, IInitialExternalLayer, GenericSubjectLayerType } from '../actions/defs';\nimport olSource from \"ol/source/Source\";\nimport XYZ from \"ol/source/XYZ\";\nimport OSM from \"ol/source/OSM\";\nimport TileDebug from \"ol/source/TileDebug\";\nimport Stamen from \"ol/source/Stamen\";\nimport BingMaps from \"ol/source/BingMaps\";\nimport UTFGrid from \"ol/source/UTFGrid\";\nimport TileLayer from 'ol/layer/Tile';\nimport TileWMS from 'ol/source/TileWMS';\nimport LayerBase from \"ol/layer/Base\";\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport ClusterSource from 'ol/source/Cluster';\nimport VectorTileSource from 'ol/source/VectorTile';\nimport VectorTileLayer from 'ol/layer/VectorTile';\nimport { CsvFormatDriver, CSV_COLUMN_ALIASES } from '../api/layer-manager/csv-driver';\nimport KML from 'ol/format/KML';\nimport GeoJSON from \"ol/format/GeoJSON\";\nimport MVT from 'ol/format/MVT';\nimport type { Options as MVTOptions } from 'ol/format/MVT';\nimport { ExternalLayerFactoryRegistry } from '../api/registry/external-layer';\nimport { strIsNullOrEmpty } from '../utils/string';\nimport GeometryType from 'ol/geom/GeometryType';\nimport { setOLVectorLayerStyle } from '../api/ol-style-helpers';\nimport { DEFAULT_VECTOR_LAYER_STYLE } from '../api/ol-style-contracts';\nimport VectorTile from \"ol/VectorTile\";\nimport Feature from \"ol/Feature\";\nimport { OLVectorLayer, OLVectorSource } from \"../api/ol-types\";\nimport geojsonvt from 'geojson-vt';\nimport Projection from \"ol/proj/Projection\";\nimport { ProjectionLike, get, equivalent } from \"ol/proj\";\nimport { AsyncLazy } from \"../api/lazy\";\nimport { debug } from \"../utils/logger\";\nimport ImageLayer from \"ol/layer/Image\";\nimport Static from \"ol/source/ImageStatic\";\n\nfunction sameProjectionAs(proj1: ProjectionLike, proj2: ProjectionLike) {\n const nproj1 = get(proj1);\n const nproj2 = get(proj2);\n if (nproj1 && nproj2)\n return equivalent(nproj1, nproj2);\n else\n return true; // null == null, so yeah\n}\n\n// Converts geojson-vt data to GeoJSON\nconst geoJsonVt2GeoJSON = (key: string, value: any) => {\n if (value.geometry) {\n let type;\n const rawType = value.type;\n let geometry = value.geometry;\n\n if (rawType === 1) {\n type = 'MultiPoint';\n if (geometry.length == 1) {\n type = 'Point';\n geometry = geometry[0];\n }\n } else if (rawType === 2) {\n type = 'MultiLineString';\n if (geometry.length == 1) {\n type = 'LineString';\n geometry = geometry[0];\n }\n } else if (rawType === 3) {\n type = 'Polygon';\n if (geometry.length > 1) {\n type = 'MultiPolygon';\n geometry = [geometry];\n }\n }\n\n return {\n 'type': 'Feature',\n 'geometry': {\n 'type': type,\n 'coordinates': geometry,\n },\n 'properties': value.tags,\n };\n } else {\n return value;\n }\n};\n\nasync function getRawGeoJson(defn: IGenericSubjectMapLayer) {\n const { url } = defn.sourceParams;\n if (typeof (url) == 'string') {\n debug(`Fetching url: ${url}`);\n const resp = await fetch(url);\n let json = await resp.json();\n return json;\n } else if (typeof (url) == 'object' && !strIsNullOrEmpty(url.var_source)) {\n if (!window[url.var_source]) {\n throw new Error(`No such global var (${url.var_source})`);\n }\n return window[url.var_source];\n } else {\n throw new Error(\"Don't know how to process URL source\");\n }\n}\n\nfunction createGeoJsonVectorSource(defn: IGenericSubjectMapLayer, mapProjection: ProjectionLike) {\n const { url, attributions } = defn.sourceParams;\n if (typeof (url) == 'string') {\n const source = new VectorSource({\n url: url,\n format: new GeoJSON(),\n attributions: attributions\n });\n return source;\n } else if (typeof (url) == 'object' && !strIsNullOrEmpty(url.var_source)) {\n if (!window[url.var_source]) {\n throw new Error(`No such global var (${url.var_source})`);\n }\n const vectorSource = new VectorSource({\n loader: (_extent, _resolution, projection) => {\n const format = new GeoJSON({\n dataProjection: defn.meta?.projection,\n featureProjection: mapProjection\n });\n const features = format.readFeatures(window[url.var_source]);\n vectorSource.addFeatures(features);\n },\n attributions: attributions\n });\n return vectorSource;\n } else {\n throw new Error(\"Don't know how to process URL source\");\n }\n}\n\nfunction applyVectorLayerProperties(defn: IGenericSubjectMapLayer | IInitialExternalLayer, layer: LayerBase, isExternal: boolean) {\n layer.set(LayerProperty.LAYER_NAME, defn.name);\n layer.set(LayerProperty.LAYER_DESCRIPTION, defn.description);\n layer.set(LayerProperty.LAYER_DISPLAY_NAME, defn.displayName);\n layer.set(LayerProperty.LAYER_TYPE, defn.type);\n layer.set(LayerProperty.IS_SELECTABLE, defn.selectable);\n layer.set(LayerProperty.DISABLE_HOVER, defn.disableHover);\n layer.set(LayerProperty.IS_EXTERNAL, isExternal);\n layer.set(LayerProperty.SELECTED_POPUP_CONFIGURATION, defn.popupTemplate);\n layer.set(LayerProperty.IS_GROUP, false);\n layer.set(LayerProperty.LAYER_METADATA, defn.meta);\n layer.set(LayerProperty.LAYER_DEFN, defn);\n layer.setVisible(defn.initiallyVisible);\n}\n\nconst EMPTY_GEOJSON = { type: \"FeatureCollection\", features: [] as any[] };\n\nexport function clusterSourceIfRequired(source: OLVectorSource, def: { cluster?: { distance: number } }): ClusterSource | OLVectorSource {\n if (def.cluster) {\n const cluster = new ClusterSource({\n source: source,\n distance: def.cluster.distance,\n geometryFunction: (feature) => {\n const geometry = feature.getGeometry();\n if (geometry && geometry.getType() == GeometryType.POINT) {\n return geometry;\n }\n return undefined as any;\n }\n });\n return cluster;\n }\n return source;\n}\n\nexport function createOLLayerFromSubjectDefn(defn: IGenericSubjectMapLayer | IInitialExternalLayer, mapProjection: ProjectionLike, isExternal: boolean, appSettings: Dictionary): LayerBase {\n switch (defn.type) {\n case GenericSubjectLayerType.StaticImage:\n {\n const sourceArgs = {\n ...defn.sourceParams\n };\n if (!sourceArgs.imageExtent)\n sourceArgs.imageExtent = defn.meta?.extents;\n const layer = new ImageLayer({\n source: new Static(sourceArgs)\n });\n layer.set(LayerProperty.LAYER_DESCRIPTION, defn.description);\n layer.set(LayerProperty.LAYER_TYPE, \"StaticImage\");\n layer.set(LayerProperty.IS_SELECTABLE, false);\n layer.set(LayerProperty.IS_EXTERNAL, isExternal);\n layer.set(LayerProperty.IS_GROUP, false);\n layer.set(LayerProperty.LAYER_METADATA, defn.meta);\n layer.set(LayerProperty.LAYER_DEFN, defn);\n layer.setVisible(defn.initiallyVisible);\n return layer;\n }\n case GenericSubjectLayerType.XYZ:\n {\n const sourceArgs = {\n ...defn.sourceParams\n };\n const layer = new TileLayer({\n source: new XYZ(sourceArgs)\n });\n layer.set(LayerProperty.LAYER_DESCRIPTION, defn.description);\n layer.set(LayerProperty.LAYER_TYPE, \"XYZ\");\n layer.set(LayerProperty.IS_SELECTABLE, false);\n layer.set(LayerProperty.IS_EXTERNAL, isExternal);\n layer.set(LayerProperty.IS_GROUP, false);\n layer.set(LayerProperty.LAYER_METADATA, defn.meta);\n layer.set(LayerProperty.LAYER_DEFN, defn);\n layer.setVisible(defn.initiallyVisible);\n return layer;\n }\n case GenericSubjectLayerType.GeoJSON_Inline:\n {\n const features = (new GeoJSON()).readFeatures(defn.sourceParams.features ?? EMPTY_GEOJSON);\n const source = new VectorSource({\n features: features,\n attributions: defn.sourceParams.attributions\n });\n const layer = new VectorLayer({\n ...defn.layerOptions,\n source: clusterSourceIfRequired(source, defn)\n });\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n case GenericSubjectLayerType.GeoJSON:\n {\n const isWebM = sameProjectionAs(mapProjection, \"EPSG:3857\");\n const asVT = defn.meta?.geojson_as_vt == true;\n if (asVT && isWebM) {\n const lazyTileIndex = new AsyncLazy(async () => {\n let json = await getRawGeoJson(defn);\n if (defn.meta?.projection != \"EPSG:4326\") {\n const gj = new GeoJSON({\n dataProjection: defn.meta?.projection,\n featureProjection: \"EPSG:4326\"\n });\n const features = gj.readFeatures(json);\n json = gj.writeFeaturesObject(features, {\n dataProjection: \"EPSG:4326\"\n });\n }\n const tileIndex = geojsonvt(json, {\n extent: 4096\n });\n return tileIndex;\n });\n const format = new GeoJSON({\n // Data returned from geojson-vt is in tile pixel units\n dataProjection: new Projection({\n code: 'TILE_PIXELS',\n units: 'tile-pixels',\n extent: [0, 0, 4096, 4096],\n }),\n });\n const vectorSource = new VectorTileSource({\n projection: mapProjection,\n tileUrlFunction: (tileCoord) => {\n // Use the tile coordinate as a pseudo URL for caching purposes\n return JSON.stringify(tileCoord);\n },\n tileLoadFunction: (tile: VectorTile, url) => {\n const tileCoord = JSON.parse(url);\n lazyTileIndex.getValueAsync().then(tileIndex => {\n const data = tileIndex.getTile(\n tileCoord[0],\n tileCoord[1],\n tileCoord[2]\n );\n //console.log(\"Fetching tile\", tileCoord, data);\n const geojson = JSON.stringify(\n {\n type: 'FeatureCollection',\n features: data ? data.features : [],\n },\n geoJsonVt2GeoJSON\n );\n const grid = vectorSource.getTileGrid();\n if (grid) {\n const features = format.readFeatures(geojson, {\n extent: grid.getTileCoordExtent(tileCoord),\n featureProjection: mapProjection,\n });\n tile.setFeatures(features);\n }\n });\n }\n });\n const vectorLayer = new VectorTileLayer({\n source: vectorSource,\n });\n setOLVectorLayerStyle(vectorLayer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, vectorLayer, isExternal);\n return vectorLayer;\n } else {\n if (asVT) {\n console.warn(\"The geojson_as_vt meta option only applies if the MapGuide map or Primary Subject Layer is in EPSG:3857. This layer will be loaded as a regular GeoJSON layer\");\n }\n const source = createGeoJsonVectorSource(defn, mapProjection);\n const layer = new VectorLayer({\n ...defn.layerOptions,\n source: clusterSourceIfRequired(source, defn)\n });\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n }\n case GenericSubjectLayerType.MVT:\n {\n const mo: MVTOptions = {\n idProperty: defn.sourceParams.mvtIdProperty\n };\n switch (defn.sourceParams.mvtFeatureClass) {\n case \"feature\":\n mo.featureClass = Feature;\n break;\n }\n const source = new VectorTileSource({\n url: defn.sourceParams.url,\n format: new MVT(mo),\n attributions: defn.sourceParams.attributions,\n tileLoadFunction: function (tile: VectorTile, url) {\n tile.setLoader(function (extent, resolution, projection) {\n fetch(url).then(function (response) {\n if (response.status == 200) {\n response.arrayBuffer().then(function (data) {\n const format = tile.getFormat() // ol/format/MVT configured as source format\n const features = format.readFeatures(data, {\n extent: extent,\n featureProjection: projection\n }).filter(f => f != null);\n tile.setFeatures(features as any); //Bug: Typing for setFeatures() should be accepting FeatureLike[]\n });\n }\n });\n });\n }\n });\n const layer = new VectorTileLayer({\n ...defn.layerOptions,\n source: source\n });\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n case GenericSubjectLayerType.CSV:\n {\n const vectorSource = new VectorSource({\n loader: (_extent, _resolution, projection) => {\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", defn.sourceParams.url);\n const onError = () => vectorSource.clear();\n xhr.onerror = onError;\n xhr.onload = () => {\n if (xhr.status == 200) {\n const driver = new CsvFormatDriver(CSV_COLUMN_ALIASES);\n driver.tryParse(xhr.responseText.length, xhr.responseText).then(pf => {\n pf.addTo(vectorSource, projection, defn.meta?.projection);\n }).catch(e => onError());\n } else {\n onError();\n }\n }\n xhr.send();\n },\n attributions: defn.sourceParams.attributions\n });\n const layer = new VectorLayer({\n ...defn.layerOptions,\n source: clusterSourceIfRequired(vectorSource, defn)\n });\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n case GenericSubjectLayerType.KML:\n {\n const source = new VectorSource({\n url: defn.sourceParams.url,\n format: new KML(),\n attributions: defn.sourceParams.attributions\n });\n const layer = new VectorLayer({\n ...defn.layerOptions,\n source: clusterSourceIfRequired(source, defn)\n });\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n case GenericSubjectLayerType.TileWMS:\n {\n const sourceArgs = {\n ...defn.sourceParams\n };\n const layer = new TileLayer({\n source: new TileWMS(sourceArgs)\n });\n layer.set(LayerProperty.LAYER_DESCRIPTION, defn.description);\n layer.set(LayerProperty.LAYER_TYPE, \"WMS\");\n layer.set(LayerProperty.IS_SELECTABLE, true); //Let's assume this WMS service is capable of GetFeatureInfo in GeoJSON representation\n layer.set(LayerProperty.IS_EXTERNAL, isExternal);\n layer.set(LayerProperty.IS_GROUP, false);\n layer.set(LayerProperty.SELECTED_POPUP_CONFIGURATION, defn.popupTemplate);\n layer.set(LayerProperty.LAYER_METADATA, defn.meta);\n layer.set(LayerProperty.LAYER_DEFN, defn);\n layer.setVisible(defn.initiallyVisible);\n return layer;\n }\n case GenericSubjectLayerType.WFS:\n {\n const sourceArgs = {\n ...defn.sourceParams\n };\n const layer = new VectorLayer({\n ...defn.layerOptions,\n source: new VectorSource({\n ...sourceArgs,\n format: new GeoJSON({\n dataProjection: defn.meta?.projection,\n featureProjection: mapProjection\n })\n })\n });\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n case GenericSubjectLayerType.CustomVector:\n {\n if (strIsNullOrEmpty(defn.driverName)) {\n throw new Error(\"Missing required driverName\");\n }\n const reg = ExternalLayerFactoryRegistry.getInstance();\n const factory = reg.getExternalVectorLayerCreator(defn.driverName);\n if (!factory) {\n throw new Error(`Could not resolve an approriate factory for the given driver: ${defn.driverName}`);\n }\n const layer = factory(defn.sourceParams, defn.meta, defn.layerOptions, appSettings) as OLVectorLayer;\n const source = clusterSourceIfRequired(layer.getSource()!, defn);\n layer.setSource(source);\n setOLVectorLayerStyle(layer, defn.vectorStyle ?? DEFAULT_VECTOR_LAYER_STYLE, defn.cluster);\n applyVectorLayerProperties(defn, layer, isExternal);\n return layer;\n }\n default:\n throw new Error(`Unknown subject layer type: ${defn.type}`);\n }\n}\n\ninterface OLSourceCtor {\n new(options?: any): olSource;\n}\n\n/**\n * Creates an OpenLayers source based on the given external base layer definition\n *\n * @export\n * @param {IExternalBaseLayer} layer\n * @returns\n */\nexport function createExternalSource(layer: IExternalBaseLayer): olSource {\n let sourceCtor: OLSourceCtor;\n switch (layer.kind) {\n case \"XYZ\":\n sourceCtor = XYZ;\n break;\n case \"XYZDebug\":\n sourceCtor = TileDebug;\n break;\n case \"OSM\":\n sourceCtor = OSM;\n break;\n case \"Stamen\":\n sourceCtor = Stamen;\n break;\n case \"BingMaps\":\n sourceCtor = BingMaps;\n break;\n case \"UTFGrid\":\n sourceCtor = UTFGrid;\n break;\n default:\n throw new MgError(`Unknown external base layer provider: ${layer.kind}`);\n }\n if (typeof (layer.options) != 'undefined')\n return new sourceCtor({ crossOrigin: \"Anonymous\", ...layer.options });\n else\n return new sourceCtor({ crossOrigin: \"Anonymous\" });\n}","import * as React from \"react\";\nimport { MenuComponent } from \"./menu\";\nimport { IDOMElementMetrics } from \"../api/common\";\nimport { PlaceholderComponent } from \"../api/registry/component\";\nimport { IItem } from \"../components/toolbar\";\nimport { WEBLAYOUT_CONTEXTMENU, WEBLAYOUT_TASKMENU } from '../constants';\n\nexport interface IFlyoutConfiguration {\n open?: boolean;\n childItems?: IItem[];\n metrics?: IDOMElementMetrics;\n componentName?: string;\n componentProps?: any;\n}\n\nexport interface IFlyoutConfigurationSet {\n [flyoutId: string]: IFlyoutConfiguration;\n}\n\n/**\n * FlyoutRegion component props\n *\n * @export\n * @interface IFlyoutRegionProps\n */\nexport interface IFlyoutRegionProps {\n flyoutConf: IFlyoutConfigurationSet;\n locale: string;\n onCloseFlyout: (id: string) => void;\n}\n\n/**\n * A FlyoutRegion component defines a region where flyout menus can be displayed\n *\n * @export\n * @class FlyoutRegion\n * @extends {React.Component}\n */\nexport const FlyoutRegion = (props: IFlyoutRegionProps) => {\n return
\n {(() => {\n const children = [] as JSX.Element[];\n for (const flyoutId in props.flyoutConf) {\n const flyout = props.flyoutConf[flyoutId];\n const open = !!flyout.open;\n if (open) {\n const items = flyout.childItems || [];\n const containerStyle: React.CSSProperties = {};\n containerStyle.zIndex = 2000; //This should be big enough to be above all possible UI elements\n if (flyout.metrics) {\n const met = flyout.metrics;\n if (flyoutId == WEBLAYOUT_CONTEXTMENU) {\n // TODO: Refine the layout positioning so that it better behaves like it did\n // previously when the blueprint context menu worked (ie. If right-clicking near\n // the bottom, the menu should be shown \"above\" the cursor)\n containerStyle.top = met.posY - 40;\n containerStyle.left = met.posX + 20;\n } else {\n if (flyout.metrics.vertical === true) {\n containerStyle.top = met.posY;\n } else {\n containerStyle.top = met.posY + met.height;\n }\n if (flyoutId == WEBLAYOUT_TASKMENU) {\n containerStyle.right = window.innerWidth - (met.posX + met.width);\n } else {\n containerStyle.left = met.posX;\n if (flyout.metrics.vertical === true) {\n containerStyle.left += met.width;\n }\n }\n }\n }\n const invoked = () => {\n props.onCloseFlyout(flyoutId);\n };\n let className = \"mg-flyout-menu-container\";\n if (flyout.componentName) {\n className = \"mg-flyout-component-container\";\n }\n\n children.push(
\n {(() => {\n if (flyout.componentName) {\n return ;\n } else {\n return ;\n }\n })()}\n {(() => {\n if (flyoutId === WEBLAYOUT_TASKMENU) {\n //HACK: In order for this flyout to show properly over the task pane iframe\n //when it contains embedded content (eg. An ActiveX/Flash/etc control) in IE\n //we have to stick an iframe into this flyout\n return \n ];\n if (frameContentLoaded == false) {\n components.push(
\n }\n title={tr(\"TASK_PANE_LOADING\", locale)}\n description={tr(\"TASK_PANE_LOADING_DESC\", locale)} />\n
);\n }\n return components;\n }\n })()}\n \n
\n
;\n }\n}","import * as React from \"react\";\nimport { isMenuRef, isComponentFlyout } from \"../utils/type-guards\";\nimport { IDOMElementMetrics, FlyoutVisibilitySet, GenericEvent } from \"../api/common\";\nimport { ToolbarContext } from \"./context\";\nimport { STR_EMPTY } from \"../utils/string\";\nimport { ImageIcon } from \"./icon\";\nimport {\n BlueprintSvgIconNames\n} from \"../constants/assets\";\nimport { Icon } from '@blueprintjs/core';\nimport { NBSP } from '../constants';\n\nexport const DEFAULT_TOOLBAR_SIZE = 29;\nexport const TOOLBAR_BACKGROUND_COLOR = \"#f0f0f0\";\n\n// Custom type guard to workaround: https://github.com/microsoft/TypeScript/issues/39879\nfunction isNumeric(arg: any): arg is number {\n return typeof(arg) == 'number';\n}\n\n// Size is based on the default toolbar height of 29 (with base image icon size of 16x16)\n// This ratio will help \"scale\" SVG icons to match\nconst SVG_SIZE_RATIO = 16 / DEFAULT_TOOLBAR_SIZE;\n\nfunction getSelected(item: IItem): boolean {\n const sel = item.selected;\n if (sel != null) {\n if (typeof sel === 'function') {\n return sel();\n } else {\n return sel;\n }\n }\n return false;\n}\n\nexport function getEnabled(item: IItem): boolean {\n const en = item.enabled;\n if (en != null) {\n if (typeof en === 'function') {\n return en();\n } else {\n return en;\n }\n }\n return true;\n}\n\nfunction getIconElement(item: IItem, enabled: boolean, size: number): React.ReactNode {\n const iconStyle = getIconStyle(enabled, size);\n if (item.iconClass || item.icon) {\n return \n } else if (item.bpIconName) {\n const { opacity } = iconStyle; //For SVG, we only care about opacity\n return \n } else {\n return <>;\n }\n}\n\nfunction getFlyoutIconElement(isFlownOut: boolean | undefined, size: number) {\n return \n}\n\nfunction getTooltip(item: IItem): string {\n const tt = item.tooltip;\n if (tt != null) {\n if (typeof tt === 'function') {\n return tt();\n } else {\n return tt;\n }\n }\n return STR_EMPTY;\n}\n\nexport function getIconStyle(enabled: boolean, height: number): React.CSSProperties {\n const imgStyle: React.CSSProperties = {\n verticalAlign: \"middle\",\n lineHeight: height\n };\n return imgStyle;\n}\n\nfunction getItemStyle(enabled: boolean, selected: boolean, size: number, isMouseOver: boolean, vertical?: boolean): React.CSSProperties {\n const pad = ((size - 16) / 2);\n const vertPad = 6;\n const style: React.CSSProperties = {\n display: vertical === true ? \"block\" : \"inline-block\",\n //height: height,\n paddingLeft: pad,\n paddingRight: pad,\n paddingTop: vertPad,\n paddingBottom: vertPad\n };\n if ((isMouseOver === true && enabled === true) || selected) {\n style.borderWidth = 1;\n style.paddingLeft = pad - 1; //To compensate for border\n style.paddingRight = pad - 1; //To compensate for border\n style.paddingTop = vertPad - 1; //To compensate for border\n style.paddingBottom = vertPad - 1; //To compensate for border\n }\n return style;\n}\n\nfunction getToolbarSeparatorItemStyle(vertical?: boolean): React.CSSProperties {\n const style: React.CSSProperties = {\n display: vertical === true ? \"block\" : \"inline-block\"\n };\n if (vertical === true) {\n style.paddingTop = 2;\n style.paddingBottom = -2;\n style.marginLeft = 0;\n style.marginRight = 0;\n } else {\n style.paddingTop = 0;\n style.paddingBottom = 0;\n style.marginLeft = 2;\n style.marginRight = -2;\n }\n return style;\n}\n\nfunction getMenuItemStyle(enabled: boolean, selected: boolean, height: number, isMouseOver: boolean): React.CSSProperties {\n const pad = ((height - 16) / 2);\n const vertPad = 6;\n const style: React.CSSProperties = {\n //height: height,\n paddingLeft: pad,\n paddingRight: pad,\n paddingTop: vertPad,\n paddingBottom: vertPad\n };\n if (enabled && (isMouseOver === true || selected)) {\n style.cursor = \"pointer\";\n style.border = \"1px solid rgb(153, 181, 202)\";\n style.paddingLeft = pad - 1; //To compensate for border\n style.paddingRight = pad - 1; //To compensate for border\n style.paddingTop = vertPad - 1; //To compensate for border\n style.paddingBottom = vertPad - 1; //To compensate for border\n }\n return style;\n}\n\nexport interface IFlyoutMenuChildItemProps {\n item: IItem | IInlineMenu;\n onInvoked?: () => void;\n}\n\nexport const FlyoutMenuChildItem = (props: IFlyoutMenuChildItemProps) => {\n const { item } = props;\n const [isMouseOver, setIsMouseOver] = React.useState(false);\n const onClick = () => {\n if (getEnabled(item)) {\n item.invoke?.();\n props.onInvoked?.();\n }\n };\n const onMouseLeave = () => {\n setIsMouseOver(false);\n };\n const onMouseEnter = () => {\n setIsMouseOver(true);\n };\n const height = DEFAULT_TOOLBAR_SIZE;\n const selected = getSelected(item);\n const enabled = getEnabled(item);\n const tt = getTooltip(item);\n const style = getMenuItemStyle(enabled, selected, height, isMouseOver);\n const iconEl = getIconElement(item, enabled, height);\n return
  • \n
    \n {iconEl} {item.label}\n
    \n
  • ;\n}\n\n\n\ninterface IComponentFlyoutItemProps {\n size: number;\n item: IComponentFlyoutItem;\n vertical?: boolean;\n isFlownOut?: boolean;\n}\n\nconst ComponentFlyoutItem = (props: IComponentFlyoutItemProps) => {\n const { size, item, vertical, isFlownOut } = props;\n const toolbarCtx = React.useContext(ToolbarContext);\n const [isMouseOver, setIsMouseOver] = React.useState(false);\n const onClick = (e: GenericEvent) => {\n e.preventDefault();\n const { flyoutId, componentName, componentProps } = item;\n const newState = !!!isFlownOut;\n if (newState) {\n const rect = e.currentTarget.getBoundingClientRect();\n const metrics: IDOMElementMetrics = {\n posX: rect.left, // e.clientX,\n posY: rect.top, // e.clientY,\n width: rect.width, // e.currentTarget.offsetWidth,\n height: rect.height, // e.currentTarget.offsetHeight\n vertical: vertical\n };\n toolbarCtx.openComponent(flyoutId, metrics, componentName, componentProps);\n } else {\n toolbarCtx.closeComponent(flyoutId);\n }\n return false;\n };\n const onMouseLeave = () => {\n setIsMouseOver(false);\n };\n const onMouseEnter = () => {\n setIsMouseOver(true);\n };\n const selected = getSelected(item);\n const enabled = getEnabled(item);\n const style = getItemStyle(enabled, selected, size, isMouseOver, vertical);\n let label: any = item.label;\n if (vertical === true) {\n label =
    {item.label}
    ;\n }\n const ttip = getTooltip(item);\n const iconEl = getIconElement(item, enabled, size);\n return
    \n
    \n {iconEl} {label} {getFlyoutIconElement(isFlownOut, size)}\n
    \n
    ;\n};\n\ninterface IFlyoutMenuReferenceItemProps {\n size: number;\n menu: IFlyoutMenu;\n vertical?: boolean;\n isFlownOut?: boolean;\n}\n\nconst FlyoutMenuReferenceItem = (props: IFlyoutMenuReferenceItemProps) => {\n const { size, menu, vertical, isFlownOut } = props;\n const toolbarCtx = React.useContext(ToolbarContext);\n const [isMouseOver, setIsMouseOver] = React.useState(false);\n const onClick = (e: GenericEvent) => {\n e.preventDefault();\n const newState = !!!isFlownOut;\n if (newState) {\n const rect = e.currentTarget.getBoundingClientRect();\n const metrics: IDOMElementMetrics = {\n posX: rect.left, // e.clientX,\n posY: rect.top, // e.clientY,\n width: rect.width, // e.currentTarget.offsetWidth,\n height: rect.height, // e.currentTarget.offsetHeight\n vertical: vertical\n };\n toolbarCtx.openFlyout(menu.flyoutId, metrics);\n } else {\n toolbarCtx.closeFlyout(menu.flyoutId);\n }\n return false;\n }\n const onMouseLeave = () => {\n setIsMouseOver(false);\n };\n const onMouseEnter = () => {\n setIsMouseOver(true);\n };\n const selected = getSelected(menu);\n const enabled = getEnabled(menu);\n const style = getItemStyle(enabled, selected, size, isMouseOver, vertical);\n let label: any = menu.label;\n if (vertical === true) {\n label =
    {menu.label}
    ;\n }\n let align = menu.flyoutAlign;\n if (!align) {\n align = (vertical === true) ? \"right bottom\" : \"bottom right\";\n }\n const ttip = getTooltip(menu);\n const iconEl = getIconElement(menu, enabled, size);\n return
    \n
    \n {iconEl} {label} {getFlyoutIconElement(isFlownOut, size)}\n
    \n
    ;\n};\n\ninterface IToolbarSeparatorProps {\n size: number;\n vertical?: boolean;\n}\n\nconst ToolbarSeparator = (props: IToolbarSeparatorProps) => {\n const style = getToolbarSeparatorItemStyle(props.vertical);\n if (props.vertical === true) {\n return
    ;\n } else {\n return
    {NBSP}
    ;\n }\n}\n\ninterface IToolbarButtonProps {\n height: number;\n item: IItem;\n vertical?: boolean;\n hideVerticalLabels?: boolean;\n}\n\nconst ToolbarButton = (props: IToolbarButtonProps) => {\n const { height, item, vertical, hideVerticalLabels } = props;\n const [isMouseOver, setIsMouseOver] = React.useState(false);\n const onMouseLeave = () => {\n setIsMouseOver(false);\n }\n const onMouseEnter = () => {\n setIsMouseOver(true);\n }\n const onClick = (e: any) => {\n e.preventDefault();\n const { item } = props;\n const enabled = getEnabled(item);\n if (enabled && item.invoke) {\n item.invoke();\n }\n return false;\n }\n const selected = getSelected(item);\n const enabled = getEnabled(item);\n const style = getItemStyle(enabled, selected, height, isMouseOver, vertical);\n let ttip = null;\n if (typeof (item.tooltip) == 'function') {\n ttip = item.tooltip();\n } else {\n ttip = item.tooltip;\n }\n if (!enabled) {\n style.opacity = 0.3;\n }\n const iconEl = getIconElement(item, enabled, height);\n return
    \n {iconEl} {(vertical == true && hideVerticalLabels == true) ? null : item.label}\n
    ;\n}\n\nexport interface IItem {\n label?: string | (() => string);\n tooltip?: string | (() => string);\n icon?: string;\n iconClass?: string;\n bpIconName?: BlueprintSvgIconNames;\n invoke?: () => void;\n enabled?: boolean | (() => boolean);\n selected?: boolean | (() => boolean);\n isSeparator?: boolean;\n}\n\nexport interface IInlineMenu extends IItem {\n childItems: IItem[];\n flyoutAlign?: string;\n}\n\nexport interface IFlyoutMenu extends IItem {\n flyoutId: string;\n flyoutAlign?: string;\n}\n\nexport interface IComponentFlyoutItem extends IItem {\n flyoutId: string;\n componentName: string;\n componentProps?: any;\n}\n\nexport interface IContainerItem extends IItem {\n renderContainerContent: () => JSX.Element;\n}\n\n/**\n * Toolbar component props\n *\n * @export\n * @interface IToolbarProps\n */\nexport interface IToolbarProps {\n childItems: IItem[];\n containerClass?: string;\n containerStyle?: React.CSSProperties;\n vertical?: boolean;\n hideVerticalLabels?: boolean;\n onOpenFlyout?: (id: string, metrics: IDOMElementMetrics) => void;\n onCloseFlyout?: (id: string) => void;\n onOpenComponent?: (id: string, metrics: IDOMElementMetrics, name: string, props?: any) => void;\n onCloseComponent?: (id: string) => void;\n flyoutStates?: FlyoutVisibilitySet;\n}\n\n/**\n * A generic toolbar component\n * @param props \n */\nexport const Toolbar = (props: IToolbarProps) => {\n const {\n containerStyle,\n containerClass,\n childItems,\n vertical,\n hideVerticalLabels,\n flyoutStates,\n onOpenFlyout,\n onCloseFlyout,\n onOpenComponent,\n onCloseComponent\n } = props;\n const openFlyout = (id: string, metrics: IDOMElementMetrics) => onOpenFlyout?.(id, metrics);\n const closeFlyout = (id: string) => onCloseFlyout?.(id);\n const openComponent = (id: string, metrics: IDOMElementMetrics, name: string, props?: any) => onOpenComponent?.(id, metrics, name, props);\n const closeComponent = (id: string) => onCloseComponent?.(id);\n let height = DEFAULT_TOOLBAR_SIZE;\n if (containerStyle) {\n const ch = containerStyle.height;\n if (isNumeric(ch)) {\n height = ch;\n }\n }\n const providerImpl = {\n openFlyout: openFlyout,\n closeFlyout: closeFlyout,\n openComponent: openComponent,\n closeComponent: closeComponent\n };\n return \n
    \n {childItems.map((item, index) => {\n if (isComponentFlyout(item)) {\n const isFlownOut = flyoutStates && !!flyoutStates[item.flyoutId];\n return ;\n } else if (isMenuRef(item)) {\n const isFlownOut = flyoutStates && !!flyoutStates[item.flyoutId];\n return ;\n } else if (item.isSeparator === true) {\n return ;\n } else {\n return ;\n }\n })}\n
    \n
    ;\n}","import OverlayPositioning from 'ol/OverlayPositioning';\nimport debounce from 'lodash.debounce';\nimport olOverlay from \"ol/Overlay\";\nimport olWKTFormat from \"ol/format/WKT\";\nimport olPolygon, { fromExtent } from \"ol/geom/Polygon\";\nimport olMap from \"ol/Map\";\nimport { GenericEvent, GenericEventHandler, ClientKind, Coordinate2D, Bounds } from '../../api/common';\nimport { Client } from '../../api/client';\nimport * as olExtent from \"ol/extent\";\nimport { isSessionExpiredError } from '../../api/error';\nimport { tr } from '../../api/i18n';\nimport { debug } from '../../utils/logger';\nimport Feature from 'ol/Feature';\n\nexport interface IFeatureQueryCallback {\n incrementBusyWorker(): void;\n decrementBusyWorker(): void;\n onSessionExpired(): void;\n getAgentUri(): string;\n getAgentKind(): ClientKind;\n getMapName(): string;\n getSessionId(): string;\n getLocale(): string | undefined;\n getPointSelectionBox(point: Coordinate2D): Bounds;\n openTooltipLink(url: string): void;\n}\n\nexport class FeatureQueryTooltip {\n private wktFormat: olWKTFormat;\n private map: olMap;\n private throttledMouseMove: GenericEventHandler;\n private featureTooltipElement: HTMLElement;\n private featureTooltip: olOverlay;\n private linkElement: HTMLElement | null;\n private enabled: boolean;\n private isMouseOverTooltip: boolean;\n private callback: IFeatureQueryCallback;\n constructor(map: olMap, callback: IFeatureQueryCallback) {\n this.callback = callback;\n this.wktFormat = new olWKTFormat();\n this.featureTooltipElement = document.createElement(\"div\");\n this.featureTooltipElement.addEventListener(\"mouseover\", () => this.isMouseOverTooltip = true);\n this.featureTooltipElement.addEventListener(\"mouseout\", () => this.isMouseOverTooltip = false);\n this.featureTooltipElement.className = 'feature-tooltip';\n this.featureTooltip = new olOverlay({\n element: this.featureTooltipElement,\n offset: [15, 0],\n positioning: OverlayPositioning.CENTER_LEFT\n })\n this.map = map;\n this.map.addOverlay(this.featureTooltip);\n this.throttledMouseMove = debounce((e: GenericEvent) => {\n this.raiseQueryFromPoint(e.pixel);\n }, 1000);\n this.enabled = true;\n this.isMouseOverTooltip = false;\n }\n public dispose() {\n this.featureTooltip.dispose();\n }\n public get isMouseOver() { return this.isMouseOverTooltip; }\n public raiseQueryFromPoint(pixel: [number, number]) {\n const box = this.callback.getPointSelectionBox(pixel);\n const geom = fromExtent(box);\n debug(`[${new Date()}] FeatureTooltip - onMouseMove (${box[0]}, ${box[1]}) (${box[2]}, ${box[3]})`);\n this.sendTooltipQuery(geom);\n }\n public onMouseMove(e: GenericEvent) {\n this.throttledMouseMove(e);\n }\n public isEnabled(): boolean {\n return this.enabled;\n }\n public setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n if (!this.enabled) {\n this.featureTooltipElement.innerHTML = \"\";\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n if (this.linkElement) {\n this.linkElement.onclick = null;\n }\n }\n }\n private sendTooltipQuery(geom: olPolygon): void {\n if (!this.enabled) {\n return;\n }\n if (this.isMouseOverTooltip) {\n debug(`Mouse over tooltip. Doing nothing`);\n return;\n }\n //const selectedLayerNames = this.onRequestSelectableLayers();\n //if (selectedLayerNames != null && selectedLayerNames.length == 0) {\n // return;\n //}\n const reqQueryFeatures = 4 | 8; //Tooltips and hyperlinks\n const wkt = this.wktFormat.writeGeometry(geom);\n const client = new Client(this.callback.getAgentUri(), this.callback.getAgentKind());\n\n //This is probably a case of blink and you'll miss\n //\n //this.featureTooltipElement.innerHTML = \"Querying tooltip data ...\";\n //this.featureTooltipElement.classList.remove(\"tooltip-hidden\");\n const coords = olExtent.getCenter(geom.getExtent());\n this.featureTooltip.setPosition(coords);\n this.callback.incrementBusyWorker();\n client.queryMapFeatures({\n mapname: this.callback.getMapName(),\n session: this.callback.getSessionId(),\n //layernames: selectedLayerNames != null ? selectedLayerNames.join(\",\") : null,\n geometry: wkt,\n persist: 0,\n selectionvariant: \"INTERSECTS\",\n maxfeatures: 1,\n requestdata: reqQueryFeatures,\n layerattributefilter: 5\n }).then(res => {\n let html = \"\";\n if (res.Tooltip) {\n html += `
    ${res.Tooltip.replace(/\\\\n/g, \"
    \")}
    `;\n }\n if (res.Hyperlink) {\n html += ``;\n }\n this.featureTooltipElement.innerHTML = html;\n this.linkElement = document.getElementById(\"feature-tooltip-link\");\n this.setLinkClickHandler();\n if (html == \"\") {\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n if (this.linkElement) {\n this.linkElement.onclick = null;\n }\n } else {\n this.featureTooltipElement.classList.remove(\"tooltip-hidden\");\n }\n }).then(() => {\n this.callback.decrementBusyWorker();\n }).catch(err => {\n this.callback.decrementBusyWorker();\n if (isSessionExpiredError(err)) {\n this.callback.onSessionExpired();\n }\n });\n }\n private setLinkClickHandler = () => {\n if (this.linkElement) {\n this.linkElement.onclick = this.handleLinkClick;\n }\n }\n private handleLinkClick = (e: any) => {\n e.preventDefault();\n this.callback.openTooltipLink(e.target.href);\n return false;\n }\n}","import olOverlay from \"ol/Overlay\";\nimport olMap from \"ol/Map\";\nimport OverlayPositioning from 'ol/OverlayPositioning';\nimport { GenericEvent } from '../../api/common';\n\nconst HIDDEN_CLASS_NAME = \"tooltip-hidden\";\n\nexport class MouseTrackingTooltip {\n private tooltip: olOverlay;\n private tooltipElement: HTMLElement;\n private map: olMap;\n private text: string | null;\n private isContextMenuOpen: () => boolean;\n constructor(map: olMap, contextMenuTest: () => boolean) {\n this.map = map;\n this.isContextMenuOpen = contextMenuTest;\n this.map.getViewport().addEventListener(\"mouseout\", this.onMouseOut.bind(this));\n this.tooltipElement = document.createElement(\"div\");\n this.tooltipElement.className = 'tooltip';\n this.tooltip = new olOverlay({\n element: this.tooltipElement,\n offset: [15, 0],\n positioning: OverlayPositioning.CENTER_LEFT\n })\n this.map.addOverlay(this.tooltip);\n this.text = null;\n this.tooltipElement.classList.add(HIDDEN_CLASS_NAME);\n }\n public dispose() {\n this.tooltip.dispose();\n }\n public onMouseMove(e: GenericEvent) {\n if (this.isContextMenuOpen())\n return;\n this.tooltip.setPosition(e.coordinate);\n if (this.text)\n this.tooltipElement.classList.remove(HIDDEN_CLASS_NAME);\n else\n this.tooltipElement.classList.add(HIDDEN_CLASS_NAME);\n }\n private onMouseOut() {\n this.tooltipElement.classList.add(HIDDEN_CLASS_NAME);\n }\n public setText(prompt: string) {\n this.text = prompt;\n this.tooltipElement.innerHTML = this.text;\n }\n public clear() {\n this.text = null;\n this.tooltipElement.innerHTML = \"\";\n }\n public destroy() {\n if (this.tooltipElement && this.tooltipElement.parentNode) {\n this.tooltipElement.parentNode.removeChild(this.tooltipElement);\n }\n }\n}","import olMap from \"ol/Map\";\nimport olOverlay from \"ol/Overlay\";\nimport olImageLayer from \"ol/layer/Image\";\nimport olTileLayer from \"ol/layer/Tile\";\nimport olSourceWMS from \"ol/source/ImageWMS\";\nimport olSourceTileWMS from \"ol/source/TileWMS\";\nimport GeoJSON from \"ol/format/GeoJSON\";\nimport OverlayPositioning from 'ol/OverlayPositioning';\nimport Collection from 'ol/Collection';\nimport { tr } from '../../api/i18n';\nimport { ILayerManager, Coordinate2D, LayerProperty, Dictionary } from '../../api/common';\nimport { Client } from '../../api/client';\nimport { parseEpsgCodeFromCRS } from '../layer-manager/wfs-capabilities-panel';\nimport { ProjectionLike } from 'ol/proj';\nimport { LayerSetGroupBase } from '../../api/layer-set-group-base';\nimport { ISelectedFeaturePopupTemplateConfiguration } from '../../actions/defs';\nimport { strIsNullOrEmpty, extractPlaceholderTokens, strReplaceAll } from '../../utils/string';\nimport LayerBase from \"ol/layer/Base\";\nimport { WmsQueryAugmentation } from '../map-providers/base';\nimport { isClusteredFeature, getClusterSubFeatures } from '../../api/ol-style-helpers';\nimport stickybits from 'stickybits';\nimport type { OLFeature, OLLayer } from \"../../api/ol-types\";\nimport { sanitize } from \"dompurify\";\n\nexport interface IQueryWmsFeaturesCallback {\n getLocale(): string | undefined;\n /**\n * \n * @param feat \n * @param l \n * @since 0.14\n */\n addClientSelectedFeature(feat: OLFeature, l: LayerBase): void;\n addFeatureToHighlight(feat: OLFeature | undefined, bAppend: boolean): void;\n getWmsRequestAugmentations(): Dictionary;\n}\n\n/**\n * @since 0.14\n */\nexport type SelectionPopupContentRenderer = (feat: OLFeature, locale?: string, popupConfig?: ISelectedFeaturePopupTemplateConfiguration) => string;\n\n/**\n * @since 0.14\n */\nexport interface ISelectionPopupContentOverrideProvider {\n getSelectionPopupRenderer(layerName: string): SelectionPopupContentRenderer | undefined;\n}\n\nfunction defaultPopupContentRenderer(feat: OLFeature, locale?: string, popupConfig?: ISelectedFeaturePopupTemplateConfiguration) {\n let html = \"\";\n const bClustered = isClusteredFeature(feat);\n\n let title = popupConfig?.title ?? tr(\"SEL_FEATURE_PROPERTIES\", locale);\n const size = getClusterSubFeatures(feat)?.length;;\n if (bClustered && size > 1) {\n title = popupConfig?.clusteredTitle?.(size) ?? tr(\"SEL_CLUSTER_PROPERTIES\", locale, { size });\n }\n html += \"
    \" + sanitize(title) + \"
    [x]
    \";\n\n const renderForMultipleSanitized = (subFeatures: OLFeature[]) => {\n let table = \"\";\n const fheadings = popupConfig?.propertyMappings\n ? popupConfig.propertyMappings.filter(pm => pm.name != subFeatures[0].getGeometryName()).map(pm => pm.value)\n : Object.keys(subFeatures[0].getProperties()).filter(pn => pn != subFeatures[0].getGeometryName());\n const fprops = popupConfig?.propertyMappings\n ? popupConfig.propertyMappings.map(pm => pm.value)\n : Object.keys(subFeatures[0].getProperties()).filter(pn => pn != subFeatures[0].getGeometryName());\n table += \"\";\n for (const heading of fheadings) {\n table += ``;\n }\n table += \"\";\n table += \"\"\n for (const f of subFeatures) {\n table += \"\";\n for (const property of fprops) {\n const val = f.get(property);\n table += ``;\n }\n table += \"\";\n }\n table += \"\";\n table += \"
    ${sanitize(heading)}
    ${sanitize(val)}
    \";\n return table\n };\n const renderForSingleSanitized = (feature: OLFeature): [string, number, string | undefined] => {\n let linkFragment: string | undefined;\n let table = \"\";\n table += \"\";\n const f = feature.getProperties();\n let pc = 0;\n if (popupConfig?.propertyMappings) {\n for (const pm of popupConfig.propertyMappings) {\n if (pm.name == feat.getGeometryName()) {\n continue;\n }\n table += \"\";\n table += \"\";\n table += \"\";\n table += \"\";\n pc++;\n }\n } else {\n for (const key in f) {\n if (key == feat.getGeometryName()) {\n continue;\n }\n table += \"\";\n table += \"\";\n table += \"\";\n table += \"\";\n pc++;\n }\n }\n table += \"\";\n table += \"
    \" + sanitize(pm.value) + \"\" + sanitize(f[pm.name]) + \"
    \" + sanitize(key) + \"\" + sanitize(f[key]) + \"
    \";\n\n if (popupConfig?.linkProperty) {\n const { name, label, linkTarget } = popupConfig.linkProperty;\n let linkHref: string | undefined;\n if (typeof (name) == 'string') {\n linkHref = encodeURI(f[name]);\n } else {\n const expr = name.expression;\n let url = expr;\n const pBegin = name.placeholderBegin ?? \"{\";\n const pEnd = name.placeholderEnd ?? \"}\";\n const tokens = extractPlaceholderTokens(expr, pBegin, pEnd);\n for (const t of tokens) {\n const al = encodeURIComponent(f[t] ?? \"\");\n url = strReplaceAll(url, `${pBegin}${t}${pEnd}`, al);\n }\n linkHref = url;\n }\n if (!strIsNullOrEmpty(linkHref)) {\n linkFragment = ``;\n }\n }\n return [table, pc, linkFragment];\n };\n const singlePopupContentRender = (feature: OLFeature, appendHtml: (h: string) => void) => {\n const [table, pc, linkFragment] = renderForSingleSanitized(feature);\n if (pc > 0) {\n appendHtml(`
    ${table}
    `);\n } else {\n appendHtml(\"
    \" + sanitize(tr(\"SEL_FEATURE_PROPERTIES_NONE\", locale)) + \"
    \");\n }\n if (!strIsNullOrEmpty(linkFragment)) {\n appendHtml(linkFragment);\n }\n }\n\n if (bClustered) {\n const subFeatures = getClusterSubFeatures(feat);\n if (subFeatures.length == 1) {\n singlePopupContentRender(subFeatures[0], h => html += h);\n } else {\n const table = renderForMultipleSanitized(subFeatures);\n html += `
    ${table}
    `;\n }\n } else {\n singlePopupContentRender(feat, h => html += h);\n }\n return html;\n}\n\nexport class SelectedFeaturesTooltip {\n private map: olMap;\n private featureTooltipElement: HTMLElement;\n private featureTooltip: olOverlay;\n private enabled: boolean;\n private isMouseOverTooltip: boolean;\n private closerEl: HTMLElement | null;\n constructor(map: olMap, private parent: ISelectionPopupContentOverrideProvider) {\n this.featureTooltipElement = document.createElement(\"div\");\n this.featureTooltipElement.addEventListener(\"mouseover\", () => this.isMouseOverTooltip = true);\n this.featureTooltipElement.addEventListener(\"mouseout\", () => this.isMouseOverTooltip = false);\n this.featureTooltipElement.className = 'selected-tooltip';\n this.featureTooltip = new olOverlay({\n element: this.featureTooltipElement,\n offset: [15, 0],\n positioning: OverlayPositioning.CENTER_LEFT\n })\n this.map = map;\n this.map.addOverlay(this.featureTooltip);\n this.enabled = true;\n this.isMouseOverTooltip = false;\n }\n public dispose() {\n this.featureTooltip.dispose();\n }\n public get isMouseOver() { return this.isMouseOverTooltip; }\n public isEnabled(): boolean {\n return this.enabled;\n }\n public setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n if (!this.enabled) {\n this.featureTooltipElement.innerHTML = \"\";\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n }\n }\n public hide() {\n this.featureTooltipElement.innerHTML = \"\";\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n }\n public async queryWmsFeatures(currentLayerSet: LayerSetGroupBase | undefined, layerMgr: ILayerManager, coord: Coordinate2D, resolution: number, bAppendMode: boolean, callback: IQueryWmsFeaturesCallback) {\n let selected = 0;\n //See what WMS layers we have\n const client = new Client(\"\", \"mapagent\");\n const format = new GeoJSON();\n const wmsSources: [LayerBase, (olSourceWMS | olSourceTileWMS)][] = [];\n //The active layer set may have a WMS layer\n const currentWmsSource = currentLayerSet?.tryGetWmsSource();\n if (currentWmsSource) {\n wmsSources.push(currentWmsSource);\n }\n const layers = layerMgr.getLayers().filter(l => l.visible && l.selectable && l.type == \"WMS\");\n for (const layer of layers) {\n const wmsLayer = layerMgr.getLayer(layer.name);\n if (wmsLayer instanceof olImageLayer || wmsLayer instanceof olTileLayer) {\n const source = wmsLayer.getSource();\n if (source instanceof olSourceWMS || source instanceof olSourceTileWMS) {\n wmsSources.push([wmsLayer, source]);\n }\n }\n }\n for (const pair of wmsSources) {\n const [layer, source] = pair;\n let url = source.getFeatureInfoUrl(coord, resolution, this.map.getView().getProjection(), {\n 'INFO_FORMAT': \"application/json\"\n });\n if (url) {\n const layerName = layer.get(LayerProperty.LAYER_NAME);\n //Check if we have an augmentation for this\n const augs = callback.getWmsRequestAugmentations();\n if (augs[layerName]) {\n url = augs[layerName](url);\n }\n const resp = await client.getText(url);\n const json = JSON.parse(resp);\n if (json.features?.length > 0) {\n let srcProj: ProjectionLike = source.getProjection();\n if (!srcProj) {\n const epsg = parseEpsgCodeFromCRS(json.crs?.properties?.name);\n if (epsg) {\n srcProj = `EPSG:${epsg}`;\n }\n }\n const features = format.readFeatures(resp, {\n dataProjection: srcProj,\n featureProjection: this.map.getView().getProjection()\n });\n this.featureTooltip.setPosition(coord);\n const popupConf: ISelectedFeaturePopupTemplateConfiguration | undefined = layer.get(LayerProperty.SELECTED_POPUP_CONFIGURATION);\n const html = this.generateFeatureHtml(layerName, features[0], callback.getLocale(), popupConf);\n callback.addClientSelectedFeature(features[0], layer);\n currentLayerSet?.clearWmsSelectionOverlay();\n currentLayerSet?.addWmsSelectionOverlay(features[0]);\n callback.addFeatureToHighlight(features[0], bAppendMode);\n selected++;\n this.featureTooltipElement.innerHTML = html;\n stickybits(\".selected-popup-cluster-table th\");\n this.closerEl = document.getElementById(\"feat-popup-closer\");\n this.setPopupCloseHandler();\n if (html == \"\") {\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n } else {\n this.featureTooltipElement.classList.remove(\"tooltip-hidden\");\n }\n return true;\n }\n }\n }\n // Clear if there was no selection made\n if (selected == 0) {\n callback.addFeatureToHighlight(undefined, false);\n this.hide();\n }\n return false;\n }\n private generateFeatureHtml(layerName: string | undefined, feat: OLFeature, locale?: string, popupConfig?: ISelectedFeaturePopupTemplateConfiguration) {\n if (layerName) {\n const customRenderer = this.parent.getSelectionPopupRenderer(layerName);\n if (customRenderer) {\n return customRenderer(feat, locale, popupConfig);\n } else {\n return defaultPopupContentRenderer(feat, locale, popupConfig);\n }\n }\n return defaultPopupContentRenderer(feat, locale, popupConfig);\n }\n private setPopupCloseHandler = () => {\n if (this.closerEl) {\n this.closerEl.onclick = this.closePopup;\n }\n }\n private closePopup = (e: any) => {\n e.preventDefault();\n this.hide();\n if (this.closerEl) {\n this.closerEl.onclick = null;\n }\n return false;\n };\n public showSelectedVectorFeatures(features: Collection, pixel: [number, number], featureToLayerMap: [OLFeature, OLLayer][], locale?: string) {\n const coords = this.map.getCoordinateFromPixel(pixel);\n if (features.getLength() > 0) {\n this.featureTooltip.setPosition(coords);\n const f = features.item(0);\n let popupConf: ISelectedFeaturePopupTemplateConfiguration | undefined;\n const pair = featureToLayerMap.find(([feat, _]) => feat == f);\n let layerName;\n if (pair) {\n const layer = pair[1];\n popupConf = layer.get(LayerProperty.SELECTED_POPUP_CONFIGURATION);\n layerName = layer.get(LayerProperty.LAYER_NAME);\n }\n const html = this.generateFeatureHtml(layerName, f, locale, popupConf);\n this.featureTooltipElement.innerHTML = html;\n stickybits(\".selected-popup-cluster-table th\");\n this.closerEl = document.getElementById(\"feat-popup-closer\");\n this.setPopupCloseHandler();\n if (html == \"\") {\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n } else {\n this.featureTooltipElement.classList.remove(\"tooltip-hidden\");\n }\n } else {\n this.featureTooltipElement.innerHTML = \"\";\n this.featureTooltipElement.classList.add(\"tooltip-hidden\");\n }\n }\n}","import olOverlay from \"ol/Overlay\";\nimport olMap from \"ol/Map\";\nimport OverlayPositioning from 'ol/OverlayPositioning';\nimport UTFGridSource from \"ol/source/UTFGrid\";\nimport { GenericEvent } from '../../api/common';\nimport { sanitize } from \"dompurify\";\n\nexport class UTFGridTrackingTooltip {\n private tooltip: olOverlay;\n private tooltipElement: HTMLElement;\n private text: string | null;\n constructor(private map: olMap,\n private gridSource: UTFGridSource,\n private isContextMenuOpen: () => boolean) {\n this.map.getViewport().addEventListener(\"mouseout\", this.onMouseOut.bind(this));\n this.tooltipElement = document.createElement(\"div\");\n this.tooltipElement.className = 'feature-tooltip';\n this.tooltip = new olOverlay({\n element: this.tooltipElement,\n offset: [15, 0],\n positioning: OverlayPositioning.CENTER_LEFT\n })\n this.map.addOverlay(this.tooltip);\n this.text = null;\n }\n public dispose() {\n this.tooltip.dispose();\n }\n public onMouseMove(e: GenericEvent) {\n if (this.isContextMenuOpen())\n return;\n //this.tooltip.setPosition(e.coordinate);\n const viewResolution = /** @type {number} */ (this.map.getView().getResolution());\n if (viewResolution) {\n this.gridSource.forDataAtCoordinateAndResolution(e.coordinate, viewResolution, (data) => {\n // If you want to use the template from the TileJSON,\n // load the mustache.js library separately and call\n //\n //mapElement.style.cursor = data ? 'pointer' : '';\n if (data) {\n var html = \"\";\n if (data.MG_TOOLTIP)\n html += sanitize(data.MG_TOOLTIP.replace(/(\\\\n)+/g, '
    '));\n if (data.MG_URL) {\n html += \"

    \";\n html += \"CTRL + Click for more information\";\n }\n this.tooltipElement.innerHTML = html\n }\n this.tooltip.setPosition(data ? e.coordinate : undefined);\n });\n }\n }\n private onMouseOut() {\n\n }\n public setText(prompt: string) {\n this.text = prompt;\n this.tooltipElement.innerHTML = this.text;\n }\n public clear() {\n this.text = null;\n this.tooltipElement.innerHTML = \"\";\n }\n public destroy() {\n if (this.tooltipElement && this.tooltipElement.parentNode) {\n this.tooltipElement.parentNode.removeChild(this.tooltipElement);\n }\n }\n}","import * as React from \"react\";\nimport { NonIdealState, Tabs, Tab, FormGroup, NumericInput, RadioGroup, Radio, InputGroup, Switch, Button, Intent, ButtonGroup, SwitchProps } from '@blueprintjs/core';\nimport { tr } from \"../api/i18n\";\nimport { ExprOr, isEvaluatable, IPointIconStyle, IBasicPointCircleStyle, IBasicVectorPointStyle, DEFAULT_POINT_CIRCLE_STYLE, DEFAULT_POINT_ICON_STYLE, IBasicVectorLineStyle, IBasicVectorPolygonStyle, IVectorFeatureStyle, DEFAULT_LINE_STYLE, DEFAULT_POLY_STYLE, IVectorLayerStyle, IVectorLabelSettings, IBasicStroke, IBasicFill } from '../api/ol-style-contracts';\nimport { DEFAULT_STYLE_KEY } from '../api/ol-style-helpers';\nimport { Parser } from \"expr-eval\";\nimport { ColorExprEditor, NumberExprEditor, SliderExprEditor, StringExprEditor } from \"./layer-manager/common\";\nimport { STR_EMPTY } from \"../utils/string\";\nimport { getLegendImage } from \"./layer-manager/legend\";\nimport { vectorStyleToStyleMap } from \"../api/ol-style-map-set\";\n\ninterface IExprEditorProps {\n converter: (value: string) => ExprOr;\n expr: ExprOr;\n onExprChanged: (value: ExprOr) => void;\n}\n\nfunction assertValue(val: ExprOr): asserts val is T {\n if (isEvaluatable(val))\n throw new Error(\"Value is expression instead of a raw value\");\n}\n\nfunction ExprEditor(props: IExprEditorProps) {\n assertValue(props.expr);\n return <>Expr: props.onExprChanged(props.converter(e.target.value))} />;\n}\n\nconst DynamicSwitch = (props: Omit, \"onChange\"> & Omit, \"converter\">) => {\n if (isEvaluatable(props.expr)) {\n return {...props} converter={v => v?.toLowerCase() == \"true\"} />\n } else {\n const { expr, onExprChanged, ...rest } = props;\n const innerProps = {\n ...rest,\n checked: props.expr,\n onChange: (e: any) => props.onExprChanged(e.target.checked)\n };\n return ;\n }\n}\n\ninterface ILabelStyleEditor {\n isLine?: boolean;\n style: IVectorLabelSettings;\n locale: string;\n onChange: (style: IVectorLabelSettings) => void;\n}\n\n//TODO: Either surface the font as another editable property or offload to configuration\nconst buildFont = (size: number, bold: boolean, italic: boolean, font = \"sans-serif\") =>\n `${bold ? \"bold\" : STR_EMPTY} ${italic ? \"italic\" : STR_EMPTY} ${size}px ${font}`;\n\nfunction coalesceExpr(expr: ExprOr | undefined, defaultVal: T): T {\n if (isEvaluatable(expr)) {\n return defaultVal;\n }\n return expr ?? defaultVal;\n}\n\nconst DEFAULT_FONT_SIZE = 14;\n\nconst LabelStyleEditor: React.FC = props => {\n const { style, locale, onChange, isLine } = props;\n const [bold, setBold] = React.useState(false);\n const [italic, setItalic] = React.useState(false);\n const [localBgColor, setLocalBgColor] = React.useState>(style.label?.fill?.color ?? \"#000000\");\n const [localBgColorAlpha, setLocalColorAlpha] = React.useState>(style.label?.fill?.alpha ?? 255);\n const [localStrokeColor, setLocalStrokeColor] = React.useState>(style.label?.stroke?.color ?? \"#ffffff\");\n const [localStrokeWidth, setLocalStrokeWidth] = React.useState>(style.label?.stroke?.width ?? 1);\n const [localFontSize, setLocalFontSize] = React.useState(DEFAULT_FONT_SIZE);\n const [localLabel, setLocalLabel] = React.useState({ font: buildFont(localFontSize, bold, italic), ...style.label });\n const [hasLabel, setHasLabel] = React.useState(style.label != null);\n const onToggleLinePlacement = React.useCallback(() => {\n if (localLabel.placement == \"line\") {\n const { placement, ...rest } = localLabel;\n setLocalLabel(rest);\n } else {\n setLocalLabel({ ...localLabel, placement: \"line\" });\n }\n }, [localLabel]);\n React.useEffect(() => {\n if (hasLabel) {\n onChange({ ...style, label: localLabel });\n } else {\n const { label, ...rest } = style;\n onChange(rest);\n }\n }, [localLabel, hasLabel]);\n React.useEffect(() => {\n setLocalLabel({ ...localLabel, font: buildFont(localFontSize, bold, italic) });\n }, [localFontSize, bold, italic]);\n React.useEffect(() => {\n setLocalLabel({\n ...localLabel,\n fill: {\n ...localLabel.fill,\n color: localBgColor,\n alpha: localBgColorAlpha\n } as IBasicFill,\n stroke: {\n ...localLabel.stroke,\n color: localStrokeColor,\n width: localStrokeWidth\n } as IBasicStroke\n })\n }, [localStrokeColor, localStrokeWidth, localBgColorAlpha, localBgColor]);\n return <>\n setHasLabel(e.target.checked)} label={tr(\"ENABLE_LABELS\", locale)} />\n {hasLabel && \n setLocalLabel({ ...localLabel, text: t })} />\n }\n {hasLabel && \n setLocalFontSize(coalesceExpr(t, DEFAULT_FONT_SIZE))} />\n }\n {hasLabel && \n \n \n {isLine && }\n }\n {hasLabel && \n setLocalBgColor(c)} />\n }\n {hasLabel && \n setLocalStrokeColor(c)} />\n }\n {hasLabel && \n setLocalStrokeWidth(t!)} />\n }\n ;\n}\n\ninterface ISubStyleEditorProps {\n style: TStyle;\n locale: string;\n onChange: (style: TStyle) => void;\n}\n\nconst PointIconStyleEditor = ({ style, onChange, locale }: ISubStyleEditorProps) => {\n const [localSrc, setLocalSrc] = React.useState(style.src);\n React.useEffect(() => {\n setLocalSrc(style.src);\n }, [style.src]);\n const onSrcChange = (e: any) => {\n onChange({\n ...style,\n src: localSrc\n });\n };\n return
    \n \n setLocalSrc(e!)} locale={locale} />\n {!isEvaluatable(style.src) && }\n \n \n {tr(\"VSED_PT_ICON_ANCHOR_H\", locale)} onChange({ ...style, anchor: [e, style.anchor[1]] })} />\n {tr(\"VSED_PT_ICON_ANCHOR_V\", locale)} onChange({ ...style, anchor: [style.anchor[0], e] })} />\n \n onChange({ ...style, rotateWithView: e })} />\n \n onChange({ ...style, rotation: n })} />\n \n {/*\n onChange({ ...style, opacity: n })} />\n */}\n \n onChange({ ...style, scale: n! })} locale={locale} />\n \n
    ;\n};\n\nconst PointCircleStyleEditor = ({ style, onChange, locale }: ISubStyleEditorProps) => {\n return
    \n \n onChange({ ...style, fill: { color: c, alpha: style.fill.alpha } })} />\n \n \n onChange({ ...style, fill: { color: style.fill.color, alpha: n } })} />\n \n \n onChange({ ...style, radius: n })} />\n \n \n onChange({ ...style, stroke: { color: c, width: style.stroke.width, alpha: style.stroke.alpha } })} />\n \n \n onChange({ ...style, stroke: { color: style.stroke.color, width: style.stroke.width, alpha: n } })} />\n \n \n onChange({ ...style, stroke: { color: style.stroke.color, width: n, alpha: style.stroke.alpha } })} />\n \n
    ;\n};\n\nconst PointStyleEditor = ({ style, onChange, locale }: ISubStyleEditorProps) => {\n const [iconStyle, setIconStyle] = React.useState(undefined);\n const [circleStyle, setCircleStyle] = React.useState(undefined);\n const [currentStyle, setCurrentStyle] = React.useState(style);\n const applyCurrentStyle = (s: IBasicVectorPointStyle) => {\n setCurrentStyle(s);\n switch (s.type) {\n case \"Circle\":\n setCircleStyle(s);\n break;\n case \"Icon\":\n setIconStyle(s);\n break;\n }\n }\n const onStyleTypeChange = (type: \"Icon\" | \"Circle\") => {\n switch (type) {\n case \"Circle\":\n if (circleStyle) {\n setCurrentStyle(circleStyle);\n onChange(circleStyle);\n } else {\n const s = { ...DEFAULT_POINT_CIRCLE_STYLE };\n setCircleStyle(s);\n setCurrentStyle(s);\n onChange(s);\n }\n break;\n case \"Icon\":\n if (iconStyle) {\n setCurrentStyle(iconStyle);\n onChange(iconStyle);\n } else {\n const s = { ...DEFAULT_POINT_ICON_STYLE };\n setIconStyle(s);\n setCurrentStyle(s);\n onChange(s);\n }\n break;\n }\n }\n React.useEffect(() => {\n applyCurrentStyle(style);\n }, [style]);\n return
    \n onStyleTypeChange(e.target.value)}\n selectedValue={currentStyle.type}>\n \n \n \n {currentStyle.type == \"Icon\" && }\n {currentStyle.type == \"Circle\" && }\n \n
    \n}\n\nconst LineStyleEditor = ({ style, onChange, locale }: ISubStyleEditorProps) => {\n return
    \n \n onChange({ ...style, color: c, width: style.width, alpha: style.alpha })} />\n \n \n onChange({ ...style, color: style.color, width: style.width, alpha: n })} />\n \n \n onChange({ ...style, color: style.color, width: n, alpha: style.alpha })} />\n \n \n
    ;\n}\n\nconst PolygonStyleEditor = ({ style, onChange, locale }: ISubStyleEditorProps) => {\n return
    \n \n onChange({ ...style, fill: { color: c, alpha: style.fill.alpha } })} />\n \n \n onChange({ ...style, fill: { color: style.fill.color, alpha: n } })} />\n \n \n onChange({ ...style, stroke: { color: c, width: style.stroke.width, alpha: style.stroke.alpha } })} />\n \n \n onChange({ ...style, stroke: { color: style.stroke.color, width: style.stroke.width, alpha: n } })} />\n \n \n onChange({ ...style, stroke: { color: style.stroke.color, width: n, alpha: style.stroke.alpha } })} />\n \n \n
    ;\n}\n\n/**\n * Vector style editor props\n * @since 0.13\n */\nexport interface IVectorStyleEditorProps {\n style?: IVectorFeatureStyle;\n onChange?: (style: IVectorFeatureStyle) => void;\n enablePoint: boolean;\n enableLine: boolean;\n enablePolygon: boolean;\n locale: string;\n}\n\ntype TabId = \"pointStyle\" | \"lineStyle\" | \"polyStyle\";\n\n/**\n * A vector style editor component\n * \n * @since 0.13\n */\nexport const VectorStyleEditor = (props: IVectorStyleEditorProps) => {\n const { locale, style, onChange, enableLine, enablePoint, enablePolygon } = props;\n const [selectedTab, setSelectedTab] = React.useState(undefined);\n const [pointStyle, setPointStyle] = React.useState(style?.point ?? DEFAULT_POINT_CIRCLE_STYLE);\n const [lineStyle, setLineStyle] = React.useState(style?.line ?? DEFAULT_LINE_STYLE);\n const [polyStyle, setPolyStyle] = React.useState(style?.polygon ?? DEFAULT_POLY_STYLE);\n React.useEffect(() => {\n setPointStyle(style?.point ?? DEFAULT_POINT_CIRCLE_STYLE);\n setLineStyle(style?.line ?? DEFAULT_LINE_STYLE);\n setPolyStyle(style?.polygon ?? DEFAULT_POLY_STYLE);\n }, [style]);\n const onStyleChanged = (point: IBasicVectorPointStyle, line: IBasicVectorLineStyle, poly: IBasicVectorPolygonStyle) => {\n const newStyle: IVectorFeatureStyle = {\n label: style?.label\n };\n if (enablePoint) {\n newStyle.point = point;\n }\n if (enableLine) {\n newStyle.line = line;\n }\n if (enablePolygon) {\n newStyle.polygon = poly;\n }\n onChange?.(newStyle);\n if (newStyle.point) {\n setPointStyle(newStyle.point);\n }\n if (newStyle.line) {\n setLineStyle(newStyle.line);\n }\n if (newStyle.polygon) {\n setPolyStyle(newStyle.polygon);\n }\n };\n if (!enableLine && !enablePoint && !enablePolygon) {\n return \n } else {\n const onPointStyleChanged = (st: IBasicPointCircleStyle) => {\n onStyleChanged(st, lineStyle, polyStyle);\n };\n const onLineStyleChanged = (st: IBasicVectorLineStyle) => {\n onStyleChanged(pointStyle, st, polyStyle);\n };\n const onPolygonStyleChanged = (st: IBasicVectorPolygonStyle) => {\n onStyleChanged(pointStyle, lineStyle, st);\n };\n return setSelectedTab(t)} selectedTabId={selectedTab}>\n {enablePoint && } />}\n {enableLine && } />}\n {enablePolygon && } />}\n \n }\n}\n\n/**\n * Vector layer style editor props\n * @since 0.14\n */\nexport interface IVectorLayerStyleEditorProps {\n style: IVectorLayerStyle;\n onChange?: (style: IVectorLayerStyle) => void;\n enablePoint: boolean;\n enableLine: boolean;\n enablePolygon: boolean;\n locale: string;\n}\n\ninterface IFilterItemProps extends Omit {\n onChange: (filter: string, style: IVectorFeatureStyle) => void;\n featureStyle: IVectorFeatureStyle;\n filter?: string;\n isDefault: boolean;\n isStyleEditorOpen: boolean;\n onToggleStyleEditor: (visible: boolean) => void;\n}\n\nconst parser = new Parser();\n\nconst FilterItem = (props: IFilterItemProps) => {\n const { filter, isDefault, isStyleEditorOpen, featureStyle, onChange } = props;\n const [localFilter, setLocalFilter] = React.useState(filter ?? \"\");\n const [isLocalFilterValid, setIsLocalFilterValid] = React.useState(true);\n const [pointStyleUrl, setPointStyleUrl] = React.useState(undefined);\n const [lineStyleUrl, setLineStyleUrl] = React.useState(undefined);\n const [polyStyleUrl, setPolyStyleUrl] = React.useState(undefined);\n React.useEffect(() => {\n setLocalFilter(localFilter);\n }, [filter]);\n React.useEffect(() => {\n try {\n const expr: any = parser.parse(localFilter);\n let bHaveVar = false;\n let bHaveOperator = false;\n for (const t of expr.tokens) {\n switch (t.type) {\n case \"IVAR\":\n bHaveVar = true;\n break;\n case \"IOP2\":\n bHaveOperator = true;\n break;\n }\n }\n setIsLocalFilterValid(bHaveVar && bHaveOperator && expr.tokens.length == 3);\n } catch (e) {\n setIsLocalFilterValid(false);\n }\n }, [localFilter]);\n React.useEffect(() => {\n let fs = featureStyle;\n // A default clustered style will have a dynamic expression for the radius, the legend preview isn't\n // smart enough to know what this should be since we don't (and can't) pass an \"example\" feature to\n // know what this value should be. So in the event we find a clustered point style, we'll replace\n // the dynamic radius expression with a constant value\n if (featureStyle?.point?.type == \"Circle\" && isEvaluatable(featureStyle.point.radius)) {\n fs = JSON.parse(JSON.stringify(featureStyle));\n if (fs.point?.type == \"Circle\") {\n fs.point.radius = 5;\n }\n }\n const olstyle = vectorStyleToStyleMap(fs);\n\n let pos: any;\n let ls: any;\n let pls: any;\n if (typeof(olstyle) == 'function') {\n pos = (feat: any) => olstyle(feat, undefined)[\"Point\"];\n ls = (feat: any) => olstyle(feat, undefined)[\"LineString\"];\n pls = (feat: any) => olstyle(feat, undefined)[\"Polygon\"];\n } else {\n pos = olstyle.Point;\n ls = olstyle.LineString;\n pls = olstyle.Polygon;\n }\n\n const cPoint = getLegendImage({\n typeGeom: \"Point\",\n style: pos\n });\n const cLineString = getLegendImage({\n typeGeom: \"LineString\",\n style: ls\n });\n const cPolygon = getLegendImage({\n typeGeom: \"Polygon\",\n style: pls\n });\n setPointStyleUrl(cPoint.toDataURL());\n setLineStyleUrl(cLineString.toDataURL());\n setPolyStyleUrl(cPolygon.toDataURL());\n }, [featureStyle]);\n const onToggle = () => {\n props.onToggleStyleEditor(!isStyleEditorOpen);\n };\n const onInnerStyleChanged = (style: IVectorFeatureStyle) => {\n onChange?.(isDefault ? DEFAULT_STYLE_KEY : localFilter, style);\n }\n let outerModifier;\n if (!isLocalFilterValid) {\n outerModifier = Intent.DANGER;\n }\n let colSpan = 5;\n if (!props.enableLine)\n colSpan--;\n if (!props.enablePoint)\n colSpan--;\n if (!props.enablePolygon)\n colSpan--;\n const filterExprEd = {featureStyle.label} // setLocalFilter(e.target.value)} />;\n return <>\n \n {props.enablePoint && {pointStyleUrl && }}\n {props.enableLine && {lineStyleUrl && }}\n {props.enablePolygon && {polyStyleUrl && }}\n {isDefault ? Default Style : filterExprEd}\n \n \n \n \n {(() => {\n if (this.state.measuring === true) {\n return
    \n \n {tr(\"MEASURING_MESSAGE\", locale)}\n \n {(() => {\n if (this.state.segments) {\n return \n \n \n \n \n \n \n \n {this.state.segments.map(s => {\n return \n \n {measureUnits\n ? \n : }\n \n })}\n {(() => {\n if (this.state.segmentTotal && this.state.activeType) {\n return \n {(() => {\n if (this.state.activeType == \"Area\") {\n return <>\n \n \n \n } else {\n return <>\n \n \n \n }\n })()}\n ;\n }\n })()}\n \n
    {tr(\"MEASURE_SEGMENT\", locale)}{tr(\"MEASURE_LENGTH\", locale)}
    {tr(\"MEASURE_SEGMENT_PART\", locale, { segment: s.segment })}{`${roundTo(s.length, 2)} ${toProjUnit(measureUnits)}`}{tr(\"UNIT_FMT_M\", locale, { value: roundTo(s.length, 2) })}
    {tr(\"MEASURE_TOTAL_AREA\", locale)}\n {measureUnits\n ?
    2` }} />\n :
    }\n
    {tr(\"MEASURE_TOTAL_LENGTH\", locale)}\n {measureUnits\n ?
    \n :
    }\n
    ;\n }\n })()}\n
    ;\n }\n })()}\n \n
    ;\n }\n}\n\nexport const MeasureContainer = (props: IMeasureContainerProps) => {\n const activeMapName = useActiveMapName();\n const locale = useViewerLocale();\n const mapNames = useAvailableMaps()?.map(m => m.value);\n const dispatch = useReduxDispatch();\n const setActiveToolAction = (tool: ActiveMapTool) => dispatch(setActiveTool(tool));\n const isArbitrary = useActiveMapIsArbitraryCoordSys();\n const projUnits = useActiveMapProjectionUnits();\n return ;\n};","import * as React from \"react\";\nimport { RndModalDialog } from \"../components/modal-dialog\";\nimport { getComponentFactory } from \"../api/registry/component\";\nimport { Error } from \"../components/error\";\nimport { tr } from \"../api/i18n\";\nimport {\n IModalReducerState,\n IModalComponentDisplayOptions,\n IModalDisplayOptions\n} from \"../api/common\";\nimport {\n isModalComponentDisplayOptions,\n isModalDisplayOptions\n} from \"../utils/type-guards\";\nimport { assertNever } from \"../utils/never\";\nimport { ParsedComponentUri, parseComponentUri, isComponentUri } from \"../utils/url\";\nimport { useViewerLocale } from './hooks';\nimport { hideModal } from '../actions/modal';\nimport { useAppState, useReduxDispatch } from \"../components/map-providers/context\";\n\nfunction getComponentId(diag: IModalComponentDisplayOptions | IModalDisplayOptions): ParsedComponentUri | undefined {\n if (isModalComponentDisplayOptions(diag)) {\n return { name: diag.component, props: {} };\n } else if (isModalDisplayOptions(diag)) {\n return parseComponentUri(diag.url);\n } else {\n assertNever(diag);\n }\n}\n\nexport const ModalLauncher = (props: { children?: React.ReactNode }) => {\n const dispatch = useReduxDispatch();\n const hideModalAction = (name: string) => dispatch(hideModal(name));\n const onCloseModal = (name: string) => hideModalAction(name);\n const modal = useAppState(state => state.modal);\n const locale = useViewerLocale();\n const MODAL_INIT_X = 500;\n const MODAL_INIT_Y = 80;\n if (!modal) {\n return