@artstesh/maps 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"maps-components-src-map.umd.js","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../node_modules/tslib/tslib.es6.mjs","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/map.constants.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/models/polygon.model.ts","../../projects/maps-components/src/map/models/drawing-type.enum.ts","../../projects/maps-components/src/map/models/feature-format.enum.ts","../../projects/maps-components/src/map/models/dictionary.ts","../../projects/maps-components/src/map/models/map-control.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/events/map-click.event.ts","../../projects/maps-components/src/map/messages/events/map-move-end.event.ts","../../projects/maps-components/src/map/messages/commands/close-tooltip.command.ts","../../projects/maps-components/src/map/messages/commands/start-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/draw-selection-area.command.ts","../../projects/maps-components/src/map/messages/commands/modify-feature.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-feature-modification.command.ts","../../projects/maps-components/src/map/messages/commands/add-control.command.ts","../../projects/maps-components/src/map/messages/commands/remove-control.command.ts","../../projects/maps-components/src/map/messages/commands/set-map-center.command.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/messages/commands/fit-to-features.command.ts","../../projects/maps-components/src/map/messages/queries/get-layer.query.ts","../../projects/maps-components/src/map/messages/events/drawing-finished.event.ts","../../projects/maps-components/src/map/services/drawing/drawing-generation.service.ts","../../projects/maps-components/src/map/services/feature.service.ts","../../projects/maps-components/src/map/messages/queries/get-features-in-area.query.ts","../../projects/maps-components/src/map/messages/executors/filter-features-in-area.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-draw.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-zoom-control.executor.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-feature.service.ts","../../projects/maps-components/src/map/services/map-click.service.ts","../../projects/maps-components/src/map/services/drawing/drawing.service.ts","../../projects/maps-components/src/map/services/drawing/feature-modification.service.ts","../../projects/maps-components/src/map/services/controls/controls.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.settings.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.html","../../projects/maps-components/src/map/map-plate/features/polygons/polygons.component.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/helpers/polygon-style.helper.ts","../../projects/maps-components/src/map/helpers/text-style.helper.ts","../../projects/maps-components/src/map/helpers/stringify-feature.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length !== model.center.length || !!this.center.filter((c, i) => c !== model.center[i]);\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","export class MapConstants {\n public static FeatureInfo = 'f-info';\n public static DrawingLayerId = '93a981756ec7';\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\nimport { MapConstants } from './map.constants';\n\nexport class MarkerModel {\n public readonly id: string | number;\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) feature.set(MapConstants.FeatureInfo, this.info);\n return feature;\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { getCenter } from 'ol/extent';\nimport { MapConstants } from './map.constants';\n\nexport class PolygonModel {\n public readonly id: string | number;\n public readonly lat: number;\n public readonly lng: number;\n private _feature: Feature<Geometry>;\n\n public static fromGeoJson(id: string | number, json: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new GeoJSON().readFeature(json);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n public static fromWKT(id: string | number, wkt: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new WKT().readFeature(wkt);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n private constructor(feature: Feature<Geometry>, id?: string | number, public info?: { [id: string]: any }) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = feature;\n if (this.info) this._feature?.set(MapConstants.FeatureInfo, this.info);\n [this.lng, this.lat] = getCenter(this._feature.getGeometry()?.getExtent()!);\n }\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n}\n","export enum DrawingType {\n Polygon = 1,\n Circle,\n Square,\n Box,\n}\n","export enum FeatureOutputFormat {\n GeoJson = 1,\n WKT,\n}\n","export class Dictionary<T> {\n public collection: DictionaryType<T> = {};\n private _keys = new Set<string>();\n\n public get keys(): string[] {\n return Array.from(this._keys);\n }\n\n public get size(): number {\n return this._keys.size;\n }\n\n public static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n return Dictionary.create(dic.collection, action);\n }\n\n public static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n let keyList = Object.keys(dic);\n const result = new Dictionary<T>();\n for (let i = 0; i < keyList.length; i++) {\n let key = keyList[i];\n result._keys.add(key);\n result.collection[key] = action ? action(dic[key], key) : dic[key];\n }\n return result;\n }\n\n public find(predicate: (value: T) => boolean): T | null {\n let result: T | null = null;\n this.forEach((e) => {\n if (result === null && predicate(e)) result = e;\n });\n return result;\n }\n\n public has = (key: string) => this._keys.has(key);\n\n public take(key: string): T | null {\n return this._keys.has(key) ? this.collection[key] : null;\n }\n\n public put(key: string, value?: T | null): void {\n if (value == null) return;\n this.collection[key] = value;\n this._keys.add(key);\n }\n\n public rmv(key: string): void {\n if (!this._keys.has(key)) return;\n delete this.collection[key];\n this._keys.delete(key);\n }\n\n public forEach(callback: (value: T, index: number) => void): void {\n let keys = Object.keys(this.collection);\n for (let i = 0; i < keys.length; i++) {\n callback(this.collection[keys[i]], i);\n }\n }\n}\n\nexport type DictionaryType<T> = { [id: string]: T };\n","import { Control } from 'ol/control';\nimport { Options } from 'ol/control/Control';\n\n/**\n *\n * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.\n * This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:\n * var myControl = new Control({element: myElement}); and then adding this to the map.\n * The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you. Controls will also be objects in a module:ol/Collection~Collection, so you can use their methods.\n * You can also extend this base for your own control class. See examples/custom-controls for an example of how to do this.\n */\nexport class MapControl extends Control {\n constructor(options: Options) {\n super(options);\n }\n}\n","import Map from 'ol/Map';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapRenderedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { IIdentified } from '../../models/i-identified';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapClickEvent extends PostboyGenericMessage {\n public static readonly ID: string = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';\n\n constructor(\n public coordinates: number[],\n public entities: { [layer: string]: IIdentified[] },\n public features: { [layer: string]: Feature<Geometry>[] },\n ) {\n super();\n }\n\n public get id(): string {\n return MapClickEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapMoveEndEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'f21f783e-b5af-4489-9fec-8027fd07a8ad';\n\n constructor(public zoom: number, public extent: number[]) {\n super();\n }\n\n public get id(): string {\n return MapMoveEndEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CloseTooltipCommand extends PostboyGenericMessage {\n public static readonly ID: string = '4896d52c-e34f-4994-bcfd-32832d12dbe4';\n\n constructor(public tooltipId: string) {\n super();\n }\n\n public get id(): string {\n return CloseTooltipCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { DrawingType, FeatureOutputFormat } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class StartDrawingCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'da904f4b-a1c8-4db7-a6af-14d9ee18ec8c';\n\n constructor(\n public type: DrawingType,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return StartDrawingCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelDrawingCommand extends PostboyGenericMessage {\n public static readonly ID: string = '7d38d983-feba-4176-a66b-18175e5ecd6b';\n\n public get id(): string {\n return CancelDrawingCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Dictionary, DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = '573d8a0d-f25b-42b7-9ad7-0ac6d86ac362';\n\n constructor(public type: DrawingType, public style: Style, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return DrawSelectionAreaCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { FeatureOutputFormat, PolygonModel } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class ModifyFeatureCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'ead85caa-24c6-4844-a68c-2cea91774c8c';\n\n constructor(\n public model: PolygonModel,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return ModifyFeatureCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelFeatureModificationCommand extends PostboyGenericMessage {\n public static readonly ID: string = '9c9fb40f-ea95-4704-8177-0e9ecabf36fa';\n\n public get id(): string {\n return CancelFeatureModificationCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class AddControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8e1c06eb-b395-4fe1-929c-ebf0805eeb49';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return AddControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class RemoveControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '361641e0-804a-4930-8c27-0cea6330dbfc';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return RemoveControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\n/**\n * Forces map to move to a specific point\n */\nexport class SetMapCenterCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd50e89c9-6707-4f8c-ab57-65fcef232182';\n\n /**\n *\n * @param lat - the desired latitude\n * @param lng - the desired longitude\n * @param zoom - the desired zoom; doesn't change zoom if undefined\n */\n constructor(public lat: number, public lng: number, public zoom?: number) {\n super();\n }\n\n public get id(): string {\n return SetMapCenterCommand.ID;\n }\n}\n","import { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any> | Cluster>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class PlaceLayerFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import BaseLayer from 'ol/layer/Base';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class FitToFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '76cdc091-3793-4b6c-82f7-1e0334cf08a8';\n\n constructor(public features: Feature<Geometry>[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToFeaturesCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\n\nexport class GetLayerQuery extends PostboyCallbackMessage<Layer<VectorSource<any> | Cluster> | null> {\n public static readonly ID: string = '5c04c87b-8a93-4c2a-979e-d1e313d860ed';\n\n constructor(public name: string) {\n super();\n }\n\n public get id(): string {\n return GetLayerQuery.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class DrawingFinishedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';\n\n constructor() {\n super();\n }\n\n public get id(): string {\n return DrawingFinishedEvent.ID;\n }\n}\n","import { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport { createBox, createRegularPolygon, GeometryFunction } from 'ol/interaction/Draw';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\nexport class DrawingGenerationService {\n public static getDraw(ev: GenerateDrawExecutor) {\n return new Draw({\n source: ev.layer.getSource()!,\n type: ev.type === DrawingType.Polygon ? 'Polygon' : 'Circle',\n style: ev.style,\n geometryFunction: DrawingGenerationService.geometryFunc(ev.type),\n });\n }\n\n private static geometryFunc(type: DrawingType): GeometryFunction | undefined {\n switch (type) {\n case DrawingType.Circle:\n return createRegularPolygon(32);\n case DrawingType.Box:\n return createBox();\n case DrawingType.Square:\n return createRegularPolygon(4);\n }\n return undefined;\n }\n}\n","import { Circle, Geometry, Point } from 'ol/geom';\nimport Polygon from 'ol/geom/Polygon';\nimport { Feature } from 'ol';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\n\nexport class FeatureService {\n constructor() {}\n\n public static filterFeaturesInArea(query: FilterFeaturesInAreaExecutor): Feature<Geometry>[] {\n return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()!));\n }\n\n private static booleanIntersects(g1: Geometry, g2: Geometry): boolean {\n if (g2.getType() === 'Point') return g1.intersectsCoordinate((g2 as Point).getCoordinates());\n if (g2.getType() === 'Circle') return g1.intersectsCoordinate((g2 as Circle).getCenter());\n if (g2.getType() === 'Polygon') return g1.intersectsCoordinate((g2 as Polygon).getInteriorPoint().getCoordinates());\n return false;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '../../models';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';\n\n constructor(public area: Geometry, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return GetFeaturesInAreaQuery.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class FilterFeaturesInAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '36bb2d94-8028-4512-90dd-2386af3fc67c';\n\n constructor(public area: Geometry, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return FilterFeaturesInAreaExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class GenerateDrawExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';\n\n constructor(public layer: Layer<VectorSource<any>>, public style: Style, public type: DrawingType) {\n super();\n }\n\n public get id(): string {\n return GenerateDrawExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Draw } from 'ol/interaction';\nimport { ZoomControlSettings } from '../../map-plate/controls/map-control-zoom/zoom-control.settings';\n\nexport class GenerateZoomControlExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';\n\n constructor(public settings: ZoomControlSettings) {\n super();\n }\n\n public get id(): string {\n return GenerateZoomControlExecutor.ID;\n }\n}\n","import { ZoomControlSettings } from './zoom-control.settings';\nimport { Zoom } from 'ol/control';\n\nexport class ZoomControlFactory {\n public static build(settings: ZoomControlSettings): Zoom {\n return new Zoom({\n zoomInTipLabel: settings.zoomInLabel,\n zoomOutTipLabel: settings.zoomOutLabel,\n zoomInClassName: settings.zoomInClass,\n zoomOutClassName: settings.zoomOutClass,\n className: settings.controlClass,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PostboyService } from '@artstesh/postboy';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { MapClickEvent } from '../messages';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\n\n@Injectable()\nexport class MapPostboyService extends PostboyService {\n constructor() {\n super();\n this.addLocker({ locker: StartDrawingCommand.ID, unlocker: DrawingFinishedEvent.ID, locking: [MapClickEvent.ID] });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Feature, Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport Cluster from 'ol/source/Cluster';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../models/i-identified';\nimport { Dictionary } from '../models';\nimport { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\n\n@Injectable()\nexport class MapManagementService implements IPostboyDependingService {\n private map?: Map;\n private layers = new Dictionary<Layer<VectorSource<any> | Cluster>>();\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n this.observeLayerQuery();\n this.observeFeaturesInArea();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeLayerQuery() {\n this.postboy.subscribe<GetLayerQuery>(GetLayerQuery.ID).subscribe((ev) => ev.finish(this.layers.take(ev.name)));\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.put(c.layer.get('name'), c.layer);\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers.has(c.layer)) return;\n let source = this.layers.take(c.layer)!.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n source?.clear();\n !!c.features?.length && source?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.rmv(c.layer.get('name'));\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeFeaturesInArea() {\n this.postboy.subscribe<GetFeaturesInAreaQuery>(GetFeaturesInAreaQuery.ID).subscribe((qr) => {\n let result = new Dictionary<IIdentified[]>();\n this.layers.forEach((l) => {\n let layerName = l.get('name');\n if (qr.ignore.has(layerName) || layerName === MapConstants.DrawingLayerId) return;\n let source = l.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n let features = this.postboy.execute<FilterFeaturesInAreaExecutor, Feature<Geometry>[]>(\n new FilterFeaturesInAreaExecutor(qr.area, source?.getFeatures() ?? []),\n );\n result.put(\n layerName,\n features.map((e) => ({ id: e.getId(), ...e.get(MapConstants.FeatureInfo) })),\n );\n });\n qr.finish(result);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent, SetMapCenterCommand } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapMoveEndEvent } from '../messages';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class MapStateService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRendering();\n this.observeCenter();\n }\n\n private observeMapRendering() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((ev) => {\n this.map = ev.map;\n this.map?.on('moveend', () => {\n const zoom = Math.floor(this.map?.getView().getZoom() || -1);\n const extent = this.map?.getView().calculateExtent() || [];\n this.postboy.fire(new MapMoveEndEvent(zoom, extent));\n });\n });\n }\n\n private observeCenter() {\n this.postboy.subscribe<SetMapCenterCommand>(SetMapCenterCommand.ID).subscribe((c) => {\n this.map?.getView().setCenter([c.lng, c.lat]);\n if (c.zoom) this.map?.getView().setZoom(c.zoom);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { Geometry } from 'ol/geom';\nimport { createEmpty, extend } from 'ol/extent';\n\n@Injectable()\nexport class MapFeatureService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((m) => {\n this.fitToGeometries(\n m.features.map((f) => f.getGeometry()!),\n m.zoomAfter,\n );\n });\n }\n\n private fitToGeometries(geometries: Geometry[], zoomAfter: number): void {\n if (!geometries?.length || !this.map) return;\n const extent = createEmpty();\n geometries.forEach((g) => extend(extent, g.getExtent()));\n this.map.getView().fit(extent);\n this.map.getView().setZoom(this.map.getView().getZoom()! + zoomAfter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Feature, Map, MapBrowserEvent } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { Geometry } from 'ol/geom';\nimport { MapConstants } from '../models/map.constants';\n\n@Injectable()\nexport class MapClickService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n this.map?.on('singleclick', (e) => {\n this.postboy.fire(this.onClick(e));\n });\n });\n }\n\n onClick(ev: MapBrowserEvent<UIEvent>): MapClickEvent {\n const model: MapClickEvent = new MapClickEvent(ev.coordinate, {}, {});\n this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {\n this.getFeatureCollectionWithInner([f as Feature<Geometry>])\n .filter((f) => f.getId() != null)\n .forEach((fs: Feature<Geometry>) => {\n let layerName = l.get('name');\n if (!model.entities[layerName]) model.entities[layerName] = [];\n if (!model.features[layerName]) model.features[layerName] = [];\n model.entities[layerName].push({ id: fs.getId()!, ...fs.get(MapConstants.FeatureInfo) });\n model.features[layerName].push(fs);\n });\n });\n return model;\n }\n\n private getFeatureCollectionWithInner(features: Feature<Geometry>[]): Feature<Geometry>[] {\n const result: Feature<Geometry>[] = [];\n features?.forEach((f) => {\n const innerFeatures = f.get('features') as Feature<Geometry>[];\n innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { StartDrawingCommand } from '../../messages/commands/start-drawing.command';\nimport { CancelDrawingCommand } from '../../messages/commands/cancel-drawing.command';\nimport { first } from 'rxjs/operators';\nimport { DrawingFinishedEvent } from '../../messages/events/drawing-finished.event';\nimport { Subscription } from 'rxjs';\nimport { MapRenderedEvent } from '../../messages';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Source } from 'ol/source';\nimport { Draw } from 'ol/interaction';\nimport { Dictionary, FeatureOutputFormat, PolygonModel } from '../../models';\nimport { Map } from 'ol';\nimport { DrawEvent } from 'ol/interaction/Draw';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { DrawSelectionAreaCommand } from '../../messages/commands/draw-selection-area.command';\nimport { GetFeaturesInAreaQuery } from '../../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../../models/i-identified';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\n@Injectable()\nexport class DrawingService implements IPostboyDependingService {\n private drawInteraction?: Draw;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeDrawing();\n this.observeSelectArea();\n this.observeMapRender();\n }\n\n private observeSelectArea() {\n this.postboy.subscribe<DrawSelectionAreaCommand>(DrawSelectionAreaCommand.ID).subscribe((ev) => {\n const drawingCommand = new StartDrawingCommand(ev.type, ev.style);\n drawingCommand.result.subscribe((r) => {\n if (!r) {\n ev.finish(new Dictionary<IIdentified[]>());\n return;\n }\n const area = PolygonModel.fromGeoJson(1, r).feature.getGeometry()!;\n const getFeaturesCommand = new GetFeaturesInAreaQuery(area, ev.ignore);\n getFeaturesCommand.result.subscribe((result) => ev.finish(result));\n this.postboy.fire(getFeaturesCommand);\n });\n this.postboy.fire(drawingCommand);\n });\n }\n\n private observeDrawing() {\n this.postboy.subscribe<StartDrawingCommand>(StartDrawingCommand.ID).subscribe((ev) => {\n this.draw((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n const cancelSub = this.observeCancelation(ev, l);\n this.drawInteraction = this.postboy.execute(new GenerateDrawExecutor(l, ev.style, ev.type))!;\n this.map?.addInteraction(this.drawInteraction);\n this.drawInteraction.on('drawend', (evt: DrawEvent) => {\n cancelSub.unsubscribe();\n this.onEnd(evt, ev, l);\n });\n });\n });\n }\n\n private onEnd(evt: DrawEvent, command: StartDrawingCommand, layer: Layer<VectorSource<Geometry>>): void {\n command.finish(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(evt.feature)\n : new WKT().writeFeature(evt.feature),\n );\n this.clearInteraction(layer);\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private draw(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: StartDrawingCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe<CancelDrawingCommand>(CancelDrawingCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (!!this.drawInteraction) {\n this.map?.removeInteraction(this.drawInteraction);\n layer?.setSource(new Source({}));\n }\n setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Modify, Translate } from 'ol/interaction';\nimport { Collection, Feature, Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { MapRenderedEvent } from '../../messages';\nimport { FeatureOutputFormat } from '../../models';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { Vector as Source } from 'ol/source';\nimport { CancelFeatureModificationCommand } from '../../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../../messages/commands/modify-feature.command';\n\n@Injectable()\nexport class FeatureModificationService implements IPostboyDependingService {\n private modify?: Modify;\n private translate?: Translate;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeModification();\n this.observeMapRender();\n }\n\n private observeModification() {\n this.postboy.subscribe<ModifyFeatureCommand>(ModifyFeatureCommand.ID).subscribe((ev) => {\n this.defineLayer((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n this.observeCancelation(ev, l);\n this.initFeature(l, ev.model.feature);\n this.addModify(ev);\n this.addDragging(ev);\n });\n });\n }\n\n private initFeature(layer: Layer<VectorSource<Geometry>>, feature: Feature<Geometry>): void {\n layer.getSource()?.clear();\n layer.getSource()?.addFeature(feature);\n }\n\n private addModify(command: ModifyFeatureCommand): void {\n this.modify = new Modify({\n features: new Collection([command.model.feature]),\n style: command.style,\n });\n this.modify.on('modifyend', () => {\n this.onModified(command);\n command.model.feature.changed();\n });\n this.map?.addInteraction(this.modify);\n }\n\n private addDragging(command: ModifyFeatureCommand): void {\n this.translate = new Translate({\n features: new Collection([command.model.feature]),\n condition: (ev) => {\n const clone = command.model.feature.clone();\n clone.getGeometry()?.scale(0.999);\n return clone.getGeometry()!.intersectsCoordinate(ev.coordinate);\n },\n });\n this.translate.on('translateend', () => this.onModified(command));\n this.map?.addInteraction(this.translate);\n }\n\n private onModified(command: ModifyFeatureCommand): void {\n command.next(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(command.model.feature)\n : new WKT().writeFeature(command.model.feature),\n );\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private defineLayer(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: ModifyFeatureCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe(CancelFeatureModificationCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (this.modify) this.map?.removeInteraction(this.modify);\n if (this.translate) this.map?.removeInteraction(this.translate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { AddControlCommand, MapRenderedEvent, RemoveControlCommand } from '../../messages';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class ControlsService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((m) => {\n this.map = m.map;\n this.observeAdding();\n this.observeRemoving();\n });\n }\n\n private observeAdding() {\n this.postboy.subscribe<AddControlCommand>(AddControlCommand.ID).subscribe((c) => this.map?.addControl(c.item));\n }\n\n private observeRemoving() {\n this.postboy\n .subscribe<RemoveControlCommand>(RemoveControlCommand.ID)\n .subscribe((c) => this.map?.removeControl(c.item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { PostboyAbstractRegistrator } from '@artstesh/postboy';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\nimport { MapClickService } from './map-click.service';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { CloseTooltipCommand } from '../messages/commands/close-tooltip.command';\nimport { MapFeatureService } from './map-feature.service';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../messages/events/map-move-end.event';\nimport { CancelDrawingCommand } from '../messages/commands/cancel-drawing.command';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { DrawingService } from './drawing/drawing.service';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\nimport { DrawingGenerationService } from './drawing/drawing-generation.service';\nimport { FeatureService } from './feature.service';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { DrawSelectionAreaCommand } from '../messages/commands/draw-selection-area.command';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { GenerateDrawExecutor } from '../messages/executors/generate-draw.executor';\nimport { FeatureModificationService } from './drawing/feature-modification.service';\nimport { CancelFeatureModificationCommand } from '../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../messages/commands/modify-feature.command';\nimport { GenerateZoomControlExecutor } from '../messages/executors/generate-zoom-control.executor';\nimport { ZoomControlFactory } from '../map-plate/controls/map-control-zoom/zoom-control.factory';\nimport { RemoveControlCommand } from '../messages/commands/remove-control.command';\nimport { AddControlCommand } from '../messages/commands/add-control.command';\nimport { ControlsService } from './controls/controls.service';\nimport { SetMapCenterCommand } from '../messages/commands/set-map-center.command';\n\n@Injectable()\nexport class MessageRegistratorService extends PostboyAbstractRegistrator {\n constructor(\n service: MapPostboyService,\n management: MapManagementService,\n state: MapStateService,\n mapFeature: MapFeatureService,\n interaction: MapClickService,\n drawing: DrawingService,\n featureModification: FeatureModificationService,\n controls: ControlsService,\n ) {\n super(service);\n this.registerServices([management, state, interaction, mapFeature, drawing, featureModification, controls]);\n }\n\n protected _up(): void {\n this.registerReplay(MapRenderedEvent.ID);\n this.registerReplay(PlaceLayerFeaturesCommand.ID);\n this.registerReplay(RemoveControlCommand.ID);\n this.registerReplay(AddControlCommand.ID);\n this.registerReplay(SetMapCenterCommand.ID);\n this.registerSubject(AddLayerCommand.ID);\n this.registerSubject(RemoveLayerCommand.ID);\n this.registerSubject(AddTileCommand.ID);\n this.registerSubject(RemoveTileCommand.ID);\n this.registerSubject(MapClickEvent.ID);\n this.registerSubject(CloseTooltipCommand.ID);\n this.registerSubject(FitToFeaturesCommand.ID);\n this.registerSubject(MapMoveEndEvent.ID);\n this.registerSubject(CancelDrawingCommand.ID);\n this.registerSubject(StartDrawingCommand.ID);\n this.registerSubject(GetLayerQuery.ID);\n this.registerSubject(DrawingFinishedEvent.ID);\n this.registerSubject(GetFeaturesInAreaQuery.ID);\n this.registerSubject(DrawSelectionAreaCommand.ID);\n this.registerSubject(CancelFeatureModificationCommand.ID);\n this.registerSubject(ModifyFeatureCommand.ID);\n this.setExecutors();\n }\n\n private setExecutors() {\n this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e: FilterFeaturesInAreaExecutor) =>\n FeatureService.filterFeaturesInArea(e),\n );\n this.registerExecutor(GenerateDrawExecutor.ID, (e: GenerateDrawExecutor) => DrawingGenerationService.getDraw(e));\n this.registerExecutor(GenerateZoomControlExecutor.ID, (e: GenerateZoomControlExecutor) =>\n ZoomControlFactory.build(e.settings),\n );\n }\n}\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'art-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'art-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\n/**\n * A layer that is responsible for showing and styling main features on the map, such as markers and polygons\n */\nexport class FeatureLayerSettings {\n /**\n * The identifier of the field, it is autogenerated by default, but can be set manually\n */\n name: string = IdGenerator.get();\n /**\n * The priority of showing - layers with higher zIndex cover others in case of collisions\n */\n zIndex: number = 1;\n /**\n * The maximum zoom at which the layer is visible. 19 by default\n */\n maxZoom: number = 19;\n /**\n * The minimum zoom at which the layer is visible. 0 by default\n */\n minZoom: number = 0;\n /**\n * The styling definition of layer's features. The easiest way is to use {@link PolygonStyleHelper},{@link MarkerStyleHelper}\n */\n style?: Style | StyleFunction;\n\n /**\n * Creates a clone of the existing settings\n * @param model\n */\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n /**\n Setter for {@link FeatureLayerSettings.zIndex}\n * @param zIndex\n */\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.name}\n * @param name\n */\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.maxZoom}\n * @param maxZoom\n */\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.minZoom}\n * @param minZoom\n */\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.style}\n * @param style\n */\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n /**\n * Checks if the model has the same content\n * @param model - the object to compare\n */\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'art-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { IdGenerator } from '../../../common/id.generator';\nimport Style, { StyleFunction } from 'ol/style/Style';\nimport { IIdentified } from '../../../models/i-identified';\n\nexport class ClusterLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n distance: number = 20;\n bbox: boolean = false;\n clusterCancel: number = 14;\n style?: (features: IIdentified[]) => Style;\n\n public static copy(model: ClusterLayerSettings): ClusterLayerSettings {\n const result = new ClusterLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.bbox = model.bbox;\n result.clusterCancel = model.clusterCancel;\n result.distance = model.distance;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, zIndex });\n }\n\n setDistance(distance: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, distance });\n }\n\n setName(name: string): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, minZoom });\n }\n\n setClusterCancel(clusterCancel: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, clusterCancel });\n }\n\n setBbox(bbox: boolean): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, bbox });\n }\n\n setStyle(style: (features: IIdentified[]) => Style | StyleFunction): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: ClusterLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.distance !== model.distance) return false;\n if (this.clusterCancel !== model.clusterCancel) return false;\n if (this.bbox !== model.bbox) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport { Vector as Layer } from 'ol/layer';\nimport Cluster from 'ol/source/Cluster';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { FitToFeaturesCommand } from '../../../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../../../messages/events/map-move-end.event';\nimport { auditTime } from 'rxjs/operators';\nimport { combineLatest } from 'rxjs';\nimport { Map } from 'ol';\n\nexport class ClusterLayerManager {\n constructor(\n private settings: ClusterLayerSettings,\n public readonly layer: Layer<Cluster>,\n private postboy: MapPostboyService,\n ) {\n this.observeClick();\n this.observeMapMovement();\n }\n\n private observeMapMovement() {\n combineLatest([\n this.postboy.subscribe<MapMoveEndEvent>(MapMoveEndEvent.ID).pipe(auditTime(250)),\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID),\n ]).subscribe(([movement, renderEvent]) => {\n this.checkClusterNecessity(renderEvent.map);\n });\n }\n\n private observeClick() {\n this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((m) => {\n if ((m.features[this.settings.name]?.length ?? 0) > 1) {\n this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));\n }\n });\n }\n\n private checkClusterNecessity(map: Map): void {\n let zoom = map.getView().getZoom() ?? 0;\n const distance = zoom > this.settings.clusterCancel ? 0 : this.settings.distance;\n this.layer?.getSource()?.setDistance(distance);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport { bbox } from 'ol/loadingstrategy';\nimport Polygon, { fromExtent } from 'ol/geom/Polygon';\nimport Cluster from 'ol/source/Cluster';\nimport { Geometry, Point } from 'ol/geom';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { StyleFunction } from 'ol/style/Style';\nimport { Feature } from 'ol';\nimport { MapConstants } from '../../../models/map.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClusterLayerFactory {\n public build(settings: ClusterLayerSettings, postboy: MapPostboyService): ClusterLayerManager {\n const source = new Source({\n strategy: settings.bbox ? bbox : undefined,\n });\n const cluster = new Cluster({\n distance: settings.distance,\n source: source,\n geometryFunction: (feature) => {\n const geom = feature.getGeometry();\n if (geom?.getType() == 'Point') {\n return geom as Point;\n } else if (geom?.getType() == 'Polygon') {\n return (geom as Polygon)?.getInteriorPoint();\n } else if (geom?.getType() == 'MultiPolygon') {\n return fromExtent(geom.getExtent())?.getInteriorPoint();\n }\n return undefined as any;\n },\n });\n const layer = new Layer({\n source: cluster,\n maxZoom: settings.maxZoom || undefined,\n minZoom: settings.minZoom || undefined,\n zIndex: settings.zIndex || 0,\n });\n layer.setStyle(this.styleFunc(settings));\n layer.set('name', settings.name);\n return new ClusterLayerManager(settings, layer, postboy);\n }\n\n styleFunc(settings: ClusterLayerSettings): StyleFunction {\n return (feature) => {\n const features = feature.get('features') as Feature<Geometry>[];\n if (!settings.style) return undefined;\n return settings.style(features.map((f) => ({ id: f.getId()!, ...f.get(MapConstants.FeatureInfo) })));\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { ClusterLayerFactory } from './cluster-layer-factory.service';\n\n@Component({\n selector: 'art-cluster-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ClusterLayerComponent extends DestructibleComponent implements OnInit {\n public manager: ClusterLayerManager | null = null;\n _settings: ClusterLayerSettings = new ClusterLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: ClusterLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: ClusterLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.manager = this.factory.build(this._settings, this.postboy);\n this.postboy.fire(new AddLayerCommand(this.manager.layer));\n }\n\n private removeLayer() {\n if (this.manager?.layer) this.postboy.fire(new RemoveLayerCommand(this.manager.layer));\n }\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { MapPlateFactory } from './map-plate.factory.service';\nimport { MapClickService } from '../services/map-click.service';\nimport { MapFeatureService } from '../services/map-feature.service';\nimport { FeatureLayerSettings } from './layers';\nimport { MapConstants } from '../models/map.constants';\nimport { DrawingService } from '../services/drawing/drawing.service';\nimport { DrawingGenerationService } from '../services/drawing/drawing-generation.service';\nimport { FeatureService } from '../services/feature.service';\nimport { FeatureModificationService } from '../services/drawing/feature-modification.service';\nimport { ControlsService } from '../services/controls/controls.service';\n\n@Component({\n selector: 'art-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MessageRegistratorService,\n MapStateService,\n MapManagementService,\n MapClickService,\n MapFeatureService,\n DrawingService,\n DrawingGenerationService,\n FeatureService,\n FeatureModificationService,\n ControlsService,\n ],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n private registrator: MessageRegistratorService,\n private detector: ChangeDetectorRef,\n ) {\n super();\n registrator.up();\n }\n\n _settings: MapSettings = new MapSettings();\n drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n\n onDestroy = () => {\n this.registrator.down();\n };\n}\n","<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'art-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value ?? [];\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { MapClickEvent } from '../../../messages';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class TooltipSettings {\n public readonly id: string;\n containerClass: string = 'custom-tooltip-class';\n show: (ev: MapClickEvent) => boolean = (e) => true;\n\n public constructor(id?: string) {\n this.id = id ?? IdGenerator.get();\n }\n\n public static copy(model: TooltipSettings): TooltipSettings {\n const result = new TooltipSettings(model.id);\n result.show = model.show;\n result.containerClass = model.containerClass;\n return result;\n }\n\n setShow(show: (ev: MapClickEvent) => boolean): TooltipSettings {\n return TooltipSettings.copy({ ...this, show });\n }\n\n setClass(containerClass: string): TooltipSettings {\n return TooltipSettings.copy({ ...this, containerClass });\n }\n\n public isSame(model: TooltipSettings): boolean {\n if (this.show !== model.show) return false;\n if (this.containerClass !== model.containerClass) return false;\n if (this.id !== model.id) return false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { TooltipSettings } from './tooltip.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport Map from 'ol/Map';\nimport { CloseTooltipCommand } from '../../../messages/commands/close-tooltip.command';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport Overlay, { Options as OverlayOptions } from 'ol/Overlay';\n\n@Component({\n selector: 'art-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent extends DestructibleComponent implements OnInit {\n @ViewChild('tip') container!: ElementRef<HTMLElement>;\n _settings: TooltipSettings = new TooltipSettings();\n private map?: Map;\n overlay?: Overlay;\n show = false;\n\n @Input() set settings(value: TooltipSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.detector.detectChanges();\n }\n constructor(private postboy: MapPostboyService, private detector: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.subs.push(this.observeMapRender());\n this.subs.push(this.observeMapClick());\n this.subs.push(this.observeClose());\n }\n\n private observeMapClick(): Subscription {\n return this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((ev) => {\n this._settings.show(ev) ? this.addOverlay(ev.coordinates) : this.removeOverlay();\n });\n }\n\n private observeClose(): Subscription {\n return this.postboy\n .subscribe<CloseTooltipCommand>(CloseTooltipCommand.ID)\n .pipe(filter((ev) => ev.tooltipId === this._settings.id))\n .subscribe(() => this.removeOverlay());\n }\n\n private observeMapRender() {\n return this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private removeOverlay = () => {\n !!this.overlay && this.map?.removeOverlay(this.overlay);\n this.show = false;\n };\n\n addOverlay(coordinates: number[]): void {\n this.removeOverlay();\n this.overlay = new Overlay(this.options(coordinates));\n this.map?.addOverlay(this.overlay);\n this.show = true;\n this.detector.detectChanges();\n }\n\n options = (coordinates: number[]): OverlayOptions => {\n return {\n element: this.container?.nativeElement,\n autoPan: false,\n autoPanAnimation: { duration: 0 },\n position: coordinates,\n };\n };\n}\n","<div #tip [class]=\"['tooltip-wrapper', _settings.containerClass]\" [hidden]=\"!show\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { PolygonModel } from '../../../models/polygon.model';\n\n@Component({\n selector: 'art-polygons',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PolygonsComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _polygons: PolygonModel[] = [];\n\n @Input() set polygons(value: PolygonModel[]) {\n this._polygons = value ?? [];\n this.putPolygons();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putPolygons());\n }\n\n private putPolygons(): void {\n if (!this._polygons) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._polygons.map((m) => m.feature),\n ),\n );\n }\n}\n","export class ZoomControlSettings {\n controlClass: string = 'ol-zoom';\n zoomInClass: string = 'ol-zoom-in';\n zoomOutClass: string = 'ol-zoom-out';\n zoomInLabel: string = 'Zoom In';\n zoomOutLabel: string = 'Zoom Out';\n\n public static copy(model: ZoomControlSettings): ZoomControlSettings {\n const result = new ZoomControlSettings();\n result.controlClass = model.controlClass;\n result.zoomInClass = model.zoomInClass;\n result.zoomOutClass = model.zoomOutClass;\n result.zoomInLabel = model.zoomInLabel;\n result.zoomOutLabel = model.zoomOutLabel;\n return result;\n }\n\n public isSame(model: ZoomControlSettings): boolean {\n if (this.zoomInClass !== model.zoomInClass) return false;\n if (this.zoomOutClass !== model.zoomOutClass) return false;\n if (this.zoomInLabel !== model.zoomInLabel) return false;\n if (this.controlClass !== model.controlClass) return false;\n if (this.zoomOutLabel !== model.zoomOutLabel) return false;\n return true;\n }\n\n setZoomInLabel(zoomInLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInLabel });\n }\n\n setZoomOutClass(zoomOutClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutClass });\n }\n\n setZoomInClass(zoomInClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInClass });\n }\n\n setZoomOutLabel(zoomOutLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutLabel });\n }\n\n setControlClass(controlClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, controlClass });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport Map from 'ol/Map';\nimport { ZoomControlSettings } from './zoom-control.settings';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { Zoom } from 'ol/control';\nimport { GenerateZoomControlExecutor } from '../../../messages/executors/generate-zoom-control.executor';\n\n@Component({\n selector: 'art-map-control-zoom',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapControlZoomComponent extends DestructibleComponent implements OnInit {\n private _settings: ZoomControlSettings = new ZoomControlSettings();\n private map?: Map;\n private control?: Zoom;\n\n @Input() set settings(value: ZoomControlSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setControl();\n }\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => {\n this.map = m.map;\n this.setControl();\n });\n }\n\n private setControl(): void {\n if (!this.map) return;\n this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));\n this.map.addControl(this.control!);\n }\n\n onDestroy = () => {\n this.eliminate();\n };\n\n private eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\nimport { TooltipComponent } from './map-plate/tooltips/tooltip/tooltip.component';\nimport { PolygonsComponent } from './map-plate/features/polygons/polygons.component';\nimport { ClusterLayerComponent } from './map-plate/layers/cluster-layer/cluster-layer.component';\nimport { MapControlZoomComponent } from './map-plate/controls/map-control-zoom/map-control-zoom.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n exports: [\n MapPlateComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TileLayerComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke, Text } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n\n public static withText(style: Style, text: Text): Style {\n style.setText(text);\n return style;\n }\n}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Stroke } from 'ol/style';\n\nexport class PolygonStyleHelper {\n public static simple(fill: string, stroke: string, strokeWidth: number = 1): Style {\n return new Style({\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n public static edit(fill: string, stroke: string, strokeWidth: number = 1, pinRadius = 5): Style {\n return new Style({\n image: new Circle({\n fill: new Fill({\n color: stroke,\n }),\n radius: pinRadius,\n }),\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n}\n","import { Fill, Text } from 'ol/style';\n\nexport class TextStyleHelper {\n public static get(text: string, font: string, color: string): Text {\n return new Text({\n text: text,\n font: font,\n textAlign: 'center',\n fill: new Fill({\n color: color,\n }),\n });\n }\n}\n","import { Feature } from 'ol';\nimport { Circle, Geometry, LineString } from 'ol/geom';\nimport { FeatureOutputFormat } from '../models';\nimport { GeoJSON, WKT } from 'ol/format';\nimport Polygon from 'ol/geom/Polygon';\nimport { Coordinate } from 'ol/coordinate';\nimport { transform } from 'ol/proj';\nimport { METERS_PER_UNIT } from 'ol/proj/epsg4326';\n\nexport class StringifyFeatureHelper {\n public static polygon(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n return format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(feature)\n : new WKT().writeFeature(feature);\n }\n public static circle(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n // const clone = feature.clone();\n // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));\n const tetemp = feature.getGeometryName();\n const circle = feature.getGeometry()! as Circle;\n // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());\n const ttt = feature.getGeometry()!.getExtent()!;\n const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];\n const aaa = [\n ...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),\n ...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),\n ];\n const radius = (aaa[2] - aaa[0]) / 2;\n const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();\n\n const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));\n\n // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];\n // var wgs84Sphere = new Sphere(6378137);\n return StringifyFeatureHelper.polygon(new Feature<Geometry>(polygonGeom), format);\n // const rad = circle.getRadius();\n // const degrees = 180 / Math.PI; // radians to degrees\n // const radians = Math.PI / 180; // degrees to radians\n // const rlat = rad * degrees * 1000;\n // const rlng = rad * radians;\n // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);\n }\n\n private static drawCircle(point: number[], radius: number): Coordinate[][] {\n const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');\n // const tetetemp = point;\n const radians = Math.PI / 180; // degrees to radians\n const degrees = 180 / Math.PI; // radians to degrees\n const earthsradius = 6378137.0;\n const rlat = (radius / earthsradius) * degrees;\n const rlng = rlat / Math.cos(tetetemp[1] * radians);\n const extp: number[][] = [];\n for (let i = 0; i <= 32; i++) {\n const theta = Math.PI * (i / 16);\n extp.push([\n tetetemp[0] + rlng * Math.cos(theta) * METERS_PER_UNIT,\n tetetemp[1] + rlat * Math.sin(theta) * METERS_PER_UNIT,\n ]);\n }\n return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\nexport * from './map-plate/controls/index';\nexport * from './map-plate/tooltips/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i0","Component","MapLyrs","Feature","Point","getCenter","GeoJSON","WKT","DrawingType","FeatureOutputFormat","Control","PostboyGenericMessage","PostboyCallbackMessage","Draw","createRegularPolygon","createBox","PostboyExecutor","Zoom","PostboyService","Injectable","i1.MapPostboyService","first","extent","createEmpty","extend","Source","Modify","Collection","Translate","PostboyAbstractRegistrator","i2.MapManagementService","i3.MapStateService","i4.MapFeatureService","i5.MapClickService","i6.DrawingService","i7.FeatureModificationService","i8.ControlsService","source","XYZ","get","TileLayer","filter","i2.TileLayerFactory","ChangeDetectionStrategy","Input","OSM","layer","Layer","i2.FeatureLayerFactory","combineLatest","auditTime","bbox","Cluster","fromExtent","i2.ClusterLayerFactory","Map","View","useGeographic","i2.MapPlateFactory","i3.MessageRegistratorService","i4.OsmTileLayerComponent","i5.FeatureLayerComponent","i6","Overlay","ViewChild","CommonModule","NgModule","Style","Icon","Circle","Fill","Stroke","Text","format","transform","LineString","Polygon","METERS_PER_UNIT"],"mappings":"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"}
1
+ {"version":3,"file":"maps-components-src-map.umd.js","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../node_modules/tslib/tslib.es6.mjs","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/map.constants.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/models/polygon.model.ts","../../projects/maps-components/src/map/models/drawing-type.enum.ts","../../projects/maps-components/src/map/models/feature-format.enum.ts","../../projects/maps-components/src/map/models/dictionary.ts","../../projects/maps-components/src/map/models/map-control.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/events/map-click.event.ts","../../projects/maps-components/src/map/messages/events/map-move-end.event.ts","../../projects/maps-components/src/map/messages/commands/close-tooltip.command.ts","../../projects/maps-components/src/map/messages/commands/start-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/draw-selection-area.command.ts","../../projects/maps-components/src/map/messages/commands/modify-feature.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-feature-modification.command.ts","../../projects/maps-components/src/map/messages/commands/add-control.command.ts","../../projects/maps-components/src/map/messages/commands/remove-control.command.ts","../../projects/maps-components/src/map/messages/commands/set-map-center.command.ts","../../projects/maps-components/src/map/messages/executors/calculate-area.executor.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/messages/commands/fit-to-features.command.ts","../../projects/maps-components/src/map/messages/queries/get-layer.query.ts","../../projects/maps-components/src/map/messages/events/drawing-finished.event.ts","../../projects/maps-components/src/map/services/drawing/drawing-generation.service.ts","../../projects/maps-components/src/map/services/feature.service.ts","../../projects/maps-components/src/map/messages/queries/get-features-in-area.query.ts","../../projects/maps-components/src/map/messages/executors/filter-features-in-area.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-draw.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-zoom-control.executor.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-feature.service.ts","../../projects/maps-components/src/map/services/map-click.service.ts","../../projects/maps-components/src/map/services/drawing/drawing.service.ts","../../projects/maps-components/src/map/services/drawing/feature-modification.service.ts","../../projects/maps-components/src/map/services/controls/controls.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.settings.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.html","../../projects/maps-components/src/map/map-plate/features/polygons/polygons.component.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/helpers/polygon-style.helper.ts","../../projects/maps-components/src/map/helpers/text-style.helper.ts","../../projects/maps-components/src/map/helpers/stringify-feature.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length === model.center.length && !this.center.filter((c, i) => c !== model.center[i]).length;\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","export class MapConstants {\n public static FeatureInfo = 'f-info';\n public static DrawingLayerId = '93a981756ec7';\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\nimport { MapConstants } from './map.constants';\n\nexport class MarkerModel {\n public readonly id: string | number;\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) feature.set(MapConstants.FeatureInfo, this.info);\n return feature;\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { getCenter } from 'ol/extent';\nimport { MapConstants } from './map.constants';\n\nexport class PolygonModel {\n public readonly id: string | number;\n public readonly lat: number;\n public readonly lng: number;\n private _feature: Feature<Geometry>;\n\n public static fromGeoJson(id: string | number, json: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new GeoJSON().readFeature(json);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n public static fromWKT(id: string | number, wkt: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new WKT().readFeature(wkt);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n private constructor(feature: Feature<Geometry>, id?: string | number, public info?: { [id: string]: any }) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = feature;\n if (this.info) this._feature?.set(MapConstants.FeatureInfo, this.info);\n [this.lng, this.lat] = getCenter(this._feature.getGeometry()?.getExtent()!);\n }\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n}\n","export enum DrawingType {\n Polygon = 1,\n Circle,\n Square,\n Box,\n}\n","export enum FeatureOutputFormat {\n GeoJson = 1,\n WKT,\n}\n","export class Dictionary<T> {\n public collection: DictionaryType<T> = {};\n private _keys = new Set<string>();\n\n public get keys(): string[] {\n return Array.from(this._keys);\n }\n\n public get size(): number {\n return this._keys.size;\n }\n\n public static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n return Dictionary.create(dic.collection, action);\n }\n\n public static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n let keyList = Object.keys(dic);\n const result = new Dictionary<T>();\n for (let i = 0; i < keyList.length; i++) {\n let key = keyList[i];\n result._keys.add(key);\n result.collection[key] = action ? action(dic[key], key) : dic[key];\n }\n return result;\n }\n\n public find(predicate: (value: T) => boolean): T | null {\n let result: T | null = null;\n this.forEach((e) => {\n if (result === null && predicate(e)) result = e;\n });\n return result;\n }\n\n public has = (key: string) => this._keys.has(key);\n\n public take(key: string): T | null {\n return this._keys.has(key) ? this.collection[key] : null;\n }\n\n public put(key: string, value?: T | null): void {\n if (value == null) return;\n this.collection[key] = value;\n this._keys.add(key);\n }\n\n public rmv(key: string): void {\n if (!this._keys.has(key)) return;\n delete this.collection[key];\n this._keys.delete(key);\n }\n\n public forEach(callback: (value: T, index: number) => void): void {\n let keys = Object.keys(this.collection);\n for (let i = 0; i < keys.length; i++) {\n callback(this.collection[keys[i]], i);\n }\n }\n}\n\nexport type DictionaryType<T> = { [id: string]: T };\n","import { Control } from 'ol/control';\nimport { Options } from 'ol/control/Control';\n\n/**\n *\n * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.\n * This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:\n * var myControl = new Control({element: myElement}); and then adding this to the map.\n * The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you. Controls will also be objects in a module:ol/Collection~Collection, so you can use their methods.\n * You can also extend this base for your own control class. See examples/custom-controls for an example of how to do this.\n */\nexport class MapControl extends Control {\n constructor(options: Options) {\n super(options);\n }\n}\n","import Map from 'ol/Map';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapRenderedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { IIdentified } from '../../models/i-identified';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapClickEvent extends PostboyGenericMessage {\n public static readonly ID: string = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';\n\n constructor(\n public coordinates: number[],\n public entities: { [layer: string]: IIdentified[] },\n public features: { [layer: string]: Feature<Geometry>[] },\n ) {\n super();\n }\n\n public get id(): string {\n return MapClickEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapMoveEndEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'f21f783e-b5af-4489-9fec-8027fd07a8ad';\n\n constructor(public zoom: number, public extent: number[]) {\n super();\n }\n\n public get id(): string {\n return MapMoveEndEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CloseTooltipCommand extends PostboyGenericMessage {\n public static readonly ID: string = '4896d52c-e34f-4994-bcfd-32832d12dbe4';\n\n constructor(public tooltipId: string) {\n super();\n }\n\n public get id(): string {\n return CloseTooltipCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { DrawingType, FeatureOutputFormat } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class StartDrawingCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'da904f4b-a1c8-4db7-a6af-14d9ee18ec8c';\n\n constructor(\n public type: DrawingType,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return StartDrawingCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelDrawingCommand extends PostboyGenericMessage {\n public static readonly ID: string = '7d38d983-feba-4176-a66b-18175e5ecd6b';\n\n public get id(): string {\n return CancelDrawingCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Dictionary, DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = '573d8a0d-f25b-42b7-9ad7-0ac6d86ac362';\n\n constructor(public type: DrawingType, public style: Style, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return DrawSelectionAreaCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { FeatureOutputFormat, PolygonModel } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class ModifyFeatureCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'ead85caa-24c6-4844-a68c-2cea91774c8c';\n\n constructor(\n public model: PolygonModel,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return ModifyFeatureCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelFeatureModificationCommand extends PostboyGenericMessage {\n public static readonly ID: string = '9c9fb40f-ea95-4704-8177-0e9ecabf36fa';\n\n public get id(): string {\n return CancelFeatureModificationCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class AddControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8e1c06eb-b395-4fe1-929c-ebf0805eeb49';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return AddControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class RemoveControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '361641e0-804a-4930-8c27-0cea6330dbfc';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return RemoveControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\n/**\n * Forces map to move to a specific point\n */\nexport class SetMapCenterCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd50e89c9-6707-4f8c-ab57-65fcef232182';\n\n /**\n *\n * @param lat - the desired latitude\n * @param lng - the desired longitude\n * @param zoom - the desired zoom; doesn't change zoom if undefined\n */\n constructor(public lat: number, public lng: number, public zoom?: number) {\n super();\n }\n\n public get id(): string {\n return SetMapCenterCommand.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PolygonModel } from '../../models';\n\nexport class CalculateAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '172ecf46-86b5-4f46-a5f1-96ba2cbb1694';\n\n constructor(public polygon: PolygonModel) {\n super();\n }\n\n public get id(): string {\n return CalculateAreaExecutor.ID;\n }\n}\n","import { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any> | Cluster>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class PlaceLayerFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import BaseLayer from 'ol/layer/Base';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class FitToFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '76cdc091-3793-4b6c-82f7-1e0334cf08a8';\n\n constructor(public features: Feature<Geometry>[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToFeaturesCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\n\nexport class GetLayerQuery extends PostboyCallbackMessage<Layer<VectorSource<any> | Cluster> | null> {\n public static readonly ID: string = '5c04c87b-8a93-4c2a-979e-d1e313d860ed';\n\n constructor(public name: string) {\n super();\n }\n\n public get id(): string {\n return GetLayerQuery.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class DrawingFinishedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';\n\n constructor() {\n super();\n }\n\n public get id(): string {\n return DrawingFinishedEvent.ID;\n }\n}\n","import { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport { createBox, createRegularPolygon, GeometryFunction } from 'ol/interaction/Draw';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\nexport class DrawingGenerationService {\n public static getDraw(ev: GenerateDrawExecutor) {\n return new Draw({\n source: ev.layer.getSource()!,\n type: ev.type === DrawingType.Polygon ? 'Polygon' : 'Circle',\n style: ev.style,\n geometryFunction: DrawingGenerationService.geometryFunc(ev.type),\n });\n }\n\n private static geometryFunc(type: DrawingType): GeometryFunction | undefined {\n switch (type) {\n case DrawingType.Circle:\n return createRegularPolygon(32);\n case DrawingType.Box:\n return createBox();\n case DrawingType.Square:\n return createRegularPolygon(4);\n }\n return undefined;\n }\n}\n","import { Circle, Geometry, Point } from 'ol/geom';\nimport Polygon from 'ol/geom/Polygon';\nimport { Feature } from 'ol';\nimport * as Sphere from 'ol/sphere';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { PolygonModel } from '../models';\n\nexport class FeatureService {\n constructor() {}\n\n public static filterFeaturesInArea(query: FilterFeaturesInAreaExecutor): Feature<Geometry>[] {\n return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()!));\n }\n\n private static booleanIntersects(g1: Geometry, g2: Geometry): boolean {\n if (g2.getType() === 'Point') return g1.intersectsCoordinate((g2 as Point).getCoordinates());\n if (g2.getType() === 'Circle') return g1.intersectsCoordinate((g2 as Circle).getCenter());\n if (g2.getType() === 'Polygon') return g1.intersectsCoordinate((g2 as Polygon).getInteriorPoint().getCoordinates());\n return false;\n }\n\n public static calculateArea(g: Geometry | undefined): number {\n if (!g) return 0;\n return Sphere.getArea(g, { projection: 'EPSG:4326' });\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '../../models';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';\n\n constructor(public area: Geometry, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return GetFeaturesInAreaQuery.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class FilterFeaturesInAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '36bb2d94-8028-4512-90dd-2386af3fc67c';\n\n constructor(public area: Geometry, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return FilterFeaturesInAreaExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class GenerateDrawExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';\n\n constructor(public layer: Layer<VectorSource<any>>, public style: Style, public type: DrawingType) {\n super();\n }\n\n public get id(): string {\n return GenerateDrawExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Draw } from 'ol/interaction';\nimport { ZoomControlSettings } from '../../map-plate/controls/map-control-zoom/zoom-control.settings';\n\nexport class GenerateZoomControlExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';\n\n constructor(public settings: ZoomControlSettings) {\n super();\n }\n\n public get id(): string {\n return GenerateZoomControlExecutor.ID;\n }\n}\n","import { ZoomControlSettings } from './zoom-control.settings';\nimport { Zoom } from 'ol/control';\n\nexport class ZoomControlFactory {\n public static build(settings: ZoomControlSettings): Zoom {\n return new Zoom({\n zoomInTipLabel: settings.zoomInLabel,\n zoomOutTipLabel: settings.zoomOutLabel,\n zoomInClassName: settings.zoomInClass,\n zoomOutClassName: settings.zoomOutClass,\n className: settings.controlClass,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PostboyService } from '@artstesh/postboy';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { MapClickEvent } from '../messages';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\n\n@Injectable()\nexport class MapPostboyService extends PostboyService {\n constructor() {\n super();\n this.addLocker({ locker: StartDrawingCommand.ID, unlocker: DrawingFinishedEvent.ID, locking: [MapClickEvent.ID] });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Feature, Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport Cluster from 'ol/source/Cluster';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../models/i-identified';\nimport { Dictionary } from '../models';\nimport { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\n\n@Injectable()\nexport class MapManagementService implements IPostboyDependingService {\n private map?: Map;\n private layers = new Dictionary<Layer<VectorSource<any> | Cluster>>();\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n this.observeLayerQuery();\n this.observeFeaturesInArea();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeLayerQuery() {\n this.postboy.subscribe<GetLayerQuery>(GetLayerQuery.ID).subscribe((ev) => ev.finish(this.layers.take(ev.name)));\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.put(c.layer.get('name'), c.layer);\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers.has(c.layer)) return;\n let source = this.layers.take(c.layer)!.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n source?.clear();\n !!c.features?.length && source?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.rmv(c.layer.get('name'));\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeFeaturesInArea() {\n this.postboy.subscribe<GetFeaturesInAreaQuery>(GetFeaturesInAreaQuery.ID).subscribe((qr) => {\n let result = new Dictionary<IIdentified[]>();\n this.layers.forEach((l) => {\n let layerName = l.get('name');\n if (qr.ignore.has(layerName) || layerName === MapConstants.DrawingLayerId) return;\n let source = l.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n let features = this.postboy.execute<FilterFeaturesInAreaExecutor, Feature<Geometry>[]>(\n new FilterFeaturesInAreaExecutor(qr.area, source?.getFeatures() ?? []),\n );\n result.put(\n layerName,\n features.map((e) => ({ id: e.getId(), ...e.get(MapConstants.FeatureInfo) })),\n );\n });\n qr.finish(result);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent, SetMapCenterCommand } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapMoveEndEvent } from '../messages';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class MapStateService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRendering();\n this.observeCenter();\n }\n\n private observeMapRendering() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((ev) => {\n this.map = ev.map;\n this.map?.on('moveend', () => {\n const zoom = Math.floor(this.map?.getView().getZoom() || -1);\n const extent = this.map?.getView().calculateExtent() || [];\n this.postboy.fire(new MapMoveEndEvent(zoom, extent));\n });\n });\n }\n\n private observeCenter() {\n this.postboy.subscribe<SetMapCenterCommand>(SetMapCenterCommand.ID).subscribe((c) => {\n this.map?.getView().setCenter([c.lng, c.lat]);\n if (c.zoom) this.map?.getView().setZoom(c.zoom);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { Geometry } from 'ol/geom';\nimport { createEmpty, extend } from 'ol/extent';\n\n@Injectable()\nexport class MapFeatureService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((m) => {\n this.fitToGeometries(\n m.features.map((f) => f.getGeometry()!),\n m.zoomAfter,\n );\n });\n }\n\n private fitToGeometries(geometries: Geometry[], zoomAfter: number): void {\n if (!geometries?.length || !this.map) return;\n const extent = createEmpty();\n geometries.forEach((g) => extend(extent, g.getExtent()));\n this.map.getView().fit(extent);\n this.map.getView().setZoom(this.map.getView().getZoom()! + zoomAfter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Feature, Map, MapBrowserEvent } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { Geometry } from 'ol/geom';\nimport { MapConstants } from '../models/map.constants';\n\n@Injectable()\nexport class MapClickService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n this.map?.on('singleclick', (e) => {\n this.postboy.fire(this.onClick(e));\n });\n });\n }\n\n onClick(ev: MapBrowserEvent<UIEvent>): MapClickEvent {\n const model: MapClickEvent = new MapClickEvent(ev.coordinate, {}, {});\n this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {\n this.getFeatureCollectionWithInner([f as Feature<Geometry>])\n .filter((f) => f.getId() != null)\n .forEach((fs: Feature<Geometry>) => {\n let layerName = l.get('name');\n if (!model.entities[layerName]) model.entities[layerName] = [];\n if (!model.features[layerName]) model.features[layerName] = [];\n model.entities[layerName].push({ id: fs.getId()!, ...fs.get(MapConstants.FeatureInfo) });\n model.features[layerName].push(fs);\n });\n });\n return model;\n }\n\n private getFeatureCollectionWithInner(features: Feature<Geometry>[]): Feature<Geometry>[] {\n const result: Feature<Geometry>[] = [];\n features?.forEach((f) => {\n const innerFeatures = f.get('features') as Feature<Geometry>[];\n innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { StartDrawingCommand } from '../../messages/commands/start-drawing.command';\nimport { CancelDrawingCommand } from '../../messages/commands/cancel-drawing.command';\nimport { first } from 'rxjs/operators';\nimport { DrawingFinishedEvent } from '../../messages/events/drawing-finished.event';\nimport { Subscription } from 'rxjs';\nimport { MapRenderedEvent } from '../../messages';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Source } from 'ol/source';\nimport { Draw } from 'ol/interaction';\nimport { Dictionary, FeatureOutputFormat, PolygonModel } from '../../models';\nimport { Map } from 'ol';\nimport { DrawEvent } from 'ol/interaction/Draw';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { DrawSelectionAreaCommand } from '../../messages/commands/draw-selection-area.command';\nimport { GetFeaturesInAreaQuery } from '../../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../../models/i-identified';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\n@Injectable()\nexport class DrawingService implements IPostboyDependingService {\n private drawInteraction?: Draw;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeDrawing();\n this.observeSelectArea();\n this.observeMapRender();\n }\n\n private observeSelectArea() {\n this.postboy.subscribe<DrawSelectionAreaCommand>(DrawSelectionAreaCommand.ID).subscribe((ev) => {\n const drawingCommand = new StartDrawingCommand(ev.type, ev.style);\n drawingCommand.result.subscribe((r) => {\n if (!r) {\n ev.finish(new Dictionary<IIdentified[]>());\n return;\n }\n const area = PolygonModel.fromGeoJson(1, r).feature.getGeometry()!;\n const getFeaturesCommand = new GetFeaturesInAreaQuery(area, ev.ignore);\n getFeaturesCommand.result.subscribe((result) => ev.finish(result));\n this.postboy.fire(getFeaturesCommand);\n });\n this.postboy.fire(drawingCommand);\n });\n }\n\n private observeDrawing() {\n this.postboy.subscribe<StartDrawingCommand>(StartDrawingCommand.ID).subscribe((ev) => {\n this.draw((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n const cancelSub = this.observeCancelation(ev, l);\n this.drawInteraction = this.postboy.execute(new GenerateDrawExecutor(l, ev.style, ev.type))!;\n this.map?.addInteraction(this.drawInteraction);\n this.drawInteraction.on('drawend', (evt: DrawEvent) => {\n cancelSub.unsubscribe();\n this.onEnd(evt, ev, l);\n });\n });\n });\n }\n\n private onEnd(evt: DrawEvent, command: StartDrawingCommand, layer: Layer<VectorSource<Geometry>>): void {\n command.finish(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(evt.feature)\n : new WKT().writeFeature(evt.feature),\n );\n this.clearInteraction(layer);\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private draw(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: StartDrawingCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe<CancelDrawingCommand>(CancelDrawingCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (!!this.drawInteraction) {\n this.map?.removeInteraction(this.drawInteraction);\n layer?.setSource(new Source({}));\n }\n setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Modify, Translate } from 'ol/interaction';\nimport { Collection, Feature, Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { MapRenderedEvent } from '../../messages';\nimport { FeatureOutputFormat } from '../../models';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { Vector as Source } from 'ol/source';\nimport { CancelFeatureModificationCommand } from '../../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../../messages/commands/modify-feature.command';\n\n@Injectable()\nexport class FeatureModificationService implements IPostboyDependingService {\n private modify?: Modify;\n private translate?: Translate;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeModification();\n this.observeMapRender();\n }\n\n private observeModification() {\n this.postboy.subscribe<ModifyFeatureCommand>(ModifyFeatureCommand.ID).subscribe((ev) => {\n this.defineLayer((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n this.observeCancelation(ev, l);\n this.initFeature(l, ev.model.feature);\n this.addModify(ev);\n this.addDragging(ev);\n });\n });\n }\n\n private initFeature(layer: Layer<VectorSource<Geometry>>, feature: Feature<Geometry>): void {\n layer.getSource()?.clear();\n layer.getSource()?.addFeature(feature);\n }\n\n private addModify(command: ModifyFeatureCommand): void {\n this.modify = new Modify({\n features: new Collection([command.model.feature]),\n style: command.style,\n });\n this.modify.on('modifyend', () => {\n this.onModified(command);\n command.model.feature.changed();\n });\n this.map?.addInteraction(this.modify);\n }\n\n private addDragging(command: ModifyFeatureCommand): void {\n this.translate = new Translate({\n features: new Collection([command.model.feature]),\n condition: (ev) => {\n const clone = command.model.feature.clone();\n clone.getGeometry()?.scale(0.999);\n return clone.getGeometry()!.intersectsCoordinate(ev.coordinate);\n },\n });\n this.translate.on('translateend', () => this.onModified(command));\n this.map?.addInteraction(this.translate);\n }\n\n private onModified(command: ModifyFeatureCommand): void {\n command.next(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(command.model.feature)\n : new WKT().writeFeature(command.model.feature),\n );\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private defineLayer(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: ModifyFeatureCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe(CancelFeatureModificationCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (this.modify) this.map?.removeInteraction(this.modify);\n if (this.translate) this.map?.removeInteraction(this.translate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { AddControlCommand, MapRenderedEvent, RemoveControlCommand } from '../../messages';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class ControlsService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((m) => {\n this.map = m.map;\n this.observeAdding();\n this.observeRemoving();\n });\n }\n\n private observeAdding() {\n this.postboy.subscribe<AddControlCommand>(AddControlCommand.ID).subscribe((c) => this.map?.addControl(c.item));\n }\n\n private observeRemoving() {\n this.postboy\n .subscribe<RemoveControlCommand>(RemoveControlCommand.ID)\n .subscribe((c) => this.map?.removeControl(c.item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { PostboyAbstractRegistrator } from '@artstesh/postboy';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\nimport { MapClickService } from './map-click.service';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { CloseTooltipCommand } from '../messages/commands/close-tooltip.command';\nimport { MapFeatureService } from './map-feature.service';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../messages/events/map-move-end.event';\nimport { CancelDrawingCommand } from '../messages/commands/cancel-drawing.command';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { DrawingService } from './drawing/drawing.service';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\nimport { DrawingGenerationService } from './drawing/drawing-generation.service';\nimport { FeatureService } from './feature.service';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { DrawSelectionAreaCommand } from '../messages/commands/draw-selection-area.command';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { GenerateDrawExecutor } from '../messages/executors/generate-draw.executor';\nimport { FeatureModificationService } from './drawing/feature-modification.service';\nimport { CancelFeatureModificationCommand } from '../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../messages/commands/modify-feature.command';\nimport { GenerateZoomControlExecutor } from '../messages/executors/generate-zoom-control.executor';\nimport { ZoomControlFactory } from '../map-plate/controls/map-control-zoom/zoom-control.factory';\nimport { RemoveControlCommand } from '../messages/commands/remove-control.command';\nimport { AddControlCommand } from '../messages/commands/add-control.command';\nimport { ControlsService } from './controls/controls.service';\nimport { SetMapCenterCommand } from '../messages/commands/set-map-center.command';\nimport { CalculateAreaExecutor } from '../messages/executors/calculate-area.executor';\n\n@Injectable()\nexport class MessageRegistratorService extends PostboyAbstractRegistrator {\n constructor(\n service: MapPostboyService,\n management: MapManagementService,\n state: MapStateService,\n mapFeature: MapFeatureService,\n interaction: MapClickService,\n drawing: DrawingService,\n featureModification: FeatureModificationService,\n controls: ControlsService,\n ) {\n super(service);\n this.registerServices([management, state, interaction, mapFeature, drawing, featureModification, controls]);\n }\n\n protected _up(): void {\n this.registerReplay(MapRenderedEvent.ID);\n this.registerReplay(PlaceLayerFeaturesCommand.ID);\n this.registerReplay(RemoveControlCommand.ID);\n this.registerReplay(AddControlCommand.ID);\n this.registerReplay(SetMapCenterCommand.ID);\n this.registerSubject(AddLayerCommand.ID);\n this.registerSubject(RemoveLayerCommand.ID);\n this.registerSubject(AddTileCommand.ID);\n this.registerSubject(RemoveTileCommand.ID);\n this.registerSubject(MapClickEvent.ID);\n this.registerSubject(CloseTooltipCommand.ID);\n this.registerSubject(FitToFeaturesCommand.ID);\n this.registerSubject(MapMoveEndEvent.ID);\n this.registerSubject(CancelDrawingCommand.ID);\n this.registerSubject(StartDrawingCommand.ID);\n this.registerSubject(GetLayerQuery.ID);\n this.registerSubject(DrawingFinishedEvent.ID);\n this.registerSubject(GetFeaturesInAreaQuery.ID);\n this.registerSubject(DrawSelectionAreaCommand.ID);\n this.registerSubject(CancelFeatureModificationCommand.ID);\n this.registerSubject(ModifyFeatureCommand.ID);\n this.setExecutors();\n }\n\n private setExecutors() {\n this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e: FilterFeaturesInAreaExecutor) =>\n FeatureService.filterFeaturesInArea(e),\n );\n this.registerExecutor(CalculateAreaExecutor.ID, (e: CalculateAreaExecutor) =>\n FeatureService.calculateArea(e.polygon?.feature?.getGeometry()),\n );\n this.registerExecutor(GenerateDrawExecutor.ID, (e: GenerateDrawExecutor) => DrawingGenerationService.getDraw(e));\n this.registerExecutor(GenerateZoomControlExecutor.ID, (e: GenerateZoomControlExecutor) =>\n ZoomControlFactory.build(e.settings),\n );\n }\n}\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'art-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'art-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\n/**\n * A layer that is responsible for showing and styling main features on the map, such as markers and polygons\n */\nexport class FeatureLayerSettings {\n /**\n * The identifier of the field, it is autogenerated by default, but can be set manually\n */\n name: string = IdGenerator.get();\n /**\n * The priority of showing - layers with higher zIndex cover others in case of collisions\n */\n zIndex: number = 1;\n /**\n * The maximum zoom at which the layer is visible. 19 by default\n */\n maxZoom: number = 19;\n /**\n * The minimum zoom at which the layer is visible. 0 by default\n */\n minZoom: number = 0;\n /**\n * The styling definition of layer's features. The easiest way is to use {@link PolygonStyleHelper},{@link MarkerStyleHelper}\n */\n style?: Style | StyleFunction;\n\n /**\n * Creates a clone of the existing settings\n * @param model\n */\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n /**\n Setter for {@link FeatureLayerSettings.zIndex}\n * @param zIndex\n */\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.name}\n * @param name\n */\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.maxZoom}\n * @param maxZoom\n */\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.minZoom}\n * @param minZoom\n */\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.style}\n * @param style\n */\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n /**\n * Checks if the model has the same content\n * @param model - the object to compare\n */\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'art-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { IdGenerator } from '../../../common/id.generator';\nimport Style, { StyleFunction } from 'ol/style/Style';\nimport { IIdentified } from '../../../models/i-identified';\n\nexport class ClusterLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n distance: number = 20;\n bbox: boolean = false;\n clusterCancel: number = 14;\n style?: (features: IIdentified[]) => Style;\n\n public static copy(model: ClusterLayerSettings): ClusterLayerSettings {\n const result = new ClusterLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.bbox = model.bbox;\n result.clusterCancel = model.clusterCancel;\n result.distance = model.distance;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, zIndex });\n }\n\n setDistance(distance: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, distance });\n }\n\n setName(name: string): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, minZoom });\n }\n\n setClusterCancel(clusterCancel: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, clusterCancel });\n }\n\n setBbox(bbox: boolean): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, bbox });\n }\n\n setStyle(style: (features: IIdentified[]) => Style | StyleFunction): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: ClusterLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.distance !== model.distance) return false;\n if (this.clusterCancel !== model.clusterCancel) return false;\n if (this.bbox !== model.bbox) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport { Vector as Layer } from 'ol/layer';\nimport Cluster from 'ol/source/Cluster';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { FitToFeaturesCommand } from '../../../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../../../messages/events/map-move-end.event';\nimport { auditTime } from 'rxjs/operators';\nimport { combineLatest } from 'rxjs';\nimport { Map } from 'ol';\n\nexport class ClusterLayerManager {\n constructor(\n private settings: ClusterLayerSettings,\n public readonly layer: Layer<Cluster>,\n private postboy: MapPostboyService,\n ) {\n this.observeClick();\n this.observeMapMovement();\n }\n\n private observeMapMovement() {\n combineLatest([\n this.postboy.subscribe<MapMoveEndEvent>(MapMoveEndEvent.ID).pipe(auditTime(250)),\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID),\n ]).subscribe(([movement, renderEvent]) => {\n this.checkClusterNecessity(renderEvent.map);\n });\n }\n\n private observeClick() {\n this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((m) => {\n if ((m.features[this.settings.name]?.length ?? 0) > 1) {\n this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));\n }\n });\n }\n\n private checkClusterNecessity(map: Map): void {\n let zoom = map.getView().getZoom() ?? 0;\n const distance = zoom > this.settings.clusterCancel ? 0 : this.settings.distance;\n this.layer?.getSource()?.setDistance(distance);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport { bbox } from 'ol/loadingstrategy';\nimport Polygon, { fromExtent } from 'ol/geom/Polygon';\nimport Cluster from 'ol/source/Cluster';\nimport { Geometry, Point } from 'ol/geom';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { StyleFunction } from 'ol/style/Style';\nimport { Feature } from 'ol';\nimport { MapConstants } from '../../../models/map.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClusterLayerFactory {\n public build(settings: ClusterLayerSettings, postboy: MapPostboyService): ClusterLayerManager {\n const source = new Source({\n strategy: settings.bbox ? bbox : undefined,\n });\n const cluster = new Cluster({\n distance: settings.distance,\n source: source,\n geometryFunction: (feature) => {\n const geom = feature.getGeometry();\n if (geom?.getType() == 'Point') {\n return geom as Point;\n } else if (geom?.getType() == 'Polygon') {\n return (geom as Polygon)?.getInteriorPoint();\n } else if (geom?.getType() == 'MultiPolygon') {\n return fromExtent(geom.getExtent())?.getInteriorPoint();\n }\n return undefined as any;\n },\n });\n const layer = new Layer({\n source: cluster,\n maxZoom: settings.maxZoom || undefined,\n minZoom: settings.minZoom || undefined,\n zIndex: settings.zIndex || 0,\n });\n layer.setStyle(this.styleFunc(settings));\n layer.set('name', settings.name);\n return new ClusterLayerManager(settings, layer, postboy);\n }\n\n styleFunc(settings: ClusterLayerSettings): StyleFunction {\n return (feature) => {\n const features = feature.get('features') as Feature<Geometry>[];\n if (!settings.style) return undefined;\n return settings.style(features.map((f) => ({ id: f.getId()!, ...f.get(MapConstants.FeatureInfo) })));\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { ClusterLayerFactory } from './cluster-layer-factory.service';\n\n@Component({\n selector: 'art-cluster-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ClusterLayerComponent extends DestructibleComponent implements OnInit {\n public manager: ClusterLayerManager | null = null;\n _settings: ClusterLayerSettings = new ClusterLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: ClusterLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: ClusterLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.manager = this.factory.build(this._settings, this.postboy);\n this.postboy.fire(new AddLayerCommand(this.manager.layer));\n }\n\n private removeLayer() {\n if (this.manager?.layer) this.postboy.fire(new RemoveLayerCommand(this.manager.layer));\n }\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { MapPlateFactory } from './map-plate.factory.service';\nimport { MapClickService } from '../services/map-click.service';\nimport { MapFeatureService } from '../services/map-feature.service';\nimport { FeatureLayerSettings } from './layers';\nimport { MapConstants } from '../models/map.constants';\nimport { DrawingService } from '../services/drawing/drawing.service';\nimport { DrawingGenerationService } from '../services/drawing/drawing-generation.service';\nimport { FeatureService } from '../services/feature.service';\nimport { FeatureModificationService } from '../services/drawing/feature-modification.service';\nimport { ControlsService } from '../services/controls/controls.service';\n\n@Component({\n selector: 'art-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MessageRegistratorService,\n MapStateService,\n MapManagementService,\n MapClickService,\n MapFeatureService,\n DrawingService,\n DrawingGenerationService,\n FeatureService,\n FeatureModificationService,\n ControlsService,\n ],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n private registrator: MessageRegistratorService,\n private detector: ChangeDetectorRef,\n ) {\n super();\n registrator.up();\n }\n\n _settings: MapSettings = new MapSettings();\n drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n\n onDestroy = () => {\n this.registrator.down();\n };\n}\n","<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'art-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value ?? [];\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { MapClickEvent } from '../../../messages';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class TooltipSettings {\n public readonly id: string;\n containerClass: string = 'custom-tooltip-class';\n show: (ev: MapClickEvent) => boolean = (e) => true;\n\n public constructor(id?: string) {\n this.id = id ?? IdGenerator.get();\n }\n\n public static copy(model: TooltipSettings): TooltipSettings {\n const result = new TooltipSettings(model.id);\n result.show = model.show;\n result.containerClass = model.containerClass;\n return result;\n }\n\n setShow(show: (ev: MapClickEvent) => boolean): TooltipSettings {\n return TooltipSettings.copy({ ...this, show });\n }\n\n setClass(containerClass: string): TooltipSettings {\n return TooltipSettings.copy({ ...this, containerClass });\n }\n\n public isSame(model: TooltipSettings): boolean {\n if (this.show !== model.show) return false;\n if (this.containerClass !== model.containerClass) return false;\n if (this.id !== model.id) return false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { TooltipSettings } from './tooltip.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport Map from 'ol/Map';\nimport { CloseTooltipCommand } from '../../../messages/commands/close-tooltip.command';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport Overlay, { Options as OverlayOptions } from 'ol/Overlay';\n\n@Component({\n selector: 'art-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent extends DestructibleComponent implements OnInit {\n @ViewChild('tip') container!: ElementRef<HTMLElement>;\n _settings: TooltipSettings = new TooltipSettings();\n private map?: Map;\n overlay?: Overlay;\n show = false;\n\n @Input() set settings(value: TooltipSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.detector.detectChanges();\n }\n constructor(private postboy: MapPostboyService, private detector: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.subs.push(this.observeMapRender());\n this.subs.push(this.observeMapClick());\n this.subs.push(this.observeClose());\n }\n\n private observeMapClick(): Subscription {\n return this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((ev) => {\n this._settings.show(ev) ? this.addOverlay(ev.coordinates) : this.removeOverlay();\n });\n }\n\n private observeClose(): Subscription {\n return this.postboy\n .subscribe<CloseTooltipCommand>(CloseTooltipCommand.ID)\n .pipe(filter((ev) => ev.tooltipId === this._settings.id))\n .subscribe(() => this.removeOverlay());\n }\n\n private observeMapRender() {\n return this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private removeOverlay = () => {\n !!this.overlay && this.map?.removeOverlay(this.overlay);\n this.show = false;\n };\n\n addOverlay(coordinates: number[]): void {\n this.removeOverlay();\n this.overlay = new Overlay(this.options(coordinates));\n this.map?.addOverlay(this.overlay);\n this.show = true;\n this.detector.detectChanges();\n }\n\n options = (coordinates: number[]): OverlayOptions => {\n return {\n element: this.container?.nativeElement,\n autoPan: false,\n autoPanAnimation: { duration: 0 },\n position: coordinates,\n };\n };\n}\n","<div #tip [class]=\"['tooltip-wrapper', _settings.containerClass]\" [hidden]=\"!show\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { PolygonModel } from '../../../models/polygon.model';\n\n@Component({\n selector: 'art-polygons',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PolygonsComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _polygons: PolygonModel[] = [];\n\n @Input() set polygons(value: PolygonModel[]) {\n this._polygons = value ?? [];\n this.putPolygons();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putPolygons());\n }\n\n private putPolygons(): void {\n if (!this._polygons) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._polygons.map((m) => m.feature),\n ),\n );\n }\n}\n","export class ZoomControlSettings {\n controlClass: string = 'ol-zoom';\n zoomInClass: string = 'ol-zoom-in';\n zoomOutClass: string = 'ol-zoom-out';\n zoomInLabel: string = 'Zoom In';\n zoomOutLabel: string = 'Zoom Out';\n\n public static copy(model: ZoomControlSettings): ZoomControlSettings {\n const result = new ZoomControlSettings();\n result.controlClass = model.controlClass;\n result.zoomInClass = model.zoomInClass;\n result.zoomOutClass = model.zoomOutClass;\n result.zoomInLabel = model.zoomInLabel;\n result.zoomOutLabel = model.zoomOutLabel;\n return result;\n }\n\n public isSame(model: ZoomControlSettings): boolean {\n if (this.zoomInClass !== model.zoomInClass) return false;\n if (this.zoomOutClass !== model.zoomOutClass) return false;\n if (this.zoomInLabel !== model.zoomInLabel) return false;\n if (this.controlClass !== model.controlClass) return false;\n if (this.zoomOutLabel !== model.zoomOutLabel) return false;\n return true;\n }\n\n setZoomInLabel(zoomInLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInLabel });\n }\n\n setZoomOutClass(zoomOutClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutClass });\n }\n\n setZoomInClass(zoomInClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInClass });\n }\n\n setZoomOutLabel(zoomOutLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutLabel });\n }\n\n setControlClass(controlClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, controlClass });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport Map from 'ol/Map';\nimport { ZoomControlSettings } from './zoom-control.settings';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { Zoom } from 'ol/control';\nimport { GenerateZoomControlExecutor } from '../../../messages/executors/generate-zoom-control.executor';\n\n@Component({\n selector: 'art-map-control-zoom',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapControlZoomComponent extends DestructibleComponent implements OnInit {\n private _settings: ZoomControlSettings = new ZoomControlSettings();\n private map?: Map;\n private control?: Zoom;\n\n @Input() set settings(value: ZoomControlSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setControl();\n }\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => {\n this.map = m.map;\n this.setControl();\n });\n }\n\n private setControl(): void {\n if (!this.map) return;\n this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));\n this.map.addControl(this.control!);\n }\n\n onDestroy = () => {\n this.eliminate();\n };\n\n private eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\nimport { TooltipComponent } from './map-plate/tooltips/tooltip/tooltip.component';\nimport { PolygonsComponent } from './map-plate/features/polygons/polygons.component';\nimport { ClusterLayerComponent } from './map-plate/layers/cluster-layer/cluster-layer.component';\nimport { MapControlZoomComponent } from './map-plate/controls/map-control-zoom/map-control-zoom.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n exports: [\n MapPlateComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TileLayerComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke, Text } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n\n public static withText(style: Style, text: Text): Style {\n style.setText(text);\n return style;\n }\n}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Stroke } from 'ol/style';\n\nexport class PolygonStyleHelper {\n public static simple(fill: string, stroke: string, strokeWidth: number = 1): Style {\n return new Style({\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n public static edit(fill: string, stroke: string, strokeWidth: number = 1, pinRadius = 5): Style {\n return new Style({\n image: new Circle({\n fill: new Fill({\n color: stroke,\n }),\n radius: pinRadius,\n }),\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n}\n","import { Fill, Text } from 'ol/style';\n\nexport class TextStyleHelper {\n public static get(text: string, font: string, color: string): Text {\n return new Text({\n text: text,\n font: font,\n textAlign: 'center',\n fill: new Fill({\n color: color,\n }),\n });\n }\n}\n","import { Feature } from 'ol';\nimport { Circle, Geometry, LineString } from 'ol/geom';\nimport { FeatureOutputFormat } from '../models';\nimport { GeoJSON, WKT } from 'ol/format';\nimport Polygon from 'ol/geom/Polygon';\nimport { Coordinate } from 'ol/coordinate';\nimport { transform } from 'ol/proj';\nimport { METERS_PER_UNIT } from 'ol/proj/epsg4326';\n\nexport class StringifyFeatureHelper {\n public static polygon(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n return format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(feature)\n : new WKT().writeFeature(feature);\n }\n public static circle(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n // const clone = feature.clone();\n // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));\n const tetemp = feature.getGeometryName();\n const circle = feature.getGeometry()! as Circle;\n // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());\n const ttt = feature.getGeometry()!.getExtent()!;\n const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];\n const aaa = [\n ...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),\n ...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),\n ];\n const radius = (aaa[2] - aaa[0]) / 2;\n const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();\n\n const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));\n\n // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];\n // var wgs84Sphere = new Sphere(6378137);\n return StringifyFeatureHelper.polygon(new Feature<Geometry>(polygonGeom), format);\n // const rad = circle.getRadius();\n // const degrees = 180 / Math.PI; // radians to degrees\n // const radians = Math.PI / 180; // degrees to radians\n // const rlat = rad * degrees * 1000;\n // const rlng = rad * radians;\n // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);\n }\n\n private static drawCircle(point: number[], radius: number): Coordinate[][] {\n const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');\n // const tetetemp = point;\n const radians = Math.PI / 180; // degrees to radians\n const degrees = 180 / Math.PI; // radians to degrees\n const earthsradius = 6378137.0;\n const rlat = (radius / earthsradius) * degrees;\n const rlng = rlat / Math.cos(tetetemp[1] * radians);\n const extp: number[][] = [];\n for (let i = 0; i <= 32; i++) {\n const theta = Math.PI * (i / 16);\n extp.push([\n tetetemp[0] + rlng * Math.cos(theta) * METERS_PER_UNIT,\n tetetemp[1] + rlat * Math.sin(theta) * METERS_PER_UNIT,\n ]);\n }\n return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\nexport * from './map-plate/controls/index';\nexport * from './map-plate/tooltips/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i0","Component","MapLyrs","Feature","Point","getCenter","GeoJSON","WKT","DrawingType","FeatureOutputFormat","Control","PostboyGenericMessage","PostboyCallbackMessage","PostboyExecutor","Draw","createRegularPolygon","createBox","Sphere","Zoom","PostboyService","Injectable","i1.MapPostboyService","first","extent","createEmpty","extend","Source","Modify","Collection","Translate","PostboyAbstractRegistrator","i2.MapManagementService","i3.MapStateService","i4.MapFeatureService","i5.MapClickService","i6.DrawingService","i7.FeatureModificationService","i8.ControlsService","source","XYZ","get","TileLayer","filter","i2.TileLayerFactory","ChangeDetectionStrategy","Input","OSM","layer","Layer","i2.FeatureLayerFactory","combineLatest","auditTime","bbox","Cluster","fromExtent","i2.ClusterLayerFactory","Map","View","useGeographic","i2.MapPlateFactory","i3.MessageRegistratorService","i4.OsmTileLayerComponent","i5.FeatureLayerComponent","i6","Overlay","ViewChild","CommonModule","NgModule","Style","Icon","Circle","Fill","Stroke","Text","format","transform","LineString","Polygon","METERS_PER_UNIT"],"mappings":"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"}