{"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,sJCAA,eAUA,yBAA8BC,EAAaC,GACvC,MAAO,CACHC,KAAM,EAAAC,WAAWC,gBACjBC,QAAS,CACLL,IAAG,EACHC,MAAK,M,gCC4GjB,IAAYK,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,EAAaL,Q,2MCnRhC,WAQA,2BAAgCM,GAC5B,MAAO,CACHN,KAAM,EAAAC,WAAWM,kBACjBJ,QAAS,EAAF,YACAG,KAUf,8BA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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/app.ts","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/node module decorator","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\";","import { ActionType } from \"../constants/actions\";\nimport { ISetAppSettingAction } from \"./defs\";\n\n/**\n * Sets an app setting to the given value\n * \n * @param key \n * @param value \n * @since 0.14.8\n */\nexport function setAppSetting(key: string, value: string): ISetAppSettingAction {\n return {\n type: ActionType.SET_APP_SETTING,\n payload: {\n key,\n value\n }\n }\n}","/**\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 * @since 0.14.8\n */\n appSettings?: Dictionary | undefined;\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.14.8\n */\nexport interface ITemplateSetCustomDataAction {\n type: ActionType.FUSION_SET_TEMPLATE_CUSTOM_DATA,\n payload: {\n name: string;\n value: any;\n }\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 * @since 0.14.8 If size/position is specified in modal settings, it will only be honored if the modal \n * is to be shown for the first time. Otherwise, it will use the previous size/position the last time\n * a modal of this name was closed\n */\nexport interface IShowComponentInModalAction {\n type: ActionType.MODAL_SHOW_COMPONENT;\n payload: IModalComponentDisplayOptions;\n}\n\n/**\n * @since 0.12\n * @since 0.14.8 If size/position is specified in modal settings, it will only be honored if the modal \n * is to be shown for the first time. Otherwise, it will use the previous size/position the last time\n * a modal of this name was closed\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.14.8\n */\nexport type ModalChangeArgs = {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/**\n * @since 0.14.8\n */\nexport interface IUpdateModalDimensionsAction {\n type: ActionType.MODAL_UPDATE;\n payload: { \n name: string;\n args: ModalChangeArgs;\n }\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.14.8\n */\nexport interface ISetAppSettingAction {\n type: ActionType.SET_APP_SETTING;\n payload: {\n key: string;\n value: string;\n }\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\n | ISetAppSettingAction //@since 0.14.8\n | IUpdateModalDimensionsAction //@since 0.14.8\n | ITemplateSetCustomDataAction //@since 0.14.8","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 const settings: Record = {};\n if (Array.isArray(appDef.Extension?.ViewerSettings?.Setting)) {\n for (const s of appDef.Extension.ViewerSettings.Setting) {\n const [sn] = s[\"@name\"];\n const [sv] = s[\"@value\"];\n settings[sn] = sv;\n }\n }\n return normalizeInitPayload({\n appSettings: settings,\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 { ICreateRuntimeMapOptions, IDescribeRuntimeMapOptions, 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';\nimport { canUseQueryMapFeaturesV4, parseSiteVersion } from '../utils/site-version';\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 createRuntimeMap(options: ICreateRuntimeMapOptions, siteVersion: AsyncLazy): Promise {\n assertIsDefined(this.client);\n let map: RuntimeMap;\n const sv = await siteVersion.getValueAsync();\n if (canUseQueryMapFeaturesV4(parseSiteVersion(sv.Version))) {\n map = await this.client.createRuntimeMap_v4(options);\n } else {\n map = await this.client.createRuntimeMap(options);\n }\n return map;\n }\n private async describeRuntimeMap(options: IDescribeRuntimeMapOptions, siteVersion: AsyncLazy): Promise {\n assertIsDefined(this.client);\n let map: RuntimeMap;\n const sv = await siteVersion.getValueAsync();\n if (canUseQueryMapFeaturesV4(parseSiteVersion(sv.Version))) {\n map = await this.client.describeRuntimeMap_v4(options);\n } else {\n map = await this.client.describeRuntimeMap(options);\n }\n return map;\n }\n private async tryDescribeRuntimeMapAsync(mapName: string, session: AsyncLazy, mapDef: string, siteVersion: AsyncLazy) {\n assertIsDefined(this.client);\n try {\n const map = await this.describeRuntimeMap({\n mapname: mapName,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync()\n }, siteVersion);\n return map;\n } catch (e) {\n if (e.message === \"MgResourceNotFoundException\") {\n const map = await this.createRuntimeMap({\n mapDefinition: mapDef,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync(),\n targetMapName: mapName\n }, siteVersion);\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 // We use an AsyncLazy because we only want to fetch the site version *iff* we are required to\n const siteVersion = new AsyncLazy(async () => {\n assertIsDefined(this.client);\n const sv = await this.client.getSiteVersion();\n return sv;\n });\n if (isStateless) { \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, siteVersion));\n } else {\n info(`Creating runtime map state (${m.name}) for: ${m.mapDef}`);\n assertIsDefined(this.client);\n mapPromises.push(this.createRuntimeMap({\n mapDefinition: m.mapDef,\n requestedFeatures: RuntimeMapFeatureFlags.LayerFeatureSources | RuntimeMapFeatureFlags.LayerIcons | RuntimeMapFeatureFlags.LayersAndGroups,\n session: await session.getValueAsync(),\n targetMapName: m.name\n }, siteVersion));\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 if (!proj4.defs[`EPSG:${e}`]) {\n fetchEpsgs.push({ epsg: e, mapDef: \"\" });\n }\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 if (Array.isArray(appDef.Extension?.CustomProjections?.Projection)) {\n for (const pd of appDef.Extension.CustomProjections.Projection) {\n let k, v;\n if (typeof (pd.epsg) === 'string' && typeof (pd.text) === 'string') { // appdef json form\n k = pd.epsg;\n v = pd.text;\n } else { // appdef xml translated form\n const [epsg] = pd[\"@epsg\"];\n const [projStr] = pd[\"#text\"];\n k = epsg;\n v = projStr;\n }\n if (!strIsNullOrEmpty(k) && !strIsNullOrEmpty(v)) {\n proj4.defs(`EPSG:${k}`, v);\n debug(`Registered proj4 defn from appdef for EPSG:${k}`, v);\n }\n }\n register(proj4);\n }\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, Dictionary } 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 * @since 0.14.8\n */\n appSettings?: Dictionary | undefined;\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 // Merge in appSettings from loaded appDef, any setting in appDef\n // already specified at viewer mount will be overwritten\n const appSettings = opts.appSettings ?? {};\n const inAppSettings = payload.appSettings ?? {};\n for (const k in inAppSettings) {\n appSettings[k] = inAppSettings[k];\n }\n initPayload.appSettings = appSettings;\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 ReduxDispatch\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, QueryFeaturesSet } from '../api/request-builder';\nimport { buildSelectionXml } from '../api/builders/deArrayify';\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\";\nimport xor from \"lodash.xor\";\nimport xorby from \"lodash.xorby\";\nimport { RuntimeMap } from \"../api/contracts/runtime-map\";\nimport { debug } from \"../utils/logger\";\n\nfunction combineSelectedFeatures(oldRes: SelectedFeature[], newRes: SelectedFeature[]): SelectedFeature[] {\n // This function won't be called if we're using QUERYMAPFEATURES older than v4.0.0 (because we won't request\n // attributes on the first QUERYMAPFEATURES call and use the save merged selection XML QUERYMAPFEATURES call as an \n // opportunity to get back the full attribute set of the merged selection), but if we ever do hit here we are totally\n // assuming a v4 QUERYMAPFEATURES response and the selected features will be having a SelectionKey set so we can easily \n // xorby the 2 arrays\n return xorby(oldRes, newRes, f => f.SelectionKey);\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 = xor(existing[0].Class.ID, layer.Class.ID);\n }\n }\n }\n return merged;\n}\n\n/**\n * @hidden Exported just to be unit testable\n */\nexport function 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\nasync function queryMapFeaturesHelper(map: RuntimeMap,\n client: Client,\n opts: QueryMapFeatureActionOptions,\n selectionSet: QueryMapFeaturesResponse | undefined,\n dispatch: ReduxDispatch\n) {\n const mapName = map.Name;\n //We want v4.0.0 QUERYMAPFEATURES if available\n const sv = getSiteVersion(map);\n const isV4 = canUseQueryMapFeaturesV4(sv);\n const queryOp = isV4\n ? (opts: IQueryMapFeaturesOptions) => client.queryMapFeatures_v4(opts)\n : (opts: IQueryMapFeaturesOptions) => client.queryMapFeatures(opts);\n\n const isAppendingWithAttributesOnOldMapGuide = !isV4\n && opts.append === true\n && opts.options.persist === 1\n && opts.options.requestdata !== undefined\n && (opts.options.requestdata & QueryFeaturesSet.Attributes);\n\n if (isAppendingWithAttributesOnOldMapGuide) {\n debug(\"Not asking for attributes in first QUERYMAPFEATURES\");\n // Momentarily stop requesting for attributes\n opts.options.requestdata! &= ~QueryFeaturesSet.Attributes;\n }\n\n const res = await queryOp(opts.options);\n if (opts.options.persist === 1) {\n if (opts.append === true) {\n let combined = combineSelections(selectionSet, res);\n const mergedXml = buildSelectionXml(combined.FeatureSet);\n // Need to update the server-side selection with the merged result\n const opts2: IQueryMapFeaturesOptions = {\n session: map.SessionId,\n mapname: map.Name,\n persist: 1,\n featurefilter: mergedXml\n };\n // If appending with attributes, we can now also include attributes of the merged result\n if (isAppendingWithAttributesOnOldMapGuide) {\n debug(\"Now asking for attributes in second QUERYMAPFEATURES\");\n opts2.requestdata = QueryFeaturesSet.Attributes;\n }\n const res2 = await queryOp(opts2);\n // If appending with attributes, res2 represents the attributes of the merged result, so accept\n // it as the new combined without having to do any stitching\n if (isAppendingWithAttributesOnOldMapGuide) {\n debug(\"Accepting second QUERYMAPFEATURES as new combined selection response\");\n combined = res2;\n }\n persistSelectionSetToLocalStorage(map.SessionId, mapName, combined); // set and forget\n dispatch(setSelection(mapName, combined));\n return combined;\n } else {\n persistSelectionSetToLocalStorage(map.SessionId, mapName, res); // set and forget\n dispatch(setSelection(mapName, res));\n return res;\n }\n } else {\n return res;\n }\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 queryMapFeaturesHelper(map, client, opts, selectionSet, dispatch).then(r => success(r))\n .catch(e => failure(e));\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, IUpdateModalDimensionsAction, ModalChangeArgs } 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}\n\n/**\n * Update settings of the given modal\n * \n * @param name The name of the modal to update\n * @param args \n * @since 0.14.8\n */\nexport function updateModal(name: string, args: ModalChangeArgs): IUpdateModalDimensionsAction {\n return {\n type: ActionType.MODAL_UPDATE,\n payload: {\n name,\n args: args\n }\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, ITemplateSetCustomDataAction } 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\n/**\n * \n * @param name \n * @param value \n * @returns \n * \n * @since 0.14.8\n */\nexport function setTemplateCustomData(name: string, value: any): ITemplateSetCustomDataAction {\n return {\n type: ActionType.FUSION_SET_TEMPLATE_CUSTOM_DATA,\n payload: {\n name,\n value\n }\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 TilePixelRatio: getter(root, \"TilePixelRatio\", \"int\"),\n TileSetProvider: getter(root, \"TileSetProvider\")\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 idCount = 0;\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 const cls = layer.Class;\n if (cls.ID.length === 0) { // Don't bother writing out empty Layer/Class elements\n continue;\n }\n xml += ``;\n xml += ``;\n for (const id of cls.ID) {\n xml += `${id}`;\n idCount++;\n }\n xml += '';\n xml += '';\n }\n }\n xml += '';\n // If we didn't write any ids, just return an empty string instead\n return idCount > 0 ? 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 createRuntimeMap_v4(options: ICreateRuntimeMapOptions): Promise {\n const p1 = { operation: \"CREATERUNTIMEMAP\", version: \"4.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 describeRuntimeMap_v4(options: IDescribeRuntimeMapOptions): Promise {\n const p1 = { operation: \"DESCRIBERUNTIMEMAP\", version: \"4.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, isXYZ: boolean): string {\n if (isXYZ)\n return`${this.agentUri}?OPERATION=GETTILEIMAGE&VERSION=1.2.0&USERNAME=Anonymous&MAPDEFINITION=${resourceId}&BASEMAPLAYERGROUPNAME=${groupName}&TILECOL=${yPlaceholder}&TILEROW=${xPlaceholder}&SCALEINDEX=${zPlaceholder}`;\n else\n return`${this.agentUri}?OPERATION=GETTILEIMAGE&VERSION=1.2.0&USERNAME=Anonymous&MAPDEFINITION=${resourceId}&BASEMAPLAYERGROUPNAME=${groupName}&TILECOL=${xPlaceholder}&TILEROW=${yPlaceholder}&SCALEINDEX=${zPlaceholder}`;\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. Issues a v3.0.0 request\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 * Creates a runtime map from the specified map definition. Issues a v4.0.0 request\n *\n * @param {ICreateRuntimeMapOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n * @since 0.14.8\n */\n public createRuntimeMap_v4(options: ICreateRuntimeMapOptions): Promise {\n return this.builder.createRuntimeMap_v4(options);\n }\n\n /**\n * Describes a runtime map. Issues a v3.0.0 request\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 * Describes a runtime map. Issues a v4.0.0 request\n *\n * @param {IDescribeRuntimeMapOptions} options\n * @returns {Promise}\n *\n * @memberOf Client\n * @since 0.14.8\n */\n public describeRuntimeMap_v4(options: IDescribeRuntimeMapOptions): Promise {\n return this.builder.describeRuntimeMap_v4(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 * @since 0.14.8 added isXYZ parameter\n */\n public getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string, isXYZ: boolean): string {\n return this.builder.getTileTemplateUrl(resourceId, groupName, xPlaceholder, yPlaceholder, zPlaceholder, isXYZ);\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 /**\n * @since 0.14.8 Now optional\n */\n size?: [number, number];\n overflowYScroll?: boolean;\n /**\n * @since 0.14.8\n */\n position?: [number, number];\n}\n\n/**\n * The default modal dialog size\n */\nexport const DEFAULT_MODAL_SIZE: [number, number] = [350, 500];\n\n/**\n * The default modal dialog position\n * @since 0.14.8\n */\nexport const DEFAULT_MODAL_POSITION: [number, number] = [500, 80];\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 * @since 0.14.8 all modal sub-properties now optional\n */\n [key: string]: Omit & {\n modal: Partial;\n }\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 * Template-specific data\n * @since 0.14.8\n */\n templateData: Dictionary;\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} 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 },\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 },\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 { createXYZ } from \"ol/tilegrid\";\nimport AbstractSource from \"ol/source/Source\";\nimport TileImageSource from \"ol/source/TileImage\";\nimport XYZSource from \"ol/source/XYZ\";\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_DYNAMIC_OVERLAY, 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_DYNAMIC_OVERLAY in trans) {\n const opacity = restrictToRange(trans[LAYER_ID_MG_DYNAMIC_OVERLAY], 0, 1.0);\n this.overlay.setOpacity(opacity);\n } else {\n this.overlay.setOpacity(1.0);\n }\n\n if (LAYER_ID_MG_BASE in trans) {\n const opacity = restrictToRange(trans[LAYER_ID_MG_BASE], 0, 1.0);\n for (const group of this.mgTiledLayers) {\n group.setOpacity(opacity);\n }\n } else {\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}', false);\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 const zOrigin = finiteScales.length - 1;\n const mgTiledLayers = [];\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 let tileLayer: TileLayer;\n if (group.Type === 3 && map.TileSetProvider === \"XYZ\") {\n let retinaScale = 1;\n if (typeof (map.TilePixelRatio) != 'undefined') {\n retinaScale = map.TilePixelRatio;\n }\n const tileSource = new XYZSource({\n tileSize: [256 * retinaScale, 256 * retinaScale],\n tileGrid: createXYZ({ tileSize: [256, 256] }),\n projection: projection,\n // TODO: Should use tileUrlFunction for consistency with MG tiled layers below and to also faciliate \n // something like client-side tile caching in the future\n url: this.callback.getClient().getTileTemplateUrl(resourceId, group.Name, '{x}', '{y}', '{z}', true),\n wrapX: false\n });\n tileLayer = new TileLayer({\n //name: group.Name,\n source: tileSource\n });\n } else {\n const tileGrid = new TileGrid({\n origin: olExtent.getTopLeft(extent),\n resolutions: resolutions,\n tileSize: [tileWidth, tileHeight]\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 tileLayer = new TileLayer({\n //name: group.Name,\n source: tileSource\n });\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 getSelectionSet,\n getRuntimeMap,\n NOOP,\n ALWAYS_FALSE,\n IInvokeUrlCommandParameter,\n ActiveMapTool} 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 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(`https://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 * @param {boolean} isXYZ\n * @returns {string}\n * \n * @since 0.14.8 added isXYZ parameter\n */\n getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string, isXYZ: boolean): 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 createRuntimeMap_v4(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 describeRuntimeMap_v4(options: IDescribeRuntimeMapOptions): Promise;\n\n public abstract getTileTemplateUrl(resourceId: string, groupName: string, xPlaceholder: string, yPlaceholder: string, zPlaceholder: string, isXYZ: boolean): 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 { 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() == \"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 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';\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: \"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 { 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: \"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 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: \"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 | null = source.getProjection();\n if (!srcProj) {\n const epsg = parseEpsgCodeFromCRS(json.crs?.properties?.name);\n if (epsg) {\n srcProj = `EPSG:${epsg}`;\n } else { //Type narrowing hack\n srcProj = undefined;\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 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: '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 DEFAULT_MODAL_POSITION,\n DEFAULT_MODAL_SIZE\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, updateModal } from '../actions/modal';\nimport { useAppState, useReduxDispatch } from \"../components/map-providers/context\";\nimport { ModalChangeArgs } from \"../actions/defs\";\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 onModalChanged = (name: string, args: ModalChangeArgs) => {\n dispatch(updateModal(name, args));\n };\n \n if (!modal) {\n return