@igo2/integration 1.9.3 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/igo2-integration.umd.js +676 -453
- package/bundles/igo2-integration.umd.js.map +1 -1
- package/esm2015/lib/about/about-tool/about-tool.component.js +3 -3
- package/esm2015/lib/directions/directions-tool/directions-tool.component.js +17 -8
- package/esm2015/lib/filter/spatial-filter-tool/spatial-filter-tool.component.js +27 -6
- package/esm2015/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.js +28 -8
- package/esm2015/lib/workspace/shared/edition-actions.service.js +157 -0
- package/esm2015/lib/workspace/shared/workspace.utils.js +1 -1
- package/esm2015/lib/workspace/workspace.state.js +22 -6
- package/fesm2015/igo2-integration.js +386 -179
- package/fesm2015/igo2-integration.js.map +1 -1
- package/lib/directions/directions-tool/directions-tool.component.d.ts +6 -1
- package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +3 -1
- package/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.d.ts +2 -0
- package/lib/workspace/shared/edition-actions.service.d.ts +26 -0
- package/lib/workspace/shared/workspace.utils.d.ts +2 -2
- package/lib/workspace/workspace.state.d.ts +4 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-integration.umd.js","sources":["../../../packages/integration/src/lib/analytics/analytics.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/integration/src/lib/import-export/import-export.state.ts","../../../packages/integration/src/lib/tool/tool.state.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html","../../../packages/integration/src/lib/map/map.state.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.html","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.html","../../../packages/integration/src/lib/map/layer-list-tool.state.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.html","../../../packages/integration/src/lib/context/context.module.ts","../../../packages/integration/src/lib/catalog/catalog.state.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog.module.ts","../../../packages/integration/src/lib/directions/directions.state.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.html","../../../packages/integration/src/lib/directions/directions.module.ts","../../../packages/integration/src/lib/draw/draw.state.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.html","../../../packages/integration/src/lib/draw/draw.module.ts","../../../packages/integration/src/lib/workspace/shared/workspace.utils.ts","../../../packages/integration/src/lib/storage/storage.state.ts","../../../packages/integration/src/lib/workspace/shared/feature-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/wfs-actions.service.ts","../../../packages/integration/src/lib/workspace/workspace.state.ts","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts","../../../packages/integration/src/lib/workspace/workspace.module.ts","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.ts","../../../packages/integration/src/lib/import-export/import-export.module.ts","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts","../../../packages/integration/src/lib/map/map-tool/map-tool.component.html","../../../packages/integration/src/lib/map/map-tool/map-tool.component.ts","../../../packages/integration/src/lib/map/map-tools/map-tools.component.html","../../../packages/integration/src/lib/map/map-tools/map-tools.component.ts","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.html","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.html","../../../packages/integration/src/lib/map/map.module.ts","../../../packages/integration/src/lib/measure/measure.state.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.html","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.module.ts","../../../packages/integration/src/lib/measure/measure.module.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.html","../../../packages/integration/src/lib/print/print.module.ts","../../../packages/integration/src/lib/search/search.state.ts","../../../packages/integration/src/lib/search/search-bar/search-bar-binding.directive.ts","../../../packages/integration/src/lib/search/search-bar/search-bar.module.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.html","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.module.ts","../../../packages/integration/src/lib/search/search.module.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.html","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/filter.module.ts","../../../packages/integration/src/lib/about/about-tool/about-tool.component.html","../../../packages/integration/src/lib/about/about-tool/about-tool.component.ts","../../../packages/integration/src/lib/about/about.module.ts","../../../packages/integration/src/lib/storage/storage.module.ts","../../../packages/integration/src/lib/integration.module.ts","../../../packages/integration/src/lib/tool/tool.module.ts","../../../packages/integration/src/lib/context/context.state.ts","../../../packages/integration/src/lib/analytics/analytics-listener.service.ts","../../../packages/integration/src/lib/search/query.state.ts","../../../packages/integration/src/public_api.ts","../../../packages/integration/src/igo2-integration.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppAnalyticsModule {}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExportOptions } from '@igo2/geo';\r\n\r\nexport enum ImportExportType {\r\n layer = 'layer',\r\n context = 'context'\r\n}\r\n\r\nexport enum ImportExportMode {\r\n import = 'import',\r\n export = 'export'\r\n}\r\n\r\n/**\r\n * Service that holds the state of the importExport module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportExportState {\r\n\r\n readonly importExportType$: BehaviorSubject<ImportExportType> = new BehaviorSubject(ImportExportType.layer);\r\n readonly selectedMode$: BehaviorSubject<ImportExportMode> = new BehaviorSubject(ImportExportMode.import);\r\n readonly exportOptions$: BehaviorSubject<ExportOptions> = new BehaviorSubject(undefined);\r\n\r\n setImportExportType(type: ImportExportType) {\r\n this.importExportType$.next(type);\r\n }\r\n\r\n setMode(mode: ImportExportMode) {\r\n this.selectedMode$.next(mode);\r\n }\r\n\r\n setsExportOptions(exportOptions: ExportOptions) {\r\n this.exportOptions$.next(exportOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Toolbox, ToolService } from '@igo2/common';\r\n\r\nimport { ExportOptions } from '@igo2/geo';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ImportExportMode, ImportExportState } from '../import-export/import-export.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolState {\r\n get toolbox(): Toolbox {\r\n return this.toolService.toolbox;\r\n }\r\n\r\n public openSidenav$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private toolService: ToolService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) {\r\n if (!toolToActivate) { return; }\r\n if (toolToActivate.tool === 'importExport') {\r\n let exportOptions: ExportOptions = this.importExportState.exportOptions$.value;\r\n if (!exportOptions) {\r\n exportOptions = {\r\n layers: toolToActivate.options.layers,\r\n featureInMapExtent: toolToActivate.options.featureInMapExtent\r\n };\r\n } else {\r\n exportOptions.layers = toolToActivate.options.layers;\r\n exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent;\r\n }\r\n this.importExportState.setsExportOptions(exportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n }\r\n\r\n if (this.toolbox.getTool(toolToActivate.tool)) {\r\n this.toolbox.activateTool(toolToActivate.tool);\r\n this.openSidenav$.next(true);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n@ToolComponent({\r\n name: 'contextEditor',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-editor-tool',\r\n templateUrl: './context-editor-tool.component.html'\r\n})\r\nexport class ContextEditorToolComponent {\r\n\r\n constructor(private toolState: ToolState) {}\r\n\r\n submitSuccessed() {\r\n this.toolState.toolbox.activatePreviousTool();\r\n }\r\n}\r\n","<igo-context-edit\r\n igoContextEditBinding\r\n (submitSuccessed)=\"submitSuccessed()\"\r\n></igo-context-edit>\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { IgoMap, MapService, ProjectionService } from '@igo2/geo';\r\n// import { BehaviorSubject } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the map module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapState {\r\n\r\n // public mapCenter$ = new BehaviorSubject<boolean>(false);\r\n get showAllLegendsValue(): boolean {\r\n return this._legendToolShowAll;\r\n }\r\n\r\n set showAllLegendsValue(value) {\r\n this._legendToolShowAll = value;\r\n }\r\n private _legendToolShowAll: boolean;\r\n\r\n /**\r\n * Active map\r\n */\r\n get map(): IgoMap { return this._map; }\r\n private _map: IgoMap;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private projectionService: ProjectionService // Don't remove this or it'll never be injected\r\n ) {\r\n this._map = new IgoMap({\r\n controls: {\r\n scaleLine: true,\r\n attribution: {\r\n collapsed: true\r\n }\r\n }\r\n });\r\n\r\n this.mapService.setMap(this.map);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\n@ToolComponent({\r\n name: 'contextManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star'\r\n})\r\n@Component({\r\n selector: 'igo-context-manager-tool',\r\n templateUrl: './context-manager-tool.component.html'\r\n})\r\nexport class ContextManagerToolComponent {\r\n\r\n @Input() toolToOpenOnContextChange: string = 'mapTools';\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(private toolState: ToolState, private mapState: MapState) {}\r\n\r\n editContext() {\r\n this.toolState.toolbox.activateTool('contextEditor');\r\n }\r\n\r\n managePermissions() {\r\n this.toolState.toolbox.activateTool('contextPermissionManager');\r\n }\r\n}\r\n","<igo-context-list\r\n igoContextListBinding\r\n [map]=\"map\"\r\n (edit)=\"editContext()\"\r\n (managePermissions)=\"managePermissions()\">\r\n</igo-context-list>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'contextPermissionManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-permission-manager-tool',\r\n templateUrl: './context-permission-manager-tool.component.html'\r\n})\r\nexport class ContextPermissionManagerToolComponent {}\r\n","<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LayerListControlsOptions } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of layer list tool values\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayerListToolState {\r\n\r\n readonly keyword$: BehaviorSubject<string> = new BehaviorSubject('');\r\n readonly sortAlpha$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly onlyVisible$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly selectedTab$: BehaviorSubject<number> = new BehaviorSubject(undefined);\r\n\r\n setKeyword(keyword: string) {\r\n this.keyword$.next(keyword);\r\n }\r\n\r\n setSortAlpha(sort: boolean) {\r\n this.sortAlpha$.next(sort);\r\n }\r\n\r\n setOnlyVisible(onlyVisible: boolean) {\r\n this.onlyVisible$.next(onlyVisible);\r\n }\r\n\r\n setSelectedTab(tab: number) {\r\n this.selectedTab$.next(tab);\r\n }\r\n\r\n getLayerListControls(): LayerListControlsOptions {\r\n return {\r\n keyword: this.keyword$.value,\r\n onlyVisible: this.onlyVisible$.value,\r\n sortAlpha: this.sortAlpha$.value\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap, LayerListControlsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { LayerListToolState } from '../../map/layer-list-tool.state';\r\n\r\n@ToolComponent({\r\n name: 'shareMap',\r\n title: 'igo.integration.tools.shareMap',\r\n icon: 'share-variant'\r\n})\r\n@Component({\r\n selector: 'igo-context-share-tool',\r\n templateUrl: './context-share-tool.component.html'\r\n})\r\nexport class ContextShareToolComponent {\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get layerListControls(): LayerListControlsOptions { return this.layerListToolState.getLayerListControls(); }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private layerListToolState: LayerListToolState\r\n ) {}\r\n}\r\n","<igo-share-map\r\n [map]=\"map\"></igo-share-map>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoContextModule } from '@igo2/context';\r\n\r\nimport { ContextEditorToolComponent } from './context-editor-tool/context-editor-tool.component';\r\nimport { ContextManagerToolComponent } from './context-manager-tool/context-manager-tool.component';\r\nimport { ContextPermissionManagerToolComponent } from './context-permission-manager-tool/context-permission-manager-tool.component';\r\nimport { ContextShareToolComponent } from './context-share-tool/context-share-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoContextModule],\r\n declarations: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n exports: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppContextModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogItem } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the catalog module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatalogState {\r\n\r\n /**\r\n * Store that contains all the catalogs\r\n */\r\n get catalogStore(): EntityStore<Catalog> { return this._catalogStore; }\r\n private _catalogStore: EntityStore<Catalog>;\r\n\r\n /**\r\n * Catalog -> Catalog items store mapping\r\n */\r\n private catalogItemsStores = new Map<string, EntityStore<CatalogItem>>();\r\n\r\n constructor(authService: AuthService) {\r\n this._catalogStore = new EntityStore([]);\r\n\r\n authService.authenticate$.subscribe(() => {\r\n this.clearCatalogItemsStores();\r\n });\r\n }\r\n\r\n /**\r\n * Get a catalog's items store\r\n * @param catalog Catalog\r\n * @returns Store that contains the catalog items\r\n */\r\n getCatalogItemsStore(catalog: Catalog): EntityStore<CatalogItem> {\r\n return this.catalogItemsStores.get(catalog.id as string);\r\n }\r\n\r\n /**\r\n * Bind a catalog items store to a catalog\r\n * @param catalog Catalog\r\n * @param store Catalog items store\r\n */\r\n setCatalogItemsStore(catalog: Catalog, store: EntityStore<CatalogItem>) {\r\n this.catalogItemsStores.set(catalog.id as string, store);\r\n }\r\n\r\n /**\r\n * Clear all catalog items stores\r\n */\r\n clearCatalogItemsStores() {\r\n this.catalogItemsStores.clear();\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogService } from '@igo2/geo';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse the list of available catalogs.\r\n */\r\n@ToolComponent({\r\n name: 'catalog',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'layers-plus'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-library-tool',\r\n templateUrl: './catalog-library-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogLibraryToolComponent implements OnInit {\r\n /**\r\n * Store that contains the catalogs\r\n * @internal\r\n */\r\n get store(): EntityStore<Catalog> {\r\n return this.catalogState.catalogStore;\r\n }\r\n\r\n /**\r\n * Determine if the form to add a catalog is allowed\r\n */\r\n @Input() addCatalogAllowed: boolean = false;\r\n\r\n /**\r\n * List of predefined catalogs\r\n */\r\n @Input() predefinedCatalogs: Catalog[] = [];\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private toolState: ToolState,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n if (this.store.count === 0) {\r\n this.loadCatalogs();\r\n }\r\n }\r\n\r\n /**\r\n * When the selected catalog changes, toggle the the CatalogBrowser tool.\r\n * @internal\r\n * @param event Select event\r\n */\r\n onCatalogSelectChange(event: { selected: boolean; catalog: Catalog }) {\r\n if (event.selected === false) {\r\n return;\r\n }\r\n this.toolState.toolbox.activateTool('catalogBrowser');\r\n }\r\n\r\n /**\r\n * Get all the available catalogs from the CatalogService and\r\n * load them into the store.\r\n */\r\n private loadCatalogs() {\r\n this.catalogService.loadCatalogs().pipe(take(1)).subscribe((catalogs: Catalog[]) => {\r\n this.store.clear();\r\n this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || []) as Catalog[]));\r\n });\r\n }\r\n}\r\n","<igo-catalog-library\r\n [predefinedCatalogs]=\"predefinedCatalogs\"\r\n [addCatalogAllowed]=\"addCatalogAllowed\"\r\n [store]=\"store\"\r\n (catalogSelectChange)=\"onCatalogSelectChange($event)\">\r\n</igo-catalog-library>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogLibraryModule } from '@igo2/geo';\r\nimport { CatalogLibraryToolComponent } from './catalog-library-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogLibraryModule\r\n ],\r\n declarations: [CatalogLibraryToolComponent],\r\n exports: [CatalogLibraryToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogLibraryToolModule {}\r\n","<igo-catalog-browser\r\n *ngIf=\"store$ | async as store\"\r\n [catalog]=\"catalog\"\r\n [store]=\"store\"\r\n [map]=\"map\"\r\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\">\r\n</igo-catalog-browser>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { EntityRecord, EntityStore, ToolComponent } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport {\r\n IgoMap,\r\n Catalog,\r\n CatalogItem,\r\n CatalogItemState,\r\n CatalogService\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse a catalog's groups and layers and display them to a map.\r\n */\r\n@ToolComponent({\r\n name: 'catalogBrowser',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'photo-browser',\r\n parent: 'catalog'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-browser-tool',\r\n templateUrl: './catalog-browser-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogBrowserToolComponent implements OnInit, OnDestroy {\r\n catalog: Catalog;\r\n\r\n /**\r\n * Store that contains the catalog items\r\n * @internal\r\n */\r\n store$ = new BehaviorSubject<EntityStore<CatalogItem, CatalogItemState>>(\r\n undefined\r\n );\r\n\r\n /**\r\n * Subscription to the selected catalog\r\n */\r\n private catalog$$: Subscription;\r\n\r\n /**\r\n * Subscription for authentication\r\n */\r\n private authenticate$$: Subscription;\r\n\r\n /**\r\n * Whether a group can be toggled when it's collapsed\r\n */\r\n @Input() toggleCollapsedGroup: boolean = true;\r\n\r\n /**\r\n * Map to add layers to\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private mapState: MapState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n const catalogStore = this.catalogState.catalogStore;\r\n this.catalog$$ = catalogStore.stateView\r\n .firstBy$(\r\n (record: EntityRecord<Catalog>) => record.state.selected === true\r\n )\r\n .subscribe((record: EntityRecord<Catalog>) => {\r\n if (record && record.entity) {\r\n const catalog = record.entity;\r\n this.catalog = catalog;\r\n }\r\n });\r\n\r\n this.authenticate$$ = this.authService.authenticate$.subscribe(() => {\r\n this.loadCatalogItems(this.catalog);\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.catalog$$.unsubscribe();\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Get the selected catalog's items from the CatalogService and\r\n * load them into the store.\r\n * @param catalog Selected catalog\r\n */\r\n private loadCatalogItems(catalog: Catalog) {\r\n let store = this.catalogState.getCatalogItemsStore(catalog);\r\n if (store !== undefined) {\r\n this.store$.next(store);\r\n return;\r\n }\r\n\r\n store = new EntityStore<CatalogItem>([]);\r\n this.catalogState.setCatalogItemsStore(catalog, store);\r\n this.catalogService\r\n .loadCatalogItems(catalog)\r\n .pipe(take(1))\r\n .subscribe((items: CatalogItem[]) => {\r\n store.load(items);\r\n this.store$.next(store);\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogBrowserModule } from '@igo2/geo';\r\nimport { CatalogBrowserToolComponent } from './catalog-browser-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogBrowserModule\r\n ],\r\n declarations: [CatalogBrowserToolComponent],\r\n exports: [CatalogBrowserToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogBrowserToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppCatalogLibraryToolModule } from './catalog-library-tool/catalog-library-tool.module';\r\nimport { IgoAppCatalogBrowserToolModule } from './catalog-browser-tool/catalog-browser-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [\r\n IgoAppCatalogLibraryToolModule,\r\n IgoAppCatalogBrowserToolModule\r\n ],\r\n declarations: []\r\n})\r\nexport class IgoAppCatalogModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AnyLayerOptions, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirectionState {\r\n\r\n public zoomToActiveRoute$: Subject<void> = new Subject();\r\n\r\n /**\r\n * Store that holds the stop\r\n */\r\n public stopsStore: StopsStore = new StopsStore([]);\r\n\r\n /**\r\n * Store that holds the driving stops as feature\r\n */\r\n public stopsFeatureStore: StopsFeatureStore = new StopsFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n /**\r\n * Store that holds the driving route as feature\r\n */\r\n public routesFeatureStore: RoutesFeatureStore = new RoutesFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public stepFeatureStore: StepFeatureStore = new StepFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public debounceTime: number = 200;\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.stopsFeatureStore.empty$.subscribe((empty) => {\r\n if (this.stopsFeatureStore.layer?.options) {\r\n (this.stopsFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n this.routesFeatureStore.empty$.subscribe((empty) => {\r\n if (this.routesFeatureStore.layer?.options) {\r\n (this.routesFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n });\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {\r\n this.stopsStore.deleteMany(this.stopsStore.all());\r\n this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary\r\n }\r\n if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {\r\n this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageScope, StorageService } from '@igo2/core';\r\nimport { IgoMap, RoutesFeatureStore, StopsFeatureStore, StopsStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { DirectionState } from '../directions.state';\r\n\r\n@ToolComponent({\r\n name: 'directions',\r\n title: 'igo.integration.tools.directions',\r\n icon: 'directions'\r\n})\r\n@Component({\r\n selector: 'igo-directions-tool',\r\n templateUrl: './directions-tool.component.html'\r\n})\r\nexport class DirectionsToolComponent implements OnInit {\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsStore(): StopsStore { return this.directionState.stopsStore; }\r\n\r\n get debounceTime(): number { return this.directionState.debounceTime; }\r\n\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsFeatureStore(): StopsFeatureStore { return this.directionState.stopsFeatureStore; }\r\n\r\n /**\r\n * routes\r\n * @internal\r\n */\r\n get routesFeatureStore(): RoutesFeatureStore { return this.directionState.routesFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get stepFeatureStore(): StepFeatureStore { return this.directionState.stepFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get zoomToActiveRoute$(): Subject<void> { return this.directionState.zoomToActiveRoute$; }\r\n\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private directionState: DirectionState,\r\n private mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const warningShown = this.storageService.get('direction.warning.shown') as boolean;\r\n if (!warningShown) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.directions.warning.title'\r\n );\r\n const msg = translate.instant('igo.integration.directions.warning.message');\r\n this.messageService.info(msg, title, { timeOut: 20000 });\r\n this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);\r\n }\r\n }\r\n\r\n}\r\n","<igo-directions\r\n [debounceTime]=\"debounceTime\"\r\n [stopsStore]=\"stopsStore\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \r\n</igo-directions>","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoDirectionsModule } from '@igo2/geo';\r\nimport { DirectionsToolComponent } from './directions-tool/directions-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDirectionsModule],\r\n declarations: [DirectionsToolComponent],\r\n exports: [DirectionsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppDirectionsModule {\r\n static forRoot(): ModuleWithProviders<IgoAppDirectionsModule> {\r\n return {\r\n ngModule: IgoAppDirectionsModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, Feature } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DrawState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<Feature> = new FeatureStore<Feature>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-draw-layer')) {\r\n this.store.deleteMany(this.store.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, Feature, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { DrawState } from '../draw.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'draw',\r\n title: 'igo.integration.tools.draw',\r\n icon: 'draw'\r\n})\r\n@Component({\r\n selector: 'igo-drawing-tool',\r\n templateUrl: './drawing-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrawingToolComponent {\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget store(): FeatureStore<Feature> { return this.drawState.store; }\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget map(): IgoMap { return this.mapState.map; }\r\n\r\nconstructor(\r\n private drawState: DrawState,\r\n private mapState: MapState\r\n) {}\r\n\r\n}\r\n","<igo-draw [store]=\"store\" [map]=\"map\"></igo-draw>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoDrawingToolModule } from '@igo2/geo';\r\nimport { DrawingToolComponent } from './drawing-tool/drawing-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDrawingToolModule],\r\n declarations: [DrawingToolComponent],\r\n exports: [\r\n DrawingToolComponent\r\n ]\r\n})\r\nexport class IgoAppDrawModule {}\r\n","import {\r\n FeatureMotion,\r\n FeatureStoreSelectionStrategy,\r\n FeatureWorkspace,\r\n WfsWorkspace\r\n} from '@igo2/geo';\r\n\r\n\r\nexport function handleZoomAuto(workspace: FeatureWorkspace | WfsWorkspace, storageService) {\r\n const zoomStrategy = workspace.entityStore\r\n .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy;\r\n zoomStrategy.setMotion(storageService.get('zoomAuto') as boolean ? FeatureMotion.Default : FeatureMotion.None);\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\n\r\n/**\r\n * Service that holds the state of storage service\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageState {\r\n get storageService(): StorageService {\r\n return this.igoStorageService;\r\n }\r\n\r\n constructor(private igoStorageService: StorageService) {}\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n FeatureWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeatureActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private toolState: ToolState,\r\n private mediaService: MediaService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED\r\n )\r\n )\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n return [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set(\r\n 'zoomAuto',\r\n !this.storageService.get('zoomAuto') as boolean\r\n );\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.tooltip',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n },\r\n args: [workspace],\r\n availability: (ws: FeatureWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'featureDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterCustomFuncStrategy\r\n );\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterSelectionStrategy\r\n );\r\n const layersWithSelection = filterSelectionStrategy.active\r\n ? [ws.layer.id]\r\n : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: {\r\n layers: [ws.layer.id],\r\n featureInMapExtent: filterStrategy.active,\r\n layersWithSelection\r\n } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n WfsWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfsActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n // rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: WfsWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: WfsWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).ogcFilters$?.value?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\nimport {\r\n EntityRecord,Workspace, WorkspaceStore, Widget,\r\n EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common';\r\nimport { WfsWorkspace, FeatureWorkspace } from '@igo2/geo';\r\nimport { FeatureActionsService } from './shared/feature-actions.service';\r\nimport { WfsActionsService } from './shared/wfs-actions.service';\r\nimport { StorageService } from '@igo2/core';\r\n\r\n/**\r\n * Service that holds the state of the workspace module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkspaceState implements OnDestroy {\r\n\r\n public workspacePanelExpanded: boolean = false;\r\n\r\n readonly workspaceEnabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n readonly rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n readonly selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n readonly workspaceMaximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n private actionMaximize$$: Subscription[] = [];\r\n\r\n private rowsInMapExtentCheckCondition$$: Subscription;\r\n private selectOnlyCheckCondition$$: Subscription;\r\n\r\n /** Subscription to the active workspace */\r\n private activeWorkspace$$: Subscription;\r\n\r\n /** Subscription to the active workspace widget */\r\n private activeWorkspaceWidget$$: Subscription;\r\n\r\n /** Active widget observable. Only one may be active for all available workspaces */\r\n readonly activeWorkspaceWidget$: BehaviorSubject<Widget> = new BehaviorSubject<Widget>(undefined);\r\n\r\n /**\r\n * Observable of the active workspace\r\n */\r\n public workspace$ = new BehaviorSubject<Workspace>(undefined);\r\n\r\n /**\r\n * Store that holds all the available workspaces\r\n */\r\n get store(): WorkspaceStore { return this._store; }\r\n private _store: WorkspaceStore;\r\n\r\n constructor(\r\n private featureActionsService: FeatureActionsService,\r\n private wfsActionsService: WfsActionsService,\r\n private storageService: StorageService\r\n ) {\r\n this.initWorkspaces();\r\n }\r\n\r\n /**\r\n * Initialize the workspace store. Each time a workspace is activated,\r\n * subscribe to it's active widget. Tracking the active widget is useful\r\n * to make sure only one widget is active at a time.\r\n */\r\n private initWorkspaces() {\r\n this._store = new WorkspaceStore([]);\r\n this._store.stateView\r\n .firstBy$((record: EntityRecord<Workspace>) => record.state.active === true)\r\n .subscribe((record: EntityRecord<Workspace>) => {\r\n const workspace = record ? record.entity : undefined;\r\n this.workspace$.next(workspace);\r\n });\r\n\r\n this._store.stateView.all$()\r\n .subscribe((workspaces: EntityRecord<Workspace>[]) => {\r\n workspaces.map((wks: EntityRecord<Workspace>) => {\r\n if (wks.entity.actionStore.empty) {\r\n if (wks.entity instanceof WfsWorkspace) {\r\n this.wfsActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof FeatureWorkspace) {\r\n this.featureActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n }\r\n }\r\n\r\n });\r\n });\r\n\r\n this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.activeWorkspace$$ = this.workspace$\r\n .subscribe((workspace: Workspace) => {\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n this.activeWorkspaceWidget$$ = undefined;\r\n }\r\n\r\n if (workspace !== undefined) {\r\n this.activeWorkspaceWidget$$ = workspace.widget$\r\n .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget));\r\n }\r\n });\r\n\r\n this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (filterStrategy) {\r\n if (rowsInMapExtent) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n if (filterStrategy) {\r\n if (selectOnly) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private setWorkspaceIsMaximized(maximized: boolean) {\r\n this.storageService.set('workspaceMaximize', maximized);\r\n this.workspaceMaximize$.next(maximized);\r\n }\r\n\r\n public setActiveWorkspaceById(id: string) {\r\n const wksFromId = this.store\r\n .all()\r\n .find(workspace => workspace.id === id);\r\n if (wksFromId) {\r\n this.store.activateWorkspace(wksFromId);\r\n }\r\n }\r\n\r\n /**\r\n * Teardown all the workspaces\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.teardownWorkspaces();\r\n this.actionMaximize$$.map(a => a.unsubscribe());\r\n if (this.rowsInMapExtentCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n if (this.selectOnlyCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Teardown the workspace store and any subscribers\r\n */\r\n private teardownWorkspaces() {\r\n this.store.clear();\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n }\r\n if (this.activeWorkspace$$ !== undefined) {\r\n this.activeWorkspace$$.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","<button\r\n *ngIf=\"hasWorkspace$ | async\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\r\n [color]=\"color\"\r\n (click)=\"activateWorkspace()\"\r\n >\r\n <mat-icon svgIcon=\"table\"></mat-icon>\r\n</button>\r\n","import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core';\r\nimport type { Layer } from '@igo2/geo';\r\nimport { WorkspaceState } from '../workspace.state';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-workspace-button',\r\n templateUrl: './workspace-button.component.html',\r\n styleUrls: ['./workspace-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkspaceButtonComponent implements OnInit, OnDestroy {\r\n\r\n public hasWorkspace$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private hasWorkspace$$: Subscription;\r\n\r\n private _layer: Layer;\r\n private layer$: BehaviorSubject<Layer> = new BehaviorSubject(undefined);\r\n @Input()\r\n set layer(value: Layer) {\r\n this._layer = value;\r\n this.layer$.next(this._layer);\r\n }\r\n\r\n get layer(): Layer {\r\n return this._layer;\r\n }\r\n\r\n @Input() color: string = 'primary';\r\n\r\n constructor(private workspaceState: WorkspaceState) { }\r\n\r\n ngOnInit(): void {\r\n this.hasWorkspace$$ = combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])\r\n .subscribe(bunch => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hasWorkspace$$.unsubscribe();\r\n }\r\n\r\n activateWorkspace() {\r\n if (\r\n this.workspaceState.workspace$.value &&\r\n (this.workspaceState.workspace$.value as any).layer.id === this.layer.id &&\r\n this.workspaceState.workspacePanelExpanded) {\r\n this.workspaceState.workspacePanelExpanded = false;\r\n } else {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(this.layer.id);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoLanguageModule\r\n ],\r\n declarations: [WorkspaceButtonComponent],\r\n exports: [WorkspaceButtonComponent]\r\n})\r\nexport class IgoAppWorkspaceModule {}\r\n","<mat-tab-group *ngIf=\"importExportShowBothType\" >\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportData' | translate\">\r\n <igo-import-export \r\n [map]=\"map\"\r\n [selectFirstProj]=\"selectFirstProj\"\r\n [projectionsLimitations]=\"projectionsLimitations\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n </igo-import-export>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportContext' | translate\">\r\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\r\n [map]=\"map\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n</igo-import-export>\r\n\r\n<igo-context-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\r\n [map]=\"map\">\r\n</igo-context-import-export>","import { Component, ChangeDetectionStrategy, OnInit, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport type { WorkspaceStore } from '@igo2/common';\r\nimport { IgoMap, ExportOptions, ProjectionsLimitationsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState, ImportExportType } from '../import-export.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\n\r\n@ToolComponent({\r\n name: 'importExport',\r\n title: 'igo.integration.tools.importExport',\r\n icon: 'file-move'\r\n})\r\n@Component({\r\n selector: 'igo-import-export-tool',\r\n templateUrl: './import-export-tool.component.html',\r\n styleUrls: ['./import-export-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImportExportToolComponent implements OnInit {\r\n\r\n @Input() projectionsLimitations: ProjectionsLimitationsOptions;\r\n\r\n @Input() selectFirstProj: boolean = false;\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n @Input() importExportType: ImportExportType = ImportExportType.layer;\r\n @Input() importExportShowBothType: boolean = true;\r\n\r\n constructor(\r\n private mapState: MapState,\r\n public importExportState: ImportExportState,\r\n private workspaceState: WorkspaceState,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectType();\r\n this.selectMode();\r\n }\r\n\r\n private selectType() {\r\n if (this.importExportType) {\r\n this.importExportState.importExportType$.next(this.importExportType);\r\n }\r\n const userSelectedType = this.importExportState.importExportType$.value;\r\n if (userSelectedType !== undefined) {\r\n this.importExportState.setImportExportType(userSelectedType);\r\n } else {\r\n this.importExportState.setImportExportType(ImportExportType.layer);\r\n }\r\n }\r\n\r\n private selectMode() {\r\n const userSelectedMode = this.importExportState.selectedMode$.value;\r\n if (userSelectedMode !== undefined) {\r\n this.importExportState.setMode(userSelectedMode);\r\n } else {\r\n this.importExportState.setMode(ImportExportMode.import);\r\n\r\n }\r\n }\r\n\r\n public modeChanged(mode: ImportExportMode) {\r\n this.importExportState.setMode(mode);\r\n }\r\n\r\n public exportOptionsChange(exportOptions: ExportOptions) {\r\n this.importExportState.setsExportOptions(exportOptions);\r\n }\r\n\r\n importExportTypeChange(event) {\r\n this.importExportType = event.value;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoImportExportModule } from '@igo2/geo';\r\nimport { ImportExportToolComponent } from './import-export-tool/import-export-tool.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoContextImportExportModule } from '@igo2/context';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoImportExportModule,\r\n IgoContextImportExportModule,\r\n CommonModule,\r\n IgoLanguageModule,\r\n MatButtonToggleModule,\r\n MatTabsModule\r\n ],\r\n declarations: [ImportExportToolComponent],\r\n exports: [ImportExportToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoAppImportExportModule> {\r\n return {\r\n ngModule: IgoAppImportExportModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<igo-layer-list class=\"mapDetailsList\" *ngIf=\"(layers$ | async).length; else empty\"\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n floatLabel=\"never\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n</igo-layer-list>\r\n\r\n<ng-template #empty>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n ExportOptions\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n\r\n@ToolComponent({\r\n name: 'mapDetails',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-details-tool',\r\n templateUrl: './map-details-tool.component.html',\r\n styleUrls: ['./map-details-tool.component.scss']\r\n})\r\nexport class MapDetailsToolComponent implements OnInit {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layers$(): Observable<Layer[]> {\r\n return this.map.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n )\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\r\n <igo-layer-list\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\r\n <igo-context-list igoContextListBinding></igo-context-list>\r\n </mat-tab>\r\n\r\n</mat-tab-group>\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n ExportOptions,\r\n Layer\r\n} from '@igo2/geo';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'map',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tool',\r\n templateUrl: './map-tool.component.html',\r\n styleUrls: ['./map-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolComponent {\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group\r\n #tabGroup\r\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\r\n (selectedTabChange)=\"tabChanged($event)\">\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\r\n <igo-layer-list *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\"\r\n [map]=\"map\"\r\n (appliedFilterAndSort)= onLayerListChange($event)>\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-time-filter-button *ngIf=\"isTimeFilterButton(layer)\" [header]=\"timeButton\" [layer]=\"layer\"\r\n (click)=\"activateTimeFilter()\"></igo-time-filter-button>\r\n <igo-ogc-filter-button *ngIf=\"isOGCFilterButton(layer)\" [header]=\"ogcButton\" [layer]=\"layer\"\r\n (click)=\"activateOgcFilter()\"></igo-ogc-filter-button>\r\n <igo-export-button *ngIf=\"isExportButton(layer)\" [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n </ng-template>\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\r\n <igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\"\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\">\r\n </igo-layer-legend-list>\r\n <ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n <p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n </p>\r\n </mat-tab>\r\n\r\n <ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\"\r\n class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n </ng-template>\r\n</mat-tab-group>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n Layer,\r\n ExportOptions,\r\n VectorLayer\r\n} from '@igo2/geo';\r\n\r\nimport { LayerListToolState } from '../layer-list-tool.state';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../map.state';\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'mapTools',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tools',\r\n templateUrl: './map-tools.component.html',\r\n styleUrls: ['./map-tools.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolsComponent implements OnInit, OnDestroy {\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() selectedTabAtOpening: string;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input()\r\n get layerListControls(): LayerListControlsOptions {\r\n return this._layerListControls;\r\n }\r\n set layerListControls(value: LayerListControlsOptions) {\r\n const stateOptions = this.layerListToolState.getLayerListControls();\r\n const stateKeyword = stateOptions.keyword;\r\n const stateOnlyVisible = stateOptions.onlyVisible;\r\n const stateSortAlpha = stateOptions.sortAlpha;\r\n\r\n value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;\r\n value.onlyVisible =\r\n stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;\r\n value.sortAlpha =\r\n stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;\r\n\r\n value.onlyVisible =\r\n value.onlyVisible === undefined ? false : value.onlyVisible;\r\n value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;\r\n\r\n this._layerListControls = value;\r\n }\r\n private _layerListControls = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) => layers.filter((layer) => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): LayerListControlsOptions {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n @ViewChild('tabGroup', { static: true }) tabGroup;\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n public layerListToolState: LayerListToolState,\r\n private toolState: ToolState,\r\n public mapState: MapState,\r\n private searchSourceService: SearchSourceService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectedTab();\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n private selectedTab() {\r\n const userSelectedTab = this.layerListToolState.selectedTab$.value;\r\n if (userSelectedTab !== undefined) {\r\n this.layerListToolState.setSelectedTab(userSelectedTab);\r\n } else {\r\n if (this.selectedTabAtOpening === 'legend') {\r\n this.layerListToolState.setSelectedTab(1);\r\n } else {\r\n this.layerListToolState.setSelectedTab(0);\r\n }\r\n }\r\n }\r\n\r\n public tabChanged(tab: MatTabChangeEvent) {\r\n this.layerListToolState.setSelectedTab(tab.index);\r\n this.layers$.next(\r\n this.map.layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n }\r\n\r\n onLayerListChange(appliedFilters: LayerListControlsOptions) {\r\n this.layerListToolState.setKeyword(appliedFilters.keyword);\r\n this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);\r\n this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe((value) => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateTimeFilter() {\r\n this.toolState.toolbox.activateTool('activeTimeFilter');\r\n }\r\n\r\n activateOgcFilter() {\r\n this.toolState.toolbox.activateTool('activeOgcFilter');\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n isTimeFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.timeButton && options.timeFilterable && options.timeFilter;\r\n }\r\n\r\n isOGCFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&\r\n (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons\r\n || options.ogcFilters.select || options.ogcFilters.editable);\r\n }\r\n\r\n isExportButton(layer: Layer): boolean {\r\n if (\r\n (layer instanceof VectorLayer && layer.exportable === true) ||\r\n (layer.dataSource.options.download && layer.dataSource.options.download.url) ||\r\n (layer.options.workspace?.enabled && layer.options.workspace?.workspaceId !== layer.id))\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\">\r\n</igo-layer-legend-list>\r\n<ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n<p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n</p>\r\n\r\n\r\n<ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\n\r\n@ToolComponent({\r\n name: 'mapLegend',\r\n title: 'igo.integration.tools.legend',\r\n icon: 'format-list-bulleted-type'\r\n})\r\n@Component({\r\n selector: 'igo-map-legend-tool',\r\n templateUrl: './map-legend-tool.component.html',\r\n styleUrls: ['./map-legend-tool.component.scss']\r\n})\r\nexport class MapLegendToolComponent implements OnInit, OnDestroy {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers =>\r\n layers.filter(\r\n layer => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers => layers.filter(layer => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter(s => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n layer =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe(value => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\nimport { IgoMap, Layer, VectorLayer } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { ToolState } from '../../../tool/tool.state';\r\n\r\n@Component({\r\n selector: 'igo-advanced-swipe',\r\n templateUrl: './advanced-swipe.component.html',\r\n styleUrls: ['./advanced-swipe.component.scss']\r\n})\r\n\r\nexport class AdvancedSwipeComponent implements OnInit, OnDestroy {\r\n public swipe: boolean = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public form: FormGroup;\r\n public layers: VectorLayer[];\r\n public res: DetailedContext;\r\n public listForSwipe: Layer[];\r\n\r\n /**\r\n * Get an active map state\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private contextService: ContextService,\r\n private formBuilder: FormBuilder,\r\n private toolState: ToolState) {\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Get the list of layers for swipe\r\n * @internal\r\n */\r\n ngOnInit() {\r\n this.map.layers$.subscribe(ll => this.userControlledLayerList = ll.filter(layer =>\r\n (!layer.baseLayer && layer.showInLayerList && layer.displayed)));\r\n }\r\n\r\n /**\r\n * Desactivate the swipe\r\n * @internal\r\n */\r\n ngOnDestroy(){\r\n this.swipe = false;\r\n this.map.swipeEnabled$.next(this.swipe);\r\n }\r\n\r\n /**\r\n * Build a form for choise of the layers\r\n */\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Activate the swipe, send a list of layers for a swipe-tool\r\n */\r\n startSwipe(toggle: boolean){\r\n this.swipe = toggle;\r\n this.map.swipeEnabled$.next(toggle);\r\n this.listForSwipe = [];\r\n for (const layer of this.form.value.layers) {\r\n this.listForSwipe.push(layer);\r\n }\r\n this.map.selectedFeatures$.next(this.listForSwipe);\r\n }\r\n\r\n /**\r\n * Restart a swipe for a new layers-list\r\n */\r\n applyNewLayers(e) {\r\n this.startSwipe(false); // l'approche KISS\r\n this.startSwipe(true);\r\n if (e._selected) {e._selected = false; }\r\n const allLayers = this.userControlledLayerList.length;\r\n const selectedLayers = this.form.controls.layers.value.length;\r\n if (selectedLayers === allLayers){\r\n e._selected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Select all list of layers and restart a tool\r\n */\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n else {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n this.startSwipe(false);\r\n this.startSwipe(true);\r\n }\r\n\r\n /**\r\n * Open search tool\r\n */\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n /**\r\n * Open catalog\r\n */\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n /**\r\n * Open context manager\r\n */\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<button class=\"igo-form-button-group\"\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate }}\r\n</button>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.getZoom() }}</p>\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { IgoMap, InputProjections, ProjectionsLimitationsOptions } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService, StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { zoneMtm, zoneUtm, computeProjectionsConstraints } from '@igo2/geo';\r\nimport * as olproj from 'ol/proj';\r\n/**\r\n * Tool to display the coordinates and a cursor of the center of the map\r\n */\r\n@Component({\r\n selector: 'igo-advanced-coordinates',\r\n templateUrl: './advanced-coordinates.component.html',\r\n styleUrls: ['./advanced-coordinates.component.scss']\r\n})\r\nexport class AdvancedCoordinatesComponent implements OnInit, OnDestroy {\r\n public projections$: BehaviorSubject<InputProjections[]> = new BehaviorSubject([]);\r\n public form: FormGroup;\r\n public coordinates: string[];\r\n private currentCenterDefaultProj: [number, number];\r\n public center: boolean = this.storageService.get('centerToggle') as boolean;\r\n private inMtmZone: boolean = true;\r\n private inLambert2 = {32198: true, 3798: true};\r\n private mapState$$: Subscription;\r\n private _projectionsLimitations: ProjectionsLimitationsOptions = {};\r\n private projectionsConstraints: ProjectionsLimitationsOptions;\r\n private defaultProj: InputProjections = {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n };\r\n private currentZones = { utm: undefined, mtm: undefined };\r\n public units: boolean = true;\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get inputProj(): InputProjections {\r\n return this.form.get('inputProj').value;\r\n }\r\n set inputProj(value: InputProjections) {\r\n this.form.patchValue({ inputProj: value });\r\n }\r\n get projectionsLimitations(): ProjectionsLimitationsOptions {\r\n return this._projectionsLimitations || {};\r\n }\r\n\r\n @Input()\r\n set projectionsLimitations(value: ProjectionsLimitationsOptions) {\r\n this._projectionsLimitations = value;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cdRef: ChangeDetectorRef,\r\n private storageService: StorageService,\r\n private config: ConfigService,\r\n private formBuilder: FormBuilder) {\r\n this.computeProjections();\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Listen a state of the map, a state of a form, update the coordinates\r\n */\r\n ngOnInit(): void {\r\n this.mapState$$ = combineLatest([this.map.viewController.state$.pipe(debounceTime(50)), this.form.valueChanges])\r\n .subscribe(() => {\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {\r\n this.back2quebec();\r\n }\r\n let zoneChange = false;\r\n if (currentMtmZone !== this.currentZones.mtm) {\r\n this.currentZones.mtm = currentMtmZone;\r\n zoneChange = true;\r\n }\r\n if (currentUtmZone !== this.currentZones.utm) {\r\n this.currentZones.utm = currentUtmZone;\r\n zoneChange = true;\r\n }\r\n if (zoneChange) {\r\n this.updateProjectionsZoneChange();\r\n }\r\n this.checkLambert(this.currentCenterDefaultProj);\r\n this.coordinates = this.getCoordinates();\r\n this.cdRef.detectChanges();\r\n this.storageService.set('currentProjection', this.inputProj, StorageScope.SESSION);\r\n });\r\n\r\n const tempInputProj = this.storageService.get('currentProjection') as InputProjections;\r\n this.inputProj = this.projections$.value[0];\r\n if (tempInputProj !== null)\r\n {\r\n const pos = this.positionInList(tempInputProj);\r\n this.inputProj = this.projections$.value[pos];\r\n this.updateZoneMtmUtm();\r\n }\r\n this.map.mapCenter$.next(this.center);\r\n this.coordinates = this.getCoordinates();\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.map.mapCenter$.next(false);\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Coordinates of the center of the map on the appropriate systeme of coordinates\r\n * @returns Array of two numbers\r\n */\r\n getCoordinates(): string[] {\r\n this.currentZones.mtm = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.currentZones.utm = zoneUtm(this.currentCenterDefaultProj[0]);\r\n let coord;\r\n const code = this.inputProj.code;\r\n let decimal = 2;\r\n if (code.includes('EPSG:4326') || code.includes('EPSG:4269')) {\r\n decimal = 5;\r\n }\r\n this.units = (code === 'EPSG:4326' || code === 'EPSG:4269');\r\n coord = this.map.viewController.getCenter(code).map(c => c.toFixed(decimal));\r\n return coord;\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n const successful = Clipboard.copy(this.coordinates.toString());\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyTitle'\r\n );\r\n const msg = translate.instant('igo.integration.advanced-map-tool.advanced-coordinates.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n\r\n /**\r\n * Display a cursor on the center of the map\r\n */\r\n displayCenter(toggle: boolean): void {\r\n this.center = toggle;\r\n this.map.mapCenter$.next(toggle);\r\n this.storageService.set('centerToggle', toggle, StorageScope.SESSION);\r\n }\r\n\r\n /**\r\n * Builder of the form\r\n */\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n inputProj: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Update list of projections after changing of the state of the map\r\n */\r\n private updateProjectionsZoneChange(): void {\r\n let modifiedProj = this.projections$.value;\r\n const translate = this.languageService.translate;\r\n modifiedProj.map(p => {\r\n if (p.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n p.alias = `MTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.mtm', p);\r\n }\r\n else {\r\n p.alias = '';\r\n this.inMtmZone = false;\r\n if (this.inputProj.translateKey === 'mtm') {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n }\r\n }\r\n if (p.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = `EPSG:326${zone}`;\r\n p.alias = `UTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.utm', p);\r\n }\r\n });\r\n modifiedProj = modifiedProj.filter(p => p.alias !== '');\r\n this.projections$.next(modifiedProj);\r\n }\r\n\r\n /**\r\n * Create a list of currents projections\r\n */\r\n private computeProjections(): void {\r\n this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);\r\n const projections: InputProjections[] = [];\r\n\r\n if (!this.currentCenterDefaultProj) {\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n const translate = this.languageService.translate;\r\n if (this.projectionsConstraints.wgs84) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.nad83) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.nad83', { code: 'EPSG:4269' }),\r\n translateKey: 'nad83', alias: 'NAD83', code: 'EPSG:4269', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.webMercator) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.webMercator', { code: 'EPSG:3857' }),\r\n translateKey: 'webMercator', alias: 'Web Mercator', code: 'EPSG:3857', zone: ''\r\n });\r\n }\r\n if (this.projectionsConstraints.mtm) {\r\n // Quebec\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n this.inMtmZone = true;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n else {\r\n this.inMtmZone = false;\r\n }\r\n }\r\n if (this.projectionsConstraints.utm) {\r\n const order = this.inMtmZone ? 4 : 3;\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n projections.splice(order, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone }),\r\n translateKey: 'utm', alias: `UTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n let configProjection = [];\r\n if (this.projectionsConstraints.projFromConfig) {\r\n configProjection = this.config.getConfig('projections') || [];\r\n }\r\n this.projections$.next(projections.concat(configProjection));\r\n }\r\n\r\n /**\r\n * Push the MTM in the array of systeme of coordinates\r\n * @param projections Array of the InputProjections\r\n */\r\n private pushMtm(projections: Array<InputProjections>): void {\r\n if (this.projectionsConstraints.mtm) {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`});\r\n }\r\n }\r\n\r\n /**\r\n * Updates the list of systems of coordinates for territory of Quebec\r\n * push MTM and UTM in the Array\r\n */\r\n private back2quebec(): void {\r\n const projections = this.projections$.value;\r\n this.pushMtm(projections);\r\n this.inMtmZone = true;\r\n }\r\n\r\n /**\r\n * Update the numbers of the zones when application is restarted\r\n */\r\n private updateZoneMtmUtm() {\r\n if (this.inputProj.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `MTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone });\r\n }\r\n if (this.inputProj.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `UTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone });\r\n }\r\n }\r\n\r\n /**\r\n * Compute the position of a current projection in a list. 0 if the projection is not in the list\r\n * @param translateKey string, translate key of a projection\r\n * @returns numeric, position of an element in the array\r\n */\r\n positionInList(tempInputProj: InputProjections): number {\r\n const tk = tempInputProj.translateKey;\r\n const alias = tempInputProj.alias;\r\n let position; // = undefined;\r\n let iter = 0;\r\n this.projections$.value.map((projection) => {\r\n if (tk) {\r\n if (tk === projection.translateKey) {\r\n position = iter;\r\n }\r\n }\r\n else if (alias === projection.alias) {\r\n position = iter;\r\n }\r\n iter++;\r\n });\r\n position = position ? position : 0;\r\n return position;\r\n }\r\n\r\n /**\r\n * Change the list of projections depending on the projections of Lambert\r\n * @param coordinates An array of numbers, longitude and latitude\r\n */\r\n checkLambert(coordinates: [number, number]) {\r\n const lambertProjections = this.config.getConfig('projections');\r\n lambertProjections.forEach(projection => {\r\n let modifiedProj = this.projections$.value;\r\n const extent = projection.extent;\r\n const code = projection.code.match(/\\d+/);\r\n const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);\r\n if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||\r\n coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {\r\n this.inLambert2[code] = false;\r\n if (this.inputProj.alias === projection.alias) {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n modifiedProj = modifiedProj.filter(p => p.alias !== projection.alias);\r\n this.projections$.next(modifiedProj);\r\n }\r\n else {\r\n if (!this.inLambert2[code]) {\r\n this.projections$.next(modifiedProj.concat(projection));\r\n this.inLambert2[code] = true;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'advancedMap',\r\n title: 'igo.integration.tools.advancedMap',\r\n icon: 'toolbox'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-advanced-map-tool',\r\n templateUrl: './advanced-map-tool.component.html',\r\n styleUrls: ['./advanced-map-tool.component.scss']\r\n})\r\n\r\nexport class AdvancedMapToolComponent {\r\n\r\n}\r\n","<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate}}</h4>\r\n<igo-advanced-swipe></igo-advanced-swipe>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-coordinates.coordinates' | translate}}</h4>\r\n<igo-advanced-coordinates></igo-advanced-coordinates>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoFilterModule,\r\n IgoImportExportModule\r\n} from '@igo2/geo';\r\nimport { IgoContextModule } from '@igo2/context';\r\nimport { MapDetailsToolComponent } from './map-details-tool/map-details-tool.component';\r\nimport { MapToolComponent } from './map-tool/map-tool.component';\r\nimport { MapToolsComponent } from './map-tools/map-tools.component';\r\nimport { MapLegendToolComponent } from './map-legend/map-legend-tool.component';\r\nimport { IgoAppWorkspaceModule } from '../workspace/workspace.module';\r\nimport { AdvancedMapToolComponent } from './advanced-map-tool/advanced-map-tool.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AdvancedSwipeComponent } from './advanced-map-tool/advanced-swipe/advanced-swipe.component';\r\nimport { AdvancedCoordinatesComponent } from './advanced-map-tool/advanced-coordinates/advanced-coordinates.component';\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoSpinnerModule,\r\n CommonModule,\r\n MatTabsModule,\r\n MatListModule,\r\n MatIconModule,\r\n IgoLanguageModule,\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoImportExportModule,\r\n IgoFilterModule,\r\n IgoContextModule,\r\n IgoAppWorkspaceModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatTooltipModule\r\n ],\r\n declarations: [ AdvancedMapToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],\r\n exports: [AdvancedMapToolComponent, MapToolComponent, MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMapModule {\r\n static forRoot(): ModuleWithProviders<IgoAppMapModule> {\r\n return {\r\n ngModule: IgoAppMapModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, FeatureWithMeasure } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MeasureState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<FeatureWithMeasure> = new FeatureStore<FeatureWithMeasure>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe((layers) => {\r\n if ((layers.filter(l => l.id.startsWith('igo-measures-')).length === 0)) {\r\n this.store.deleteMany(this.store.all());\r\n this.mapState.map.ol.getOverlays().getArray()\r\n .filter(overlay => (overlay as any).options.className.includes('igo-map-tooltip'))\r\n .map(overlay => this.mapState.map.ol.removeOverlay(overlay));\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, FeatureWithMeasure, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { MeasureState } from '../measure.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'measurer',\r\n title: 'igo.integration.tools.measurer',\r\n icon: 'ruler'\r\n})\r\n@Component({\r\n selector: 'igo-measurer-tool',\r\n templateUrl: './measurer-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MeasurerToolComponent {\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get store(): FeatureStore<FeatureWithMeasure> { return this.measureState.store; }\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private measureState: MeasureState,\r\n private mapState: MapState\r\n ) {}\r\n\r\n}\r\n","<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoMeasurerModule } from '@igo2/geo';\r\n\r\nimport { MeasurerToolComponent } from './measurer-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n IgoMeasurerModule\r\n ],\r\n declarations: [MeasurerToolComponent],\r\n exports: [MeasurerToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMeasurerToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppMeasurerToolModule } from './measurer-tool/measurer-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppMeasurerToolModule\r\n ]\r\n})\r\nexport class IgoAppMeasureModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\n@ToolComponent({\r\n name: 'print',\r\n title: 'igo.integration.tools.print',\r\n icon: 'printer'\r\n})\r\n@Component({\r\n selector: 'igo-print-tool',\r\n templateUrl: './print-tool.component.html'\r\n})\r\nexport class PrintToolComponent {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(private mapState: MapState) {}\r\n}\r\n","<igo-print [map]=\"map\"></igo-print>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoPrintModule } from '@igo2/geo';\r\nimport { PrintToolComponent } from './print-tool/print-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoPrintModule],\r\n declarations: [PrintToolComponent],\r\n exports: [PrintToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppPrintModule {\r\n static forRoot(): ModuleWithProviders<IgoAppPrintModule> {\r\n return {\r\n ngModule: IgoAppPrintModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityRecord, EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreStrategyFuncOptions } from '@igo2/common';\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport { SearchResult, SearchSourceService, SearchSource, CommonVectorStyleOptions } from '@igo2/geo';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchState {\r\n public searchOverlayStyle: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n public focusedOrResolution$$: Subscription;\r\n public selectedOrResolution$$: Subscription;\r\n\r\n readonly searchTermSplitter$: BehaviorSubject<string> = new BehaviorSubject('|');\r\n\r\n readonly searchTerm$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchType$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchDisabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchResultsGeometryEnabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchSettingsChange$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n readonly selectedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(undefined);\r\n\r\n /**\r\n * Store that holds the search results\r\n */\r\n readonly store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n\r\n /**\r\n * Search types currently enabled in the search source service\r\n */\r\n get searchTypes(): string[] {\r\n return this.searchSourceService\r\n .getEnabledSources()\r\n .map((source: SearchSource) => (source.constructor as any).type);\r\n }\r\n\r\n constructor(\r\n private searchSourceService: SearchSourceService,\r\n private storageService: StorageService,\r\n private configService: ConfigService) {\r\n const searchOverlayStyle = this.configService.getConfig('searchOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (searchOverlayStyle) {\r\n this.searchOverlayStyle = searchOverlayStyle.base;\r\n this.searchOverlayStyleSelection = searchOverlayStyle.selection;\r\n this.searchOverlayStyleFocus = searchOverlayStyle.focus;\r\n }\r\n\r\n const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled') as boolean;\r\n if (searchResultsGeometryEnabled) {\r\n this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);\r\n }\r\n this.store.addStrategy(this.createCustomFilterTermStrategy(), false);\r\n }\r\n\r\n private createCustomFilterTermStrategy(): EntityStoreFilterCustomFuncStrategy {\r\n const filterClauseFunc = (record: EntityRecord<SearchResult>) => {\r\n return record.entity.meta.score === 100;\r\n };\r\n return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions);\r\n }\r\n\r\n /**\r\n * Activate custom strategy\r\n *\r\n */\r\n activateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.activate();\r\n }\r\n }\r\n\r\n /**\r\n * Deactivate custom strategy\r\n *\r\n */\r\n deactivateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.deactivate();\r\n }\r\n }\r\n\r\n enableSearch() {\r\n this.searchDisabled$.next(false);\r\n }\r\n\r\n disableSearch() {\r\n this.searchDisabled$.next(true);\r\n }\r\n\r\n setSearchTerm(searchTerm: string) {\r\n this.searchTerm$.next(searchTerm);\r\n }\r\n\r\n setSearchType(searchType: string) {\r\n this.searchSourceService.enableSourcesByType(searchType);\r\n this.searchType$.next(searchType);\r\n }\r\n\r\n setSearchSettingsChange() {\r\n this.searchSettingsChange$.next(true);\r\n }\r\n\r\n setSelectedResult(result: SearchResult) {\r\n this.selectedResult$.next(result);\r\n }\r\n\r\n setSearchResultsGeometryStatus(value) {\r\n this.storageService.set('searchResultsGeometryEnabled', value);\r\n this.searchResultsGeometryEnabled$.next(value);\r\n }\r\n}\r\n","import { Directive, Self, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SearchBarComponent } from '@igo2/geo';\r\nimport { SearchState } from '../search.state';\r\n\r\n@Directive({\r\n selector: '[igoSearchBarBinding]'\r\n})\r\nexport class SearchBarBindingDirective implements OnInit, OnDestroy {\r\n\r\n get searchTerm(): string { return this.searchState.searchTerm$.value; }\r\n get searchType(): string { return this.searchState.searchType$.value; }\r\n\r\n private searchTerm$$: Subscription;\r\n private searchType$$: Subscription;\r\n private searchDisabled$$: Subscription;\r\n\r\n constructor(\r\n @Self() private component: SearchBarComponent,\r\n private searchState: SearchState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.component.setTerm(searchTerm);\r\n }\r\n });\r\n\r\n this.searchType$$ = this.searchState.searchType$.subscribe((searchType: string) => {\r\n if (searchType !== undefined && searchType !== null) {\r\n this.component.setSearchType(searchType);\r\n }\r\n });\r\n\r\n this.searchDisabled$$ = this.searchState.searchDisabled$.subscribe((searchDisabled: boolean) => {\r\n this.component.disabled = searchDisabled;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.searchTerm$$.unsubscribe();\r\n this.searchType$$.unsubscribe();\r\n this.searchDisabled$$.unsubscribe();\r\n }\r\n\r\n @HostListener('searchTermChange', ['$event'])\r\n onSearchTermChange(searchTerm?: string) {\r\n if (searchTerm !== this.searchTerm) {\r\n this.searchState.setSearchTerm(searchTerm);\r\n }\r\n }\r\n\r\n @HostListener('searchTypeChange', ['$event'])\r\n onSearchTypeChange(searchType?: string) {\r\n if (searchType !== this.searchType) {\r\n this.searchState.setSearchType(searchType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoSearchModule } from '@igo2/geo';\r\n\r\nimport { SearchBarBindingDirective } from './search-bar-binding.directive';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [IgoSearchModule],\r\n declarations: [SearchBarBindingDirective],\r\n exports: [SearchBarBindingDirective],\r\n})\r\nexport class IgoAppSearchBarModule {}\r\n","<div *ngIf=\"!store || store.stateView.empty\" style=\"margin: 10px;\">\r\n <section class=\"mat-typography\">\r\n <h4><strong>{{ 'igo.integration.searchResultsTool.noResults' | translate }}</strong></h4>\r\n <p><strong>{{ 'igo.integration.searchResultsTool.doSearch' | translate }}</strong></p>\r\n <div [innerHTML]=\"'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\"></div>\r\n</section>\r\n</div>\r\n\r\n<igo-flexible\r\n *ngIf=\"store && (store.stateView.empty$ | async)===false\"\r\n #topPanel\r\n initial=\"100%\"\r\n initialMobile=\"100%\"\r\n collapsed=\"calc(100% - 58px)\"\r\n collapsedMobile=\"calc(100% - 58px)\"\r\n expanded=\"60%\"\r\n expandedMobile=\"60%\"\r\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-search-results\r\n [store]=\"store\"\r\n [showIcons]=\"showIcons\"\r\n [term]=\"term\"\r\n [termSplitter]=\"termSplitter\"\r\n [settingsChange$]=\"settingsChange$\"\r\n placeholder=\"false\"\r\n (resultFocus)=\"onResultFocus($event)\"\r\n (resultSelect)=\"onResultSelect($event)\"\r\n (resultUnfocus)=\"onResultUnfocus($event)\"\r\n (resultMouseenter)=\"onResultFocus($event)\"\r\n (resultMouseleave)=\"onResultUnfocus($event)\"\r\n (moreResults)=\"onSearch($event)\">\r\n <ng-template #igoSearchItemToolbar let-result=\"result\">\r\n <igo-search-add-button\r\n [map]=\"map\"\r\n [layer]=\"result\">\r\n </igo-search-add-button>\r\n </ng-template>\r\n </igo-search-results>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature$ | async\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"(topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"feature.geometry\"\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n [matTooltip]=\"((isSelectedResultOutOfView$ | async) ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView' : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip') | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"zoomToFeatureExtent()\">\r\n <mat-icon\r\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async)===false\" \r\n svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n igoFeatureDetailsDirective\r\n [feature]=\"feature$ | async\"\r\n [map]=\"map\"\r\n [toolbox]=\"toolState.toolbox\"\r\n (routingEvent)=\"getRoute()\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n</igo-flexible>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olFeature from 'ol/Feature';\r\nimport olPoint from 'ol/geom/Point';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport pointOnFeature from '@turf/point-on-feature';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n EntityStore,\r\n ToolComponent,\r\n FlexibleState,\r\n getEntityTitle,\r\n FlexibleComponent,\r\n EntityState\r\n} from '@igo2/common';\r\n\r\nimport {\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n SearchResult,\r\n IgoMap,\r\n moveToOlFeatures,\r\n Research,\r\n featuresAreTooDeepInView,\r\n featureToOl,\r\n featureFromOl,\r\n getCommonVectorStyle,\r\n getCommonVectorSelectedStyle,\r\n computeOlFeaturesExtent,\r\n featuresAreOutOfView\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\nimport { SearchState } from '../search.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { DirectionState } from '../../directions/directions.state';\r\n\r\n/**\r\n * Tool to browse the search results\r\n */\r\n@ToolComponent({\r\n name: 'searchResults',\r\n title: 'igo.integration.tools.searchResults',\r\n icon: 'magnify'\r\n})\r\n@Component({\r\n selector: 'igo-search-results-tool',\r\n templateUrl: './search-results-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SearchResultsToolComponent implements OnInit, OnDestroy {\r\n /**\r\n * to show hide results icons\r\n */\r\n @Input() showIcons: boolean = true;\r\n\r\n private hasFeatureEmphasisOnSelection: boolean = false;\r\n\r\n private showResultsGeometries$$: Subscription;\r\n private getRoute$$: Subscription;\r\n private shownResultsGeometries: Feature[] = [];\r\n private shownResultsEmphasisGeometries: Feature[] = [];\r\n private focusedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(\r\n undefined\r\n );\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private abstractFocusedResult: Feature;\r\n private abstractSelectedResult: Feature;\r\n\r\n /**\r\n * Store holding the search results\r\n * @internal\r\n */\r\n get store(): EntityStore<SearchResult> {\r\n return this.searchState.store;\r\n }\r\n\r\n /**\r\n * Map to display the results on\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n get feature$(): Observable<Feature> {\r\n return this.store.stateView\r\n .firstBy$((e) => e.state.focused)\r\n .pipe(\r\n map(\r\n (element) =>\r\n (this.feature = element\r\n ? (element.entity.data as Feature)\r\n : undefined)\r\n )\r\n );\r\n }\r\n\r\n public feature: Feature;\r\n\r\n public term = '';\r\n private searchTerm$$: Subscription;\r\n\r\n public settingsChange$ = new BehaviorSubject<boolean>(undefined);\r\n\r\n public topPanelState$ = new BehaviorSubject<FlexibleState>('initial');\r\n private topPanelState$$: Subscription;\r\n\r\n @Input()\r\n set topPanelState(value: FlexibleState) {\r\n this.topPanelState$.next(value);\r\n }\r\n get topPanelState(): FlexibleState {\r\n return this.topPanelState$.value;\r\n }\r\n\r\n get termSplitter(): string {\r\n return this.searchState.searchTermSplitter$.value;\r\n }\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n private elRef: ElementRef,\r\n public toolState: ToolState,\r\n private directionState: DirectionState,\r\n configService: ConfigService\r\n ) {\r\n this.hasFeatureEmphasisOnSelection = configService.getConfig(\r\n 'hasFeatureEmphasisOnSelection'\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe(\r\n (searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.term = searchTerm;\r\n }\r\n }\r\n );\r\n\r\n for (const res of this.store.stateView.all$().value) {\r\n if (this.store.state.get(res.entity).selected === true) {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n this.searchState.searchSettingsChange$.subscribe(() => {\r\n this.settingsChange$.next(true);\r\n });\r\n\r\n this.topPanelState$$ = this.topPanelState$.subscribe(() => {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (selected) {\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n });\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n if (!this.searchState.focusedOrResolution$$) {\r\n this.searchState.focusedOrResolution$$ = combineLatest([\r\n this.focusedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'focused')\r\n );\r\n }\r\n\r\n if (!this.searchState.selectedOrResolution$$) {\r\n this.searchState.selectedOrResolution$$ = combineLatest([\r\n this.searchState.selectedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'selected')\r\n );\r\n }\r\n }\r\n this.monitorResultOutOfView();\r\n\r\n this.showResultsGeometries$$ = combineLatest([\r\n this.searchState.searchResultsGeometryEnabled$,\r\n this.store.stateView.all$(),\r\n this.focusedResult$,\r\n this.searchState.selectedResult$,\r\n this.searchState.searchTerm$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [boolean, { entity: SearchResult, state: EntityState }[], SearchResult, SearchResult, string, number]) => {\r\n\r\n const searchResultsGeometryEnabled = bunch[0];\r\n const searchResults = bunch[1];\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.clearFeatureEmphasis('shown');\r\n }\r\n this.shownResultsGeometries.map(result => this.map.queryResultsOverlay.removeFeature(result));\r\n const featureToHandleGeom = searchResults\r\n .filter(result =>\r\n result.entity.meta.dataType === FEATURE &&\r\n result.entity.data.geometry &&\r\n !result.state.selected &&\r\n !result.state.focused);\r\n\r\n featureToHandleGeom.map(result => {\r\n if (searchResultsGeometryEnabled) {\r\n result.entity.data.meta.style =\r\n getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.entity.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyle,\r\n result.entity.style?.base ? result.entity.style.base : {}\r\n ));\r\n this.shownResultsGeometries.push(result.entity.data as Feature);\r\n this.map.queryResultsOverlay.addFeature(result.entity.data as Feature, FeatureMotion.None);\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.buildResultEmphasis(result.entity as SearchResult<Feature>, 'shown');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.searchState.selectedResult$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1] as SearchResult<Feature>;\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n if (selectedResult.data.geometry) {\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(this.map, [\r\n selectedOlFeature\r\n ]);\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map, selectedOlFeatureExtent)\r\n );\r\n }\r\n });\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult<Feature>,\r\n trigger: 'selected' | 'focused' | 'shown' | undefined\r\n ) {\r\n if (trigger !== 'shown') {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n if (!result || !result.data.geometry) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (featuresAreTooDeepInView(this.map, olGeometry.getExtent() as [number, number, number, number], 0.0025)) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: `${trigger}AbstractResult'`,\r\n geometry: new olPoint([x, y])\r\n });\r\n const abstractResult = featureFromOl(feature1, this.map.projection);\r\n\r\n let computedStyle;\r\n let zIndexOffset = 0;\r\n\r\n switch (trigger) {\r\n case 'focused':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n zIndexOffset = 2;\r\n break;\r\n case 'shown':\r\n computedStyle = getCommonVectorStyle(Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyle,\r\n result.style?.base ? result.style.base : {}));\r\n break;\r\n case 'selected':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n zIndexOffset = 1;\r\n break;\r\n }\r\n abstractResult.meta.style = computedStyle;\r\n abstractResult.meta.style.setZIndex(2000 + zIndexOffset);\r\n this.map.searchResultsOverlay.addFeature(abstractResult, FeatureMotion.None);\r\n if (trigger === 'focused') {\r\n this.abstractFocusedResult = abstractResult;\r\n }\r\n if (trigger === 'selected') {\r\n this.abstractSelectedResult = abstractResult;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.push(abstractResult);\r\n }\r\n } else {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis(trigger: 'selected' | 'focused' | 'shown') {\r\n if (trigger === 'focused' && this.abstractFocusedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);\r\n this.abstractFocusedResult = undefined;\r\n }\r\n if (trigger === 'selected' && this.abstractSelectedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);\r\n this.abstractSelectedResult = undefined;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.map(shownResult => this.map.searchResultsOverlay.removeFeature(shownResult));\r\n this.shownResultsEmphasisGeometries = [];\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.topPanelState$$.unsubscribe();\r\n this.searchTerm$$.unsubscribe();\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.showResultsGeometries$$) {\r\n this.showResultsGeometries$$.unsubscribe();\r\n }\r\n if (this.getRoute$$) {\r\n this.getRoute$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being focused\r\n * @internal\r\n * @param result A search result that could be a feature\r\n */\r\n onResultFocus(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n if (result.meta.dataType === FEATURE && result.data.geometry) {\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n feature.setStyle(result.data.meta.style);\r\n return;\r\n }\r\n this.map.searchResultsOverlay.addFeature(result.data as Feature, FeatureMotion.None);\r\n }\r\n }\r\n\r\n onResultUnfocus(result: SearchResult) {\r\n this.focusedResult$.next(undefined);\r\n if (result.meta.dataType !== FEATURE) {\r\n return;\r\n }\r\n\r\n if (this.store.state.get(result).selected === true) {\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n const style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n feature.setStyle(style);\r\n }\r\n return;\r\n }\r\n this.map.searchResultsOverlay.removeFeature(result.data as Feature);\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being selected\r\n * @internal\r\n * @param result A search result that could be a feature or some layer options\r\n */\r\n onResultSelect(result: SearchResult) {\r\n this.map.searchResultsOverlay.dataSource.ol.clear();\r\n this.tryAddFeatureToMap(result);\r\n this.searchState.setSelectedResult(result);\r\n\r\n if (this.topPanelState === 'expanded') {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n\r\n if (this.topPanelState === 'initial') {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n const newResults = this.store.entities$.value\r\n .filter((result: SearchResult) => result.source !== event.research.source)\r\n .concat(results);\r\n\r\n this.store.load(newResults);\r\n\r\n for (const res of this.store.all()) {\r\n if (\r\n this.store.state.get(res).focused === true &&\r\n this.store.state.get(res).selected !== true\r\n ) {\r\n this.store.state.update(res, { focused: false }, true);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const igoList = this.elRef.nativeElement.querySelector('igo-list');\r\n let moreResults;\r\n event.research.request.subscribe((source) => {\r\n if (!source[0] || !source[0].source) {\r\n moreResults = null;\r\n } else if (source[0].source.getId() === 'icherche') {\r\n moreResults = igoList.querySelector('.icherche .moreResults');\r\n } else if (source[0].source.getId() === 'ilayer') {\r\n moreResults = igoList.querySelector('.ilayer .moreResults');\r\n } else if (source[0].source.getId() === 'nominatim') {\r\n moreResults = igoList.querySelector('.nominatim .moreResults');\r\n } else {\r\n moreResults = igoList.querySelector('.' + source[0].source.getId() + ' .moreResults');\r\n }\r\n\r\n if (\r\n moreResults !== null &&\r\n !this.isScrolledIntoView(igoList, moreResults)\r\n ) {\r\n igoList.scrollTop =\r\n moreResults.offsetTop +\r\n moreResults.offsetHeight -\r\n igoList.clientHeight;\r\n }\r\n });\r\n }, 250);\r\n }\r\n\r\n computeElementRef() {\r\n const items = document.getElementsByTagName('igo-search-results-item');\r\n const igoList = this.elRef.nativeElement.getElementsByTagName(\r\n 'igo-list'\r\n )[0];\r\n let selectedItem;\r\n // eslint-disable-next-line\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].className.includes('igo-list-item-selected')) {\r\n selectedItem = items[i];\r\n }\r\n }\r\n return [igoList, selectedItem];\r\n }\r\n\r\n adjustTopPanel(elemSource, elem) {\r\n if (!this.isScrolledIntoView(elemSource, elem)) {\r\n elemSource.scrollTop =\r\n elem.offsetTop +\r\n elem.children[0].offsetHeight -\r\n elemSource.clientHeight;\r\n }\r\n }\r\n\r\n toggleTopPanel() {\r\n if (this.topPanelState === 'expanded') {\r\n this.topPanelState = 'collapsed';\r\n } else {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const localOlFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [localOlFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map overlay\r\n * @param result A search result that could be a feature\r\n */\r\n private tryAddFeatureToMap(result: SearchResult) {\r\n if (result.meta.dataType !== FEATURE) {\r\n return undefined;\r\n }\r\n const feature = (result as SearchResult<Feature>).data;\r\n\r\n // Somethimes features have no geometry. It happens with some GetFeatureInfo\r\n if (!feature.geometry) {\r\n return;\r\n }\r\n\r\n feature.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n\r\n this.map.searchResultsOverlay.addFeature(feature);\r\n }\r\n\r\n isScrolledIntoView(elemSource, elem) {\r\n const padding = 6;\r\n const docViewTop = elemSource.scrollTop;\r\n const docViewBottom = docViewTop + elemSource.clientHeight;\r\n\r\n const elemTop = elem.offsetTop;\r\n const elemBottom = elemTop + elem.clientHeight + padding;\r\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\r\n }\r\n\r\n getRoute() {\r\n this.toolState.toolbox.activateTool('directions');\r\n this.directionState.stopsStore.clearStops();\r\n setTimeout(() => {\r\n let routingCoordLoaded = false;\r\n if (this.getRoute$$) { this.getRoute$$.unsubscribe(); }\r\n this.getRoute$$ = this.directionState.stopsStore.storeInitialized$.subscribe((init: boolean) => {\r\n if (this.directionState.stopsStore.storeInitialized$.value && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 1);\r\n let coord;\r\n if (this.feature.geometry) {\r\n if (this.feature.geometry.type === 'Point') {\r\n coord = [this.feature.geometry.coordinates[0], this.feature.geometry.coordinates[1]];\r\n } else {\r\n const point = pointOnFeature(this.feature.geometry);\r\n coord = [point.geometry.coordinates[0], point.geometry.coordinates[1]];\r\n }\r\n }\r\n stop.text = this.featureTitle;\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n }\r\n });\r\n }, 250);\r\n }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFlexibleModule, IgoCustomHtmlModule, IgoPanelModule } from '@igo2/common';\r\nimport {\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFeatureDetailsModule\r\n} from '@igo2/geo';\r\n\r\nimport { SearchResultsToolComponent } from './search-results-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatBadgeModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFlexibleModule,\r\n IgoPanelModule,\r\n IgoFeatureDetailsModule,\r\n IgoCustomHtmlModule\r\n ],\r\n declarations: [SearchResultsToolComponent],\r\n exports: [SearchResultsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppSearchResultsToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppSearchBarModule } from './search-bar/search-bar.module';\r\nimport { IgoAppSearchResultsToolModule } from './search-results-tool/search-results-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppSearchBarModule,\r\n IgoAppSearchResultsToolModule\r\n ],\r\n})\r\nexport class IgoAppSearchModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'ogcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter'\r\n})\r\n@Component({\r\n selector: 'igo-ogc-filter-tool',\r\n templateUrl: './ogc-filter-tool.component.html'\r\n})\r\nexport class OgcFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'timeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history'\r\n})\r\n@Component({\r\n selector: 'igo-time-filter-tool',\r\n templateUrl: './time-filter-tool.component.html'\r\n})\r\nexport class TimeFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\r\n","<igo-panel>\r\n <igo-spatial-filter-type\r\n [store]=\"spatialListStore\"\r\n [selectedQueryType]=\"queryType\"\r\n [zone]=\"zone\"\r\n [layers]=\"activeLayers\"\r\n (eventType)=\"getOutputType($event)\"\r\n (eventQueryType)=\"getOutputQueryType($event)\"\r\n (zoneChange)=\"onZoneChange($event)\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (bufferChange)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\">\r\n </igo-spatial-filter-type>\r\n\r\n <igo-spatial-filter-item\r\n [type]=\"type\"\r\n [queryType]=\"queryType\"\r\n [map]=\"map\"\r\n [zone]=\"zone\"\r\n [loading]=\"loading\"\r\n [store]=\"store\"\r\n [layers]=\"activeLayers\"\r\n [allLayers]=\"layers\"\r\n [thematicLength]=\"thematicLength\"\r\n (radiusEvent)=\"buffer = $event\"\r\n (bufferEvent)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\"\r\n (freehandControl)=\"freehandDrawIsActive = $event\"\r\n (drawZoneEvent)=\"zone = $event\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (itemTypeChange)=\"itemType = $event\"\r\n (thematicChange)=\"thematics = $event\"\r\n (toggleSearch)=\"getOutputToggleSearch()\"\r\n (clearButtonEvent)=\"clearMap()\"\r\n (clearSearchEvent)=\"getOutputClearSearch()\"\r\n (export)=\"activateExportTool()\"\r\n (openWorkspace)=\"activateWorkspace()\"\r\n >\r\n </igo-spatial-filter-item>\r\n</igo-panel>\r\n\r\n<igo-panel>\r\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </ng-container>\r\n</igo-panel>","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { Observable, forkJoin, Subject } from 'rxjs';\r\nimport { tap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n IgoMap,\r\n DataSourceService,\r\n LayerService,\r\n Feature,\r\n moveToOlFeatures,\r\n FeatureMotion,\r\n ClusterDataSource,\r\n featureToOl,\r\n DataSource,\r\n QueryableDataSourceOptions,\r\n SpatialFilterService,\r\n SpatialFilterType,\r\n SpatialFilterItemType,\r\n SpatialFilterQueryType,\r\n SpatialFilterThematic,\r\n Layer,\r\n createOverlayMarkerStyle,\r\n ExportOptions,\r\n MeasureLengthUnit\r\n} from '@igo2/geo';\r\nimport { EntityStore, ToolComponent } from '@igo2/common';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olSourceVector from 'ol/source/Vector';\r\nimport olSourceCluster from 'ol/source/Cluster';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState } from './../../import-export/import-export.state';\r\nimport * as olstyle from 'ol/style';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\n\r\n/**\r\n * Tool to apply spatial filter\r\n */\r\n@ToolComponent({\r\n name: 'spatialFilter',\r\n title: 'igo.integration.tools.spatialFilter',\r\n icon: 'selection-marker'\r\n})\r\n/**\r\n * Spatial Filter Type\r\n */\r\n@Component({\r\n selector: 'igo-spatial-filter-tool',\r\n templateUrl: './spatial-filter-tool.component.html',\r\n styleUrls: ['./spatial-filter-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SpatialFilterToolComponent implements OnInit, OnDestroy {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() type: SpatialFilterType;\r\n @Input() itemType: SpatialFilterItemType = SpatialFilterItemType.Address;\r\n @Input() freehandDrawIsActive: boolean;\r\n\r\n public layers: Layer[] = [];\r\n public activeLayers: Layer[] = [];\r\n\r\n public queryType: SpatialFilterQueryType;\r\n public thematics: SpatialFilterThematic[];\r\n public zone: Feature;\r\n public zoneWithBuffer: Feature;\r\n public buffer = 0;\r\n\r\n public iterator = 1;\r\n\r\n public selectedFeature$: BehaviorSubject<Feature> = new BehaviorSubject(\r\n undefined\r\n );\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n public store: EntityStore<Feature> = new EntityStore<Feature>([]); // Store to print results at the end\r\n\r\n public spatialListStore: EntityStore<Feature> = new EntityStore<Feature>([]);\r\n\r\n public loading = false;\r\n\r\n public thematicLength = 0;\r\n\r\n public measureUnit: MeasureLengthUnit = MeasureLengthUnit.Meters;\r\n private unsubscribe$ = new Subject<void>();\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private spatialFilterService: SpatialFilterService,\r\n private dataSourceService: DataSourceService,\r\n private layerService: LayerService,\r\n private mapState: MapState,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private importExportState: ImportExportState,\r\n private toolState: ToolState,\r\n private workspaceState: WorkspaceState,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n for (const layer of this.map.layers) {\r\n if (layer.title && layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {\r\n this.layers.push(layer);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getOutputType(event: SpatialFilterType) {\r\n this.type = event;\r\n this.queryType = undefined;\r\n }\r\n\r\n getOutputQueryType(event: SpatialFilterQueryType) {\r\n this.queryType = event;\r\n if (this.queryType) {\r\n this.loadFilterList();\r\n }\r\n }\r\n\r\n activateExportTool() {\r\n const ids = [];\r\n for (const layer of this.layers) {\r\n ids.push(layer.id);\r\n }\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.importExportState.setsExportOptions({ layers: ids } as ExportOptions);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateWorkspace() {\r\n let layerToOpenWks;\r\n this.workspaceState.store.entities$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n if (this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n if (this.itemType === SpatialFilterItemType.Thematics) {\r\n for (const thematic of this.thematics) {\r\n if (!thematic.zeroResults) {\r\n layerToOpenWks = this.activeLayers.find(layer => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));\r\n break;\r\n }\r\n }\r\n } else {\r\n const title = 'Adresses ' + this.iterator.toString();\r\n this.activeLayers.forEach((layer) => {\r\n if (layer.title.includes(title)) {\r\n layerToOpenWks = layer;\r\n }\r\n });\r\n }\r\n\r\n if (layerToOpenWks) {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(layerToOpenWks.id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private loadFilterList() {\r\n this.spatialFilterService\r\n .loadFilterList(this.queryType)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((features: Feature[]) => {\r\n features.sort((a, b) => {\r\n if (a.properties.nom < b.properties.nom) {\r\n return -1;\r\n }\r\n if (a.properties.nom > b.properties.nom) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.spatialListStore.clear();\r\n this.spatialListStore.load(features);\r\n });\r\n }\r\n\r\n getOutputToggleSearch() {\r\n this.loadThematics();\r\n }\r\n\r\n getOutputClearSearch() {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n\r\n clearMap() {\r\n this.map.removeLayers(this.layers);\r\n this.layers = [];\r\n this.activeLayers = [];\r\n this.thematicLength = 0;\r\n this.iterator = 1;\r\n if (this.type === SpatialFilterType.Predefined) {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n }\r\n\r\n private loadThematics() {\r\n this.loading = true;\r\n let zeroResults = true;\r\n let thematics;\r\n if (this.buffer === 0 || this.type === SpatialFilterType.Point) {\r\n this.tryAddFeaturesToMap([this.zone]);\r\n }\r\n if (this.itemType !== SpatialFilterItemType.Thematics) {\r\n const theme: SpatialFilterThematic = {\r\n name: ''\r\n };\r\n thematics = [theme];\r\n } else {\r\n thematics = this.thematics;\r\n }\r\n if (this.measureUnit === MeasureLengthUnit.Kilometers && this.type !== SpatialFilterType.Point) {\r\n this.buffer = this.buffer * 1000;\r\n }\r\n if (this.type === SpatialFilterType.Polygon) {\r\n this.buffer = 0; // to avoid buffer enter a second time in terrAPI\r\n }\r\n\r\n const observables$: Observable<Feature[]>[] = [];\r\n thematics.forEach(thematic => {\r\n observables$.push(\r\n this.spatialFilterService\r\n .loadFilterItem(\r\n this.zone,\r\n this.itemType,\r\n this.queryType,\r\n thematic,\r\n this.buffer\r\n )\r\n .pipe(\r\n tap((features: Feature[]) => {\r\n this.store.insertMany(features);\r\n const featuresPoint: Feature[] = [];\r\n const featuresLinePoly: Feature[] = [];\r\n let idPoint;\r\n let idLinePoly;\r\n features.forEach(feature => {\r\n if (feature.geometry.type === 'Point') {\r\n feature.properties.longitude = feature.geometry.coordinates[0];\r\n feature.properties.latitude = feature.geometry.coordinates[1];\r\n featuresPoint.push(feature);\r\n idPoint = feature.meta.id;\r\n } else {\r\n featuresLinePoly.push(feature);\r\n idLinePoly = feature.meta.id;\r\n }\r\n });\r\n\r\n this.tryAddPointToMap(featuresPoint, idPoint);\r\n this.tryAddLayerToMap(featuresLinePoly, idLinePoly);\r\n if (features.length) {\r\n zeroResults = false;\r\n this.thematicLength += 1;\r\n thematic.zeroResults = false;\r\n this.cdRef.detectChanges();\r\n } else {\r\n thematic.zeroResults = true;\r\n }\r\n\r\n if (features.length >= 10000) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.maxSizeAlert'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n })\r\n )\r\n );\r\n });\r\n\r\n forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.loading = false;\r\n if (zeroResults) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.zeroResults'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n });\r\n }\r\n\r\n onZoneChange(feature: Feature, buffer?: boolean) {\r\n this.zone = feature;\r\n if (feature) {\r\n buffer ? this.tryAddFeaturesToMap([feature], true) : this.tryAddFeaturesToMap([feature]);\r\n this.zoomToFeatureExtent(feature);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add zone feature to the map overlay\r\n */\r\n public tryAddFeaturesToMap(features: Feature[], buffer?: boolean) {\r\n let i = 1;\r\n for (const feature of features) {\r\n if (this.type === SpatialFilterType.Predefined) {\r\n for (const layer of this.layers) {\r\n if (\r\n layer.options._internal &&\r\n layer.options._internal.code === feature.properties.code &&\r\n !buffer\r\n ) {\r\n if (!layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n }\r\n return;\r\n }\r\n if (layer.title?.startsWith('Zone')) {\r\n this.activeLayers = [];\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n } else {\r\n if (buffer) {\r\n for (const layer of this.activeLayers) {\r\n if (this.activeLayers.length === 1 && layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n }\r\n this.activeLayers = [];\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith('Zone')) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n title: ('Zone ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n workspace: { enabled: true },\r\n _internal: {\r\n code:\r\n this.type === SpatialFilterType.Predefined\r\n ? feature.properties.code\r\n : undefined\r\n },\r\n source: dataSource,\r\n visible: true,\r\n style: (_feature, resolution) => {\r\n const coordinates = (features[0] as any).coordinates;\r\n return new olstyle.Style({\r\n image: new olstyle.Circle({\r\n radius: coordinates\r\n ? this.buffer /\r\n Math.cos((Math.PI / 180) * coordinates[1]) /\r\n resolution\r\n : undefined,\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n })\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n }),\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n })\r\n });\r\n }\r\n });\r\n const featuresOl = features.map(f => {\r\n return featureToOl(f, this.map.projection);\r\n });\r\n if (this.type !== SpatialFilterType.Predefined) {\r\n const type = this.type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';\r\n featuresOl[0].set('nom', 'Zone', true);\r\n featuresOl[0].set('type', type, true);\r\n }\r\n const ol = dataSource.ol as olSourceVector<OlGeometry> | olSourceCluster;\r\n ol.addFeatures(featuresOl);\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.activeLayers.push(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Try to add point features to the map\r\n * Necessary to create clusters\r\n */\r\n private tryAddPointToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'cluster',\r\n id,\r\n queryable: true,\r\n distance: 120,\r\n meta: {\r\n title: 'Cluster'\r\n }\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: ClusterDataSource) => {\r\n const icon = features[0].meta.icon;\r\n let style: olstyle.Style;\r\n if (!icon) {\r\n style = createOverlayMarkerStyle();\r\n } else {\r\n style = this.createSvgIcon(icon) || createOverlayMarkerStyle();\r\n }\r\n\r\n const olLayer = this.layerService.createLayer({\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true,\r\n style\r\n });\r\n\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceCluster;\r\n ol.getSource().addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.iterator = i;\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private createSvgIcon(icon): olstyle.Style {\r\n let style: olstyle.Style;\r\n this.matIconRegistry.getNamedSvgIcon(icon).subscribe(svgObj => {\r\n const xmlSerializer = new XMLSerializer();\r\n svgObj.setAttribute('width', '30');\r\n svgObj.setAttribute('height', '30');\r\n svgObj.setAttribute('fill', 'rgba(0, 128, 255)');\r\n svgObj.setAttribute('stroke', 'white');\r\n const svg = xmlSerializer.serializeToString(svgObj);\r\n style = new olstyle.Style({\r\n image: new olstyle.Icon({\r\n src: 'data:image/svg+xml;utf8,' + svg\r\n })\r\n });\r\n });\r\n return style;\r\n }\r\n /**\r\n * Try to add line or polygon features to the map\r\n */\r\n private tryAddLayerToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n id,\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true\r\n });\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceVector<OlGeometry>;\r\n ol.addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n zoomToFeatureExtent(feature) {\r\n if (feature) {\r\n const olFeature = this.format.readFeature(feature, {\r\n dataProjection: feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n pushLayer(layer) {\r\n for (const lay of this.activeLayers) {\r\n if (lay.id === layer.id) {\r\n return;\r\n }\r\n }\r\n\r\n this.activeLayers.push(layer);\r\n }\r\n}\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap, Layer } from '@igo2/geo';\r\nimport { toolSlideInOut } from './active-time-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeTimeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-time-filter-tool',\r\n templateUrl: './active-time-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveTimeFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-time-filter-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-time-filter-item>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { Layer, IgoMap } from '@igo2/geo';\r\n\r\nimport { toolSlideInOut } from './active-ogc-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeOgcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-ogc-filter-tool',\r\n templateUrl: './active-ogc-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveOgcFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-ogc-filterable-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-ogc-filterable-item>\r\n\r\n\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IgoFilterModule, IgoQueryModule } from '@igo2/geo';\r\nimport { OgcFilterToolComponent } from './ogc-filter-tool/ogc-filter-tool.component';\r\nimport { TimeFilterToolComponent } from './time-filter-tool/time-filter-tool.component';\r\nimport { SpatialFilterToolComponent } from './spatial-filter-tool/spatial-filter-tool.component';\r\nimport { ActiveTimeFilterToolComponent } from './active-time-filter-tool/active-time-filter-tool.component';\r\nimport { ActiveOgcFilterToolComponent } from './active-ogc-filter-tool/active-ogc-filter-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoFilterModule, IgoQueryModule, CommonModule],\r\n declarations: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n exports: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppFilterModule {\r\n static forRoot(): ModuleWithProviders<IgoAppFilterModule> {\r\n return {\r\n ngModule: IgoAppFilterModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<p></p>\r\n<igo-interactive-tour\r\n mat-raised-button\r\n tourToStart=\"global\"\r\n menuIsOpen=true\r\n styleButton=\"raised\"\r\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\">\r\n</igo-interactive-tour>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n (click)=\"openGuide()\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let guide of trainingGuideURLs\" mat-menu-item (click)=\"openGuide(guide)\">{{formatFileName(guide)}}</button>\r\n</mat-menu>\r\n\r\n<igo-custom-html *ngIf=\"headerHtml !== ''\" class=\"mat-typography\"\r\n [html]=\"headerHtml | translate\">\r\n</igo-custom-html>\r\n\r\n<igo-custom-html class=\"mat-typography\"\r\n [html]=\"html | translate: {version: version}\">\r\n</igo-custom-html>\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ConfigService, LanguageService, Version } from '@igo2/core';\r\nimport { of } from 'rxjs';\r\nimport type { Observable } from 'rxjs';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@ToolComponent({\r\n name: 'about',\r\n title: 'igo.integration.tools.about',\r\n icon: 'help-circle'\r\n})\r\n@Component({\r\n selector: 'igo-about-tool',\r\n templateUrl: './about-tool.component.html',\r\n styleUrls: ['./about-tool.component.scss']\r\n})\r\nexport class AboutToolComponent implements OnInit {\r\n @Input()\r\n get headerHtml() {\r\n return this._headerHtml;\r\n }\r\n set headerHtml(value: string) {\r\n this._headerHtml = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n\r\n @Input()\r\n get html() {\r\n return this._html;\r\n }\r\n set html(value: string) {\r\n this._html = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n private _discoverTitleInLocale: string = 'IGO';\r\n public discoverTitleInLocale$: Observable<string> = of(this._discoverTitleInLocale);\r\n\r\n @Input()\r\n get discoverTitleInLocale() {\r\n return this._discoverTitleInLocale;\r\n }\r\n set discoverTitleInLocale(value: string) {\r\n this._discoverTitleInLocale = value;\r\n this.discoverTitleInLocale$ = of(value);\r\n }\r\n\r\n @Input() trainingGuideURLs;\r\n\r\n public version: Version;\r\n private _html: string = 'igo.integration.aboutTool.html';\r\n private _headerHtml: string = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');\r\n\r\n private baseUrlProfil;\r\n private baseUrlGuide;\r\n\r\n public loading = false;\r\n\r\n constructor(\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private http: HttpClient,\r\n private cdRef: ChangeDetectorRef,\r\n private languageService: LanguageService) {\r\n this.version = configService.getConfig('version');\r\n this.baseUrlProfil = configService.getConfig('context.url') + '/user/igo?';\r\n this.baseUrlGuide = configService.getConfig('depot.url') + '/projects/Documentation/files/';\r\n }\r\n\r\n ngOnInit() {\r\n if (this.auth.authenticated && this.configService.getConfig('context.url')) {\r\n this.http.get(this.baseUrlProfil).subscribe((profil) => {\r\n const recast = profil as any;\r\n this.trainingGuideURLs = recast.guides;\r\n this.cdRef.detectChanges();\r\n });\r\n } else if (\r\n this.auth.authenticated &&\r\n !this.configService.getConfig('context.url') &&\r\n this.configService.getConfig('depot.trainingGuides')) {\r\n this.trainingGuideURLs = this.configService.getConfig('depot.trainingGuides');\r\n }\r\n }\r\n\r\n openGuide(guide?) {\r\n this.loading = true;\r\n const url = guide ?\r\n this.baseUrlGuide + guide + '?' :\r\n this.baseUrlGuide + this.trainingGuideURLs[0] + '?';\r\n this.http\r\n .get(url, {\r\n responseType: 'blob'\r\n })\r\n .subscribe(() => {\r\n this.loading = false;\r\n window.open(url, '_blank');\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n formatFileName(name: string) {\r\n name = name.split('_').join(' ');\r\n const index = name.indexOf('.');\r\n name = name.slice(0, index);\r\n return name;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\n\r\nimport { AboutToolComponent } from './about-tool/about-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n IgoInteractiveTourModule,\r\n CommonModule\r\n ],\r\n declarations: [AboutToolComponent],\r\n exports: [AboutToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppAboutModule {\r\n static forRoot(): ModuleWithProviders<IgoAppAboutModule> {\r\n return {\r\n ngModule: IgoAppAboutModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppStorageModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppAnalyticsModule } from './analytics/analytics.module';\r\nimport { IgoAppContextModule } from './context/context.module';\r\nimport { IgoAppCatalogModule } from './catalog/catalog.module';\r\nimport { IgoAppDirectionsModule } from './directions/directions.module';\r\nimport { IgoAppDrawModule } from './draw/draw.module';\r\nimport { IgoAppWorkspaceModule } from './workspace/workspace.module';\r\nimport { IgoAppImportExportModule } from './import-export/import-export.module';\r\nimport { IgoAppMapModule } from './map/map.module';\r\nimport { IgoAppMeasureModule } from './measure/measure.module';\r\nimport { IgoAppPrintModule } from './print/print.module';\r\nimport { IgoAppSearchModule } from './search/search.module';\r\nimport { IgoAppFilterModule } from './filter/filter.module';\r\nimport { IgoAppAboutModule } from './about/about.module';\r\nimport { IgoAppStorageModule } from './storage/storage.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppStorageModule,\r\n IgoAppAnalyticsModule,\r\n IgoAppContextModule,\r\n IgoAppCatalogModule,\r\n IgoAppDirectionsModule,\r\n IgoAppDrawModule,\r\n IgoAppWorkspaceModule,\r\n IgoAppImportExportModule,\r\n IgoAppMapModule,\r\n IgoAppMeasureModule,\r\n IgoAppPrintModule,\r\n IgoAppSearchModule,\r\n IgoAppFilterModule,\r\n IgoAppAboutModule\r\n ]\r\n})\r\nexport class IgoIntegrationModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppToolModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\nimport { Tool, ToolService } from '@igo2/common';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\n\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the context module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextState {\r\n /**\r\n * Observable of the active context\r\n */\r\n context$: BehaviorSubject<DetailedContext> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private toolService: ToolService,\r\n private toolState: ToolState,\r\n private languageService: LanguageService\r\n ) {\r\n this.contextService.context$.subscribe((context: DetailedContext) => {\r\n this.onContextChange(context);\r\n });\r\n this.contextService.toolsChanged$.subscribe((context: DetailedContext) => {\r\n this.updateTools(context);\r\n });\r\n }\r\n\r\n /**\r\n * Set the active context\r\n * @param context Detailed context\r\n */\r\n private setContext(context: DetailedContext) {\r\n this.updateTools(context);\r\n this.context$.next(context);\r\n }\r\n\r\n /**\r\n * Update the tool state with the context's tools\r\n * @param context Detailed context\r\n */\r\n private updateTools(context: DetailedContext) {\r\n const toolbox = this.toolState.toolbox;\r\n\r\n const tools = [];\r\n const contextTools = context.tools || [];\r\n contextTools.forEach((contextTool: Tool) => {\r\n const baseTool = this.toolService.getTool(contextTool.name);\r\n if (baseTool === undefined) {\r\n return;\r\n }\r\n\r\n const options = Object.assign(\r\n {},\r\n baseTool.options || {},\r\n contextTool.options || {}\r\n );\r\n const tool = Object.assign({}, baseTool, contextTool, { options });\r\n tools.push(tool);\r\n });\r\n\r\n tools.forEach((tool) => {\r\n if (tool.parent) {\r\n const parentIndex = tools.findIndex((el) => el.name === tool.parent);\r\n if (parentIndex !== -1) {\r\n tools[parentIndex].children = [];\r\n tools[parentIndex].children.push(tool.name);\r\n }\r\n }\r\n });\r\n\r\n toolbox.setTools(tools);\r\n toolbox.setToolbar(context.toolbar || []);\r\n\r\n // TODO: This is a patch so the context service can work without\r\n // injecting the ToolState or without being completely refactored\r\n this.contextService.setTools([].concat(tools));\r\n this.contextService.setToolbar(context.toolbar || []);\r\n }\r\n\r\n /**\r\n * Set a new context and update the tool state\r\n * @param context Detailed context\r\n */\r\n private onContextChange(context: DetailedContext) {\r\n if (context === undefined) {\r\n return;\r\n }\r\n this.setContext(context);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { skip } from 'rxjs/operators';\r\n\r\nimport { AnalyticsService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ContextState } from '../context/context.state';\r\nimport { SearchState } from '../search/search.state';\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsListenerService {\r\n /**\r\n * Toolbox that holds main tools\r\n */\r\n\r\n constructor(\r\n private analyticsService: AnalyticsService,\r\n private authService: AuthService,\r\n private contextState: ContextState,\r\n private searchState: SearchState,\r\n private toolState: ToolState\r\n ) {}\r\n\r\n listen() {\r\n this.listenUser();\r\n this.listenContext();\r\n this.listenTool();\r\n this.listenSearch();\r\n }\r\n\r\n listenUser() {\r\n this.authService.authenticate$.subscribe(() => {\r\n const tokenDecoded = this.authService.decodeToken() || {};\r\n if (tokenDecoded.user) {\r\n this.authService\r\n .getProfils()\r\n .subscribe(profils =>\r\n this.analyticsService.setUser(tokenDecoded.user, profils.profils)\r\n );\r\n } else {\r\n this.analyticsService.setUser();\r\n }\r\n });\r\n }\r\n\r\n listenContext() {\r\n this.contextState.context$.subscribe(context => {\r\n if (context) {\r\n this.analyticsService.trackEvent('context', 'activateContext', context.id || context.uri);\r\n }\r\n });\r\n }\r\n\r\n listenTool() {\r\n this.toolState.toolbox.activeTool$.pipe(skip(1)).subscribe(tool => {\r\n if (tool) {\r\n this.analyticsService.trackEvent('tool', 'activateTool', tool.name);\r\n }\r\n });\r\n }\r\n\r\n listenSearch() {\r\n this.searchState.searchTerm$.pipe(skip(1)).subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.analyticsService.trackSearch(searchTerm, this.searchState.store.count);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { CommonVectorStyleOptions, SearchResult } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the query module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryState {\r\n /**\r\n * Store that holds the query results\r\n */\r\n public store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n public queryOverlayStyle: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n constructor(private configService: ConfigService) {\r\n const queryOverlayStyle = this.configService.getConfig('queryOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (queryOverlayStyle) {\r\n this.queryOverlayStyle = queryOverlayStyle.base;\r\n this.queryOverlayStyleSelection = queryOverlayStyle.selection;\r\n this.queryOverlayStyleFocus = queryOverlayStyle.focus;\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tools\r\n */\r\n\r\nexport * from './lib/integration.module';\r\nexport * from './lib/about/about.module';\r\nexport * from './lib/analytics/analytics.module';\r\nexport * from './lib/storage/storage.module';\r\nexport * from './lib/context/context.module';\r\nexport * from './lib/catalog/catalog.module';\r\n\r\nexport * from './lib/directions/directions.module';\r\nexport * from './lib/draw/draw.module';\r\nexport * from './lib/workspace/workspace.module';\r\nexport * from './lib/filter/filter.module';\r\nexport * from './lib/import-export/import-export.module';\r\nexport * from './lib/map/map.module';\r\nexport * from './lib/measure/measure.module';\r\nexport * from './lib/print/print.module';\r\nexport * from './lib/search/search.module';\r\nexport * from './lib/tool/tool.module';\r\n\r\nexport * from './lib/about';\r\nexport * from './lib/analytics';\r\nexport * from './lib/context';\r\nexport * from './lib/catalog';\r\nexport * from './lib/directions';\r\nexport * from './lib/draw';\r\nexport * from './lib/workspace';\r\nexport * from './lib/filter';\r\nexport * from './lib/import-export';\r\nexport * from './lib/map';\r\nexport * from './lib/measure';\r\nexport * from './lib/print';\r\nexport * from './lib/search';\r\nexport * from './lib/tool';\r\nexport * from './lib/storage';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgModule","ImportExportType","ImportExportMode","BehaviorSubject","Injectable","ContextEditorToolComponent","i0","ToolComponent","Component","IgoMap","ContextManagerToolComponent","Input","ContextPermissionManagerToolComponent","ContextShareToolComponent","IgoContextModule","CUSTOM_ELEMENTS_SCHEMA","EntityStore","CatalogLibraryToolComponent","take","ChangeDetectionStrategy","CommonModule","IgoCatalogLibraryModule","CatalogBrowserToolComponent","IgoCatalogBrowserModule","Subject","StopsStore","StopsFeatureStore","RoutesFeatureStore","StepFeatureStore","DirectionsToolComponent","StorageScope","IgoDirectionsModule","FeatureStore","DrawingToolComponent","IgoDrawingToolModule","FeatureStoreSelectionStrategy","FeatureMotion","skipWhile","StorageServiceEventEnum","mapExtentStrategyActiveToolTip","noElementSelected","EntityStoreFilterCustomFuncStrategy","EntityStoreFilterSelectionStrategy","map","OgcFilterWidget","Inject","WorkspaceStore","WfsWorkspace","FeatureWorkspace","combineLatest","MatIconModule","MatButtonModule","MatTooltipModule","IgoLanguageModule","ImportExportToolComponent","IgoImportExportModule","IgoContextImportExportModule","MatButtonToggleModule","MatTabsModule","MapDetailsToolComponent","LayerListControlsEnum","sourceCanSearch","MapToolComponent","MapToolsComponent","debounceTime","VectorLayer","ViewChild","MapLegendToolComponent","ReplaySubject","Validators","zoneMtm","zoneUtm","Clipboard","computeProjectionsConstraints","olproj","AdvancedMapToolComponent","FormsModule","ReactiveFormsModule","MatDividerModule","MatSelectModule","MatOptionModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","IgoSpinnerModule","MatListModule","IgoLayerModule","IgoMetadataModule","IgoDownloadModule","IgoFilterModule","MatSlideToggleModule","MatMenuModule","MeasurerToolComponent","IgoMeasurerModule","PrintToolComponent","IgoPrintModule","Directive","Self","HostListener","IgoSearchModule","SearchResultsToolComponent","olFormatGeoJSON","getEntityTitle","FlexibleComponent","FEATURE","getCommonVectorStyle","featureToOl","computeOlFeaturesExtent","featuresAreOutOfView","featuresAreTooDeepInView","olFeature","olPoint","featureFromOl","getCommonVectorSelectedStyle","moveToOlFeatures","pointOnFeature","MatBadgeModule","IgoFeatureModule","IgoFlexibleModule","IgoPanelModule","IgoFeatureDetailsModule","IgoCustomHtmlModule","OgcFilterToolComponent","TimeFilterToolComponent","SpatialFilterToolComponent","SpatialFilterItemType","MeasureLengthUnit","takeUntil","SpatialFilterType","tap","forkJoin","olstyle","createOverlayMarkerStyle","toolSlideInOut","trigger","state","style","transition","animate","ActiveTimeFilterToolComponent","ActiveOgcFilterToolComponent","IgoQueryModule","AboutToolComponent","of","IgoInteractiveTourModule","skip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOA;;;;8FAAa,qBAAqB;sFAArB,qBAAqB;0FAJvB,EAAE;;2FAIA,qBAAqB;sBALjCA,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE;qBACZ;;;;ICND;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;ACzOYC;IAAZ,WAAY,gBAAgB;QAC1B,mCAAe,CAAA;QACf,uCAAmB,CAAA;IACrB,CAAC,EAHWA,wBAAgB,KAAhBA,wBAAgB,QAG3B;AAEWC;IAAZ,WAAY,gBAAgB;QAC1B,qCAAiB,CAAA;QACjB,qCAAiB,CAAA;IACnB,CAAC,EAHWA,wBAAgB,KAAhBA,wBAAgB,QAG3B;IAED;;;;QAGA;YAKW,sBAAiB,GAAsC,IAAIC,oBAAe,CAACF,wBAAgB,CAAC,KAAK,CAAC,CAAC;YACnG,kBAAa,GAAsC,IAAIE,oBAAe,CAACD,wBAAgB,CAAC,MAAM,CAAC,CAAC;YAChG,mBAAc,GAAmC,IAAIC,oBAAe,CAAC,SAAS,CAAC,CAAC;SAc1F;QAZC,+CAAmB,GAAnB,UAAoB,IAAsB;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,mCAAO,GAAP,UAAQ,IAAsB;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;QAED,6CAAiB,GAAjB,UAAkB,aAA4B;YAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACzC;;;sFAhBQ,iBAAiB;sFAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;2FAEP,iBAAiB;sBAH7BC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICZD;;;;QAaE,mBACU,WAAwB,EACxB,iBAAoC;YADpC,gBAAW,GAAX,WAAW,CAAa;YACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;YAJvC,iBAAY,GAA6B,IAAID,oBAAe,CAAC,SAAS,CAAC,CAAC;SAKzE;QATN,sBAAI,8BAAO;iBAAX;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;aACjC;;;WAAA;QASC,6CAAyB,GAAzB,UAA0B,cAA+D;YACzF,IAAI,CAAC,cAAc,EAAE;gBAAE,OAAO;aAAE;YAChC,IAAI,cAAc,CAAC,IAAI,KAAK,cAAc,EAAE;gBAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC/E,IAAI,CAAC,aAAa,EAAE;oBAClB,aAAa,GAAG;wBACd,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;wBACrC,kBAAkB,EAAE,cAAc,CAAC,OAAO,CAAC,kBAAkB;qBAC9D,CAAC;iBACH;qBAAM;oBACL,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;oBACrD,aAAa,CAAC,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;iBAC9E;gBACD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBACxD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACD,wBAAgB,CAAC,MAAM,CAAC,CAAC;aACzD;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;;;sEAjCU,SAAS;8EAAT,SAAS,WAAT,SAAS,mBAFR,MAAM;;2FAEP,SAAS;sBAHrBE,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ACEYC,sCAA0B;QAErC,oCAAoB,SAAoB;YAApB,cAAS,GAAT,SAAS,CAAW;SAAI;QAE5C,oDAAe,GAAf;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;SAC/C;yCACF;SAAA;gHAPYA,kCAA0B;oGAA1BA,kCAA0B;;gBCfvCC,sDAGC;gBADCA,gJAAmB,qBAAiB,IAAC;gBACtCA,4BAAmB;;;ADYPD,sCAA0B;QAVtCE,gBAAa,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,gBAAgB;SACzB,CAAC;OAKWF,kCAA0B,CAOtC;;2FAPYA,kCAA0B;sBAJtCG,YAAS;uBAAC;wBACT,QAAQ,EAAE,yBAAyB;wBACnC,WAAW,EAAE,sCAAsC;qBACpD;;;;IEXD;IAEA;;;;QAwBE,kBACU,UAAsB,EACtB,iBAAoC;;YADpC,eAAU,GAAV,UAAU,CAAY;YACtB,sBAAiB,GAAjB,iBAAiB,CAAmB;YAE5C,IAAI,CAAC,IAAI,GAAG,IAAIC,SAAM,CAAC;gBACrB,QAAQ,EAAE;oBACR,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE;wBACX,SAAS,EAAE,IAAI;qBAChB;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClC;QA7BD,sBAAI,yCAAmB;;iBAAvB;gBACE,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAChC;iBAED,UAAwB,KAAK;gBAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;;;WAJA;QAUD,sBAAI,yBAAG;;;;iBAAP,cAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE;;;WAAA;;;oEAf5B,QAAQ;6EAAR,QAAQ,WAAR,QAAQ,mBAFP,MAAM;;2FAEP,QAAQ;sBAHpBL,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ACOYM,uCAA2B;QAMtC,qCAAoB,SAAoB,EAAU,QAAkB;YAAhD,cAAS,GAAT,SAAS,CAAW;YAAU,aAAQ,GAAR,QAAQ,CAAU;YAJ3D,8BAAyB,GAAW,UAAU,CAAC;SAIgB;QAFxE,sBAAI,4CAAG;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;QAI/C,iDAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SACtD;QAED,uDAAiB,GAAjB;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;SACjE;0CACF;SAAA;kHAfYA,mCAA2B;qGAA3BA,mCAA2B;;gBCjBxCJ,sDAI4C;gBAD1CA,2HAAQ,iBAAa,IAAC,6HACD,uBAAmB,IADlB;gBAExBA,4BAAmB;;;gBAHjBA,wCAAW;;;ADeAI,uCAA2B;QATvCH,gBAAa,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,MAAM;SACb,CAAC;OAKWG,mCAA2B,CAevC;;2FAfYA,mCAA2B;sBAJvCF,YAAS;uBAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,uCAAuC;qBACrD;qFAGU,yBAAyB;0BAAjCG,QAAK;;;;AELKC,iDAAqC;;SAAG;oDAAA;SAAA;sIAAxCA,6CAAqC;+GAArCA,6CAAqC;;gBCdlDN,wDAAgF;;;ADcnEM,iDAAqC;QAVjDL,gBAAa,CAAC;YACb,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,gBAAgB;SACzB,CAAC;OAKWK,6CAAqC,CAAG;;2FAAxCA,6CAAqC;sBAJjDJ,YAAS;uBAAC;wBACT,QAAQ,EAAE,qCAAqC;wBAC/C,WAAW,EAAE,kDAAkD;qBAChE;;;;IETD;;;IAMA;QAHA;YAKa,aAAQ,GAA4B,IAAIL,oBAAe,CAAC,EAAE,CAAC,CAAC;YAC5D,eAAU,GAA6B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YACtE,iBAAY,GAA6B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YACxE,iBAAY,GAA4B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;SAyBnF;QAvBG,uCAAU,GAAV,UAAW,OAAe;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;QAEH,yCAAY,GAAZ,UAAa,IAAa;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;QAEH,2CAAc,GAAd,UAAe,WAAoB;YAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACrC;QAEH,2CAAc,GAAd,UAAe,GAAW;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7B;QAED,iDAAoB,GAApB;YACE,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC5B,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;gBACpC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;aACjC,CAAC;SACH;;;wFA7BQ,kBAAkB;uFAAlB,kBAAkB,WAAlB,kBAAkB,mBAFf,MAAM;;2FAET,kBAAkB;sBAH9BC,aAAU;uBAAC;wBACR,UAAU,EAAE,MAAM;qBACrB;;;;ACQYS,qCAAyB;QAMpC,mCACU,QAAkB,EAClB,kBAAsC;YADtC,aAAQ,GAAR,QAAQ,CAAU;YAClB,uBAAkB,GAAlB,kBAAkB,CAAoB;SAC5C;QAPJ,sBAAI,0CAAG;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;QAE/C,sBAAI,wDAAiB;iBAArB,cAAoD,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,EAAE;;;WAAA;wCAM7G;SAAA;8GAVYA,iCAAyB;mGAAzBA,iCAAyB;;gBCjBtCP,8CAC8B;;;gBAA5BA,wCAAW;;;ADgBAO,qCAAyB;QATrCN,gBAAa,CAAC;YACb,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,eAAe;SACtB,CAAC;OAKWM,iCAAyB,CAUrC;;2FAVYA,iCAAyB;sBAJrCL,YAAS;uBAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,WAAW,EAAE,qCAAqC;qBACnD;;;;;QESD;;;;0FAAa,mBAAmB;oFAAnB,mBAAmB;wFAfrB,CAACM,mBAAgB,CAAC;;2FAehB,mBAAmB;sBAhB/Bd,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAACc,mBAAgB,CAAC;wBAC3B,YAAY,EAAE;4BACZT,kCAA0B;4BAC1BK,mCAA2B;4BAC3BE,6CAAqC;4BACrCC,iCAAyB;yBAC1B;wBACD,OAAO,EAAE;4BACPR,kCAA0B;4BAC1BK,mCAA2B;4BAC3BE,6CAAqC;4BACrCC,iCAAyB;yBAC1B;wBACD,OAAO,EAAE,CAACE,yBAAsB,CAAC;qBAClC;;;;4FACY,mBAAmB,mBAb5BV,kCAA0B;gBAC1BK,mCAA2B;gBAC3BE,6CAAqC;gBACrCC,iCAAyB,aALjBC,mBAAgB,aAQxBT,kCAA0B;gBAC1BK,mCAA2B;gBAC3BE,6CAAqC;gBACrCC,iCAAyB;;;ICf7B;;;;QAmBE,sBAAY,WAAwB;YAApC,iBAMC;;;;YARO,uBAAkB,GAAG,IAAI,GAAG,EAAoC,CAAC;YAGvE,IAAI,CAAC,aAAa,GAAG,IAAIG,cAAW,CAAC,EAAE,CAAC,CAAC;YAEzC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;gBAClC,KAAI,CAAC,uBAAuB,EAAE,CAAC;aAChC,CAAC,CAAC;SACJ;QAdD,sBAAI,sCAAY;;;;iBAAhB,cAA2C,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE;;;WAAA;;;;;;QAqBvE,2CAAoB,GAApB,UAAqB,OAAgB;YACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAY,CAAC,CAAC;SAC1D;;;;;;QAOD,2CAAoB,GAApB,UAAqB,OAAgB,EAAE,KAA+B;YACpE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAY,EAAE,KAAK,CAAC,CAAC;SAC1D;;;;QAKD,8CAAuB,GAAvB;YACE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACjC;;;4EA5CU,YAAY;iFAAZ,YAAY,WAAZ,YAAY,mBAFX,MAAM;;2FAEP,YAAY;sBAHxBZ,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICCD;;;AAaaa,uCAA2B;QAmBtC,qCACU,cAA8B,EAC9B,YAA0B,EAC1B,SAAoB,EACpB,cAA8B;YAH9B,mBAAc,GAAd,cAAc,CAAgB;YAC9B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,cAAS,GAAT,SAAS,CAAW;YACpB,mBAAc,GAAd,cAAc,CAAgB;;;;YAX/B,sBAAiB,GAAY,KAAK,CAAC;;;;YAKnC,uBAAkB,GAAc,EAAE,CAAC;SAOxC;QAnBJ,sBAAI,8CAAK;;;;;iBAAT;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;aACvC;;;WAAA;;;;QAsBD,8CAAQ,GAAR;YACE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;SACF;;;;;;QAOD,2DAAqB,GAArB,UAAsB,KAA8C;YAClE,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAC5B,OAAO;aACR;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;SACvD;;;;;QAMO,kDAAY,GAAZ;YAAA,iBAKP;YAJC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAACC,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,QAAmB;gBAC7E,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,EAAe,CAAC,CAAC;aACjG,CAAC,CAAC;SACJ;0CACF;SAAA;kHAzDYD,mCAA2B;qGAA3BA,mCAA2B;;gBCzBxCX,yDAIwD;gBAAtDA,kKAAuB,iCAA6B,IAAC;gBACvDA,4BAAsB;;;gBAJpBA,sEAAyC,4CAAA,oBAAA;;;ADwB9BW,uCAA2B;QAVvCV,gBAAa,CAAC;YACb,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,+BAA+B;YACtC,IAAI,EAAE,aAAa;SACpB,CAAC;OAMWU,mCAA2B,CAyDvC;;2FAzDYA,mCAA2B;sBALvCT,YAAS;uBAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,uCAAuC;wBACpD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;2KAaU,iBAAiB;0BAAzBR,QAAK;oBAKG,kBAAkB;0BAA1BA,QAAK;;;;IEpCR;;;;QAYA;;;;gHAAa,8BAA8B;+FAA9B,8BAA8B;mGARhC;gBACPS,eAAY;gBACZC,0BAAuB;aACxB;;2FAKU,8BAA8B;sBAT1CrB,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPoB,eAAY;4BACZC,0BAAuB;yBACxB;wBACD,YAAY,EAAE,CAACJ,mCAA2B,CAAC;wBAC3C,OAAO,EAAE,CAACA,mCAA2B,CAAC;wBACtC,OAAO,EAAE,CAACF,yBAAsB,CAAC;qBAClC;;;;4FACY,8BAA8B,mBAJ1BE,mCAA2B,aAHxCG,eAAY;gBACZC,0BAAuB,aAGfJ,mCAA2B;;;;;YCfvCX,oDAMsB;;;;;YAJpBA,mDAAmB,mBAAA,mBAAA,qDAAA;;;ICuBrB;;;AAcagB,uCAA2B;QAkCtC,qCACU,cAA8B,EAC9B,YAA0B,EAC1B,QAAkB,EAClB,WAAwB;YAHxB,mBAAc,GAAd,cAAc,CAAgB;YAC9B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,aAAQ,GAAR,QAAQ,CAAU;YAClB,gBAAW,GAAX,WAAW,CAAa;;;;;YA/BlC,WAAM,GAAG,IAAInB,oBAAe,CAC1B,SAAS,CACV,CAAC;;;;YAeO,yBAAoB,GAAY,IAAI,CAAC;SAe1C;QATJ,sBAAI,4CAAG;;;;;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;;;;QAYD,8CAAQ,GAAR;YAAA,iBAgBC;YAfC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;iBACpC,QAAQ,CACP,UAAC,MAA6B,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAA,CAClE;iBACA,SAAS,CAAC,UAAC,MAA6B;gBACvC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBAC3B,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC9B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;iBACxB;aACF,CAAC,CAAC;YAEL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;gBAC7D,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;aACrC,CAAC,CAAC;SACJ;;;;QAKD,iDAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC;;;;;;QAOO,sDAAgB,GAAhB,UAAiB,OAAgB;YAAjC,iBAgBP;YAfC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO;aACR;YAED,KAAK,GAAG,IAAIa,cAAW,CAAc,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc;iBAChB,gBAAgB,CAAC,OAAO,CAAC;iBACzB,IAAI,CAACE,cAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CAAC,UAAC,KAAoB;gBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB,CAAC,CAAC;SACN;0CACF;SAAA;kHA5FYI,mCAA2B;qGAA3BA,mCAA2B;;gBDvCxChB,uHAMsB;;;;gBALnBA,6EAAqB;;;ACsCXgB,uCAA2B;QAXvCf,gBAAa,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,+BAA+B;YACtC,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,SAAS;SAClB,CAAC;OAMWe,mCAA2B,CA4FvC;;2FA5FYA,mCAA2B;sBALvCd,YAAS;uBAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,uCAAuC;wBACpD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;uKAyBU,oBAAoB;0BAA5BR,QAAK;;;;ICzDR;;;;QAYA;;;;gHAAa,8BAA8B;+FAA9B,8BAA8B;mGARhC;gBACPS,eAAY;gBACZG,0BAAuB;aACxB;;2FAKU,8BAA8B;sBAT1CvB,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPoB,eAAY;4BACZG,0BAAuB;yBACxB;wBACD,YAAY,EAAE,CAACD,mCAA2B,CAAC;wBAC3C,OAAO,EAAE,CAACA,mCAA2B,CAAC;wBACtC,OAAO,EAAE,CAACP,yBAAsB,CAAC;qBAClC;;;;4FACY,8BAA8B,mBAJ1BO,mCAA2B,aAHxCF,eAAY;gBACZG,0BAAuB,aAGfD,mCAA2B;;;;QCFvC;;;;0FAAa,mBAAmB;oFAAnB,mBAAmB;wFAPrB,EAAE,EAET,8BAA8B;YAC9B,8BAA8B;;2FAIrB,mBAAmB;sBAR/BtB,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE;4BACP,8BAA8B;4BAC9B,8BAA8B;yBAC/B;wBACD,YAAY,EAAE,EAAE;qBACjB;;;;4FACY,mBAAmB,cAL5B,8BAA8B;gBAC9B,8BAA8B;;;ICHlC;;;;QAmCE,wBAAoB,QAAkB;YAAtC,iBAwBC;YAxBmB,aAAQ,GAAR,QAAQ,CAAU;YA3B/B,uBAAkB,GAAkB,IAAIwB,YAAO,EAAE,CAAC;;;;YAKlD,eAAU,GAAe,IAAIC,aAAU,CAAC,EAAE,CAAC,CAAC;;;;YAK5C,sBAAiB,GAAsB,IAAIC,oBAAiB,CAAC,EAAE,EAAE;gBACtE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;;;;YAKI,uBAAkB,GAAuB,IAAIC,qBAAkB,CAAC,EAAE,EAAE;gBACzE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;YAEI,qBAAgB,GAAqB,IAAIC,mBAAgB,CAAC,EAAE,EAAE;gBACnE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;YAEI,iBAAY,GAAW,GAAG,CAAC;YAIhC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1C,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAC,KAAK;;oBAC5C,IAAI,MAAA,KAAI,CAAC,iBAAiB,CAAC,KAAK,0CAAE,OAAO,EAAE;wBACxC,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAA2B,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;qBACpF;iBACF,CAAC,CAAC;gBACH,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAC,KAAK;;oBAC7C,IAAI,MAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,0CAAE,OAAO,EAAE;wBACzC,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAA2B,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;qBACrF;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE;oBAChE,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;oBAClD,KAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE;oBAChE,KAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;iBACnE;aACF,CAAC,CAAC;SACJ;;;gFArDU,cAAc;mFAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;2FAEP,cAAc;sBAH1BxB,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ACQYyB,mCAAuB;QAwClC,iCACU,cAA8B,EAC9B,QAAkB,EAClB,eAAgC,EAChC,cAA8B,EAC9B,cAA8B;YAJ9B,mBAAc,GAAd,cAAc,CAAgB;YAC9B,aAAQ,GAAR,QAAQ,CAAU;YAClB,oBAAe,GAAf,eAAe,CAAiB;YAChC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,mBAAc,GAAd,cAAc,CAAgB;SACpC;QAzCJ,sBAAI,+CAAU;;;;;iBAAd,cAA+B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;;;WAAA;QAEvE,sBAAI,iDAAY;iBAAhB,cAA6B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;;;WAAA;QAMtE,sBAAI,sDAAiB;;;;;iBAArB,cAA6C,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;;;WAAA;QAM7F,sBAAI,uDAAkB;;;;;iBAAtB,cAA+C,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;;;WAAA;QAM9F,sBAAI,qDAAgB;;;;;iBAApB,cAA2C,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;;;WAAA;QAMzF,sBAAI,uDAAkB;;;;;iBAAtB,cAA0C,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;;;WAAA;QAO3F,sBAAI,wCAAG;;;;;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;QAU/C,0CAAQ,GAAR;YACE,IAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,CAAY,CAAC;YACnF,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBACjD,IAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAC7B,0CAA0C,CAC3C,CAAC;gBACF,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAEC,iBAAY,CAAC,OAAO,CAAC,CAAC;aAChF;SACF;sCAEF;SAAA;0GA7DYD,+BAAuB;iGAAvBA,+BAAuB;;gBCnBpCvB,+CAOiB;;;gBANbA,0DAA6B,8BAAA,4CAAA,0CAAA,8CAAA,8CAAA;;;ADkBpBuB,mCAAuB;QATnCtB,gBAAa,CAAC;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,YAAY;SACnB,CAAC;OAKWsB,+BAAuB,CA6DnC;;2FA7DYA,+BAAuB;sBAJnCrB,YAAS;uBAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,WAAW,EAAE,kCAAkC;qBAChD;;;;;QEHD;;QACS,8BAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,sBAAsB;gBAChC,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;gGANU,sBAAsB;uFAAtB,sBAAsB;2FALxB,CAACuB,sBAAmB,CAAC;;2FAKnB,sBAAsB;sBANlC/B,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAAC+B,sBAAmB,CAAC;wBAC9B,YAAY,EAAE,CAACF,+BAAuB,CAAC;wBACvC,OAAO,EAAE,CAACA,+BAAuB,CAAC;wBAClC,OAAO,EAAE,CAACd,yBAAsB,CAAC;qBAClC;;;uGACY,sBAAsB,mBAJlBc,+BAAuB,aAD5BE,sBAAmB,aAEnBF,+BAAuB;;ICPnC;;;;QAeE,mBAAoB,QAAkB;YAAtC,iBAOC;YAPmB,aAAQ,GAAR,QAAQ,CAAU;;;;YAJ/B,UAAK,GAA0B,IAAIG,eAAY,CAAU,EAAE,EAAE;gBAClE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;YAID,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE;oBACrD,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;iBACzC;aACF,CAAC,CAAC;SACJ;;;sEAhBU,SAAS;8EAAT,SAAS,WAAT,SAAS,mBAFR,MAAM;;2FAEP,SAAS;sBAHrB5B,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICAD;;;AAaa6B,gCAAoB;QAcjC,8BACY,SAAoB,EACpB,QAAkB;YADlB,cAAS,GAAT,SAAS,CAAW;YACpB,aAAQ,GAAR,QAAQ,CAAU;SAC1B;QAXJ,sBAAI,uCAAK;;;;;iBAAT,cAAqC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;;;WAAA;QAMnE,sBAAI,qCAAG;;;;;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;mCAO9C;SAAA;oGAnBYA,4BAAoB;8FAApBA,4BAAoB;;gBCvBjC3B,yCAAiD;;;gBAAvCA,4CAAe,gBAAA;;;ADuBZ2B,gCAAoB;QAVhC1B,gBAAa,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,MAAM;SACf,CAAC;OAMW0B,4BAAoB,CAmBhC;;2FAnBYA,4BAAoB;sBALhCzB,YAAS;uBAAC;wBACP,QAAQ,EAAE,kBAAkB;wBAC5B,WAAW,EAAE,+BAA+B;wBAC5C,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAClD;;;;;QEVD;;;;oFAAa,gBAAgB;iFAAhB,gBAAgB;qFANlB,CAACe,uBAAoB,CAAC;;2FAMpB,gBAAgB;sBAP5BlC,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAACkC,uBAAoB,CAAC;wBAC/B,YAAY,EAAE,CAACD,4BAAoB,CAAC;wBACpC,OAAO,EAAE;4BACPA,4BAAoB;yBACrB;qBACF;;;uGACY,gBAAgB,mBALZA,4BAAoB,aADzBC,uBAAoB,aAG5BD,4BAAoB;;aCDR,cAAc,CAAC,SAA0C,EAAE,cAAc;QACrF,IAAM,YAAY,GAAG,SAAS,CAAC,WAAW;aACrC,iBAAiB,CAACE,gCAA6B,CAAkC,CAAC;QACvF,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,GAAGC,gBAAa,CAAC,OAAO,GAAGA,gBAAa,CAAC,IAAI,CAAC,CAAC;IACnH;;ICRA;;;;QAWE,sBAAoB,iBAAiC;YAAjC,sBAAiB,GAAjB,iBAAiB,CAAgB;SAAI;QAJzD,sBAAI,wCAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;;;WAAA;;;4EAHU,YAAY;iFAAZ,YAAY,WAAZ,YAAY,mBAFX,MAAM;;2FAEP,YAAY;sBAHxBhC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;QCgCC,+BACU,YAA0B,EAC3B,eAAgC,EAC/B,SAAoB,EACpB,YAA0B;YAH1B,iBAAY,GAAZ,YAAY,CAAc;YAC3B,oBAAe,GAAf,eAAe,CAAiB;YAC/B,cAAS,GAAT,SAAS,CAAW;YACpB,iBAAY,GAAZ,YAAY,CAAc;YAnB7B,cAAS,GAA6B,IAAID,oBAAe,CAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;YAEF,cAAS,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;SAgB7D;QAbJ,sBAAI,iDAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;aACzC;;;WAAA;QAED,sBAAI,2CAAQ;iBAAZ;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;aACvD;;;WAAA;QASD,2CAAW,GAAX;YACE,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;aACpC;SACF;QAED,2CAAW,GAAX,UACE,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD;YAEnD,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,CACxB,CAAC;YACJ,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,4CAAY,GAAZ,UACE,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD;YAHrD,iBAwHC;YAnHC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;iBACtD,IAAI,CACHkC,mBAAS,CACP,UAAC,aAAkC,IACjC,OAAA,aAAa,CAAC,GAAG,KAAK,UAAU,IAAI,aAAa,CAAC,KAAK,KAAKC,4BAAuB,CAAC,OAAO,GAAA,CAC9F,CACF;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,cAAc,CAAC,SAAS,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aAChD,CAAC,CAAC;YACL,OAAO;gBACL;oBACE,EAAE,EAAE,UAAU;oBACd,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,4CAA4C;oBACrD,cAAc,EAAE,IAAI,CAAC,SAAS;oBAC9B,OAAO,EAAE;wBACP,cAAc,CAAC,SAAS,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;wBAC/C,KAAI,CAAC,cAAc,CAAC,GAAG,CACrB,UAAU,EACV,CAAC,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAChD,CAAC;qBACH;iBACF;gBACD;oBACE,EAAE,EAAE,mBAAmB;oBACvB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,6CAA6C;oBACpD,OAAO,EAAEC,iCAA8B,CAAC,SAAS,CAAC;oBAClD,cAAc,EAAE,8BAA8B;oBAC9C,OAAO,EAAE,cAAM,OAAA,8BAA8B,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,GAAA;iBAC1F;gBACD;oBACE,EAAE,EAAE,cAAc;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,4CAA4C;oBACrD,cAAc,EAAE,yBAAyB;oBACzC,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAA;iBAChF;gBACD;oBACE,EAAE,EAAE,gBAAgB;oBACpB,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,gDAAgD;oBACvD,OAAO,EAAE,kDAAkD;oBAC3D,OAAO,EAAE,UAAC,EAAoB;wBAC5B,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;4BACzD,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;qBACJ;oBACD,IAAI,EAAE,CAAC,SAAS,CAAC;oBACjB,YAAY,EAAE,UAAC,EAAoB,IAAK,OAAAC,oBAAiB,CAAC,EAAE,CAAC,GAAA;iBAC9D;gBACD;oBACE,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,4CAA4C;oBACrD,OAAO,EAAE,UAAC,EAAoB;wBAC5B,IAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CACrDC,sCAAmC,CACpC,CAAC;wBACF,IAAM,uBAAuB,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAC9DC,qCAAkC,CACnC,CAAC;wBACF,IAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM;8BACtD,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;8BACb,EAAE,CAAC;wBACP,KAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;4BACvC,IAAI,EAAE,cAAc;4BACpB,OAAO,EAAE;gCACP,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gCACrB,kBAAkB,EAAE,cAAc,CAAC,MAAM;gCACzC,mBAAmB,qBAAA;6BACH;yBACnB,CAAC,CAAC;qBACJ;oBACD,IAAI,EAAE,CAAC,SAAS,CAAC;iBAClB;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC,CAAC;oBACnF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,2CAA2C,CAC5C;oBACD,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACP,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,CAACC,aAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAA,CAAC,CAAC,CAAC;qBAC7E;oBACD,OAAO,EAAE;wBACP,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;4BACjC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC3B;qBACF;iBACF;gBACD;oBACE,EAAE,EAAE,gBAAgB;oBACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,0CAA0C,CAC3C;oBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,iDAAiD,CAClD;oBACD,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACP,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,CAACA,aAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAA,CAAC,CAAC,CAAC;qBAC5E;oBACD,OAAO,EAAE;wBACP,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC5B;iBACF;aACF,CAAC;SACH;;;8FAnKU,qBAAqB;0FAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;;2FAEP,qBAAqB;sBAHjCvC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;QCuBC,2BACmC,eAAuB,EAChD,YAA0B,EAC3B,eAAgC,EAC/B,YAA0B,EAC1B,SAAoB;YAJK,oBAAe,GAAf,eAAe,CAAQ;YAChD,iBAAY,GAAZ,YAAY,CAAc;YAC3B,oBAAe,GAAf,eAAe,CAAiB;YAC/B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,cAAS,GAAT,SAAS,CAAW;YAtBvB,cAAS,GAA6B,IAAID,oBAAe,CAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;YAEF,8BAAyB,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;;YAEjF,cAAS,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;SAgB/B;QAblC,sBAAI,6CAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;aACzC;;;WAAA;QAED,sBAAI,uCAAQ;iBAAZ;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;aACvD;;;WAAA;QASD,uCAAW,GAAX;YACE,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;aACpC;SACF;QAED,uCAAW,GAAX,UACE,SAAuB,EACvB,8BAAwD,EACxD,yBAAmD;YAEnD,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,CACxB,CAAC;YACJ,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,wCAAY,GAAZ,UACE,SAAuB,EACvB,8BAAwD,EACxD,yBAAmD;YAHrD,iBAoHC;;YA/GC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;iBACtD,IAAI,CAACkC,mBAAS,CAAC,UAAC,aAAkC,IACjD,OAAA,aAAa,CAAC,GAAG,KAAK,UAAU,IAAI,aAAa,CAAC,KAAK,KAAKC,4BAAuB,CAAC,OAAO,GAAA,CAAC,CAAC;iBAC9F,SAAS,CAAC;gBACT,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,cAAc,CAAC,SAAS,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aAChD,CAAC,CAAC;YACL,IAAM,OAAO,GAAG;gBACd;oBACE,EAAE,EAAE,UAAU;oBACd,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,4CAA4C;oBACrD,cAAc,EAAE,IAAI,CAAC,SAAS;oBAC9B,OAAO,EAAE;wBACP,cAAc,CAAC,SAAS,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;wBAC/C,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC,CAAC;qBACtF;iBACF;gBACD;oBACE,EAAE,EAAE,mBAAmB;oBACvB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,6CAA6C;oBACpD,OAAO,EAAEC,iCAA8B,CAAC,SAAS,CAAC;oBAClD,cAAc,EAAE,8BAA8B;oBAC9C,OAAO,EAAE,cAAM,OAAA,8BAA8B,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,GAAA;iBAC1F;gBACD;oBACE,EAAE,EAAE,cAAc;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,0CAA0C;oBACnD,cAAc,EAAE,yBAAyB;oBACzC,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAA;iBAChF;gBACD;oBACE,EAAE,EAAE,gBAAgB;oBACpB,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,gDAAgD;oBACvD,OAAO,EAAE,kDAAkD;oBAC3D,OAAO,EAAE,UAAC,EAAgB;wBACxB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;qBACjF;oBACD,IAAI,EAAE,CAAC,SAAS,CAAC;oBACjB,YAAY,EAAE,UAAC,EAAgB,IAAK,OAAAC,oBAAiB,CAAC,EAAE,CAAC,GAAA;iBAC1D;gBACD;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,0CAA0C;oBACjD,OAAO,EAAE,4CAA4C;oBACrD,OAAO,EAAE,UAAC,EAAgB;wBACxB,IAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAACC,sCAAmC,CAAC,CAAC;wBAC7F,IAAM,uBAAuB,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAACC,qCAAkC,CAAC,CAAC;wBACrG,IAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;wBAChF,KAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;4BACvC,IAAI,EAAE,cAAc;4BACpB,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,MAAM,EAAE,mBAAmB,qBAAA,EAAmB;yBACpH,CAAC,CAAC;qBACJ;oBACD,IAAI,EAAE,CAAC,SAAS,CAAC;iBAClB;gBACD;oBACE,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,2CAA2C;oBAClD,OAAO,EAAE,6CAA6C;oBACtD,OAAO,EAAE,UAAC,MAAc,EAAE,EAAgB;wBACxC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE;4BACxB,GAAG,EAAE,EAAE,CAAC,GAAG;4BACX,KAAK,EAAE,EAAE,CAAC,KAAK;yBAChB,CAAC,CAAC;qBACJ;oBACD,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;iBACxC;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC,CAAC;oBACnF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,2CAA2C,CAC5C;oBACD,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACP,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,CAACC,aAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAA,CAAC,CAAC,CAAC;qBAC7E;oBACD,OAAO,EAAE;wBACP,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;4BACjC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC3B;qBACF;iBACF;gBACD;oBACE,EAAE,EAAE,gBAAgB;oBACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,0CAA0C,CAC3C;oBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,iDAAiD,CAClD;oBACD,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACP,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,CAACA,aAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAA,CAAC,CAAC,CAAC;qBAC5E;oBACD,OAAO,EAAE;wBACP,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC5B;iBACF;aACF,CAAC;YACF,OAAO,CAAA,MAAA,MAAC,SAAS,CAAC,KAAK,CAAC,UAAsC,CAAC,WAAW,0CAAE,KAAK,0CAAE,OAAO;gBAC1F,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,KAAK,WAAW,GAAA,CAAC,CAAC;SAC/D;;;sFAjKU,iBAAiB,yBAoBlBC,kBAAe;sFApBd,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;2FAEP,iBAAiB;sBAH7BxC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;kCAqBIyC,SAAM;mCAACD,kBAAe;;;;;ICnC3B;;;;QA0CE,wBACU,qBAA4C,EAC5C,iBAAoC,EACpC,cAA8B;YAF9B,0BAAqB,GAArB,qBAAqB,CAAuB;YAC5C,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,mBAAc,GAAd,cAAc,CAAgB;YArCjC,2BAAsB,GAAY,KAAK,CAAC;YAEtC,sBAAiB,GAA6B,IAAIzC,oBAAe,CAAU,KAAK,CAAC,CAAC;YAClF,mCAA8B,GAA6B,IAAIA,oBAAe,CAAU,IAAI,CAAC,CAAC;YAC9F,8BAAyB,GAA6B,IAAIA,oBAAe,CAAU,KAAK,CAAC,CAAC;YAE1F,uBAAkB,GAA6B,IAAIA,oBAAe,CACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;YACM,qBAAgB,GAAmB,EAAE,CAAC;;YAYrC,2BAAsB,GAA4B,IAAIA,oBAAe,CAAS,SAAS,CAAC,CAAC;;;;YAK3F,eAAU,GAAG,IAAIA,oBAAe,CAAY,SAAS,CAAC,CAAC;YAa5D,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QATD,sBAAI,iCAAK;;;;iBAAT,cAA8B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;;;WAAA;;;;;;QAgB3C,uCAAc,GAAd;YAAA,iBA+EP;YA9EC,IAAI,CAAC,MAAM,GAAG,IAAI2C,iBAAc,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,SAAS;iBAClB,QAAQ,CAAC,UAAC,MAA+B,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,GAAA,CAAC;iBAC3E,SAAS,CAAC,UAAC,MAA+B;gBACzC,IAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;gBACrD,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjC,CAAC,CAAC;YAEL,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;iBAC3B,SAAS,CAAC,UAAC,UAAqC;gBAC/C,UAAU,CAAC,GAAG,CAAC,UAAC,GAA4B;oBAC1C,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;wBAChC,IAAI,GAAG,CAAC,MAAM,YAAYC,eAAY,EAAE;4BACtC,KAAI,CAAC,iBAAiB,CAAC,WAAW,CAChC,GAAG,CAAC,MAAM,EACV,KAAI,CAAC,8BAA8B,EACnC,KAAI,CAAC,yBAAyB,CAAC,CAAC;yBACnC;6BAAM,IAAI,GAAG,CAAC,MAAM,YAAYC,mBAAgB,EAAE;4BACjD,KAAI,CAAC,qBAAqB,CAAC,WAAW,CACpC,GAAG,CAAC,MAAM,EACV,KAAI,CAAC,8BAA8B,EACnC,KAAI,CAAC,yBAAyB,CAAC,CAAC;yBACnC;qBACF;iBAEF,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAA,SAAS;gBACjF,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAA,SAAS;gBAC7E,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU;iBACrC,SAAS,CAAC,UAAC,SAAoB;gBAC9B,IAAI,KAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE;oBAC9C,KAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;oBAC3C,KAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;iBAC1C;gBAED,IAAI,SAAS,KAAK,SAAS,EAAE;oBAC3B,KAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC,OAAO;yBAC7C,SAAS,CAAC,UAAC,MAAc,IAAK,OAAA,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC;iBAC5E;aACF,CAAC,CAAC;YAEL,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,UAAC,eAAe;gBACnG,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAC,GAA4B;oBAC3D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;wBACjC,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAACP,sCAAmC,CAAC,CAAC;wBACrG,IAAI,cAAc,EAAE;4BAClB,IAAI,eAAe,EAAE;gCACnB,cAAc,CAAC,QAAQ,EAAE,CAAC;6BAC3B;iCAAM;gCACL,cAAc,CAAC,UAAU,EAAE,CAAC;6BAC7B;yBACF;qBACF;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,UAAC,UAAU;gBACpF,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAC,GAA4B;oBAC3D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;wBACjC,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAACC,qCAAkC,CAAC,CAAC;wBACpG,IAAI,cAAc,EAAE;4BAClB,IAAI,UAAU,EAAE;gCACd,cAAc,CAAC,QAAQ,EAAE,CAAC;6BAC3B;iCAAM;gCACL,cAAc,CAAC,UAAU,EAAE,CAAC;6BAC7B;yBACF;qBACF;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;QAEO,gDAAuB,GAAvB,UAAwB,SAAkB;YAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACzC;QAEM,+CAAsB,GAAtB,UAAuB,EAAU;YACtC,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK;iBAC3B,GAAG,EAAE;iBACL,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,SAAS,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,CAAC;YACxC,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;aACzC;SACF;;;;;QAMD,oCAAW,GAAX;YACE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,+BAA+B,EAAE;gBACxC,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;aAC/C;YACD,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACnC,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;aAC/C;SACF;;;;QAKO,2CAAkB,GAAlB;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE;gBAC9C,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;gBACxC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;aACtC;SACF;;;gFA1KU,cAAc;mFAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;2FAEP,cAAc;sBAH1BtC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;;;YCjBDE,4CAQG;YADDA,uOAA6B;;YAE7BA,yCAAqC;YACvCA,4BAAS;;;;YALPA,oHAAsE,uBAAA;;;;QCyBtE,kCAAoB,cAA8B;YAA9B,mBAAc,GAAd,cAAc,CAAgB;YAjB3C,kBAAa,GAA6B,IAAIH,oBAAe,CAAC,KAAK,CAAC,CAAC;YAIpE,WAAM,GAA2B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YAW/D,UAAK,GAAW,SAAS,CAAC;SAEoB;QAZvD,sBACI,2CAAK;iBAKT;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;iBARD,UACU,KAAY;gBACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/B;;;WAAA;QAUD,2CAAQ,GAAR;YAAA,iBAIC;YAHC,IAAI,CAAC,cAAc,GAAG8C,kBAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;iBACtF,SAAS,CAAC,UAAA,KAAK,gBAAI,OAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,SAAS,0CAAE,OAAO,CAAA,CAAC,CAAA,EAAA,CAC5F,CAAC;SACL;QAED,8CAAW,GAAX;YACE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,oDAAiB,GAAjB;YACE,IACE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK;gBACnC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAa,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;gBACxE,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;gBAC5C,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,KAAK,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBAClD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC3D;SACF;;;oGAzCU,wBAAwB;0FAAxB,wBAAwB;;gBDXrC3C,0FAUS;;;;gBATNA,oFAA2B;;;;2FCUjB,wBAAwB;sBANpCE,YAAS;uBAAC;wBACT,QAAQ,EAAE,sBAAsB;wBAChC,WAAW,EAAE,mCAAmC;wBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;wBAChD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;sEASK,KAAK;0BADRR,QAAK;oBAUG,KAAK;0BAAbA,QAAK;;;;;QCTR;;;;8FAAa,qBAAqB;sFAArB,qBAAqB;0FAVvB;gBACPS,eAAY;gBACZ8B,gBAAa;gBACbC,kBAAe;gBACfC,mBAAgB;gBAChBC,sBAAiB;aAClB;;2FAIU,qBAAqB;sBAXjCrD,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPoB,eAAY;4BACZ8B,gBAAa;4BACbC,kBAAe;4BACfC,mBAAgB;4BAChBC,sBAAiB;yBAClB;wBACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;wBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;qBACpC;;;;4FACY,qBAAqB,mBAHjB,wBAAwB,aANrCjC,eAAY;gBACZ8B,gBAAa;gBACbC,kBAAe;gBACfC,mBAAgB;gBAChBC,sBAAiB,aAGT,wBAAwB;;;;;;YCjBpC/C,gDAAiD;YAC/CA,6CAAmF;;YACjFA,uDAQsD;YAFpDA,0QAAkC,4QAAA;;YAGpCA,4BAAoB;YACtBA,4BAAU;YACVA,6CAAsF;;YACpFA,0DAAmE;YACrEA,4BAAU;YACZA,4BAAgB;;;;YAfLA,0BAAyE;YAAzEA,uHAAyE;YAE9EA,0BAAW;YAAXA,2CAAW,2CAAA,yDAAA,gCAAA,0FAAA,2DAAA;YAUNA,0BAA4E;YAA5EA,2HAA4E;YACxDA,0BAAW;YAAXA,2CAAW;;;;;;YAI1CA,uDAOsD;YAFpDA,8QAAkC,gRAAA;;YAGpCA,4BAAoB;;;;YANlBA,2CAAW,gCAAA,yFAAA,2DAAA;;;;;YAQbA,0DAG4B;;;;YAD1BA,2CAAW;;;ACTAgD,qCAAyB;QAmBpC,mCACU,QAAkB,EACnB,iBAAoC,EACnC,cAA8B;YAF9B,aAAQ,GAAR,QAAQ,CAAU;YACnB,sBAAiB,GAAjB,iBAAiB,CAAmB;YACnC,mBAAc,GAAd,cAAc,CAAgB;YAlB/B,oBAAe,GAAY,KAAK,CAAC;YAYjC,qBAAgB,GAAqBrD,wBAAgB,CAAC,KAAK,CAAC;YAC5D,6BAAwB,GAAY,IAAI,CAAC;SAM9C;QAbJ,sBAAI,0CAAG;;;;;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;QAE/C,sBAAI,qDAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;aAClC;;;WAAA;QAWD,4CAAQ,GAAR;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QAEO,8CAAU,GAAV;YACN,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACtE;YACD,IAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACxE,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;aAC9D;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAACA,wBAAgB,CAAC,KAAK,CAAC,CAAC;aACpE;SACF;QAEO,8CAAU,GAAV;YACN,IAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;YACpE,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAClC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACC,wBAAgB,CAAC,MAAM,CAAC,CAAC;aAEzD;SACF;QAEM,+CAAW,GAAX,UAAY,IAAsB;YACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtC;QAEM,uDAAmB,GAAnB,UAAoB,aAA4B;YACrD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;SACzD;QAED,0DAAsB,GAAtB,UAAuB,KAAK;YAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;SACrC;wCACF;SAAA;8GA/DYoD,iCAAyB;mGAAzBA,iCAAyB;;gBDrBtChD,0GAgBgB;gBAEhBA,iHAQoB;gBAEpBA,iIAG4B;;;gBA/BZA,8DAA8B;gBAmB3CA,0BAA+D;gBAA/DA,mGAA+D;gBAU/DA,0BAAiE;gBAAjEA,qGAAiE;;;ACRvDgD,qCAAyB;QAXrC/C,gBAAa,CAAC;YACb,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,oCAAoC;YAC3C,IAAI,EAAE,WAAW;SAClB,CAAC;OAOW+C,iCAAyB,CA+DrC;;2FA/DYA,iCAAyB;sBANrC9C,YAAS;uBAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,WAAW,EAAE,qCAAqC;wBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;wBAClD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;uHAGU,sBAAsB;0BAA9BR,QAAK;oBAEG,eAAe;0BAAvBA,QAAK;oBAYG,gBAAgB;0BAAxBA,QAAK;oBACG,wBAAwB;0BAAhCA,QAAK;;;;;QCVR;;QACS,gCAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,wBAAwB;gBAClC,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;oGANU,wBAAwB;yFAAxB,wBAAwB;6FAZ1B;gBACP4C,wBAAqB;gBACrBC,+BAA4B;gBAC5BpC,eAAY;gBACZiC,sBAAiB;gBACjBI,kCAAqB;gBACrBC,kBAAa;aACd;;2FAKU,wBAAwB;sBAbpC1D,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPuD,wBAAqB;4BACrBC,+BAA4B;4BAC5BpC,eAAY;4BACZiC,sBAAiB;4BACjBI,kCAAqB;4BACrBC,kBAAa;yBACd;wBACD,YAAY,EAAE,CAACJ,iCAAyB,CAAC;wBACzC,OAAO,EAAE,CAACA,iCAAyB,CAAC;wBACpC,OAAO,EAAE,CAACvC,yBAAsB,CAAC;qBAClC;;;;4FACY,wBAAwB,mBAJpBuC,iCAAyB,aAPtCC,wBAAqB;gBACrBC,+BAA4B;gBAC5BpC,eAAY;gBACZiC,sBAAiB;gBACjBI,kCAAqB;gBACrBC,kBAAa,aAGLJ,iCAAyB;;;;;;YCZhChD,qDAA6D;YAC9DA,uDAAmE;YAAhCA,iUAA+B;YAACA,4BAAoB;YACvFA,sDAAoF;YACpFA,uDAAuF;YACvFA,yDAA2F;YAC3FA,oDAA2D;;;;;YALpCA,2CAAe;YACnBA,0BAAe;YAAfA,2CAAe;YACXA,0BAAoB;YAApBA,oDAAoB,mBAAA;YACnBA,0BAAqB;YAArBA,qDAAqB,mBAAA;YACnBA,0BAAqB;YAArBA,8CAAqB,mBAAA;YAC1BA,0BAAe;YAAfA,2CAAe;;;;;YAlBxCA,oDAS4B;YAE1BA,gKAQc;YAEhBA,4BAAiB;;;;YApBfA,2CAAW,+CAAA,+DAAA,mEAAA,yEAAA,yEAAA,iCAAA;;;;;YA0BTA,uCAA0I;YACxIA,uBAAmD;;YAAAA,4BAAI;;;YAAvDA,0BAAmD;YAAnDA,+GAAmD;;;;;;YACrDA,gDAAmE;YACjEA,+CAAwB;YAACA,8BAAiH;YAAjHA,0CAAiH;YAACA,sCAAoR;YAACA,4BAAM;YAAAA,4BAAW;YACjbA,+BAAsE;YAAtEA,yCAAsE;YAAvBA,+PAAsB;YACnEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,kHACF;;;;;;YAEFA,gDAAoE;YAClEA,+CAAwB;YAACA,8BAAiH;YAAjHA,0CAAiH;YAACA,sCAA+K;YAACA,4BAAM;YAAAA,4BAAW;YAC5UA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,gQAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;;YAEFA,gDAAoE;YAClEA,+CAAwB;YAACA,8BAAiH;YAAjHA,0CAAiH;YAACA,sCAAsH;YAACA,4BAAM;YAAAA,4BAAW;YACnRA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,gQAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;YArBJA,2CAA6C;YAC3CA,uCAAoC;YAClCA,uBAA+C;;YAAAA,4BAAI;YACrDA,yGACyD;YACzDA,gIAKgB;YAChBA,gIAKgB;YAChBA,gIAKgB;YAClBA,4BAAW;;;;YArBPA,0BAA+C;YAA/CA,2GAA+C;YAC7CA,0BAAmG;YAAnGA,2JAAmG;YAEvFA,0BAAiD;YAAjDA,2FAAiD;YAMjDA,0BAAkD;YAAlDA,4FAAkD;YAMlDA,0BAAkD;YAAlDA,4FAAkD;;;;;YAjBpEA,2GAuBW;;;;YAvBAA,mEAAgC;;;ACKhCqD,mCAAuB;QA8ElC,iCACU,QAAkB,EAClB,SAAoB,EACpB,mBAAwC,EACxC,KAAwB,EACxB,iBAAoC;YAJpC,aAAQ,GAAR,QAAQ,CAAU;YAClB,cAAS,GAAT,SAAS,CAAW;YACpB,wBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,UAAK,GAAL,KAAK,CAAmB;YACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;YAlFvC,+BAA0B,GAAY,KAAK,CAAC;YAE1C,mCAA8B,GAAY,KAAK,CAAC;YAEhD,gCAA2B,GAAY,KAAK,CAAC;YAE7C,mCAA8B,GAAY,KAAK,CAAC;YAEhD,cAAS,GAAY,IAAI,CAAC;YAE1B,eAAU,GAAY,IAAI,CAAC;YAE3B,sBAAiB,GAA6B,EAAE,CAAC;YAEjD,eAAU,GAAY,KAAK,CAAC;YAE5B,yBAAoB,GAAY,IAAI,CAAC;SAmE1C;QAjEJ,sBAAI,wCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,4CAAO;iBAAX;gBAAA,iBAUC;gBATC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAC1BhB,aAAG,CAAC,UAAC,MAAM,IACT,OAAA,MAAM,CAAC,MAAM,CACX,UAAC,KAAK,IACJ,OAAA,KAAK,CAAC,eAAe,KAAK,KAAK;qBAC9B,CAAC,KAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAA,CAChD,GAAA,CACF,CACF,CAAC;aACH;;;WAAA;QAED,sBAAI,sDAAiB;iBAArB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;aAC1D;;;WAAA;QAED,sBAAI,8DAAyB;iBAA7B;gBACE,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;oBACE,WAAW,EAAEiB,wBAAqB,CAAC,OAAO;iBAC3C,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;gBAEF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBACxC,KAAKA,wBAAqB,CAAC,MAAM;wBAC/B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,MAAM,CAAC;wBAC7D,MAAM;oBACR,KAAKA,wBAAqB,CAAC,KAAK;wBAC9B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,KAAK,CAAC;wBAC5D,MAAM;oBACR;wBACE,MAAM;iBACT;gBACD,OAAO,iBAAiB,CAAC;aAC1B;;;WAAA;QAED,sBAAI,wDAAmB;iBAAvB;gBACE,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,mBAAmB;yBACrB,UAAU,EAAE;yBACZ,MAAM,CAACC,kBAAe,CAAC;yBACvB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,GAAA,CAAC,CAAC,MAAM,GAAG,CAAC,EACnE;aACH;;;WAAA;QAED,sBAAI,yDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACtE;;;WAAA;QAED,sBAAI,yDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;;;WAAA;QAUD,0CAAQ,GAAR;YAAA,iBAMC;;YAJC,UAAU,CAAC;gBACT,KAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC5B,EAAE,GAAG,CAAC,CAAC;SACT;QAED,4CAAU,GAAV;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SACtD;QAED,6CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAChD;QAED,6CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;SACvD;QAED,gDAAc,GAAd,UAAe,KAAY;;YACzB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,WAAW,EAAE;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;aACxG;YACD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC3D,wBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACrD;sCACF;SAAA;0GAnHYyD,+BAAuB;iGAAvBA,+BAAuB;;gBD7BpCrD,yGAqBiB;;gBAEjBA,+IAyBc;;;;gBAhD0BA,qFAAgC,iBAAA;;;AC6B3DqD,mCAAuB;QAVnCpD,gBAAa,CAAC;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,KAAK;SACZ,CAAC;OAMWoD,+BAAuB,CAmHnC;;2FAnHYA,+BAAuB;sBALnCnD,YAAS;uBAAC;wBACT,QAAQ,EAAE,sBAAsB;wBAChC,WAAW,EAAE,mCAAmC;wBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;qBACjD;0MAIU,8BAA8B;0BAAtCG,QAAK;oBAEG,2BAA2B;0BAAnCA,QAAK;oBAEG,8BAA8B;0BAAtCA,QAAK;oBAEG,SAAS;0BAAjBA,QAAK;oBAEG,UAAU;0BAAlBA,QAAK;oBAEG,iBAAiB;0BAAzBA,QAAK;oBAEG,UAAU;0BAAlBA,QAAK;oBAEG,oBAAoB;0BAA5BA,QAAK;;;;;;;YC9BAL,qDAA6D;YAC7DA,uDAAmE;YAAhCA,wSAA+B;YAACA,4BAAoB;YACvFA,sDAAoF;YACpFA,uDAAuF;YACvFA,yDAA2F;YAC3FA,oDAA2D;;;;;YALrCA,2CAAe;YAClBA,0BAAe;YAAfA,2CAAe;YACXA,0BAAoB;YAApBA,oDAAoB,mBAAA;YACnBA,0BAAqB;YAArBA,qDAAqB,mBAAA;YACnBA,0BAAqB;YAArBA,8CAAqB,mBAAA;YAC1BA,0BAAe;YAAfA,2CAAe;;;ICP5C;;;AAcawD,4BAAgB;QA4C3B,0BACU,QAAkB,EAClB,SAAoB,EACpB,iBAAoC;YAFpC,aAAQ,GAAR,QAAQ,CAAU;YAClB,cAAS,GAAT,SAAS,CAAW;YACpB,sBAAiB,GAAjB,iBAAiB,CAAmB;YA9CrC,mCAA8B,GAAY,KAAK,CAAC;YAEhD,gCAA2B,GAAY,KAAK,CAAC;YAE7C,mCAA8B,GAAY,KAAK,CAAC;YAEhD,cAAS,GAAY,IAAI,CAAC;YAE1B,eAAU,GAAY,IAAI,CAAC;YAE3B,sBAAiB,GAA6B,EAAE,CAAC;YAEjD,eAAU,GAAY,KAAK,CAAC;SAmCjC;QAjCJ,sBAAI,iCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,+CAAiB;iBAArB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;aAC1D;;;WAAA;QAED,sBAAI,uDAAyB;iBAA7B;gBACE,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;oBACE,WAAW,EAAEF,wBAAqB,CAAC,OAAO;iBAC3C,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;gBAEF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBACxC,KAAKA,wBAAqB,CAAC,MAAM;wBAC/B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,MAAM,CAAC;wBAC7D,MAAM;oBACR,KAAKA,wBAAqB,CAAC,KAAK;wBAC9B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,KAAK,CAAC;wBAC5D,MAAM;oBACR;wBACE,MAAM;iBACT;gBACD,OAAO,iBAAiB,CAAC;aAC1B;;;WAAA;QAQD,yCAAc,GAAd,UAAe,KAAY;;YACzB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,WAAW,EAAE;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;aACxG;YACD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC1D,wBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACrD;+BACF;SAAA;4FA3DY4D,wBAAgB;0FAAhBA,wBAAgB;;gBD5B7BxD,gDAAe;gBAEbA,6CAA2D;;gBACzDA,oDAS4B;gBAE1BA,wIAQc;gBAEhBA,4BAAiB;gBACnBA,4BAAU;gBAEVA,6CAAgE;;gBAC9DA,iDAA2D;gBAC7DA,4BAAU;gBAEZA,4BAAgB;;;gBA7BLA,0BAAiD;gBAAjDA,gGAAiD;gBAEtDA,0BAAW;gBAAXA,wCAAW,4CAAA,4DAAA,gEAAA,sEAAA,sEAAA,qBAAA,8BAAA;gBAuBNA,0BAAsD;gBAAtDA,qGAAsD;;;ACCpDwD,4BAAgB;QAX5BvD,gBAAa,CAAC;YACb,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,KAAK;SACZ,CAAC;OAOWuD,wBAAgB,CA2D5B;;2FA3DYA,wBAAgB;sBAN5BtD,YAAS;uBAAC;wBACT,QAAQ,EAAE,cAAc;wBACxB,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;wBACxC,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;kHAEU,8BAA8B;0BAAtCR,QAAK;oBAEG,2BAA2B;0BAAnCA,QAAK;oBAEG,8BAA8B;0BAAtCA,QAAK;oBAEG,SAAS;0BAAjBA,QAAK;oBAEG,UAAU;0BAAlBA,QAAK;oBAEG,iBAAiB;0BAAzBA,QAAK;oBAEG,UAAU;0BAAlBA,QAAK;;;;;;;;YCpBAL,6DACuD;YAA/BA,oSAA8B;YAACA,4BAAyB;;;;;YADtBA,sDAAqB,mBAAA;;;;;;YAE/EA,4DACsD;YAA9BA,iSAA6B;YAACA,4BAAwB;;;;;YADtBA,qDAAoB,mBAAA;;;;;;YAE5EA,wDAAiG;YAAhCA,kVAA+B;YAACA,4BAAoB;;;;YAApEA,2CAAe;;;;;YANhEA,qDAA2D;YAC3DA,0DAA2F;YAC3FA,mJACgF;YAChFA,iJAC8E;YAC9EA,yIAAqH;YACrHA,sDAA6D;;;;;YAPxCA,2CAAe;YACVA,0BAAqB;YAArBA,8CAAqB,mBAAA;YACtBA,0BAA+B;YAA/BA,qEAA+B;YAEhCA,0BAA8B;YAA9BA,oEAA8B;YAElCA,0BAA2B;YAA3BA,iEAA2B;YACzBA,0BAAe;YAAfA,2CAAe;;;;;;YApBzCA,oDAUoD;YAAlDA,6RAAiD;YAEjDA,0JASc;YAChBA,4BAAiB;;;;YApBfA,uEAAuC,+DAAA,mEAAA,yEAAA,yEAAA,qBAAA,iCAAA,mBAAA;;;;;;YAwBzCA,4DAMoE;YAFlEA,gSAA4C;;YAG9CA,4BAAwB;;;;YALtBA,2EAA2C,qFAAA,+CAAA,yEAAA;;;;;;YAM7CA,6FAAoF;;;;;YAEpFA,wCACmH;YACjHA,uBACF;;;;YAAAA,4BAAI;;;;YADFA,0BACF;YADEA,mQACF;;;;;YAOIA,wCACmC;YACjCA,uBAAmD;;YAAAA,4BAAI;;;YAAvDA,0BAAmD;YAAnDA,+GAAmD;;;;;;YAErDA,gDAAmE;YACjEA,+CAAwB;YAACA,8BACiC;YADjCA,0CACiC;YACtDA,sCAEO;YACTA,4BAAM;YAAAA,4BAAW;YACnBA,+BAAsE;YAAtEA,yCAAsE;YAAvBA,0PAAsB;YACnEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,kHACF;;;;;;YAEFA,gDAAoE;YAClEA,+CAAwB;YAACA,8BACiC;YADjCA,0CACiC;YACtDA,sCAEO;YACTA,4BAAM;YAAAA,4BAAW;YACnBA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,2PAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;;YAEFA,gDAAoE;YAClEA,+CAAwB;YAACA,8BACiC;YADjCA,0CACiC;YACtDA,sCAEO;YACTA,4BAAM;YAAAA,4BAAW;YACnBA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,2PAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;YAtCJA,2CAA6C;YAC3CA,wCAAoC;YAClCA,uBAA+C;;YAAAA,4BAAI;YACrDA,mGAEyD;YAEzDA,4HAUgB;YAChBA,4HAUgB;YAChBA,4HAUgB;YAClBA,4BAAW;;;;YAtCPA,0BAA+C;YAA/CA,2GAA+C;YAC7CA,0BAAmG;YAAnGA,+JAAmG;YAIvFA,0BAAiD;YAAjDA,6FAAiD;YAWjDA,0BAAkD;YAAlDA,8FAAkD;YAWlDA,0BAAkD;YAAlDA,8FAAkD;;;;;YA7BpEA,uGAwCW;;;;YAxCAA,mEAAgC;;;ICrBjD;;;AAcayD,6BAAiB;QAqH5B,2BACS,kBAAsC,EACrC,SAAoB,EACrB,QAAkB,EACjB,mBAAwC,EACxC,iBAAoC;YAJrC,uBAAkB,GAAlB,kBAAkB,CAAoB;YACrC,cAAS,GAAT,SAAS,CAAW;YACrB,aAAQ,GAAR,QAAQ,CAAU;YACjB,wBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,sBAAiB,GAAjB,iBAAiB,CAAmB;YAzH9C,YAAO,GAA6B,IAAI5D,oBAAe,CAAC,EAAE,CAAC,CAAC;YAC5D,yBAAoB,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAIrE,+BAA0B,GAAY,KAAK,CAAC;YAE1C,wBAAmB,GAAY,KAAK,CAAC;YAErC,wBAAmB,GAAY,KAAK,CAAC;YAErC,mCAA8B,GAAY,KAAK,CAAC;YAEhD,gCAA2B,GAAY,KAAK,CAAC;YAE7C,mCAA8B,GAAY,KAAK,CAAC;YAIhD,cAAS,GAAY,IAAI,CAAC;YAE1B,eAAU,GAAY,IAAI,CAAC;YAE3B,yBAAoB,GAAY,IAAI,CAAC;YAwBtC,uBAAkB,GAAG,EAAE,CAAC;YAMvB,eAAU,GAAY,KAAK,CAAC;SAqEjC;QAjGJ,sBACI,gDAAiB;iBADrB;gBAEE,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAChC;iBACD,UAAsB,KAA+B;gBACnD,IAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;gBACpE,IAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC;gBAC1C,IAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC;gBAClD,IAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC;gBAE9C,KAAK,CAAC,OAAO,GAAG,YAAY,KAAK,EAAE,GAAG,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;gBACnE,KAAK,CAAC,WAAW;oBACf,gBAAgB,KAAK,SAAS,GAAG,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC;gBACxE,KAAK,CAAC,SAAS;oBACb,cAAc,KAAK,SAAS,GAAG,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;gBAElE,KAAK,CAAC,WAAW;oBACf,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;gBAC9D,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;gBAE1E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;;;WAlBA;QAqBD,sBAAI,kCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAID,sBAAI,sDAAuB;iBAA3B;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtBwC,aAAG,CAAC,UAAC,MAAM,IACT,OAAA,MAAM,CAAC,MAAM,CACX,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,GAAA,CACrE,GAAA,CACF,CACF,CAAC;aACH;;;WAAA;QAED,sBAAI,6CAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtBA,aAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAA,CAAC,GAAA,CAAC,CAChE,CAAC;aACH;;;WAAA;QAED,sBAAI,gDAAiB;iBAArB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;aAC1D;;;WAAA;QAED,sBAAI,wDAAyB;iBAA7B;gBACE,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;oBACE,WAAW,EAAEiB,wBAAqB,CAAC,OAAO;iBAC3C,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;gBAEF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBACxC,KAAKA,wBAAqB,CAAC,MAAM;wBAC/B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,MAAM,CAAC;wBAC7D,MAAM;oBACR,KAAKA,wBAAqB,CAAC,KAAK;wBAC9B,iBAAiB,CAAC,WAAW,GAAGA,wBAAqB,CAAC,KAAK,CAAC;wBAC5D,MAAM;oBACR;wBACE,MAAM;iBACT;gBACD,OAAO,iBAAiB,CAAC;aAC1B;;;WAAA;QAID,sBAAI,kDAAmB;iBAAvB;gBACE,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,mBAAmB;yBACrB,UAAU,EAAE;yBACZ,MAAM,CAACC,kBAAe,CAAC;yBACvB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,GAAA,CAAC,CAAC,MAAM,GAAG,CAAC,EACnE;aACH;;;WAAA;QAED,sBAAI,mDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACtE;;;WAAA;QAED,sBAAI,mDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;;;WAAA;QAUD,oCAAQ,GAAR;YAAA,iBA6BC;YA5BC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAGZ,kBAAa,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAChB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;aACpC,CAAC;iBACC,IAAI,CAACe,sBAAY,CAAC,EAAE,CAAC,CAAC;iBACtB,SAAS,CAAC,UAAC,KAAwB;gBAClC,KAAI,CAAC,OAAO,CAAC,IAAI,CACf,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACb,UAAC,KAAK,IACJ,OAAA,KAAK,CAAC,eAAe,KAAK,KAAK;qBAC9B,CAAC,KAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAA,CAChD,CACF,CAAC;aACH,CAAC,CAAC;YAEL,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,mBAAmB;oBAC/B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;0BAC3C,IAAI,CAAC,QAAQ,CAAC,mBAAmB;0BACjC,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC;;YAGD,UAAU,CAAC,cAAM,QAAC,KAAI,CAAC,0BAA0B,GAAG,IAAI,IAAC,EAAE,GAAG,CAAC,CAAC;SACjE;QAED,uCAAW,GAAX;YACE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;aAC7C;SACF;QAED,4CAAgB,GAAhB,UAAiB,KAAK;YACpB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;QAEO,uCAAW,GAAX;YACN,IAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;YACnE,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;aACzD;iBAAM;gBACL,IAAI,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE;oBAC1C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBAC3C;qBAAM;oBACL,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;SACF;QAEM,sCAAU,GAAV,UAAW,GAAsB;YAAjC,iBASN;YARC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CACpB,UAAC,KAAK,IACJ,OAAA,KAAK,CAAC,eAAe,KAAK,KAAK;iBAC9B,CAAC,KAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAA,CAChD,CACF,CAAC;SACH;QAED,6CAAiB,GAAjB,UAAkB,cAAwC;YACxD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpE;QAED,yCAAa,GAAb;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,OAAO,KAAK,CAAC;aACd;iBAAM,IACL,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;gBACpC,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAClC;gBACA,IAAI,wBAAsB,CAAC;gBAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,UAAC,KAAK;oBAC3E,KAAK,CAAC,MAAM,KAAK,CAAC;2BACb,wBAAsB,GAAG,KAAK;2BAC9B,wBAAsB,GAAG,IAAI,CAAC,CAAC;iBACrC,CAAC,CAAC;gBAEH,IAAI,wBAAsB,KAAK,KAAK,EAAE;oBACpC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;SACb;QAED,0CAAc,GAAd,UAAe,KAAY;;YACzB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,WAAW,EAAE;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;aACxG;YACD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC9D,wBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACrD;QAED,8CAAkB,GAAlB;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;SACzD;QAED,6CAAiB,GAAjB;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;SACxD;QAED,sCAAU,GAAV;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SACtD;QAED,uCAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAChD;QAED,uCAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;SACvD;QAED,8CAAkB,GAAlB,UAAmB,KAAK;YACtB,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;SACxE;QAED,6CAAiB,GAAjB,UAAkB,KAAK;YACrB,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YACzC,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO;iBACxE,OAAO,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY;uBAC9F,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAChE;QAED,0CAAc,GAAd,UAAe,KAAY;;YACzB,IACE,CAAC,KAAK,YAAY+D,cAAW,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;iBACzD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;iBAC3E,CAAA,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,OAAO,KAAI,CAAA,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,0CAAE,WAAW,MAAK,KAAK,CAAC,EAAE,CAAC,EACvF;gBACI,OAAO,IAAI,CAAC;aACf;YACH,OAAO,KAAK,CAAC;SACd;gCACF;SAAA;8FA/QYF,yBAAiB;2FAAjBA,yBAAiB;;;;;;;;;;gBD1C9BzD,sDAG2C;gBAAzCA,8IAAqB,sBAAkB,IAAC;;gBAExCA,6CAA8D;;gBAC5DA,mGAsBiB;;gBACnBA,4BAAU;gBAEVA,6CAA8D;;gBAC5DA,iHAOwB;gBACxBA,+EAAoF;;gBAEpFA,2EAGI;;;gBACNA,4BAAU;gBAERA,2IA0Cc;gBAClBA,4BAAgB;;;;gBAzFdA,+GAAyD;gBAGhDA,0BAAoD;gBAApDA,mGAAoD;gBAC1CA,0BAAsC;gBAAtCA,4FAAsC,iBAAA;gBAyBhDA,0BAAoD;gBAApDA,mGAAoD;gBACnCA,0BAAqB;gBAArBA,qDAAqB;gBAQ/BA,0BAAsC;gBAAtCA,6FAAsC,iBAAA;gBAGjDA,0BAA8G;gBAA9GA,wMAA8G;;;ACDxGyD,6BAAiB;QAX7BxD,gBAAa,CAAC;YACb,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,KAAK;SACZ,CAAC;OAOWwD,yBAAiB,CA+Q7B;;2FA/QYA,yBAAiB;sBAN7BvD,YAAS;uBAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;wBACzC,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;6LASU,mBAAmB;0BAA3BR,QAAK;oBAEG,mBAAmB;0BAA3BA,QAAK;oBAEG,8BAA8B;0BAAtCA,QAAK;oBAEG,2BAA2B;0BAAnCA,QAAK;oBAEG,8BAA8B;0BAAtCA,QAAK;oBAEG,oBAAoB;0BAA5BA,QAAK;oBAEG,SAAS;0BAAjBA,QAAK;oBAEG,UAAU;0BAAlBA,QAAK;oBAEG,oBAAoB;0BAA5BA,QAAK;oBAGF,iBAAiB;0BADpBA,QAAK;oBA4BG,UAAU;0BAAlBA,QAAK;oBA2CmC,QAAQ;0BAAhDuD,YAAS;2BAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;YC3IzC5D,2DAM+C;YAA7CA,kSAA4C;;YAC9CA,4BAAwB;;;;YALtBA,uEAAuC,mDAAA,yEAAA,qFAAA;;;;;;YAMzCA,iGAAoF;;;;;YAEpFA,uCACmH;YACjHA,uBACF;;;;YAAAA,4BAAI;;;;YADFA,0BACF;YADEA,oQACF;;;;;YAOIA,uCAA0I;YACxIA,uBAAmD;;YAAAA,4BAAI;;;YAAvDA,0BAAmD;YAAnDA,+GAAmD;;;;;;YAErDA,gDAAmE;YACjEA,8CAAwB;YAACA,8BAAiH;YAAjHA,yCAAiH;YAACA,qCAAoR;YAACA,4BAAM;YAAAA,4BAAW;YACjbA,+BAAsE;YAAtEA,yCAAsE;YAAvBA,8PAAsB;YACnEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,kHACF;;;;;;YAEFA,gDAAoE;YAClEA,8CAAwB;YAACA,8BAAiH;YAAjHA,yCAAiH;YAACA,sCAA+K;YAACA,4BAAM;YAAAA,4BAAW;YAC5UA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,+PAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;;YAEFA,gDAAoE;YAClEA,8CAAwB;YAACA,8BAAiH;YAAjHA,yCAAiH;YAACA,sCAAsH;YAACA,4BAAM;YAAAA,4BAAW;YACnRA,+BAAwE;YAAxEA,yCAAwE;YAAxBA,+PAAuB;YACrEA,uBACF;;YAAAA,4BAAK;YACPA,4BAAgB;;;YAFZA,0BACF;YADEA,mHACF;;;;;YAtBJA,2CAA6C;YAC3CA,uCAAoC;YAClCA,uBAA+C;;YAAAA,4BAAI;YACrDA,uGACyD;YAEzDA,+HAKgB;YAChBA,+HAKgB;YAChBA,+HAKgB;YAClBA,4BAAW;;;;YAtBPA,0BAA+C;YAA/CA,2GAA+C;YAC7CA,0BAAmG;YAAnGA,2JAAmG;YAGvFA,0BAAiD;YAAjDA,2FAAiD;YAMjDA,0BAAkD;YAAlDA,4FAAkD;YAMlDA,0BAAkD;YAAlDA,4FAAkD;;;;;YAlBpEA,0GAwBW;;;;YAxBAA,mEAAgC;;;ACehC6D,kCAAsB;QA6DjC,gCACU,QAAkB,EAClB,SAAoB,EACpB,mBAAwC,EACxC,KAAwB;YAHxB,aAAQ,GAAR,QAAQ,CAAU;YAClB,cAAS,GAAT,SAAS,CAAW;YACpB,wBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,UAAK,GAAL,KAAK,CAAmB;YAhE3B,+BAA0B,GAAY,KAAK,CAAC;YAEnD,YAAO,GAA6B,IAAIhE,oBAAe,CAAC,EAAE,CAAC,CAAC;YAC5D,yBAAoB,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAC5E,YAAO,GAAG,IAAIiE,kBAAa,CAAO,CAAC,CAAC,CAAC;YAK5B,mCAA8B,GAAY,KAAK,CAAC;YAEhD,yBAAoB,GAAY,IAAI,CAAC;YAErC,wBAAmB,GAAY,KAAK,CAAC;YAErC,wBAAmB,GAAY,KAAK,CAAC;YAErC,sBAAiB,GAA6B,EAAE,CAAC;SAgDtD;QA9CJ,sBAAI,uCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,2DAAuB;iBAA3B;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtBzB,aAAG,CAAC,UAAA,MAAM,IACR,OAAA,MAAM,CAAC,MAAM,CACX,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,GAAA,CACnE,GAAA,CACF,CACF,CAAC;aACH;;;WAAA;QAED,sBAAI,kDAAc;iBAAlB;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtBA,aAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAA,CAAC,GAAA,CAAC,CAC5D,CAAC;aACH;;;WAAA;QAED,sBAAI,qDAAiB;iBAArB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;aAC1D;;;WAAA;QAED,sBAAI,uDAAmB;iBAAvB;gBACE,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,mBAAmB;yBACrB,UAAU,EAAE;yBACZ,MAAM,CAACkB,kBAAe,CAAC;yBACvB,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,GAAA,CAAC,CAAC,MAAM,GAAG,CAAC,EACjE;aACH;;;WAAA;QAED,sBAAI,wDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACtE;;;WAAA;QAED,sBAAI,wDAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;;;WAAA;QAQD,yCAAQ,GAAR;YAAA,iBA+BC;YA9BC,IAAI,CAAC,YAAY,GAAGZ,kBAAa,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAChB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;aACpC,CAAC;iBACC,IAAI,CAACe,sBAAY,CAAC,EAAE,CAAC,CAAC;iBACtB,SAAS,CAAC,UAAC,KAAwB;gBAClC,KAAI,CAAC,OAAO,CAAC,IAAI,CACf,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACb,UAAA,KAAK,IACH,OAAA,KAAK,CAAC,eAAe,KAAK,KAAK;qBAC9B,CAAC,KAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAA,CAChD,CACF,CAAC;aACH,CAAC,CAAC;YAEL,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,mBAAmB;oBAC/B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;0BAC3C,IAAI,CAAC,QAAQ,CAAC,mBAAmB;0BACjC,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC;;YAGD,UAAU,CAAC;gBACT,KAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC5B,EAAE,GAAG,CAAC,CAAC;SACT;QAED,iDAAgB,GAAhB,UAAiB,KAAK;YACpB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,8CAAa,GAAb;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,OAAO,KAAK,CAAC;aACd;iBAAM,IACL,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;gBACpC,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAClC;gBACA,IAAI,wBAAsB,CAAC;gBAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,UAAA,KAAK;oBAC1E,KAAK,CAAC,MAAM,KAAK,CAAC;2BACb,wBAAsB,GAAG,KAAK;2BAC9B,wBAAsB,GAAG,IAAI,CAAC,CAAC;iBACrC,CAAC,CAAC;gBAEH,IAAI,wBAAsB,KAAK,KAAK,EAAE;oBACpC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;SACb;QAED,4CAAW,GAAX;YACE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;aAC7C;SACF;QAED,2CAAU,GAAV;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SACtD;QAED,4CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAChD;QAED,4CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;SACvD;qCACF;SAAA;wGAjJYG,8BAAsB;gGAAtBA,8BAAsB;;gBDhCnC7D,sHAOwB;gBACxBA,kFAAoF;;gBAEpFA,8EAGI;;;gBAGJA,8IA0Bc;;;;gBA1CUA,qDAAqB;gBAQ/BA,0BAAsC;gBAAtCA,2FAAsC,iBAAA;gBAGjDA,0BAA8G;gBAA9GA,oMAA8G;;;ACqBpG6D,kCAAsB;QAVlC5D,gBAAa,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,8BAA8B;YACrC,IAAI,EAAE,2BAA2B;SAClC,CAAC;OAMW4D,8BAAsB,CAiJlC;;2FAjJYA,8BAAsB;sBALlC3D,YAAS;uBAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,WAAW,EAAE,kCAAkC;wBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;qBAChD;6KAWU,8BAA8B;0BAAtCG,QAAK;oBAEG,oBAAoB;0BAA5BA,QAAK;oBAEG,mBAAmB;0BAA3BA,QAAK;oBAEG,mBAAmB;0BAA3BA,QAAK;oBAEG,iBAAiB;0BAAzBA,QAAK;;;;;;;YCzCQL,gDAAsG;YAA5BA,2TAA2B;YAACA,uBAAe;YAAAA,4BAAa;;;;YAAxEA,2CAAe;YAA6BA,0BAAe;YAAfA,+CAAe;;;;;;YATrIA,yCAAmG;YAC/FA,0CAA0C;YACtCA,iDAAgB;YACZA,4CAAW;YAAAA,uBAA+E;;YAAAA,4BAAY;YACtGA,gDAA8C;YAC1CA,mDAAkD;YAA1BA,yQAAsB;YAC1CA,uBACJ;;YAAAA,4BAAa;YACbA,0CAA2B;YAC3BA,wGAAkI;YACtIA,4BAAa;YACjBA,4BAAiB;YACrBA,4BAAO;YAEPA,uDAG0C;YAAtCA,8PAAqC;YACrCA,wBACJ;;YAAAA,4BAAmB;YACvBA,4BAAM;;;;YAnBqBA,0BAAkB;YAAlBA,kDAAkB;YAEtBA,0BAA+E;YAA/EA,iIAA+E;YAE1EA,0BAAW;YAAXA,oCAAW;YACnBA,0BACJ;YADIA,2IACJ;YAE8BA,0BAA0B;YAA1BA,mEAA0B;YAMhEA,0BAAiB;YAAjBA,iDAAiB,2BAAA;YAGjBA,0BACJ;YADIA,uIACJ;;;;;;YAIAA,2CAAU;YACNA,uCAAoC;YAChCA,uBAAwE;;YAAAA,4BAAI;YAChFA,uCAAoC;YAChCA,uBAA4E;;YAAAA,4BAAI;YACpFA,gDAAe;YACXA,0CAAqD;YACrDA,yCAAsE;YAAvBA,kOAAsB;YACjEA,wBACJ;;YAAAA,4BAAK;YACTA,4BAAgB;YAChBA,iDAAe;YACXA,2CAAyD;YACzDA,0CAAwE;YAAxBA,oOAAuB;YACnEA,wBACJ;;YAAAA,4BAAK;YACTA,4BAAgB;YAChBA,iDAAe;YACXA,2CAAkD;YAClDA,0CAAwE;YAAxBA,oOAAuB;YACnEA,wBACJ;;YAAAA,4BAAK;YACTA,4BAAgB;YACpBA,4BAAW;;;YArBHA,0BAAwE;YAAxEA,oIAAwE;YAExEA,0BAA4E;YAA5EA,wIAA4E;YAIxEA,0BACJ;YADIA,4IACJ;YAKIA,0BACJ;YADIA,8IACJ;YAKIA,0BACJ;YADIA,8IACJ;;;IC/BZ;QAgBE,gCACS,QAAkB,EACjB,cAA8B,EAC9B,WAAwB,EACxB,SAAoB;YAHrB,aAAQ,GAAR,QAAQ,CAAU;YACjB,mBAAc,GAAd,cAAc,CAAgB;YAC9B,gBAAW,GAAX,WAAW,CAAa;YACxB,cAAS,GAAT,SAAS,CAAW;YAnBvB,UAAK,GAAY,KAAK,CAAC;YAoB1B,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QAVD,sBAAI,uCAAG;;;;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;;;;;QAcA,yCAAQ,GAAR;YAAA,iBAGA;YAFC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAA,EAAE,IAAI,OAAA,KAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,IAC7E,QAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS,IAAC,CAAC,GAAA,CAAC,CAAC;SACpE;;;;;QAMD,4CAAW,GAAX;YACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzC;;;;QAKO,0CAAS,GAAT;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACjC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC+D,eAAU,CAAC,QAAQ,CAAC,CAAC;aACpC,CAAC,CAAC;SACJ;;;;QAKD,2CAAU,GAAV,UAAW,MAAe;;YACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;gBACvB,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,gBAAA,4BAAE;oBAAvC,IAAM,KAAK,WAAA;oBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/B;;;;;;;;;YACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;;;;QAKD,+CAAc,GAAd,UAAe,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,SAAS,EAAE;gBAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;aAAE;YACxC,IAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACtD,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9D,IAAI,cAAc,KAAK,SAAS,EAAC;gBAC/B,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aACpB;SACF;;;;QAKD,0CAAS,GAAT,UAAU,CAAC;YACT,IAAI,CAAC,CAAC,SAAS,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACjE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aACpB;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACvB;;;;QAKD,2CAAU,GAAV;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SACtD;;;;QAKD,4CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAChD;;;;QAKD,4CAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;SACvD;;;gGAhHU,sBAAsB;wFAAtB,sBAAsB;;gBDbnC/D,oFAoBM;gBAENA,gJAyBc;;;;gBA/CRA,oEAAsC,iBAAA;;;;2FCa/B,sBAAsB;sBANlCE,YAAS;uBAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,WAAW,EAAE,iCAAiC;wBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;qBAC/C;;;;;;YCXDF,qDAAkE;YAC9DA,8CAEsC;;YAC1CA,4BAAiB;;;;YAFXA,0BAAwF;YAAxFA,sIAAwF,gCAAA;;;;;YAI5FA,qDAAoC;YAClCA,8CAEkC;;YAAAA,4BAAiB;;;;YADrDA,0BAAwF;YAAxFA,sIAAwF,gCAAA;;;;;YAI1FA,qDAAoE;YAChEA,8CAEsC;;YAC1CA,4BAAiB;;;;YAFXA,0BAAwF;YAAxFA,sIAAwF,gCAAA;;;;;YAI5FA,qDAAqC;YAAEA,8CAEH;;YAAAA,4BAAiB;;;;YADrDA,0BAAyF;YAAzFA,uIAAyF,gCAAA;;;;;YAerFA,iDAGqC;YAAnCA,4IAAS,wBAAwB,IAAC;YAClCA,uBACF;YAAAA,4BAAa;;;;YAHXA,iDAAoB;YAEpBA,0BACF;YADEA,kGACF;;;IC7BN;;;IAQA;QAoCE,sCACS,QAAkB,EACjB,eAAgC,EAChC,cAA8B,EAC9B,KAAwB,EACxB,cAA8B,EAC9B,MAAqB,EACrB,WAAwB;YANzB,aAAQ,GAAR,QAAQ,CAAU;YACjB,oBAAe,GAAf,eAAe,CAAiB;YAChC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,UAAK,GAAL,KAAK,CAAmB;YACxB,mBAAc,GAAd,cAAc,CAAgB;YAC9B,WAAM,GAAN,MAAM,CAAe;YACrB,gBAAW,GAAX,WAAW,CAAa;YA1C3B,iBAAY,GAAwC,IAAIH,oBAAe,CAAC,EAAE,CAAC,CAAC;YAI5E,WAAM,GAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAY,CAAC;YACpE,cAAS,GAAY,IAAI,CAAC;YAC1B,eAAU,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;YAEvC,4BAAuB,GAAkC,EAAE,CAAC;YAE5D,gBAAW,GAAqB;gBACtC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAC5H,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;aACnE,CAAC;YACM,iBAAY,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACnD,UAAK,GAAY,IAAI,CAAC;YA4BzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QA7BH,sBAAI,6CAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,mDAAS;iBAAb;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;aACzC;iBACD,UAAc,KAAuB;gBACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aAC5C;;;WAHA;QAID,sBAAI,gEAAsB;iBAA1B;gBACE,OAAO,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC;aAC3C;iBAED,UAC2B,KAAoC;gBAC7D,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;aACtC;;;WALA;;;;QAsBD,+CAAQ,GAAR;YAAA,iBAsCC;YArCC,IAAI,CAAC,UAAU,GAAG8C,kBAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAACe,sBAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC3G,SAAS,CAAC;gBACb,KAAI,CAAC,wBAAwB,GAAG,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACzF,IAAM,cAAc,GAAGM,UAAO,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAM,cAAc,GAAGC,UAAO,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAI,CAAC,SAAS,IAAI,cAAc,KAAK,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE;oBAC/D,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;gBACD,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,cAAc,KAAK,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE;oBAC5C,KAAI,CAAC,YAAY,CAAC,GAAG,GAAG,cAAc,CAAC;oBACvC,UAAU,GAAG,IAAI,CAAC;iBACnB;gBACD,IAAI,cAAc,KAAK,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE;oBAC5C,KAAI,CAAC,YAAY,CAAC,GAAG,GAAG,cAAc,CAAC;oBACvC,UAAU,GAAG,IAAI,CAAC;iBACnB;gBACD,IAAI,UAAU,EAAE;oBACd,KAAI,CAAC,2BAA2B,EAAE,CAAC;iBACpC;gBACD,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC;gBACjD,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAI,CAAC,SAAS,EAAEzC,iBAAY,CAAC,OAAO,CAAC,CAAC;aACpF,CAAC,CAAC;YAEH,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAqB,CAAC;YACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,aAAa,KAAK,IAAI,EAC1B;gBACE,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1F;QAED,kDAAW,GAAX;YACE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;;;;;QAMD,qDAAc,GAAd;YACE,IAAI,CAAC,YAAY,CAAC,GAAG,GAAGwC,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,GAAG,GAAGC,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,KAAK,CAAC;YACV,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACjC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC5D,OAAO,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;YAC5D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;SACd;;;;QAKD,0DAAmB,GAAnB;YACE,IAAM,UAAU,GAAGC,eAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,IAAI,UAAU,EAAE;gBACd,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBACjD,IAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAC7B,kEAAkE,CACnE,CAAC;gBACF,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;gBAChG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACzC;SACF;;;;QAKD,oDAAa,GAAb,UAAc,MAAe;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE1C,iBAAY,CAAC,OAAO,CAAC,CAAC;SACvE;;;;QAKO,gDAAS,GAAT;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACjC,SAAS,EAAE,CAAC,EAAE,EAAE,CAACuC,eAAU,CAAC,QAAQ,CAAC,CAAC;aACvC,CAAC,CAAC;SACJ;;;;QAKO,kEAA2B,GAA3B;YAAA,iBAgCP;YA/BC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC3C,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,YAAY,CAAC,GAAG,CAAC,UAAA,CAAC;gBAChB,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;oBAC5B,IAAM,IAAI,GAAGC,UAAO,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,IAAI,EAAE;wBACR,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,cAAW,EAAE,GAAG,IAAI,CAAE,CAAC;wBACrE,CAAC,CAAC,KAAK,GAAG,SAAO,IAAM,CAAC;wBACxB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;wBACd,CAAC,CAAC,IAAI,GAAG,KAAG,IAAM,CAAC;wBACnB,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;qBACtF;yBACI;wBACH,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBACb,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;wBACvB,IAAI,KAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;4BACzC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBAC7C;qBACF;iBACF;gBACD,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;oBAC5B,IAAM,IAAI,GAAGC,UAAO,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAM,IAAI,GAAG,aAAW,IAAM,CAAC;oBAC/B,CAAC,CAAC,KAAK,GAAG,SAAO,IAAM,CAAC;oBACxB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC,CAAC,IAAI,GAAG,KAAG,IAAM,CAAC;oBACnB,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;iBACtF;aACF,CAAC,CAAC;YACH,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,EAAE,GAAA,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;;;;QAKO,yDAAkB,GAAlB;YACN,IAAI,CAAC,sBAAsB,GAAGE,gCAA6B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACzF,IAAM,WAAW,GAAuB,EAAE,CAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAClC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1F;YAED,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;gBACrC,WAAW,CAAC,IAAI,CAAC;oBACf,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;oBACvG,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;iBACnE,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;gBACrC,WAAW,CAAC,IAAI,CAAC;oBACf,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;oBACvG,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;iBACnE,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;gBAC3C,WAAW,CAAC,IAAI,CAAC;oBACf,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,kDAAkD,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;oBAC7G,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;iBAChF,CAAC,CAAC;aACJ;YACD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;;gBAEnC,IAAM,IAAI,GAAGH,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,cAAW,EAAE,GAAG,IAAI,CAAE,CAAC;oBACrE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;wBACvB,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;wBACnH,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAO,IAAM;wBAAE,IAAI,MAAA;wBAAE,IAAI,EAAE,KAAG,IAAM;qBACjE,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;YACD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;gBACnC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAM,IAAI,GAAGC,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,aAAW,IAAM,CAAC;gBAChE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;oBAC3B,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;oBACnH,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAO,IAAM;oBAAE,IAAI,MAAA;oBAAE,IAAI,EAAE,KAAG,IAAM;iBACjE,CAAC,CAAC;aACJ;YACD,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE;gBAC9C,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;aAC/D;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC9D;;;;;QAMO,8CAAO,GAAP,UAAQ,WAAoC;YAClD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;gBACnC,IAAM,IAAI,GAAGD,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,cAAW,EAAE,GAAG,IAAI,CAAE,CAAC;gBACrE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;oBACrB,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;oBACnH,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAO,IAAM;oBAAE,IAAI,MAAA;oBAAE,IAAI,EAAE,KAAG,IAAM;iBAAC,CAAC,CAAC;aACxE;SACF;;;;;QAMO,kDAAW,GAAX;YACN,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;;;;QAKO,uDAAgB,GAAhB;YACN,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;gBACzC,IAAM,IAAI,GAAGA,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAO,IAAM,CAAC;gBACrC,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,cAAW,EAAE,GAAG,IAAI,CAAE,CAAC;gBACrE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAG,IAAM,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;aACrI;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;gBACzC,IAAM,IAAI,GAAGC,UAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAO,IAAM,CAAC;gBACrC,IAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,cAAY,IAAM,GAAG,aAAW,IAAM,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAG,IAAM,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;aACrI;SACF;;;;;;QAOD,qDAAc,GAAd,UAAe,aAA+B;YAC5C,IAAM,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC;YACtC,IAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YAClC,IAAI,QAAQ,CAAC;YACb,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,UAAU;gBACrC,IAAI,EAAE,EAAE;oBACN,IAAI,EAAE,KAAK,UAAU,CAAC,YAAY,EAAE;wBAClC,QAAQ,GAAG,IAAI,CAAC;qBACjB;iBACF;qBACI,IAAI,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE;oBACnC,QAAQ,GAAG,IAAI,CAAC;iBACjB;gBACD,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YACH,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC;SACjB;;;;;QAMD,mDAAY,GAAZ,UAAa,WAA6B;YAA1C,iBAuBC;YAtBC,IAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChE,kBAAkB,CAAC,OAAO,CAAC,UAAA,UAAU;gBACjC,IAAI,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBAC3C,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBACjC,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAM,gBAAgB,GAAGG,iBAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChG,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;oBAC5E,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE;oBAC9E,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBAC9B,IAAI,KAAI,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE;wBAC7C,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC7C;oBACD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,GAAA,CAAC,CAAC;oBACtE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACxC;qBACI;oBACD,IAAI,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;wBACxB,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;wBACxD,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;qBAChC;iBACJ;aACJ,CAAC,CAAC;SACJ;;;4GAzVU,4BAA4B;8FAA5B,4BAA4B;;gBDlBzCpE,8GAIiB;gBACjBA,oJAKc;gBAEdA,8GAIiB;gBACjBA,oJAIc;gBAEdA,4CAEoC;gBAAhCA,oHAAS,yBAAqB,IAAC;gBAC/BA,yCAA4C;gBAC5CA,uBACJ;;gBAAAA,4BAAS;gBAETA,2CAA0C;gBACxCA,qDAA4C;gBAC1CA,6CAAW;gBAAAA,wBAAoF;;gBAAAA,4BAAY;gBAC3GA,iDAAkC;gBAAtBA,qKAAqB;gBAC/BA,wGAKa;;gBACfA,4BAAa;gBACfA,4BAAiB;gBACjBA,wDAG2C;gBAAzCA,uIAAU,iCAA6B,IAAC;gBACxCA,wBACF;;gBAAAA,4BAAmB;gBACrBA,4BAAO;gBAEPA,yCAAmC;gBAAAA,wBAAgG;;gBAAAA,4BAAI;;;;;gBAlDtHA,2CAAa,iBAAA;gBAYbA,0BAAa;gBAAbA,2CAAa,iBAAA;gBAe1BA,0BACJ;gBADIA,4IACJ;gBAEuBA,0BAAkB;gBAAlBA,+CAAkB;gBAE1BA,0BAAoF;gBAApFA,wIAAoF;gBACnFA,0BAAqB;gBAArBA,gDAAqB;gBAENA,0BAAyB;gBAAzBA,wFAAyB;gBAQpDA,0BAAkB;gBAAlBA,+CAAkB,2BAAA;gBAGlBA,0BACF;gBADEA,8IACF;gBAGiCA,0BAAgG;gBAAhGA,kKAAgG;;;;2FChCtH,4BAA4B;sBALxCE,YAAS;uBAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,uCAAuC;wBACpD,SAAS,EAAE,CAAC,uCAAuC,CAAC;qBACrD;0TAiCK,sBAAsB;0BADzBG,QAAK;;;;AC/BKgE,oCAAwB;;SAEpC;uCAAA;SAAA;4GAFYA,gCAAwB;kGAAxBA,gCAAwB;;gBClBrCrE,wCAAuB;gBAAAA,uBAA6E;;gBAAAA,4BAAK;gBACzGA,gDAAyC;gBACzCA,4CAAsD;gBAEtDA,wCAAuB;gBAAAA,uBAAoF;;gBAAAA,4BAAK;gBAChHA,sDAAqD;gBACrDA,4CAAsD;;;gBAN/BA,0BAA6E;gBAA7EA,+HAA6E;gBAI7EA,0BAAoF;gBAApFA,sIAAoF;;;ADc9FqE,oCAAwB;QAfpCpE,gBAAa,CAAC;YACb,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,mCAAmC;YAC1C,IAAI,EAAE,SAAS;SAChB,CAAC;;;;OAWWoE,gCAAwB,CAEpC;;2FAFYA,gCAAwB;sBANpCnE,YAAS;uBAAC;wBACT,QAAQ,EAAE,uBAAuB;wBACjC,WAAW,EAAE,oCAAoC;wBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;qBAClD;;;;;QEyDD;;QACS,uBAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;kFANU,eAAe;gFAAf,eAAe;oFAjCjB;gBACPoE,gBAAW;gBACXC,wBAAmB;gBACnBpB,kCAAqB;gBACrBqB,mBAAgB;gBAChBC,oBAAe;gBACfC,oBAAe;gBACfC,uBAAkB;gBAClBC,oBAAc;gBACdC,0BAAiB;gBACjBC,mBAAgB;gBAChBhE,eAAY;gBACZsC,kBAAa;gBACb2B,kBAAa;gBACbnC,gBAAa;gBACbG,sBAAiB;gBACjBiC,iBAAc;gBACdC,oBAAiB;gBACjBC,oBAAiB;gBACjBjC,wBAAqB;gBACrBkC,kBAAe;gBACf3E,mBAAgB;gBAChB,qBAAqB;gBACrB4E,wBAAoB;gBACpBC,kBAAa;gBACbxC,kBAAe;gBACfC,mBAAgB;aACjB;;2FAMU,eAAe;sBAlC3BpD,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACP4E,gBAAW;4BACXC,wBAAmB;4BACnBpB,kCAAqB;4BACrBqB,mBAAgB;4BAChBC,oBAAe;4BACfC,oBAAe;4BACfC,uBAAkB;4BAClBC,oBAAc;4BACdC,0BAAiB;4BACjBC,mBAAgB;4BAChBhE,eAAY;4BACZsC,kBAAa;4BACb2B,kBAAa;4BACbnC,gBAAa;4BACbG,sBAAiB;4BACjBiC,iBAAc;4BACdC,oBAAiB;4BACjBC,oBAAiB;4BACjBjC,wBAAqB;4BACrBkC,kBAAe;4BACf3E,mBAAgB;4BAChB,qBAAqB;4BACrB4E,wBAAoB;4BACpBC,kBAAa;4BACbxC,kBAAe;4BACfC,mBAAgB;yBACjB;wBACD,YAAY,EAAE,CAAEuB,gCAAwB,EAAEb,wBAAgB;4BACxDC,yBAAiB,EAAEJ,+BAAuB,EAAEQ,8BAAsB,EAAE,sBAAsB,EAAE,4BAA4B,CAAC;wBAC3H,OAAO,EAAE,CAACQ,gCAAwB,EAAEb,wBAAgB,EAAEC,yBAAiB,EAAEJ,+BAAuB,EAAEQ,8BAAsB,CAAC;wBACzH,OAAO,EAAE,CAACpD,yBAAsB,CAAC;qBAClC;;;;4FACY,eAAe,mBALV4D,gCAAwB,EAAEb,wBAAgB;gBACxDC,yBAAiB,EAAEJ,+BAAuB,EAAEQ,8BAAsB,EAAE,sBAAsB,EAAE,4BAA4B,aA5BxHS,gBAAW;gBACXC,wBAAmB;gBACnBpB,kCAAqB;gBACrBqB,mBAAgB;gBAChBC,oBAAe;gBACfC,oBAAe;gBACfC,uBAAkB;gBAClBC,oBAAc;gBACdC,0BAAiB;gBACjBC,mBAAgB;gBAChBhE,eAAY;gBACZsC,kBAAa;gBACb2B,kBAAa;gBACbnC,gBAAa;gBACbG,sBAAiB;gBACjBiC,iBAAc;gBACdC,oBAAiB;gBACjBC,oBAAiB;gBACjBjC,wBAAqB;gBACrBkC,kBAAe;gBACf3E,mBAAgB;gBAChB,qBAAqB;gBACrB4E,wBAAoB;gBACpBC,kBAAa;gBACbxC,kBAAe;gBACfC,mBAAgB,aAIRuB,gCAAwB,EAAEb,wBAAgB,EAAEC,yBAAiB,EAAEJ,+BAAuB,EAAEQ,8BAAsB;;;ICjE1H;;;;QAeE,sBAAoB,QAAkB;YAAtC,iBAUC;YAVmB,aAAQ,GAAR,QAAQ,CAAU;;;;YAJ/B,UAAK,GAAqC,IAAInC,eAAY,CAAqB,EAAE,EAAE;gBACxF,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;YAID,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,MAAM;gBACzC,KAAK,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,GAAA,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG;oBACvE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACxC,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;yBAC1C,MAAM,CAAC,UAAA,OAAO,IAAK,OAAA,OAAe,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAA,CAAC;yBACjF,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC;iBAChE;aACF,CAAC,CAAC;SACJ;;;4EAnBU,YAAY;iFAAZ,YAAY,WAAZ,YAAY,mBAFX,MAAM;;2FAEP,YAAY;sBAHxB5B,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICAD;;;AAaawF,iCAAqB;QAchC,+BACU,YAA0B,EAC1B,QAAkB;YADlB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,aAAQ,GAAR,QAAQ,CAAU;SACxB;QAXJ,sBAAI,wCAAK;;;;;iBAAT,cAAgD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;;;WAAA;QAMjF,sBAAI,sCAAG;;;;;iBAAP,cAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;;WAAA;oCAOhD;SAAA;sGAnBYA,6BAAqB;+FAArBA,6BAAqB;;gBCvBlCtF,6CAAyD;;;gBAA3CA,4CAAe,gBAAA;;;ADuBhBsF,iCAAqB;QAVjCrF,gBAAa,CAAC;YACb,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,gCAAgC;YACvC,IAAI,EAAE,OAAO;SACd,CAAC;OAMWqF,6BAAqB,CAmBjC;;2FAnBYA,6BAAqB;sBALjCpF,YAAS;uBAAC;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,WAAW,EAAE,gCAAgC;wBAC7C,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;;;;IEhBD;;;;QAWA;;;;oGAAa,wBAAwB;yFAAxB,wBAAwB;6FAP1B;gBACP0E,oBAAiB;aAClB;;2FAKU,wBAAwB;sBARpC7F,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACP6F,oBAAiB;yBAClB;wBACD,YAAY,EAAE,CAACD,6BAAqB,CAAC;wBACrC,OAAO,EAAE,CAACA,6BAAqB,CAAC;wBAChC,OAAO,EAAE,CAAC7E,yBAAsB,CAAC;qBAClC;;;uGACY,wBAAwB,mBAJpB6E,6BAAqB,aAFlCC,oBAAiB,aAGTD,6BAAqB;;;QCHjC;;;;0FAAa,mBAAmB;oFAAnB,mBAAmB;wFANrB,EAAE,EAGT,wBAAwB;;2FAGf,mBAAmB;sBAP/B5F,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE;4BACP,wBAAwB;yBACzB;qBACF;;;uGACY,mBAAmB,cAH5B,wBAAwB;;ACQf8F,8BAAkB;QAK7B,4BAAoB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;SAAI;QAJ1C,sBAAI,mCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;iCAGF;SAAA;gGANYA,0BAAkB;4FAAlBA,0BAAkB;;gBChB/BxF,0CAAmC;;;gBAAxBA,wCAAW;;;ADgBTwF,8BAAkB;QAT9BvF,gBAAa,CAAC;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,6BAA6B;YACpC,IAAI,EAAE,SAAS;SAChB,CAAC;OAKWuF,0BAAkB,CAM9B;;2FANYA,0BAAkB;sBAJ9BtF,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,6BAA6B;qBAC3C;;;;;QEAD;;QACS,yBAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;sFANU,iBAAiB;kFAAjB,iBAAiB;sFALnB,CAACuF,iBAAc,CAAC;;2FAKd,iBAAiB;sBAN7B/F,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAAC+F,iBAAc,CAAC;wBACzB,YAAY,EAAE,CAACD,0BAAkB,CAAC;wBAClC,OAAO,EAAE,CAACA,0BAAkB,CAAC;wBAC7B,OAAO,EAAE,CAAC/E,yBAAsB,CAAC;qBAClC;;;uGACY,iBAAiB,mBAJb+E,0BAAkB,aADvBC,iBAAc,aAEdD,0BAAkB;;ICL9B;;;;QA0CE,qBACU,mBAAwC,EACxC,cAA8B,EAC9B,aAA4B;YAF5B,wBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,kBAAa,GAAb,aAAa,CAAe;YAtC/B,uBAAkB,GAA6B,EAAE,CAAC;YAClD,gCAA2B,GAA6B,EAAE,CAAC;YAC3D,4BAAuB,GAA6B,EAAE,CAAC;YAKrD,wBAAmB,GAA4B,IAAI3F,oBAAe,CAAC,GAAG,CAAC,CAAC;YAExE,gBAAW,GAA4B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YAEtE,gBAAW,GAA4B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YAEtE,oBAAe,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAEvE,kCAA6B,GAA6B,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAErF,0BAAqB,GAA6B,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;YAEjF,oBAAe,GAAkC,IAAIA,oBAAe,CAAC,SAAS,CAAC,CAAC;;;;YAKhF,UAAK,GAA8B,IAAIa,cAAW,CAAe,EAAE,CAAC,CAAC;YAe5E,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAI3E,CAAC;YACF,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC;gBAClD,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,SAAS,CAAC;gBAChE,IAAI,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,CAAC;aACzD;YAED,IAAM,4BAA4B,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,8BAA8B,CAAY,CAAC;YACxG,IAAI,4BAA4B,EAAE;gBAChC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;aACvE;YACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,CAAC,CAAC;SACtE;QA1BD,sBAAI,oCAAW;;;;iBAAf;gBACE,OAAO,IAAI,CAAC,mBAAmB;qBAC5B,iBAAiB,EAAE;qBACnB,GAAG,CAAC,UAAC,MAAoB,IAAM,OAAA,MAAM,CAAC,WAAmB,CAAC,IAAI,GAAA,CAAC,CAAC;aACpE;;;WAAA;QAwBO,oDAA8B,GAA9B;YACN,IAAM,gBAAgB,GAAG,UAAC,MAAkC;gBAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;aACzC,CAAC;YACF,OAAO,IAAIyB,sCAAmC,CAAC,EAAC,gBAAgB,kBAAA,EAAmC,CAAC,CAAC;SACtG;;;;;QAMD,sDAAgC,GAAhC;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAACA,sCAAmC,CAAC,CAAC;YACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;SACF;;;;;QAMD,wDAAkC,GAAlC;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAACA,sCAAmC,CAAC,CAAC;YACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC;aACvB;SACF;QAED,kCAAY,GAAZ;YACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,mCAAa,GAAb;YACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjC;QAED,mCAAa,GAAb,UAAc,UAAkB;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACnC;QAED,mCAAa,GAAb,UAAc,UAAkB;YAC9B,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACnC;QAED,6CAAuB,GAAvB;YACE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvC;QAED,uCAAiB,GAAjB,UAAkB,MAAoB;YACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,oDAA8B,GAA9B,UAA+B,KAAK;YAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChD;;;0EAnHU,WAAW;gFAAX,WAAW,WAAX,WAAW,mBAFV,MAAM;;2FAEP,WAAW;sBAHvBrC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;;QCMC,mCACkB,SAA6B,EACrC,WAAwB;YADhB,cAAS,GAAT,SAAS,CAAoB;YACrC,gBAAW,GAAX,WAAW,CAAa;SAC9B;QAVJ,sBAAI,iDAAU;iBAAd,cAA2B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;;;WAAA;QACvE,sBAAI,iDAAU;iBAAd,cAA2B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;;;WAAA;QAWvE,4CAAQ,GAAR;YAAA,iBAgBC;YAfC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,UAAkB;gBAC5E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;oBACnD,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;iBACpC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,UAAkB;gBAC5E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;oBACnD,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;iBAC1C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,UAAC,cAAuB;gBACzF,KAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC;aAC1C,CAAC,CAAC;SACJ;QAED,+CAAW,GAAX;YACE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACrC;QAGD,sDAAkB,GAAlB,UAAmB,UAAmB;YACpC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;aAC5C;SACF;QAGD,sDAAkB,GAAlB,UAAmB,UAAmB;YACpC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;aAC5C;SACF;;;sGAlDU,yBAAyB;2FAAzB,yBAAyB;;qJAAzB,8BAA0B,iHAA1B,8BAA0B;;;;2FAA1B,yBAAyB;sBAHrC4F,YAAS;uBAAC;wBACT,QAAQ,EAAE,uBAAuB;qBAClC;;;kCAWIC,OAAI;;aA6BP,kBAAkB;0BADjBC,eAAY;2BAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;oBAQ5C,kBAAkB;0BADjBA,eAAY;2BAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;;IChD9C;;;;QAQA;;;;8FAAa,qBAAqB;sFAArB,qBAAqB;0FAJvB,CAACC,kBAAe,CAAC;;2FAIf,qBAAqB;sBALjCnG,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAACmG,kBAAe,CAAC;wBAC1B,YAAY,EAAE,CAAC,yBAAyB,CAAC;wBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;qBACrC;;;uGACY,qBAAqB,mBAHjB,yBAAyB,aAD9BA,kBAAe,aAEf,yBAAyB;;;;YCZrC7F,yCAAmE;YACjEA,6CAAgC;YAC9BA,qCAAI;YAAAA,yCAAQ;YAAAA,uBAA+D;;YAAAA,4BAAS;YAAAA,4BAAK;YACzFA,oCAAG;YAAAA,yCAAQ;YAAAA,uBAA8D;;YAAAA,4BAAS;YAAAA,4BAAI;YACtFA,qCAAiG;;;YACrGA,4BAAU;YACVA,4BAAM;;;YAJUA,0BAA+D;YAA/DA,+GAA+D;YAChEA,0BAA8D;YAA9DA,8GAA8D;YACpEA,0BAAqF;YAArFA,qLAAqF;;;;;YA8BtFA,uDAGwB;;;;;YAFtBA,2CAAW,oBAAA;;;;;;YAkBfA,6CAOkC;YAAhCA,uQAA+B;;;YAC/BA,0CAK0C;;;YAC5CA,4BAAS;;;;YATPA,0QAAgM;YAIhMA,0BAA4D;YAA5DA,mHAA4D,gGAAA;;;;;;YAnBhEA,gDAA2D;YAEzDA,6CAI6B;YAA3BA,4PAA0B;YAC1BA,0CAAsG;;YACxGA,4BAAS;YAETA,yHAcS;YAETA,0DAK8B;YAA5BA,iRAA2B;;YAC7BA,4BAAsB;YACxBA,4BAAY;;;;YAjCDA,sDAAsB;YAOnBA,0BAAgF;YAAhFA,uIAAgF;YAIzFA,0BAAsB;YAAtBA,yDAAsB;YAiBvBA,0BAA4B;YAA5BA,qFAA4B,mBAAA,qCAAA;;;;;;YA/DpCA,qDAS2D;;YAEzDA,yCAAyB;YACvBA,wDAYmC;YALjCA,kRAAqC,6PAAA,gQAAA,oQAAA,sQAAA,qPAAA;YAMrCA,iKAKc;YAChBA,4BAAqB;YACvBA,4BAAM;YAENA,0CAAyC;YACvCA,mHAiCY;;YACdA,4BAAM;YAERA,4BAAe;;;;YA9DbA,sHAAwD;YAIpDA,0BAAe;YAAfA,+CAAe,+BAAA,qBAAA,qCAAA,2CAAA;YAsBkBA,0BAAsB;YAAtBA,kFAAsB;;;ICQ7D;;;AAaa8F,sCAA0B;QA6ErC,oCACU,QAAkB,EAClB,WAAwB,EACxB,KAAiB,EAClB,SAAoB,EACnB,cAA8B,EACtC,aAA4B;YALpB,aAAQ,GAAR,QAAQ,CAAU;YAClB,gBAAW,GAAX,WAAW,CAAa;YACxB,UAAK,GAAL,KAAK,CAAY;YAClB,cAAS,GAAT,SAAS,CAAW;YACnB,mBAAc,GAAd,cAAc,CAAgB;;;;YA9E/B,cAAS,GAAY,IAAI,CAAC;YAE3B,kCAA6B,GAAY,KAAK,CAAC;YAI/C,2BAAsB,GAAc,EAAE,CAAC;YACvC,mCAA8B,GAAc,EAAE,CAAC;YAC/C,mBAAc,GAAkC,IAAIjG,oBAAe,CACzE,SAAS,CACV,CAAC;YACK,+BAA0B,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAwCxD,SAAI,GAAG,EAAE,CAAC;YAGV,oBAAe,GAAG,IAAIA,oBAAe,CAAU,SAAS,CAAC,CAAC;YAE1D,mBAAc,GAAG,IAAIA,oBAAe,CAAgB,SAAS,CAAC,CAAC;YAe9D,WAAM,GAAG,IAAIkG,mCAAe,EAAE,CAAC;YAUrC,IAAI,CAAC,6BAA6B,GAAG,aAAa,CAAC,SAAS,CAC1D,+BAA+B,CAChC,CAAC;SACH;QAhED,sBAAI,6CAAK;;;;;iBAAT;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;aAC/B;;;WAAA;QAMD,sBAAI,2CAAG;;;;;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,oDAAY;iBAAhB;gBACE,OAAO,IAAI,CAAC,OAAO,GAAGC,iBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;aAChE;;;WAAA;QAED,sBAAI,gDAAQ;iBAAZ;gBAAA,iBAWC;gBAVC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS;qBACxB,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAA,CAAC;qBAChC,IAAI,CACH3D,aAAG,CACD,UAAC,OAAO,IACR,QAAC,KAAI,CAAC,OAAO,GAAG,OAAO;sBAClB,OAAO,CAAC,MAAM,CAAC,IAAgB;sBAChC,SAAS,IAAC,CACf,CACF,CAAC;aACL;;;WAAA;QAYD,sBACI,qDAAa;iBAGjB;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;aAClC;iBAND,UACkB,KAAoB;gBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC;;;WAAA;QAKD,sBAAI,oDAAY;iBAAhB;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC;aACnD;;;WAAA;QAiBD,6CAAQ,GAAR;;YAAA,iBA8FC;YA7FC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CACxD,UAAC,UAAkB;gBACjB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;oBACnD,KAAI,CAAC,IAAI,GAAG,UAAU,CAAC;iBACxB;aACF,CACF,CAAC;;gBAEF,KAAkB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAhD,IAAM,GAAG,WAAA;oBACZ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACtD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;qBACjC;iBACF;;;;;;;;;YAED,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC;gBAC/C,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACnD,IAAM,OAAO,GAAG,KAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAM,QAAQ,GAAG,KAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,QAAQ,EAAE;oBACZ,UAAU,CAAC;;wBAET,IAAI,CAAC,KAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;4BAC/C,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;yBACxC;qBACF,EAAE4D,oBAAiB,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;iBAC3C;aACF,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;oBAC3C,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAGtD,kBAAa,CAAC;wBACrD,IAAI,CAAC,cAAc;wBACnB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;qBACpC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAsC,IAClD,OAAA,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAA,CAC9C,CAAC;iBACH;gBAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAGA,kBAAa,CAAC;wBACtD,IAAI,CAAC,WAAW,CAAC,eAAe;wBAChC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;qBACpC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAsC,IAClD,OAAA,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAA,CAC/C,CAAC;iBACH;aACF;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,IAAI,CAAC,uBAAuB,GAAGA,kBAAa,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,6BAA6B;gBAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;gBAC3B,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,WAAW,CAAC,eAAe;gBAChC,IAAI,CAAC,WAAW,CAAC,WAAW;gBAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;aACpC,CAAC,CAAC,SAAS,CAAC,UAAC,KAA4G;gBAExH,IAAM,4BAA4B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,KAAI,CAAC,6BAA6B,EAAE;oBACtC,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;iBACpC;gBACD,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC;gBAC9F,IAAM,mBAAmB,GAAG,aAAa;qBACtC,MAAM,CAAC,UAAA,MAAM,IACZ,OAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAKuD,UAAO;oBACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;oBAC3B,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;oBACtB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAA,CAAC,CAAC;gBAE3B,mBAAmB,CAAC,GAAG,CAAC,UAAA,MAAM;;oBAC5B,IAAI,4BAA4B,EAAE;wBAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;4BAC3BC,uBAAoB,CAClB,MAAM,CAAC,MAAM,CACX,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAuC,EAAE,EAClE,KAAI,CAAC,WAAW,CAAC,kBAAkB,EACnC,CAAA,MAAA,MAAM,CAAC,MAAM,CAAC,KAAK,0CAAE,IAAI,IAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAC1D,CAAC,CAAC;wBACP,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAe,CAAC,CAAC;wBAChE,KAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAe,EAAErE,gBAAa,CAAC,IAAI,CAAC,CAAC;wBAC3F,IAAI,KAAI,CAAC,6BAA6B,EAAE;4BACtC,KAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAA+B,EAAE,OAAO,CAAC,CAAC;yBAC3E;qBACF;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;QAEO,2DAAsB,GAAtB;YAAA,iBAyBP;YAxBC,IAAI,CAAC,2BAA2B,GAAGa,kBAAa,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM;gBAC9B,IAAI,CAAC,WAAW,CAAC,eAAe;aACjC,CAAC;iBACC,IAAI,CAACe,sBAAY,CAAC,GAAG,CAAC,CAAC;iBACvB,SAAS,CAAC,UAAC,KAAK;gBACf,IAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAA0B,CAAC;gBACzD,IAAI,CAAC,cAAc,EAAE;oBACnB,KAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5C,OAAO;iBACR;gBACD,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChC,IAAM,iBAAiB,GAAG0C,cAAW,CACnC,cAAc,CAAC,IAAI,EACnB,KAAI,CAAC,GAAG,CAAC,UAAU,CACpB,CAAC;oBACF,IAAM,uBAAuB,GAAGC,0BAAuB,CAAC,KAAI,CAAC,GAAG,EAAE;wBAChE,iBAAiB;qBAClB,CAAC,CAAC;oBACH,KAAI,CAAC,0BAA0B,CAAC,IAAI,CAClCC,uBAAoB,CAAC,KAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CACxD,CAAC;iBACH;aACF,CAAC,CAAC;SACN;QAEO,wDAAmB,GAAnB,UACN,MAA6B,EAC7B,OAAqD;;YAErD,IAAI,OAAO,KAAK,OAAO,EAAE;gBACvB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpC,OAAO;aACR;YACD,IAAM,WAAW,GAAGF,cAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClE,IAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAIG,2BAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAsC,EAAE,MAAM,CAAC,EAAE;gBAC1G,IAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAM,QAAQ,GAAG,IAAIC,6BAAS,CAAC;oBAC7B,IAAI,EAAK,OAAO,oBAAiB;oBACjC,QAAQ,EAAE,IAAIC,2BAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC9B,CAAC,CAAC;gBACH,IAAM,cAAc,GAAGC,gBAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAEpE,IAAI,aAAa,SAAA,CAAC;gBAClB,IAAI,YAAY,GAAG,CAAC,CAAC;gBAErB,QAAQ,OAAO;oBACb,KAAK,SAAS;wBACZ,aAAa,GAAGC,+BAA4B,CAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;wBACpD,YAAY,GAAG,CAAC,CAAC;wBACjB,MAAM;oBACR,KAAK,OAAO;wBACV,aAAa,GAAGR,uBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EACnD,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,kBAAkB,EACnC,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,IAAI,IAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChD,MAAM;oBACR,KAAK,UAAU;wBACb,aAAa,GAAGQ,+BAA4B,CAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAC5C,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,SAAS,IAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5D,YAAY,GAAG,CAAC,CAAC;wBACjB,MAAM;iBACT;gBACD,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;gBAC1C,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,cAAc,EAAE7E,gBAAa,CAAC,IAAI,CAAC,CAAC;gBAC7E,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;iBAC7C;gBACD,IAAI,OAAO,KAAK,UAAU,EAAE;oBAC1B,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;iBAC9C;gBACD,IAAI,OAAO,KAAK,OAAO,EAAE;oBACvB,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC1D;aACF;iBAAM;gBACL,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;aACpC;SACF;QAEO,yDAAoB,GAApB,UAAqB,OAAyC;YAA9D,iBAaP;YAZC,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBACvD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACxE,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;aACxC;YACD,IAAI,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBACzD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzE,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;aACzC;YACD,IAAI,OAAO,KAAK,OAAO,EAAE;gBACvB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAA,WAAW,IAAI,OAAA,KAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,GAAA,CAAC,CAAC;gBACjH,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;aAC1C;SACF;QAED,gDAAW,GAAX;YACE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBACpC,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAChC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;aAC/B;SACF;;;;;;QAOD,kDAAa,GAAb,UAAc,MAAoB;;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAKoE,UAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAGS,+BAA4B,CACnD,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,MAAM,CAAC,IAAuC,EAAE,EAC3D,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;gBAEpD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3F,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,OAAO;iBACR;gBACD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAe,EAAE7E,gBAAa,CAAC,IAAI,CAAC,CAAC;aACtF;SACF;QAED,oDAAe,GAAf,UAAgB,MAAoB;;YAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAKoE,UAAO,EAAE;gBACpC,OAAO;aACR;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAClD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3F,IAAI,OAAO,EAAE;oBACX,IAAM,KAAK,GAAGS,+BAA4B,CACxC,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,MAAM,CAAC,IAAuC,EAAE,EAC3D,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,IAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACzB;gBACD,OAAO;aACR;YACD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAe,CAAC,CAAC;SACrE;;;;;;QAOD,mDAAc,GAAd,UAAe,MAAoB;YAAnC,iBAmBC;YAlBC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;gBACrC,IAAM,SAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAM,UAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,UAAU,CAAC;;oBAET,IAAI,CAAC,KAAI,CAAC,kBAAkB,CAAC,SAAO,EAAE,UAAQ,CAAC,EAAE;wBAC/C,KAAI,CAAC,cAAc,CAAC,SAAO,EAAE,UAAQ,CAAC,CAAC;qBACxC;iBACF,EAAEV,oBAAiB,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBACpC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;aACjC;SACF;QAED,6CAAQ,GAAR,UAAS,KAAsD;;YAA/D,iBA4CC;YA3CC,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK;iBAC1C,MAAM,CAAC,UAAC,MAAoB,IAAK,OAAA,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAA,CAAC;iBACzE,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;gBAE5B,KAAkB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA,gBAAA,4BAAE;oBAA/B,IAAM,GAAG,WAAA;oBACZ,IACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI;wBAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,EAC3C;wBACA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;qBACxD;iBACF;;;;;;;;;YAED,UAAU,CAAC;gBACT,IAAM,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,WAAW,CAAC;gBAChB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,MAAM;oBACtC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBACnC,WAAW,GAAG,IAAI,CAAC;qBACpB;yBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,UAAU,EAAE;wBAClD,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;qBAC/D;yBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE;wBAChD,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;qBAC7D;yBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE;wBACnD,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;qBAChE;yBAAM;wBACL,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC;qBACvF;oBAED,IACE,WAAW,KAAK,IAAI;wBACpB,CAAC,KAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,EAC9C;wBACA,OAAO,CAAC,SAAS;4BACf,WAAW,CAAC,SAAS;gCACrB,WAAW,CAAC,YAAY;gCACxB,OAAO,CAAC,YAAY,CAAC;qBACxB;iBACF,CAAC,CAAC;aACJ,EAAE,GAAG,CAAC,CAAC;SACT;QAED,sDAAiB,GAAjB;YACE,IAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;YACvE,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAC3D,UAAU,CACX,CAAC,CAAC,CAAC,CAAC;YACL,IAAI,YAAY,CAAC;;YAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;oBACzD,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;iBACzB;aACF;YACD,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAChC;QAED,mDAAc,GAAd,UAAe,UAAU,EAAE,IAAI;YAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;gBAC9C,UAAU,CAAC,SAAS;oBAClB,IAAI,CAAC,SAAS;wBACd,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;wBAC7B,UAAU,CAAC,YAAY,CAAC;aAC3B;SACF;QAED,mDAAc,GAAd;YACE,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;gBACrC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;aACjC;SACF;QAED,wDAAmB,GAAnB;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACzB,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC3D,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;oBACvC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;iBACvC,CAAC,CAAC;gBACHW,mBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE9E,gBAAa,CAAC,IAAI,CAAC,CAAC;aAClE;SACF;;;;;QAMO,uDAAkB,GAAlB,UAAmB,MAAoB;;YAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAKoE,UAAO,EAAE;gBACpC,OAAO,SAAS,CAAC;aAClB;YACD,IAAM,OAAO,GAAI,MAAgC,CAAC,IAAI,CAAC;;YAGvD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACrB,OAAO;aACR;YAED,OAAO,CAAC,IAAI,CAAC,KAAK,GAAGS,+BAA4B,CAC/C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,SAAA,EAAE,EACX,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAC5C,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,SAAS,IAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACnD;QAED,uDAAkB,GAAlB,UAAmB,UAAU,EAAE,IAAI;YACjC,IAAM,OAAO,GAAG,CAAC,CAAC;YAClB,IAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;YACxC,IAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;YAE3D,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAM,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YACzD,OAAO,UAAU,IAAI,aAAa,IAAI,OAAO,IAAI,UAAU,CAAC;SAC7D;QAED,6CAAQ,GAAR;YAAA,iBAyBC;YAxBC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC5C,UAAU,CAAC;gBACT,IAAI,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,IAAI,KAAI,CAAC,UAAU,EAAE;oBAAE,KAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;iBAAE;gBACvD,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAC,IAAa;oBACzF,IAAI,KAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE;wBACjF,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,IAAM,IAAI,GAAG,KAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAA,CAAC,CAAC;wBAChF,IAAI,KAAK,SAAA,CAAC;wBACV,IAAI,KAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;4BACzB,IAAI,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;gCAC1C,KAAK,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;6BACtF;iCAAM;gCACL,IAAM,KAAK,GAAGE,kCAAc,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCACpD,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;6BACxE;yBACF;wBACD,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,YAAY,CAAC;wBAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACzB,KAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAC7C;iBACF,CAAC,CAAC;aACJ,EAAE,GAAG,CAAC,CAAC;SACT;yCACF;SAAA;gHA9gBYf,kCAA0B;oGAA1BA,kCAA0B;;gBDhEvC9F,wFAMM;gBAENA,0GAuEe;;;;gBA/ETA,yEAAqC;gBASxCA,0BAAuD;gBAAvDA,oHAAuD;;;ACuD7C8F,sCAA0B;QAVtC7F,gBAAa,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,qCAAqC;YAC5C,IAAI,EAAE,SAAS;SAChB,CAAC;OAMW6F,kCAA0B,CA8gBtC;;2FA9gBYA,kCAA0B;sBALtC5F,YAAS;uBAAC;wBACT,QAAQ,EAAE,yBAAyB;wBACnC,WAAW,EAAE,sCAAsC;wBACnD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;mNAKU,SAAS;0BAAjBR,QAAK;oBA4DF,aAAa;0BADhBA,QAAK;;;;IC7GR;;;;QAsBA;;;;8GAAa,6BAA6B;8FAA7B,6BAA6B;kGAlB/B;gBACPS,eAAY;gBACZ8B,gBAAa;gBACbkE,kBAAc;gBACdhE,mBAAgB;gBAChBD,kBAAe;gBACfE,sBAAiB;gBACjBgE,mBAAgB;gBAChBlB,kBAAe;gBACfmB,oBAAiB;gBACjBC,iBAAc;gBACdC,0BAAuB;gBACvBC,sBAAmB;aACpB;;2FAKU,6BAA6B;sBAnBzCzH,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPoB,eAAY;4BACZ8B,gBAAa;4BACbkE,kBAAc;4BACdhE,mBAAgB;4BAChBD,kBAAe;4BACfE,sBAAiB;4BACjBgE,mBAAgB;4BAChBlB,kBAAe;4BACfmB,oBAAiB;4BACjBC,iBAAc;4BACdC,0BAAuB;4BACvBC,sBAAmB;yBACpB;wBACD,YAAY,EAAE,CAACrB,kCAA0B,CAAC;wBAC1C,OAAO,EAAE,CAACA,kCAA0B,CAAC;wBACrC,OAAO,EAAE,CAACrF,yBAAsB,CAAC;qBAClC;;;;4FACY,6BAA6B,mBAJzBqF,kCAA0B,aAbvChF,eAAY;gBACZ8B,gBAAa;gBACbkE,kBAAc;gBACdhE,mBAAgB;gBAChBD,kBAAe;gBACfE,sBAAiB;gBACjBgE,mBAAgB;gBAChBlB,kBAAe;gBACfmB,oBAAiB;gBACjBC,iBAAc;gBACdC,0BAAuB;gBACvBC,sBAAmB,aAGXrB,kCAA0B;;;;QCxBtC;;;;wFAAa,kBAAkB;mFAAlB,kBAAkB;uFAPpB,EAAE,EAGV,qBAAqB;YACrB,6BAA6B;;2FAGnB,kBAAkB;sBAR9BpG,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE;4BACR,qBAAqB;4BACrB,6BAA6B;yBAC7B;qBACF;;;;4FACY,kBAAkB,cAJ5B,qBAAqB;gBACrB,6BAA6B;;;ACGnB0H,kCAAsB;QACjC;SAAgB;qCACjB;SAAA;wGAFYA,8BAAsB;gGAAtBA,8BAAsB;;gBCbnCpH,wDAA+E;;;ADalEoH,kCAAsB;QATlCnH,gBAAa,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,iCAAiC;YACxC,IAAI,EAAE,QAAQ;SACf,CAAC;OAKWmH,8BAAsB,CAElC;;2FAFYA,8BAAsB;sBAJlClH,YAAS;uBAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,WAAW,EAAE,kCAAkC;qBAChD;;;;AECYmH,mCAAuB;QAClC;SAAgB;sCACjB;SAAA;0GAFYA,+BAAuB;iGAAvBA,+BAAuB;;gBCbpCrH,qDAAsE;;;ADazDqH,mCAAuB;QATnCpH,gBAAa,CAAC;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,SAAS;SAChB,CAAC;OAKWoH,+BAAuB,CAEnC;;2FAFYA,+BAAuB;sBAJnCnH,YAAS;uBAAC;wBACT,QAAQ,EAAE,sBAAsB;wBAChC,WAAW,EAAE,mCAAmC;qBACjD;;;;;;YE8BCF,wCAA0D;YACxDA,oDAA+D;YACjEA,qCAAe;;;;YADQA,0BAAmB;YAAnBA,+CAAmB;;;ICJ5C;;;AAiBasH,sCAA0B;QAqCrC,oCACU,eAAgC,EAChC,oBAA0C,EAC1C,iBAAoC,EACpC,YAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,eAAgC,EAChC,iBAAoC,EACpC,SAAoB,EACpB,cAA8B,EAC9B,KAAwB;YAVxB,oBAAe,GAAf,eAAe,CAAiB;YAChC,yBAAoB,GAApB,oBAAoB,CAAsB;YAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,iBAAY,GAAZ,YAAY,CAAc;YAC1B,aAAQ,GAAR,QAAQ,CAAU;YAClB,mBAAc,GAAd,cAAc,CAAgB;YAC9B,oBAAe,GAAf,eAAe,CAAiB;YAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,cAAS,GAAT,SAAS,CAAW;YACpB,mBAAc,GAAd,cAAc,CAAgB;YAC9B,UAAK,GAAL,KAAK,CAAmB;YA1CzB,aAAQ,GAA0BC,wBAAqB,CAAC,OAAO,CAAC;YAGlE,WAAM,GAAY,EAAE,CAAC;YACrB,iBAAY,GAAY,EAAE,CAAC;YAM3B,WAAM,GAAG,CAAC,CAAC;YAEX,aAAQ,GAAG,CAAC,CAAC;YAEb,qBAAgB,GAA6B,IAAI1H,oBAAe,CACrE,SAAS,CACV,CAAC;YAEM,WAAM,GAAG,IAAIkG,mCAAe,EAAE,CAAC;YAEhC,UAAK,GAAyB,IAAIrF,cAAW,CAAU,EAAE,CAAC,CAAC;YAE3D,qBAAgB,GAAyB,IAAIA,cAAW,CAAU,EAAE,CAAC,CAAC;YAEtE,YAAO,GAAG,KAAK,CAAC;YAEhB,mBAAc,GAAG,CAAC,CAAC;YAEnB,gBAAW,GAAsB8G,oBAAiB,CAAC,MAAM,CAAC;YACzD,iBAAY,GAAG,IAAItG,YAAO,EAAQ,CAAC;SAcvC;QAhDJ,sBAAI,2CAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAgDD,6CAAQ,GAAR;;;gBACE,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA,gBAAA,4BAAE;oBAAhC,IAAM,KAAK,WAAA;oBACd,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,EAAE;wBACtH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACzB;iBACF;;;;;;;;;SACF;QAED,gDAAW,GAAX;YACE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAC9B;QAED,kDAAa,GAAb,UAAc,KAAwB;YACpC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;QAED,uDAAkB,GAAlB,UAAmB,KAA6B;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;SACF;QAED,uDAAkB,GAAlB;;YACE,IAAM,GAAG,GAAG,EAAE,CAAC;;gBACf,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,4BAAE;oBAA5B,IAAM,KAAK,WAAA;oBACd,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACpB;;;;;;;;;YACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACtB,wBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAmB,CAAC,CAAC;YAC3E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACrD;QAED,sDAAiB,GAAjB;YAAA,iBA0BC;YAzBC,IAAI,cAAc,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC6H,mBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;;gBAC/E,IAAI,KAAI,CAAC,YAAY,CAAC,MAAM,IAAI,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1E,IAAI,KAAI,CAAC,QAAQ,KAAKF,wBAAqB,CAAC,SAAS,EAAE;gDACxC,QAAQ;4BACjB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;gCACzB,cAAc,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAA,CAAC,CAAC;;6BAExH;;;4BAJH,KAAuB,IAAA,KAAA,SAAA,KAAI,CAAC,SAAS,CAAA,gBAAA;gCAAhC,IAAM,QAAQ,WAAA;sDAAR,QAAQ;;;6BAKpB;;;;;;;;;qBACF;yBAAM;wBACH,IAAM,OAAK,GAAG,WAAW,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACrD,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,KAAK;4BAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAK,CAAC,EAAE;gCAC/B,cAAc,GAAG,KAAK,CAAC;6BACxB;yBACF,CAAC,CAAC;qBACN;oBAED,IAAI,cAAc,EAAE;wBAClB,KAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBAClD,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;qBAC/D;iBACF;aACF,CAAC,CAAC;SACJ;QAEO,mDAAc,GAAd;YAAA,iBAiBP;YAhBC,IAAI,CAAC,oBAAoB;iBACtB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC9B,IAAI,CAACE,mBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAClC,SAAS,CAAC,UAAC,QAAmB;gBAC7B,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;wBACvC,OAAO,CAAC,CAAC,CAAC;qBACX;oBACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;wBACvC,OAAO,CAAC,CAAC;qBACV;oBACD,OAAO,CAAC,CAAC;iBACV,CAAC,CAAC;gBACH,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC9B,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC,CAAC,CAAC;SACN;QAED,0DAAqB,GAArB;YACE,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QAED,yDAAoB,GAApB;YACE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;QAED,6CAAQ,GAAR;YACE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,IAAI,KAAKC,oBAAiB,CAAC,UAAU,EAAE;gBAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;aAC5B;SACF;QAEO,kDAAa,GAAb;YAAA,iBA6FP;YA5FC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAI,SAAS,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAKA,oBAAiB,CAAC,KAAK,EAAE;gBAC9D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAKH,wBAAqB,CAAC,SAAS,EAAE;gBACrD,IAAM,KAAK,GAA0B;oBACnC,IAAI,EAAE,EAAE;iBACT,CAAC;gBACF,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;aACrB;iBAAM;gBACL,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;aAC5B;YACD,IAAI,IAAI,CAAC,WAAW,KAAKC,oBAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAKE,oBAAiB,CAAC,KAAK,EAAE;gBAC9F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,IAAI,KAAKA,oBAAiB,CAAC,OAAO,EAAE;gBAC3C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB;YAED,IAAM,YAAY,GAA4B,EAAE,CAAC;YACjD,SAAS,CAAC,OAAO,CAAC,UAAA,QAAQ;gBACxB,YAAY,CAAC,IAAI,CACf,KAAI,CAAC,oBAAoB;qBACtB,cAAc,CACb,KAAI,CAAC,IAAI,EACT,KAAI,CAAC,QAAQ,EACb,KAAI,CAAC,SAAS,EACd,QAAQ,EACR,KAAI,CAAC,MAAM,CACZ;qBACA,IAAI,CACHC,aAAG,CAAC,UAAC,QAAmB;oBACtB,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAM,aAAa,GAAc,EAAE,CAAC;oBACpC,IAAM,gBAAgB,GAAc,EAAE,CAAC;oBACvC,IAAI,OAAO,CAAC;oBACZ,IAAI,UAAU,CAAC;oBACf,QAAQ,CAAC,OAAO,CAAC,UAAA,OAAO;wBACtB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;4BACrC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BAC/D,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BAC9D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC5B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;yBAC3B;6BAAM;4BACL,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC/B,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;yBAC9B;qBACF,CAAC,CAAC;oBAEH,KAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBAC9C,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;oBACpD,IAAI,QAAQ,CAAC,MAAM,EAAE;wBACnB,WAAW,GAAG,KAAK,CAAC;wBACpB,KAAI,CAAC,cAAc,IAAI,CAAC,CAAC;wBACzB,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC7B,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC5B;yBAAM;wBACL,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;qBAC7B;oBAED,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE;wBAC5B,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACpC,oCAAoC,CACrC,EACD,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACpC,+BAA+B,CAChC,EACD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;qBACH;iBACF,CAAC,CACH,CACJ,CAAC;aACH,CAAC,CAAC;YAEHC,aAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAACH,mBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClE,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,WAAW,EAAE;oBACf,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACpC,mCAAmC,CACpC,EACD,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACpC,+BAA+B,CAChC,EACD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;iBACH;aACF,CAAC,CAAC;SACJ;QAED,iDAAY,GAAZ,UAAa,OAAgB,EAAE,MAAgB;YAC7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,OAAO,EAAE;gBACX,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;aACnC;SACF;;;;QAKM,wDAAmB,GAAnB,UAAoB,QAAmB,EAAE,MAAgB;;YAAzD,iBAuGN;;YAtGC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACC,OAAO;;gBAChB,IAAI,OAAK,IAAI,KAAKC,oBAAiB,CAAC,UAAU,EAAE;;wBAC9C,KAAoB,IAAA,oBAAA,SAAA,OAAK,MAAM,CAAA,CAAA,gBAAA,4BAAE;4BAA5B,IAAM,KAAK,WAAA;4BACd,IACE,KAAK,CAAC,OAAO,CAAC,SAAS;gCACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,IAAI;gCACxD,CAAC,MAAM,EACP;gCACA,IAAI,EAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,EAAE;oCACpC,IAAM,KAAK,GAAG,OAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oCACzC,OAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iCAC9B;;6BAEF;4BACD,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,MAAM,CAAC,EAAE;gCACnC,OAAK,YAAY,GAAG,EAAE,CAAC;gCACvB,IAAM,KAAK,GAAG,OAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACzC,OAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gCAC7B,OAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;6BAC7B;yBACF;;;;;;;;;iBACF;qBAAM;oBACL,IAAI,MAAM,EAAE;;4BACV,KAAoB,IAAA,oBAAA,SAAA,OAAK,YAAY,CAAA,CAAA,gBAAA,4BAAE;gCAAlC,IAAM,KAAK,WAAA;gCACd,IAAI,OAAK,YAAY,CAAC,MAAM,KAAK,CAAC,KAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,EAAE;oCACrE,IAAM,KAAK,GAAG,OAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oCACzC,OAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oCAC7B,OAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iCAC7B;6BACF;;;;;;;;;qBACF;oBACD,OAAK,YAAY,GAAG,EAAE,CAAC;iBACxB;;oBACD,KAAoB,IAAA,oBAAA,SAAA,OAAK,MAAM,CAAA,CAAA,gBAAA,4BAAE;wBAA5B,IAAM,KAAK,WAAA;wBACd,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,MAAM,CAAC,EAAE;4BACnC,CAAC,EAAE,CAAC;yBACL;qBACF;;;;;;;;;gBACD,OAAK,iBAAiB;qBACnB,qBAAqB,CAAC;oBACrB,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,IAAI;iBACc,CAAC;qBAC/B,IAAI,CAAC9G,cAAI,CAAC,CAAC,CAAC,CAAC;qBACb,SAAS,CAAC,UAAC,UAAsB;oBAChC,IAAM,OAAO,GAAG,KAAI,CAAC,YAAY,CAAC,WAAW,CAAC;wBAC5C,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAClE,qCAAqC,CACtC,CAAW;wBACZ,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;wBAC5B,SAAS,EAAE;4BACT,IAAI,EACF,KAAI,CAAC,IAAI,KAAK8G,oBAAiB,CAAC,UAAU;kCACtC,OAAO,CAAC,UAAU,CAAC,IAAI;kCACvB,SAAS;yBAChB;wBACD,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,UAAC,QAAQ,EAAE,UAAU;4BAC1B,IAAM,WAAW,GAAI,QAAQ,CAAC,CAAC,CAAS,CAAC,WAAW,CAAC;4BACrD,OAAO,IAAIG,kBAAO,CAAC,KAAK,CAAC;gCACvB,KAAK,EAAE,IAAIA,kBAAO,CAAC,MAAM,CAAC;oCACxB,MAAM,EAAE,WAAW;0CACf,KAAI,CAAC,MAAM;4CACX,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;4CAC1C,UAAU;0CACV,SAAS;oCACb,IAAI,EAAE,IAAIA,kBAAO,CAAC,IAAI,CAAC;wCACrB,KAAK,EAAE,yBAAyB;qCACjC,CAAC;oCACF,MAAM,EAAE,IAAIA,kBAAO,CAAC,MAAM,CAAC;wCACzB,KAAK,EAAE,CAAC;wCACR,KAAK,EAAE,QAAQ;qCAChB,CAAC;iCACH,CAAC;gCACF,MAAM,EAAE,IAAIA,kBAAO,CAAC,MAAM,CAAC;oCACzB,KAAK,EAAE,CAAC;oCACR,KAAK,EAAE,QAAQ;iCAChB,CAAC;gCACF,IAAI,EAAE,IAAIA,kBAAO,CAAC,IAAI,CAAC;oCACrB,KAAK,EAAE,yBAAyB;iCACjC,CAAC;6BACH,CAAC,CAAC;yBACJ;qBACF,CAAC,CAAC;oBACH,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC;wBAC/B,OAAOzB,cAAW,CAAC,CAAC,EAAE,KAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;qBAC5C,CAAC,CAAC;oBACH,IAAI,KAAI,CAAC,IAAI,KAAKsB,oBAAiB,CAAC,UAAU,EAAE;wBAC9C,IAAM,IAAI,GAAG,KAAI,CAAC,IAAI,KAAKA,oBAAiB,CAAC,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;wBAC3E,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;wBACvC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;qBACvC;oBACD,IAAM,EAAE,GAAG,UAAU,CAAC,EAAkD,CAAC;oBACzE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAC3B,KAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC3B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC5B,CAAC,CAAC;;;;gBAnGP,KAAsB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA;oBAAzB,IAAM,OAAO,qBAAA;0CAAP,OAAO;;;iBAoGjB;;;;;;;;;SACF;;;;;QAMO,qDAAgB,GAAhB,UAAiB,QAAmB,EAAE,EAAE;;YAAxC,iBA8DP;;YA7DC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;oBAC1B,OAAO;iBACR;;oBACD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,4BAAE;wBAA5B,IAAM,KAAK,WAAA;wBACd,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACnD,CAAC,EAAE,CAAC;yBACL;qBACF;;;;;;;;;gBACD,IAAI,CAAC,iBAAiB;qBACnB,qBAAqB,CAAC;oBACrB,IAAI,EAAE,SAAS;oBACf,EAAE,IAAA;oBACF,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,GAAG;oBACb,IAAI,EAAE;wBACJ,KAAK,EAAE,SAAS;qBACjB;iBAC4B,CAAC;qBAC/B,IAAI,CAAC9G,cAAI,CAAC,CAAC,CAAC,CAAC;qBACb,SAAS,CAAC,UAAC,UAA6B;oBACvC,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnC,IAAI,KAAoB,CAAC;oBACzB,IAAI,CAAC,IAAI,EAAE;wBACT,KAAK,GAAGkH,2BAAwB,EAAE,CAAC;qBACpC;yBAAM;wBACL,KAAK,GAAG,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAIA,2BAAwB,EAAE,CAAC;qBAChE;oBAED,IAAM,OAAO,GAAG,KAAI,CAAC,YAAY,CAAC,WAAW,CAAC;wBAC5C,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACvF,qCAAqC,CACtC,CAAW;wBACZ,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI;wBACb,KAAK,OAAA;qBACN,CAAC,CAAC;oBAEH,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO;wBACrC,OAAO1B,cAAW,CAAC,OAAO,EAAE,KAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;qBAClD,CAAC,CAAC;oBACH,IAAM,EAAE,GAAG,UAAU,CAAC,EAAqB,CAAC;oBAC5C,EAAE,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,GAAA,CAAC,EAAE;wBACtD,KAAI,CAAC,GAAG,CAAC,WAAW,CAClB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,GAAA,CAAC,CACnD,CAAC;wBACF,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACV,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAChG,qCAAqC,CACtC,CAAW,CAAC;wBACb,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;qBACvC;oBACD,KAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAClB,KAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC3B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACxB,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC5B,CAAC,CAAC;aACN;SACF;QAEO,kDAAa,GAAb,UAAc,IAAI;YACxB,IAAI,KAAoB,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAA,MAAM;gBACzD,IAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC1C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;gBACjD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACvC,IAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACpD,KAAK,GAAG,IAAIyB,kBAAO,CAAC,KAAK,CAAC;oBACxB,KAAK,EAAE,IAAIA,kBAAO,CAAC,IAAI,CAAC;wBACtB,GAAG,EAAE,0BAA0B,GAAG,GAAG;qBACtC,CAAC;iBACH,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;;;;QAIO,qDAAgB,GAAhB,UAAiB,QAAmB,EAAE,EAAE;;YAAxC,iBA+CP;;YA9CC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;oBAC1B,OAAO;iBACR;;oBACD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,4BAAE;wBAA5B,IAAM,KAAK,WAAA;wBACd,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACnD,CAAC,EAAE,CAAC;yBACL;qBACF;;;;;;;;;gBACD,IAAI,CAAC,iBAAiB;qBACnB,qBAAqB,CAAC;oBACrB,IAAI,EAAE,QAAQ;oBACd,EAAE,IAAA;oBACF,SAAS,EAAE,IAAI;iBACc,CAAC;qBAC/B,IAAI,CAACjH,cAAI,CAAC,CAAC,CAAC,CAAC;qBACb,SAAS,CAAC,UAAC,UAAsB;oBAChC,IAAM,OAAO,GAAG,KAAI,CAAC,YAAY,CAAC,WAAW,CAAC;wBAC5C,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACvF,qCAAqC,CACtC,CAAW;wBACZ,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;oBACH,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO;wBACrC,OAAOwF,cAAW,CAAC,OAAO,EAAE,KAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;qBAClD,CAAC,CAAC;oBACH,IAAM,EAAE,GAAG,UAAU,CAAC,EAAgC,CAAC;oBACvD,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAC3B,IAAI,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,GAAA,CAAC,EAAE;wBACtD,KAAI,CAAC,GAAG,CAAC,WAAW,CAClB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,GAAA,CAAC,CACnD,CAAC;wBACF,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACV,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAChG,qCAAqC,CACtC,CAAW,CAAC;wBACb,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;qBACvC;oBACD,KAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC3B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACxB,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC5B,CAAC,CAAC;aACN;SACF;QAED,wDAAmB,GAAnB,UAAoB,OAAO;YACzB,IAAI,OAAO,EAAE;gBACX,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;oBACjD,cAAc,EAAE,OAAO,CAAC,UAAU;oBAClC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;iBACvC,CAAC,CAAC;gBACHQ,mBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE9E,gBAAa,CAAC,IAAI,CAAC,CAAC;aAC7D;SACF;QAED,8CAAS,GAAT,UAAU,KAAK;;;gBACb,KAAkB,IAAA,KAAA,SAAA,IAAI,CAAC,YAAY,CAAA,gBAAA,4BAAE;oBAAhC,IAAM,GAAG,WAAA;oBACZ,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;wBACvB,OAAO;qBACR;iBACF;;;;;;;;;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;yCACF;SAAA;gHAzgBYwF,kCAA0B;oGAA1BA,kCAA0B;;gBDxDvCtH,4CAAW;gBACTA,6DAU6C;gBAL3CA,iJAAa,yBAAqB,IAAC,mIACjB,8BAA0B,IADT,2HAErB,wBAAoB,IAFC,+IAGX,yBAAqB,IAAI,CAAC,IAHf,sJAAA,qKAAA;gBAMrCA,4BAA0B;gBAE1BA,6DAuBG;gBAbDA,4KAA+B,oJAAA,qKAAA,0KAAA,sJAAA,+IAKP,yBAAqB,IAAI,CAAC,IALnB,4JAAA,6JAAA,yHAQf,2BAAuB,IARR,iIASX,cAAU,IATC,iIAUX,0BAAsB,IAVX,6GAWrB,wBAAoB,IAXC,2HAYd,uBAAmB,IAZL;gBAcjCA,4BAA0B;gBAC5BA,4BAAY;gBAEZA,4CAAW;gBACTA,wGAEe;;gBACjBA,4BAAY;;;gBA3CRA,0BAA0B;gBAA1BA,uDAA0B,oCAAA,kBAAA,4BAAA;gBAa1BA,0BAAa;gBAAbA,0CAAa,4BAAA,gBAAA,kBAAA,wBAAA,oBAAA,4BAAA,yBAAA,sCAAA;gBA2BAA,0BAA+B;gBAA/BA,wFAA+B;;;ACcnCsH,sCAA0B;QAdtCrH,gBAAa,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,qCAAqC;YAC5C,IAAI,EAAE,kBAAkB;SACzB,CAAC;;;;OAUWqH,kCAA0B,CAygBtC;;2FAzgBYA,kCAA0B;sBANtCpH,YAAS;uBAAC;wBACT,QAAQ,EAAE,yBAAyB;wBACnC,WAAW,EAAE,sCAAsC;wBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;wBACnD,eAAe,EAAEW,0BAAuB,CAAC,MAAM;qBAChD;obAMU,IAAI;0BAAZR,QAAK;oBACG,QAAQ;0BAAhBA,QAAK;oBACG,oBAAoB;0BAA5BA,QAAK;;;;aCtDQ0H,gBAAc,CAC5B,KAAe,EACf,IAAoB;QADpB,sBAAA,EAAA,eAAe;QACf,qBAAA,EAAA,oBAAoB;QAEpB,OAAOC,kBAAO,CAAC,gBAAgB,EAAE;YAC/BC,gBAAK,CACH,OAAO,EACPC,gBAAK,CAAC;gBACJ,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CACH;YACDC,qBAAU,CAAC,eAAe,EAAEC,kBAAO,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SACzD,CAAC,CAAC;IACL;;ACJaC,yCAA6B;QAiBxC,uCAAmB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;YAF9B,YAAO,GAAG,OAAO,CAAC;SAEgB;QAfzC,sBAAI,8CAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,gDAAK;iBAAT;;;oBACE,KAAkB,IAAA,KAAA,SAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA,gBAAA,4BAAE;wBAA9B,IAAM,GAAG,WAAA;wBACZ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;4BAC/B,OAAO,GAAG,CAAC;yBACZ;qBACF;;;;;;;;;gBACD,OAAO;aACR;;;WAAA;4CAKF;SAAA;sHAlBYA,qCAA6B;uGAA7BA,qCAA6B;;gBClB1CrI,qDAKuB;;;gBAJnBA,wCAAW,oBAAA,iBAAA,gCAAA;;qGDeD,CAAC+H,gBAAc,EAAE,CAAC;AAEnBM,yCAA6B;QAXzCpI,gBAAa,CAAC;YACb,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,UAAU;SACnB,CAAC;OAMWoI,qCAA6B,CAkBzC;;2FAlBYA,qCAA6B;sBALzCnI,YAAS;uBAAC;wBACT,QAAQ,EAAE,6BAA6B;wBACvC,WAAW,EAAE,0CAA0C;wBACvD,UAAU,EAAE,CAAC6H,gBAAc,EAAE,CAAC;qBAC/B;;;;aERe,cAAc,CAC5B,KAAe,EACf,IAAoB;QADpB,sBAAA,EAAA,eAAe;QACf,qBAAA,EAAA,oBAAoB;QAEpB,OAAOC,kBAAO,CAAC,gBAAgB,EAAE;YAC/BC,gBAAK,CACH,OAAO,EACPC,gBAAK,CAAC;gBACJ,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CACH;YACDC,qBAAU,CAAC,eAAe,EAAEC,kBAAO,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SACzD,CAAC,CAAC;IACL;;ACHaE,wCAA4B;QAiBvC,sCAAmB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;YAF9B,YAAO,GAAG,OAAO,CAAC;SAEgB;QAfzC,sBAAI,6CAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1B;;;WAAA;QAED,sBAAI,+CAAK;iBAAT;;;oBACE,KAAkB,IAAA,KAAA,SAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA,gBAAA,4BAAE;wBAA9B,IAAM,GAAG,WAAA;wBACZ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;4BAC/B,OAAO,GAAG,CAAC;yBACZ;qBACF;;;;;;;;;gBACD,OAAO;aACR;;;WAAA;2CAKF;SAAA;oHAlBYA,oCAA4B;sGAA5BA,oCAA4B;;gBCnBzCtI,wDAK0B;;;gBAJtBA,wCAAW,oBAAA,iBAAA,gCAAA;;wGDgBD,CAAC,cAAc,EAAE,CAAC;AAEnBsI,wCAA4B;QAXxCrI,gBAAa,CAAC;YACb,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,iCAAiC;YACxC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,UAAU;SACnB,CAAC;OAMWqI,oCAA4B,CAkBxC;;2FAlBYA,oCAA4B;sBALxCpI,YAAS;uBAAC;wBACT,QAAQ,EAAE,4BAA4B;wBACtC,WAAW,EAAE,yCAAyC;wBACtD,UAAU,EAAE,CAAC,cAAc,EAAE,CAAC;qBAC/B;;;;;QEcD;;QACS,0BAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;wFANU,kBAAkB;mFAAlB,kBAAkB;uFAjBpB,CAACiF,kBAAe,EAAEoD,iBAAc,EAAEzH,eAAY,CAAC;;2FAiB7C,kBAAkB;sBAlB9BpB,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAACyF,kBAAe,EAAEoD,iBAAc,EAAEzH,eAAY,CAAC;wBACxD,YAAY,EAAE;4BACZsG,8BAAsB;4BACtBkB,oCAA4B;4BAC5BjB,+BAAuB;4BACvBgB,qCAA6B;4BAC7Bf,kCAA0B;yBAC3B;wBACD,OAAO,EAAE;4BACPF,8BAAsB;4BACtBkB,oCAA4B;4BAC5BjB,+BAAuB;4BACvBgB,qCAA6B;4BAC7Bf,kCAA0B;yBAC3B;wBACD,OAAO,EAAE,CAAC7G,yBAAsB,CAAC;qBAClC;;;;4FACY,kBAAkB,mBAf3B2G,8BAAsB;gBACtBkB,oCAA4B;gBAC5BjB,+BAAuB;gBACvBgB,qCAA6B;gBAC7Bf,kCAA0B,aANlBnC,kBAAe,EAAEoD,iBAAc,EAAEzH,eAAY,aASrDsG,8BAAsB;gBACtBkB,oCAA4B;gBAC5BjB,+BAAuB;gBACvBgB,qCAA6B;gBAC7Bf,kCAA0B;;;;;;YCnB9BtH,4CAOwB;YAAtBA,yNAAqB;;YACrBA,uCAAM;YAAAA,uBAAyD;;YAAAA,4BAAO;YACtEA,yCAA6C;YAC/CA,4BAAS;;;;YALPA,oDAAoB,iGAAA;YAGdA,0BAAyD;YAAzDA,2GAAyD;;;;;YAIjEA,4CAO6B;;YAC3BA,uCAAM;YAAAA,uBAAyD;;YAAAA,4BAAO;YACtEA,yCAA6C;YAC/CA,4BAAS;;;;;YALPA,oDAAoB,iGAAA,0BAAA;YAGdA,0BAAyD;YAAzDA,2GAAyD;;;;;;YAK/DA,6CAAyF;YAA3BA,yRAA0B;YAACA,uBAAyB;YAAAA,4BAAS;;;;;YAAlCA,0BAAyB;YAAzBA,gEAAyB;;;;;YAGpHA,gDAEkB;;;;;YADhBA,oFAA+B;;;;ACnBpBwI,8BAAkB;QAuC7B,4BACS,aAA4B,EAC5B,IAAiB,EAChB,IAAgB,EAChB,KAAwB,EACxB,eAAgC;YAJjC,kBAAa,GAAb,aAAa,CAAe;YAC5B,SAAI,GAAJ,IAAI,CAAa;YAChB,SAAI,GAAJ,IAAI,CAAY;YAChB,UAAK,GAAL,KAAK,CAAmB;YACxB,oBAAe,GAAf,eAAe,CAAiB;YA5BlC,2BAAsB,GAAW,KAAK,CAAC;YACxC,2BAAsB,GAAuBC,OAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAc5E,UAAK,GAAW,gCAAgC,CAAC;YACjD,gBAAW,GAAW,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YAKtG,YAAO,GAAG,KAAK,CAAC;YAQrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;YAC3E,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,gCAAgC,CAAC;SAC7F;QA/CD,sBACI,0CAAU;iBADd;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;iBACD,UAAe,KAAa;gBAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aACpE;;;WAHA;QAKD,sBACI,oCAAI;iBADR;gBAEE,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;iBACD,UAAS,KAAa;gBACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAC9D;;;WAHA;QAOD,sBACI,qDAAqB;iBADzB;gBAEE,OAAO,IAAI,CAAC,sBAAsB,CAAC;aACpC;iBACD,UAA0B,KAAa;gBACrC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,sBAAsB,GAAGA,OAAE,CAAC,KAAK,CAAC,CAAC;aACzC;;;WAJA;QA4BD,qCAAQ,GAAR;YAAA,iBAaC;YAZC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;gBAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAC,MAAM;oBACjD,IAAM,MAAM,GAAG,MAAa,CAAC;oBAC7B,KAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;oBACvC,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC5B,CAAC,CAAC;aACJ;iBAAM,IACH,IAAI,CAAC,IAAI,CAAC,aAAa;gBACvB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;gBACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;aACnF;SACF;QAED,sCAAS,GAAT,UAAU,KAAM;YAAhB,iBAcC;YAbC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAM,GAAG,GAAG,KAAK;gBACf,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,GAAG;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACtD,IAAI,CAAC,IAAI;iBACR,GAAG,CAAC,GAAG,EAAE;gBACR,YAAY,EAAE,MAAM;aACrB,CAAC;iBACD,SAAS,CAAC;gBACT,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC5B,CAAC,CAAC;SACJ;QAED,2CAAc,GAAd,UAAe,IAAY;YACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;SACb;iCACF;SAAA;gGAvFYD,0BAAkB;4FAAlBA,0BAAkB;;gBDnB/BxI,+BAAO;gBACPA,qDAMuB;gBAEvBA,oFAUS;gBAETA,oFAUS;gBAETA,oDAA0B;gBACxBA,oFAA2H;gBAC7HA,4BAAW;gBAEXA,sGAEkB;gBAElBA,gDAEkB;;;;gBArChBA,0BAAiD;gBAAjDA,8EAAiD;gBAG1CA,0BAA+E;gBAA/EA,uHAA+E;gBAY/EA,0BAA6E;gBAA7EA,qHAA6E;gBAa1DA,0BAAoB;gBAApBA,0DAAoB;gBAG9BA,0BAAuB;gBAAvBA,uDAAuB;gBAKvCA,0BAA6C;gBAA7CA,+HAA6C;;;ACvBlCwI,8BAAkB;QAV9BvI,gBAAa,CAAC;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,6BAA6B;YACpC,IAAI,EAAE,aAAa;SACpB,CAAC;OAMWuI,0BAAkB,CAuF9B;;2FAvFYA,0BAAkB;sBAL9BtI,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,6BAA6B;wBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;qBAC3C;wPAGK,UAAU;0BADbG,QAAK;oBASF,IAAI;0BADPA,QAAK;oBAWF,qBAAqB;0BADxBA,QAAK;oBASG,iBAAiB;0BAAzBA,QAAK;;;;;QChBR;;QACS,yBAAO,GAAd;YACE,OAAO;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,EAAE;aACd,CAAC;SACH;;;sFANU,iBAAiB;kFAAjB,iBAAiB;sFAdnB;gBACP0C,sBAAiB;gBACjBoE,sBAAmB;gBACnBtE,kBAAe;gBACfC,mBAAgB;gBAChBF,gBAAa;gBACbyC,kBAAa;gBACbqD,2BAAwB;gBACxB5H,eAAY;aACb;;2FAKU,iBAAiB;sBAf7BpB,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPqD,sBAAiB;4BACjBoE,sBAAmB;4BACnBtE,kBAAe;4BACfC,mBAAgB;4BAChBF,gBAAa;4BACbyC,kBAAa;4BACbqD,2BAAwB;4BACxB5H,eAAY;yBACb;wBACD,YAAY,EAAE,CAAC0H,0BAAkB,CAAC;wBAClC,OAAO,EAAE,CAACA,0BAAkB,CAAC;wBAC7B,OAAO,EAAE,CAAC/H,yBAAsB,CAAC;qBAClC;;;;4FACY,iBAAiB,mBAJb+H,0BAAkB,aAT/BzF,sBAAiB;gBACjBoE,sBAAmB;gBACnBtE,kBAAe;gBACfC,mBAAgB;gBAChBF,gBAAa;gBACbyC,kBAAa;gBACbqD,2BAAwB;gBACxB5H,eAAY,aAGJ0H,0BAAkB;;;;QCrB9B;;;;0FAAa,mBAAmB;oFAAnB,mBAAmB;wFAJrB,EAAE;;2FAIA,mBAAmB;sBAL/B9I,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE;qBACZ;;;;;QC+BD;;;;4FAAa,oBAAoB;qFAApB,oBAAoB;yFAnBtB,EAAE,EAGT,mBAAmB;YACnB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,sBAAsB;YACtB,gBAAgB;YAChB,qBAAqB;YACrB,wBAAwB;YACxB,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;;2FAGR,oBAAoB;sBApBhCA,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE;4BACP,mBAAmB;4BACnB,qBAAqB;4BACrB,mBAAmB;4BACnB,mBAAmB;4BACnB,sBAAsB;4BACtB,gBAAgB;4BAChB,qBAAqB;4BACrB,wBAAwB;4BACxB,eAAe;4BACf,mBAAmB;4BACnB,iBAAiB;4BACjB,kBAAkB;4BAClB,kBAAkB;4BAClB,iBAAiB;yBAClB;qBACF;;;;4FACY,oBAAoB,cAhB7B,mBAAmB;gBACnB,qBAAqB;gBACrB,mBAAmB;gBACnB,mBAAmB;gBACnB,sBAAsB;gBACtB,gBAAgB;gBAChB,qBAAqB;gBACrB,wBAAwB;gBACxB,eAAe;gBACf,mBAAmB;gBACnB,iBAAiB;gBACjB,kBAAkB;gBAClB,kBAAkB;gBAClB,iBAAiB;;;;QC3BrB;;;;oFAAa,gBAAgB;iFAAhB,gBAAgB;qFAJlB,EAAE;;2FAIA,gBAAgB;sBAL5BA,WAAQ;uBAAC;wBACR,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,EAAE;wBAChB,OAAO,EAAE,EAAE;qBACZ;;;;ICID;;;;QAYE,sBACU,cAA8B,EAC9B,WAAwB,EACxB,SAAoB,EACpB,eAAgC;YAJ1C,iBAYC;YAXS,mBAAc,GAAd,cAAc,CAAgB;YAC9B,gBAAW,GAAX,WAAW,CAAa;YACxB,cAAS,GAAT,SAAS,CAAW;YACpB,oBAAe,GAAf,eAAe,CAAiB;;;;YAN1C,aAAQ,GAAqC,IAAIG,oBAAe,CAAC,SAAS,CAAC,CAAC;YAQ1E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,OAAwB;gBAC9D,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,UAAC,OAAwB;gBACnE,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3B,CAAC,CAAC;SACJ;;;;;QAMO,iCAAU,GAAV,UAAW,OAAwB;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;;;;;QAMO,kCAAW,GAAX,UAAY,OAAwB;YAApC,iBAqCP;YApCC,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAEvC,IAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,YAAY,CAAC,OAAO,CAAC,UAAC,WAAiB;gBACrC,IAAM,QAAQ,GAAG,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,OAAO;iBACR;gBAED,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,WAAW,CAAC,OAAO,IAAI,EAAE,CAC1B,CAAC;gBACF,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB,CAAC,CAAC;YAEH,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;gBACjB,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,GAAA,CAAC,CAAC;oBACrE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;wBACtB,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACjC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC7C;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;;;YAI1C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;SACvD;;;;;QAMO,sCAAe,GAAf,UAAgB,OAAwB;YAC9C,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,OAAO;aACR;YACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC1B;;;4EAjFU,YAAY;iFAAZ,YAAY,WAAZ,YAAY,mBAFX,MAAM;;2FAEP,YAAY;sBAHxBC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICLD;;;;;;;QAWE,kCACU,gBAAkC,EAClC,WAAwB,EACxB,YAA0B,EAC1B,WAAwB,EACxB,SAAoB;YAJpB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,gBAAW,GAAX,WAAW,CAAa;YACxB,cAAS,GAAT,SAAS,CAAW;SAC1B;QAEJ,yCAAM,GAAN;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,6CAAU,GAAV;YAAA,iBAaC;YAZC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;gBACvC,IAAM,YAAY,GAAG,KAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBAC1D,IAAI,YAAY,CAAC,IAAI,EAAE;oBACrB,KAAI,CAAC,WAAW;yBACb,UAAU,EAAE;yBACZ,SAAS,CAAC,UAAA,OAAO,IAChB,OAAA,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAA,CAClE,CAAC;iBACL;qBAAM;oBACL,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;iBACjC;aACF,CAAC,CAAC;SACJ;QAED,gDAAa,GAAb;YAAA,iBAMC;YALC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAA,OAAO;gBAC1C,IAAI,OAAO,EAAE;oBACX,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;iBAC3F;aACF,CAAC,CAAC;SACJ;QAED,6CAAU,GAAV;YAAA,iBAMC;YALC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC6I,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,IAAI;gBAC7D,IAAI,IAAI,EAAE;oBACR,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrE;aACF,CAAC,CAAC;SACJ;QAED,+CAAY,GAAZ;YAAA,iBAMC;YALC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAACA,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,UAAkB;gBACtE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;oBACnD,KAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC7E;aACF,CAAC,CAAC;SACJ;;;oGAzDU,wBAAwB;6FAAxB,wBAAwB,WAAxB,wBAAwB,mBAFvB,MAAM;;2FAEP,wBAAwB;sBAHpC7I,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICTD;;;;QAeE,oBAAoB,aAA4B;YAA5B,kBAAa,GAAb,aAAa,CAAe;;;;YALzC,UAAK,GAA8B,IAAIY,cAAW,CAAe,EAAE,CAAC,CAAC;YACrE,sBAAiB,GAA6B,EAAE,CAAC;YACjD,+BAA0B,GAA6B,EAAE,CAAC;YAC1D,2BAAsB,GAA6B,EAAE,CAAC;YAG3D,IAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAIzE,CAAC;YACF,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBAChD,IAAI,CAAC,0BAA0B,GAAG,iBAAiB,CAAC,SAAS,CAAC;gBAC9D,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC,KAAK,CAAC;aACvD;SACF;;;wEApBU,UAAU;+EAAV,UAAU,WAAV,UAAU,mBAFT,MAAM;;2FAEP,UAAU;sBAHtBZ,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;ICXD;;;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"igo2-integration.umd.js","sources":["../../../packages/integration/src/lib/analytics/analytics.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/integration/src/lib/import-export/import-export.state.ts","../../../packages/integration/src/lib/tool/tool.state.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html","../../../packages/integration/src/lib/map/map.state.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.html","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.html","../../../packages/integration/src/lib/map/layer-list-tool.state.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.html","../../../packages/integration/src/lib/context/context.module.ts","../../../packages/integration/src/lib/catalog/catalog.state.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog.module.ts","../../../packages/integration/src/lib/directions/directions.state.ts","../../../packages/integration/src/lib/context/context.state.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.html","../../../packages/integration/src/lib/directions/directions.module.ts","../../../packages/integration/src/lib/draw/draw.state.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.html","../../../packages/integration/src/lib/draw/draw.module.ts","../../../packages/integration/src/lib/workspace/shared/workspace.utils.ts","../../../packages/integration/src/lib/storage/storage.state.ts","../../../packages/integration/src/lib/workspace/shared/feature-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/wfs-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/edition-actions.service.ts","../../../packages/integration/src/lib/workspace/workspace.state.ts","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts","../../../packages/integration/src/lib/workspace/workspace.module.ts","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.ts","../../../packages/integration/src/lib/import-export/import-export.module.ts","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts","../../../packages/integration/src/lib/map/map-tool/map-tool.component.html","../../../packages/integration/src/lib/map/map-tool/map-tool.component.ts","../../../packages/integration/src/lib/map/map-tools/map-tools.component.html","../../../packages/integration/src/lib/map/map-tools/map-tools.component.ts","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.html","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.html","../../../packages/integration/src/lib/map/map.module.ts","../../../packages/integration/src/lib/measure/measure.state.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.html","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.module.ts","../../../packages/integration/src/lib/measure/measure.module.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.html","../../../packages/integration/src/lib/print/print.module.ts","../../../packages/integration/src/lib/search/search.state.ts","../../../packages/integration/src/lib/search/search-bar/search-bar-binding.directive.ts","../../../packages/integration/src/lib/search/search-bar/search-bar.module.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.html","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.module.ts","../../../packages/integration/src/lib/search/search.module.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.html","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/filter.module.ts","../../../packages/integration/src/lib/about/about-tool/about-tool.component.html","../../../packages/integration/src/lib/about/about-tool/about-tool.component.ts","../../../packages/integration/src/lib/about/about.module.ts","../../../packages/integration/src/lib/storage/storage.module.ts","../../../packages/integration/src/lib/integration.module.ts","../../../packages/integration/src/lib/tool/tool.module.ts","../../../packages/integration/src/lib/analytics/analytics-listener.service.ts","../../../packages/integration/src/lib/search/query.state.ts","../../../packages/integration/src/public_api.ts","../../../packages/integration/src/igo2-integration.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppAnalyticsModule {}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExportOptions } from '@igo2/geo';\r\n\r\nexport enum ImportExportType {\r\n layer = 'layer',\r\n context = 'context'\r\n}\r\n\r\nexport enum ImportExportMode {\r\n import = 'import',\r\n export = 'export'\r\n}\r\n\r\n/**\r\n * Service that holds the state of the importExport module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportExportState {\r\n\r\n readonly importExportType$: BehaviorSubject<ImportExportType> = new BehaviorSubject(ImportExportType.layer);\r\n readonly selectedMode$: BehaviorSubject<ImportExportMode> = new BehaviorSubject(ImportExportMode.import);\r\n readonly exportOptions$: BehaviorSubject<ExportOptions> = new BehaviorSubject(undefined);\r\n\r\n setImportExportType(type: ImportExportType) {\r\n this.importExportType$.next(type);\r\n }\r\n\r\n setMode(mode: ImportExportMode) {\r\n this.selectedMode$.next(mode);\r\n }\r\n\r\n setsExportOptions(exportOptions: ExportOptions) {\r\n this.exportOptions$.next(exportOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Toolbox, ToolService } from '@igo2/common';\r\n\r\nimport { ExportOptions } from '@igo2/geo';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ImportExportMode, ImportExportState } from '../import-export/import-export.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolState {\r\n get toolbox(): Toolbox {\r\n return this.toolService.toolbox;\r\n }\r\n\r\n public openSidenav$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private toolService: ToolService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) {\r\n if (!toolToActivate) { return; }\r\n if (toolToActivate.tool === 'importExport') {\r\n let exportOptions: ExportOptions = this.importExportState.exportOptions$.value;\r\n if (!exportOptions) {\r\n exportOptions = {\r\n layers: toolToActivate.options.layers,\r\n featureInMapExtent: toolToActivate.options.featureInMapExtent\r\n };\r\n } else {\r\n exportOptions.layers = toolToActivate.options.layers;\r\n exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent;\r\n }\r\n this.importExportState.setsExportOptions(exportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n }\r\n\r\n if (this.toolbox.getTool(toolToActivate.tool)) {\r\n this.toolbox.activateTool(toolToActivate.tool);\r\n this.openSidenav$.next(true);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n@ToolComponent({\r\n name: 'contextEditor',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-editor-tool',\r\n templateUrl: './context-editor-tool.component.html'\r\n})\r\nexport class ContextEditorToolComponent {\r\n\r\n constructor(private toolState: ToolState) {}\r\n\r\n submitSuccessed() {\r\n this.toolState.toolbox.activatePreviousTool();\r\n }\r\n}\r\n","<igo-context-edit\r\n igoContextEditBinding\r\n (submitSuccessed)=\"submitSuccessed()\"\r\n></igo-context-edit>\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { IgoMap, MapService, ProjectionService } from '@igo2/geo';\r\n// import { BehaviorSubject } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the map module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapState {\r\n\r\n // public mapCenter$ = new BehaviorSubject<boolean>(false);\r\n get showAllLegendsValue(): boolean {\r\n return this._legendToolShowAll;\r\n }\r\n\r\n set showAllLegendsValue(value) {\r\n this._legendToolShowAll = value;\r\n }\r\n private _legendToolShowAll: boolean;\r\n\r\n /**\r\n * Active map\r\n */\r\n get map(): IgoMap { return this._map; }\r\n private _map: IgoMap;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private projectionService: ProjectionService // Don't remove this or it'll never be injected\r\n ) {\r\n this._map = new IgoMap({\r\n controls: {\r\n scaleLine: true,\r\n attribution: {\r\n collapsed: true\r\n }\r\n }\r\n });\r\n\r\n this.mapService.setMap(this.map);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\n@ToolComponent({\r\n name: 'contextManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star'\r\n})\r\n@Component({\r\n selector: 'igo-context-manager-tool',\r\n templateUrl: './context-manager-tool.component.html'\r\n})\r\nexport class ContextManagerToolComponent {\r\n\r\n @Input() toolToOpenOnContextChange: string = 'mapTools';\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(private toolState: ToolState, private mapState: MapState) {}\r\n\r\n editContext() {\r\n this.toolState.toolbox.activateTool('contextEditor');\r\n }\r\n\r\n managePermissions() {\r\n this.toolState.toolbox.activateTool('contextPermissionManager');\r\n }\r\n}\r\n","<igo-context-list\r\n igoContextListBinding\r\n [map]=\"map\"\r\n (edit)=\"editContext()\"\r\n (managePermissions)=\"managePermissions()\">\r\n</igo-context-list>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'contextPermissionManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-permission-manager-tool',\r\n templateUrl: './context-permission-manager-tool.component.html'\r\n})\r\nexport class ContextPermissionManagerToolComponent {}\r\n","<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LayerListControlsOptions } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of layer list tool values\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayerListToolState {\r\n\r\n readonly keyword$: BehaviorSubject<string> = new BehaviorSubject('');\r\n readonly sortAlpha$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly onlyVisible$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly selectedTab$: BehaviorSubject<number> = new BehaviorSubject(undefined);\r\n\r\n setKeyword(keyword: string) {\r\n this.keyword$.next(keyword);\r\n }\r\n\r\n setSortAlpha(sort: boolean) {\r\n this.sortAlpha$.next(sort);\r\n }\r\n\r\n setOnlyVisible(onlyVisible: boolean) {\r\n this.onlyVisible$.next(onlyVisible);\r\n }\r\n\r\n setSelectedTab(tab: number) {\r\n this.selectedTab$.next(tab);\r\n }\r\n\r\n getLayerListControls(): LayerListControlsOptions {\r\n return {\r\n keyword: this.keyword$.value,\r\n onlyVisible: this.onlyVisible$.value,\r\n sortAlpha: this.sortAlpha$.value\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap, LayerListControlsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { LayerListToolState } from '../../map/layer-list-tool.state';\r\n\r\n@ToolComponent({\r\n name: 'shareMap',\r\n title: 'igo.integration.tools.shareMap',\r\n icon: 'share-variant'\r\n})\r\n@Component({\r\n selector: 'igo-context-share-tool',\r\n templateUrl: './context-share-tool.component.html'\r\n})\r\nexport class ContextShareToolComponent {\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get layerListControls(): LayerListControlsOptions { return this.layerListToolState.getLayerListControls(); }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private layerListToolState: LayerListToolState\r\n ) {}\r\n}\r\n","<igo-share-map\r\n [map]=\"map\"></igo-share-map>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoContextModule } from '@igo2/context';\r\n\r\nimport { ContextEditorToolComponent } from './context-editor-tool/context-editor-tool.component';\r\nimport { ContextManagerToolComponent } from './context-manager-tool/context-manager-tool.component';\r\nimport { ContextPermissionManagerToolComponent } from './context-permission-manager-tool/context-permission-manager-tool.component';\r\nimport { ContextShareToolComponent } from './context-share-tool/context-share-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoContextModule],\r\n declarations: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n exports: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppContextModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogItem } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the catalog module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatalogState {\r\n\r\n /**\r\n * Store that contains all the catalogs\r\n */\r\n get catalogStore(): EntityStore<Catalog> { return this._catalogStore; }\r\n private _catalogStore: EntityStore<Catalog>;\r\n\r\n /**\r\n * Catalog -> Catalog items store mapping\r\n */\r\n private catalogItemsStores = new Map<string, EntityStore<CatalogItem>>();\r\n\r\n constructor(authService: AuthService) {\r\n this._catalogStore = new EntityStore([]);\r\n\r\n authService.authenticate$.subscribe(() => {\r\n this.clearCatalogItemsStores();\r\n });\r\n }\r\n\r\n /**\r\n * Get a catalog's items store\r\n * @param catalog Catalog\r\n * @returns Store that contains the catalog items\r\n */\r\n getCatalogItemsStore(catalog: Catalog): EntityStore<CatalogItem> {\r\n return this.catalogItemsStores.get(catalog.id as string);\r\n }\r\n\r\n /**\r\n * Bind a catalog items store to a catalog\r\n * @param catalog Catalog\r\n * @param store Catalog items store\r\n */\r\n setCatalogItemsStore(catalog: Catalog, store: EntityStore<CatalogItem>) {\r\n this.catalogItemsStores.set(catalog.id as string, store);\r\n }\r\n\r\n /**\r\n * Clear all catalog items stores\r\n */\r\n clearCatalogItemsStores() {\r\n this.catalogItemsStores.clear();\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogService } from '@igo2/geo';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse the list of available catalogs.\r\n */\r\n@ToolComponent({\r\n name: 'catalog',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'layers-plus'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-library-tool',\r\n templateUrl: './catalog-library-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogLibraryToolComponent implements OnInit {\r\n /**\r\n * Store that contains the catalogs\r\n * @internal\r\n */\r\n get store(): EntityStore<Catalog> {\r\n return this.catalogState.catalogStore;\r\n }\r\n\r\n /**\r\n * Determine if the form to add a catalog is allowed\r\n */\r\n @Input() addCatalogAllowed: boolean = false;\r\n\r\n /**\r\n * List of predefined catalogs\r\n */\r\n @Input() predefinedCatalogs: Catalog[] = [];\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private toolState: ToolState,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n if (this.store.count === 0) {\r\n this.loadCatalogs();\r\n }\r\n }\r\n\r\n /**\r\n * When the selected catalog changes, toggle the the CatalogBrowser tool.\r\n * @internal\r\n * @param event Select event\r\n */\r\n onCatalogSelectChange(event: { selected: boolean; catalog: Catalog }) {\r\n if (event.selected === false) {\r\n return;\r\n }\r\n this.toolState.toolbox.activateTool('catalogBrowser');\r\n }\r\n\r\n /**\r\n * Get all the available catalogs from the CatalogService and\r\n * load them into the store.\r\n */\r\n private loadCatalogs() {\r\n this.catalogService.loadCatalogs().pipe(take(1)).subscribe((catalogs: Catalog[]) => {\r\n this.store.clear();\r\n this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || []) as Catalog[]));\r\n });\r\n }\r\n}\r\n","<igo-catalog-library\r\n [predefinedCatalogs]=\"predefinedCatalogs\"\r\n [addCatalogAllowed]=\"addCatalogAllowed\"\r\n [store]=\"store\"\r\n (catalogSelectChange)=\"onCatalogSelectChange($event)\">\r\n</igo-catalog-library>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogLibraryModule } from '@igo2/geo';\r\nimport { CatalogLibraryToolComponent } from './catalog-library-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogLibraryModule\r\n ],\r\n declarations: [CatalogLibraryToolComponent],\r\n exports: [CatalogLibraryToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogLibraryToolModule {}\r\n","<igo-catalog-browser\r\n *ngIf=\"store$ | async as store\"\r\n [catalog]=\"catalog\"\r\n [store]=\"store\"\r\n [map]=\"map\"\r\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\">\r\n</igo-catalog-browser>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { EntityRecord, EntityStore, ToolComponent } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport {\r\n IgoMap,\r\n Catalog,\r\n CatalogItem,\r\n CatalogItemState,\r\n CatalogService\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse a catalog's groups and layers and display them to a map.\r\n */\r\n@ToolComponent({\r\n name: 'catalogBrowser',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'photo-browser',\r\n parent: 'catalog'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-browser-tool',\r\n templateUrl: './catalog-browser-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogBrowserToolComponent implements OnInit, OnDestroy {\r\n catalog: Catalog;\r\n\r\n /**\r\n * Store that contains the catalog items\r\n * @internal\r\n */\r\n store$ = new BehaviorSubject<EntityStore<CatalogItem, CatalogItemState>>(\r\n undefined\r\n );\r\n\r\n /**\r\n * Subscription to the selected catalog\r\n */\r\n private catalog$$: Subscription;\r\n\r\n /**\r\n * Subscription for authentication\r\n */\r\n private authenticate$$: Subscription;\r\n\r\n /**\r\n * Whether a group can be toggled when it's collapsed\r\n */\r\n @Input() toggleCollapsedGroup: boolean = true;\r\n\r\n /**\r\n * Map to add layers to\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private mapState: MapState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n const catalogStore = this.catalogState.catalogStore;\r\n this.catalog$$ = catalogStore.stateView\r\n .firstBy$(\r\n (record: EntityRecord<Catalog>) => record.state.selected === true\r\n )\r\n .subscribe((record: EntityRecord<Catalog>) => {\r\n if (record && record.entity) {\r\n const catalog = record.entity;\r\n this.catalog = catalog;\r\n }\r\n });\r\n\r\n this.authenticate$$ = this.authService.authenticate$.subscribe(() => {\r\n this.loadCatalogItems(this.catalog);\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.catalog$$.unsubscribe();\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Get the selected catalog's items from the CatalogService and\r\n * load them into the store.\r\n * @param catalog Selected catalog\r\n */\r\n private loadCatalogItems(catalog: Catalog) {\r\n let store = this.catalogState.getCatalogItemsStore(catalog);\r\n if (store !== undefined) {\r\n this.store$.next(store);\r\n return;\r\n }\r\n\r\n store = new EntityStore<CatalogItem>([]);\r\n this.catalogState.setCatalogItemsStore(catalog, store);\r\n this.catalogService\r\n .loadCatalogItems(catalog)\r\n .pipe(take(1))\r\n .subscribe((items: CatalogItem[]) => {\r\n store.load(items);\r\n this.store$.next(store);\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogBrowserModule } from '@igo2/geo';\r\nimport { CatalogBrowserToolComponent } from './catalog-browser-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogBrowserModule\r\n ],\r\n declarations: [CatalogBrowserToolComponent],\r\n exports: [CatalogBrowserToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogBrowserToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppCatalogLibraryToolModule } from './catalog-library-tool/catalog-library-tool.module';\r\nimport { IgoAppCatalogBrowserToolModule } from './catalog-browser-tool/catalog-browser-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [\r\n IgoAppCatalogLibraryToolModule,\r\n IgoAppCatalogBrowserToolModule\r\n ],\r\n declarations: []\r\n})\r\nexport class IgoAppCatalogModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AnyLayerOptions, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirectionState {\r\n\r\n public zoomToActiveRoute$: Subject<void> = new Subject();\r\n\r\n /**\r\n * Store that holds the stop\r\n */\r\n public stopsStore: StopsStore = new StopsStore([]);\r\n\r\n /**\r\n * Store that holds the driving stops as feature\r\n */\r\n public stopsFeatureStore: StopsFeatureStore = new StopsFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n /**\r\n * Store that holds the driving route as feature\r\n */\r\n public routesFeatureStore: RoutesFeatureStore = new RoutesFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public stepFeatureStore: StepFeatureStore = new StepFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public debounceTime: number = 200;\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.stopsFeatureStore.empty$.subscribe((empty) => {\r\n if (this.stopsFeatureStore.layer?.options) {\r\n (this.stopsFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n this.routesFeatureStore.empty$.subscribe((empty) => {\r\n if (this.routesFeatureStore.layer?.options) {\r\n (this.routesFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n });\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {\r\n this.stopsStore.deleteMany(this.stopsStore.all());\r\n this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary\r\n }\r\n if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {\r\n this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\nimport { Tool, ToolService } from '@igo2/common';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\n\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the context module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextState {\r\n /**\r\n * Observable of the active context\r\n */\r\n context$: BehaviorSubject<DetailedContext> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private toolService: ToolService,\r\n private toolState: ToolState,\r\n private languageService: LanguageService\r\n ) {\r\n this.contextService.context$.subscribe((context: DetailedContext) => {\r\n this.onContextChange(context);\r\n });\r\n this.contextService.toolsChanged$.subscribe((context: DetailedContext) => {\r\n this.updateTools(context);\r\n });\r\n }\r\n\r\n /**\r\n * Set the active context\r\n * @param context Detailed context\r\n */\r\n private setContext(context: DetailedContext) {\r\n this.updateTools(context);\r\n this.context$.next(context);\r\n }\r\n\r\n /**\r\n * Update the tool state with the context's tools\r\n * @param context Detailed context\r\n */\r\n private updateTools(context: DetailedContext) {\r\n const toolbox = this.toolState.toolbox;\r\n\r\n const tools = [];\r\n const contextTools = context.tools || [];\r\n contextTools.forEach((contextTool: Tool) => {\r\n const baseTool = this.toolService.getTool(contextTool.name);\r\n if (baseTool === undefined) {\r\n return;\r\n }\r\n\r\n const options = Object.assign(\r\n {},\r\n baseTool.options || {},\r\n contextTool.options || {}\r\n );\r\n const tool = Object.assign({}, baseTool, contextTool, { options });\r\n tools.push(tool);\r\n });\r\n\r\n tools.forEach((tool) => {\r\n if (tool.parent) {\r\n const parentIndex = tools.findIndex((el) => el.name === tool.parent);\r\n if (parentIndex !== -1) {\r\n tools[parentIndex].children = [];\r\n tools[parentIndex].children.push(tool.name);\r\n }\r\n }\r\n });\r\n\r\n toolbox.setTools(tools);\r\n toolbox.setToolbar(context.toolbar || []);\r\n\r\n // TODO: This is a patch so the context service can work without\r\n // injecting the ToolState or without being completely refactored\r\n this.contextService.setTools([].concat(tools));\r\n this.contextService.setToolbar(context.toolbar || []);\r\n }\r\n\r\n /**\r\n * Set a new context and update the tool state\r\n * @param context Detailed context\r\n */\r\n private onContextChange(context: DetailedContext) {\r\n if (context === undefined) {\r\n return;\r\n }\r\n this.setContext(context);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageScope, StorageService } from '@igo2/core';\r\nimport { IgoMap, RoutesFeatureStore, StopsFeatureStore, StopsStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { ContextState } from '../../context/context.state';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { DirectionState } from '../directions.state';\r\n\r\n@ToolComponent({\r\n name: 'directions',\r\n title: 'igo.integration.tools.directions',\r\n icon: 'directions'\r\n})\r\n@Component({\r\n selector: 'igo-directions-tool',\r\n templateUrl: './directions-tool.component.html'\r\n})\r\nexport class DirectionsToolComponent implements OnInit {\r\n\r\n public currentContextUri: string;\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsStore(): StopsStore { return this.directionState.stopsStore; }\r\n\r\n get debounceTime(): number { return this.directionState.debounceTime; }\r\n\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsFeatureStore(): StopsFeatureStore { return this.directionState.stopsFeatureStore; }\r\n\r\n /**\r\n * routes\r\n * @internal\r\n */\r\n get routesFeatureStore(): RoutesFeatureStore { return this.directionState.routesFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get stepFeatureStore(): StepFeatureStore { return this.directionState.stepFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get zoomToActiveRoute$(): Subject<void> { return this.directionState.zoomToActiveRoute$; }\r\n\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private directionState: DirectionState,\r\n private mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private storageService: StorageService,\r\n public contextState: ContextState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const warningShown = this.storageService.get('direction.warning.shown') as boolean;\r\n if (!warningShown) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.directions.warning.title'\r\n );\r\n const msg = translate.instant('igo.integration.directions.warning.message');\r\n this.messageService.info(msg, title, { timeOut: 20000 });\r\n this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);\r\n }\r\n this.contextState.context$.subscribe(c => {\r\n if (!this.authService.authenticated) {\r\n this.currentContextUri = c.uri;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<igo-directions\r\n [contextUri]=\"currentContextUri\"\r\n [debounceTime]=\"debounceTime\"\r\n [stopsStore]=\"stopsStore\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \r\n</igo-directions>","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoDirectionsModule } from '@igo2/geo';\r\nimport { DirectionsToolComponent } from './directions-tool/directions-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDirectionsModule],\r\n declarations: [DirectionsToolComponent],\r\n exports: [DirectionsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppDirectionsModule {\r\n static forRoot(): ModuleWithProviders<IgoAppDirectionsModule> {\r\n return {\r\n ngModule: IgoAppDirectionsModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, Feature } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DrawState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<Feature> = new FeatureStore<Feature>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-draw-layer')) {\r\n this.store.deleteMany(this.store.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, Feature, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { DrawState } from '../draw.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'draw',\r\n title: 'igo.integration.tools.draw',\r\n icon: 'draw'\r\n})\r\n@Component({\r\n selector: 'igo-drawing-tool',\r\n templateUrl: './drawing-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrawingToolComponent {\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget store(): FeatureStore<Feature> { return this.drawState.store; }\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget map(): IgoMap { return this.mapState.map; }\r\n\r\nconstructor(\r\n private drawState: DrawState,\r\n private mapState: MapState\r\n) {}\r\n\r\n}\r\n","<igo-draw [store]=\"store\" [map]=\"map\"></igo-draw>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoDrawingToolModule } from '@igo2/geo';\r\nimport { DrawingToolComponent } from './drawing-tool/drawing-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDrawingToolModule],\r\n declarations: [DrawingToolComponent],\r\n exports: [\r\n DrawingToolComponent\r\n ]\r\n})\r\nexport class IgoAppDrawModule {}\r\n","import {\r\n FeatureMotion,\r\n FeatureStoreSelectionStrategy,\r\n FeatureWorkspace,\r\n WfsWorkspace,\r\n EditionWorkspace\r\n} from '@igo2/geo';\r\n\r\n\r\nexport function handleZoomAuto(workspace: FeatureWorkspace | WfsWorkspace | EditionWorkspace, storageService) {\r\n const zoomStrategy = workspace.entityStore\r\n .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy;\r\n zoomStrategy.setMotion(storageService.get('zoomAuto') as boolean ? FeatureMotion.Default : FeatureMotion.None);\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\n\r\n/**\r\n * Service that holds the state of storage service\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageState {\r\n get storageService(): StorageService {\r\n return this.igoStorageService;\r\n }\r\n\r\n constructor(private igoStorageService: StorageService) {}\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n FeatureWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeatureActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private toolState: ToolState,\r\n private mediaService: MediaService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED\r\n )\r\n )\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n return [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set(\r\n 'zoomAuto',\r\n !this.storageService.get('zoomAuto') as boolean\r\n );\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.tooltip',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n },\r\n args: [workspace],\r\n availability: (ws: FeatureWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'featureDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterCustomFuncStrategy\r\n );\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterSelectionStrategy\r\n );\r\n const layersWithSelection = filterSelectionStrategy.active\r\n ? [ws.layer.id]\r\n : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: {\r\n layers: [ws.layer.id],\r\n featureInMapExtent: filterStrategy.active,\r\n layersWithSelection\r\n } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n WfsWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfsActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n // rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: WfsWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: WfsWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).ogcFilters$?.value?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n EditionWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditionActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: EditionWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: EditionWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).ogcFilters$?.value?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\nimport {\r\n EntityRecord,\r\n Workspace,\r\n WorkspaceStore,\r\n Widget,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy } from '@igo2/common';\r\nimport { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';\r\nimport { FeatureActionsService } from './shared/feature-actions.service';\r\nimport { WfsActionsService } from './shared/wfs-actions.service';\r\nimport { StorageService } from '@igo2/core';\r\nimport { EditionActionsService } from './shared/edition-actions.service';\r\n\r\n/**\r\n * Service that holds the state of the workspace module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkspaceState implements OnDestroy {\r\n\r\n public workspacePanelExpanded: boolean = false;\r\n\r\n readonly workspaceEnabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n readonly rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n readonly selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n readonly workspaceMaximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n private actionMaximize$$: Subscription[] = [];\r\n\r\n private rowsInMapExtentCheckCondition$$: Subscription;\r\n private selectOnlyCheckCondition$$: Subscription;\r\n\r\n /** Subscription to the active workspace */\r\n private activeWorkspace$$: Subscription;\r\n\r\n /** Subscription to the active workspace widget */\r\n private activeWorkspaceWidget$$: Subscription;\r\n\r\n /** Active widget observable. Only one may be active for all available workspaces */\r\n readonly activeWorkspaceWidget$: BehaviorSubject<Widget> = new BehaviorSubject<Widget>(undefined);\r\n\r\n /**\r\n * Observable of the active workspace\r\n */\r\n public workspace$ = new BehaviorSubject<Workspace>(undefined);\r\n\r\n /**\r\n * Store that holds all the available workspaces\r\n */\r\n get store(): WorkspaceStore { return this._store; }\r\n private _store: WorkspaceStore;\r\n\r\n constructor(\r\n private featureActionsService: FeatureActionsService,\r\n private wfsActionsService: WfsActionsService,\r\n private editionActionsService: EditionActionsService,\r\n private storageService: StorageService\r\n ) {\r\n this.initWorkspaces();\r\n }\r\n\r\n /**\r\n * Initialize the workspace store. Each time a workspace is activated,\r\n * subscribe to it's active widget. Tracking the active widget is useful\r\n * to make sure only one widget is active at a time.\r\n */\r\n private initWorkspaces() {\r\n this._store = new WorkspaceStore([]);\r\n this._store.stateView\r\n .firstBy$((record: EntityRecord<Workspace>) => record.state.active === true)\r\n .subscribe((record: EntityRecord<Workspace>) => {\r\n const workspace = record ? record.entity : undefined;\r\n this.workspace$.next(workspace);\r\n });\r\n\r\n this._store.stateView.all$()\r\n .subscribe((workspaces: EntityRecord<Workspace>[]) => {\r\n workspaces.map((wks: EntityRecord<Workspace>) => {\r\n if (wks.entity.actionStore.empty) {\r\n if (wks.entity instanceof WfsWorkspace) {\r\n this.wfsActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof FeatureWorkspace) {\r\n this.featureActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof EditionWorkspace) {\r\n this.editionActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n }\r\n }\r\n\r\n });\r\n });\r\n\r\n this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.activeWorkspace$$ = this.workspace$\r\n .subscribe((workspace: Workspace) => {\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n this.activeWorkspaceWidget$$ = undefined;\r\n }\r\n\r\n if (workspace !== undefined) {\r\n this.activeWorkspaceWidget$$ = workspace.widget$\r\n .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget));\r\n }\r\n });\r\n\r\n this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (filterStrategy) {\r\n if (rowsInMapExtent) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n if (filterStrategy) {\r\n if (selectOnly) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private setWorkspaceIsMaximized(maximized: boolean) {\r\n this.storageService.set('workspaceMaximize', maximized);\r\n this.workspaceMaximize$.next(maximized);\r\n }\r\n\r\n public setActiveWorkspaceById(id: string) {\r\n const wksFromId = this.store\r\n .all()\r\n .find(workspace => workspace.id === id);\r\n if (wksFromId) {\r\n this.store.activateWorkspace(wksFromId);\r\n }\r\n }\r\n\r\n public setActiveWorkspaceByTitle(title: string) {\r\n const wksFromTitle = this.store\r\n .all()\r\n .find(workspace => workspace.title === title);\r\n if (wksFromTitle) {\r\n this.store.activateWorkspace(wksFromTitle);\r\n }\r\n }\r\n\r\n /**\r\n * Teardown all the workspaces\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.teardownWorkspaces();\r\n this.actionMaximize$$.map(a => a.unsubscribe());\r\n if (this.rowsInMapExtentCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n if (this.selectOnlyCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Teardown the workspace store and any subscribers\r\n */\r\n private teardownWorkspaces() {\r\n this.store.clear();\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n }\r\n if (this.activeWorkspace$$ !== undefined) {\r\n this.activeWorkspace$$.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","<button\r\n *ngIf=\"hasWorkspace$ | async\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\r\n [color]=\"color\"\r\n (click)=\"activateWorkspace()\"\r\n >\r\n <mat-icon svgIcon=\"table\"></mat-icon>\r\n</button>\r\n","import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core';\r\nimport type { Layer } from '@igo2/geo';\r\nimport { WorkspaceState } from '../workspace.state';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-workspace-button',\r\n templateUrl: './workspace-button.component.html',\r\n styleUrls: ['./workspace-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkspaceButtonComponent implements OnInit, OnDestroy {\r\n\r\n public hasWorkspace$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private hasWorkspace$$: Subscription;\r\n\r\n private _layer: Layer;\r\n private layer$: BehaviorSubject<Layer> = new BehaviorSubject(undefined);\r\n @Input()\r\n set layer(value: Layer) {\r\n this._layer = value;\r\n this.layer$.next(this._layer);\r\n }\r\n\r\n get layer(): Layer {\r\n return this._layer;\r\n }\r\n\r\n @Input() color: string = 'primary';\r\n\r\n constructor(private workspaceState: WorkspaceState) { }\r\n\r\n ngOnInit(): void {\r\n this.hasWorkspace$$ = combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])\r\n .subscribe(bunch => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hasWorkspace$$.unsubscribe();\r\n }\r\n\r\n activateWorkspace() {\r\n if (\r\n this.workspaceState.workspace$.value &&\r\n (this.workspaceState.workspace$.value as any).layer.id === this.layer.id &&\r\n this.workspaceState.workspacePanelExpanded) {\r\n this.workspaceState.workspacePanelExpanded = false;\r\n } else {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(this.layer.id);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoLanguageModule\r\n ],\r\n declarations: [WorkspaceButtonComponent],\r\n exports: [WorkspaceButtonComponent]\r\n})\r\nexport class IgoAppWorkspaceModule {}\r\n","<mat-tab-group *ngIf=\"importExportShowBothType\" >\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportData' | translate\">\r\n <igo-import-export \r\n [map]=\"map\"\r\n [selectFirstProj]=\"selectFirstProj\"\r\n [projectionsLimitations]=\"projectionsLimitations\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n </igo-import-export>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportContext' | translate\">\r\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\r\n [map]=\"map\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n</igo-import-export>\r\n\r\n<igo-context-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\r\n [map]=\"map\">\r\n</igo-context-import-export>","import { Component, ChangeDetectionStrategy, OnInit, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport type { WorkspaceStore } from '@igo2/common';\r\nimport { IgoMap, ExportOptions, ProjectionsLimitationsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState, ImportExportType } from '../import-export.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\n\r\n@ToolComponent({\r\n name: 'importExport',\r\n title: 'igo.integration.tools.importExport',\r\n icon: 'file-move'\r\n})\r\n@Component({\r\n selector: 'igo-import-export-tool',\r\n templateUrl: './import-export-tool.component.html',\r\n styleUrls: ['./import-export-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImportExportToolComponent implements OnInit {\r\n\r\n @Input() projectionsLimitations: ProjectionsLimitationsOptions;\r\n\r\n @Input() selectFirstProj: boolean = false;\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n @Input() importExportType: ImportExportType = ImportExportType.layer;\r\n @Input() importExportShowBothType: boolean = true;\r\n\r\n constructor(\r\n private mapState: MapState,\r\n public importExportState: ImportExportState,\r\n private workspaceState: WorkspaceState,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectType();\r\n this.selectMode();\r\n }\r\n\r\n private selectType() {\r\n if (this.importExportType) {\r\n this.importExportState.importExportType$.next(this.importExportType);\r\n }\r\n const userSelectedType = this.importExportState.importExportType$.value;\r\n if (userSelectedType !== undefined) {\r\n this.importExportState.setImportExportType(userSelectedType);\r\n } else {\r\n this.importExportState.setImportExportType(ImportExportType.layer);\r\n }\r\n }\r\n\r\n private selectMode() {\r\n const userSelectedMode = this.importExportState.selectedMode$.value;\r\n if (userSelectedMode !== undefined) {\r\n this.importExportState.setMode(userSelectedMode);\r\n } else {\r\n this.importExportState.setMode(ImportExportMode.import);\r\n\r\n }\r\n }\r\n\r\n public modeChanged(mode: ImportExportMode) {\r\n this.importExportState.setMode(mode);\r\n }\r\n\r\n public exportOptionsChange(exportOptions: ExportOptions) {\r\n this.importExportState.setsExportOptions(exportOptions);\r\n }\r\n\r\n importExportTypeChange(event) {\r\n this.importExportType = event.value;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoImportExportModule } from '@igo2/geo';\r\nimport { ImportExportToolComponent } from './import-export-tool/import-export-tool.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoContextImportExportModule } from '@igo2/context';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoImportExportModule,\r\n IgoContextImportExportModule,\r\n CommonModule,\r\n IgoLanguageModule,\r\n MatButtonToggleModule,\r\n MatTabsModule\r\n ],\r\n declarations: [ImportExportToolComponent],\r\n exports: [ImportExportToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoAppImportExportModule> {\r\n return {\r\n ngModule: IgoAppImportExportModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<igo-layer-list class=\"mapDetailsList\" *ngIf=\"(layers$ | async).length; else empty\"\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n floatLabel=\"never\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n</igo-layer-list>\r\n\r\n<ng-template #empty>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n ExportOptions\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n\r\n@ToolComponent({\r\n name: 'mapDetails',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-details-tool',\r\n templateUrl: './map-details-tool.component.html',\r\n styleUrls: ['./map-details-tool.component.scss']\r\n})\r\nexport class MapDetailsToolComponent implements OnInit {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layers$(): Observable<Layer[]> {\r\n return this.map.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n )\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\r\n <igo-layer-list\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\r\n <igo-context-list igoContextListBinding></igo-context-list>\r\n </mat-tab>\r\n\r\n</mat-tab-group>\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n ExportOptions,\r\n Layer\r\n} from '@igo2/geo';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'map',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tool',\r\n templateUrl: './map-tool.component.html',\r\n styleUrls: ['./map-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolComponent {\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group\r\n #tabGroup\r\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\r\n (selectedTabChange)=\"tabChanged($event)\">\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\r\n <igo-layer-list *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\"\r\n [map]=\"map\"\r\n (appliedFilterAndSort)= onLayerListChange($event)>\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-time-filter-button *ngIf=\"isTimeFilterButton(layer)\" [header]=\"timeButton\" [layer]=\"layer\"\r\n (click)=\"activateTimeFilter()\"></igo-time-filter-button>\r\n <igo-ogc-filter-button *ngIf=\"isOGCFilterButton(layer)\" [header]=\"ogcButton\" [layer]=\"layer\"\r\n (click)=\"activateOgcFilter()\"></igo-ogc-filter-button>\r\n <igo-export-button *ngIf=\"isExportButton(layer)\" [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n </ng-template>\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\r\n <igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\"\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\">\r\n </igo-layer-legend-list>\r\n <ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n <p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n </p>\r\n </mat-tab>\r\n\r\n <ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\"\r\n class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n </ng-template>\r\n</mat-tab-group>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n Layer,\r\n ExportOptions,\r\n VectorLayer\r\n} from '@igo2/geo';\r\n\r\nimport { LayerListToolState } from '../layer-list-tool.state';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../map.state';\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'mapTools',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tools',\r\n templateUrl: './map-tools.component.html',\r\n styleUrls: ['./map-tools.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolsComponent implements OnInit, OnDestroy {\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() selectedTabAtOpening: string;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input()\r\n get layerListControls(): LayerListControlsOptions {\r\n return this._layerListControls;\r\n }\r\n set layerListControls(value: LayerListControlsOptions) {\r\n const stateOptions = this.layerListToolState.getLayerListControls();\r\n const stateKeyword = stateOptions.keyword;\r\n const stateOnlyVisible = stateOptions.onlyVisible;\r\n const stateSortAlpha = stateOptions.sortAlpha;\r\n\r\n value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;\r\n value.onlyVisible =\r\n stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;\r\n value.sortAlpha =\r\n stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;\r\n\r\n value.onlyVisible =\r\n value.onlyVisible === undefined ? false : value.onlyVisible;\r\n value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;\r\n\r\n this._layerListControls = value;\r\n }\r\n private _layerListControls = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) => layers.filter((layer) => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): LayerListControlsOptions {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n @ViewChild('tabGroup', { static: true }) tabGroup;\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n public layerListToolState: LayerListToolState,\r\n private toolState: ToolState,\r\n public mapState: MapState,\r\n private searchSourceService: SearchSourceService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectedTab();\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n private selectedTab() {\r\n const userSelectedTab = this.layerListToolState.selectedTab$.value;\r\n if (userSelectedTab !== undefined) {\r\n this.layerListToolState.setSelectedTab(userSelectedTab);\r\n } else {\r\n if (this.selectedTabAtOpening === 'legend') {\r\n this.layerListToolState.setSelectedTab(1);\r\n } else {\r\n this.layerListToolState.setSelectedTab(0);\r\n }\r\n }\r\n }\r\n\r\n public tabChanged(tab: MatTabChangeEvent) {\r\n this.layerListToolState.setSelectedTab(tab.index);\r\n this.layers$.next(\r\n this.map.layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n }\r\n\r\n onLayerListChange(appliedFilters: LayerListControlsOptions) {\r\n this.layerListToolState.setKeyword(appliedFilters.keyword);\r\n this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);\r\n this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe((value) => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateTimeFilter() {\r\n this.toolState.toolbox.activateTool('activeTimeFilter');\r\n }\r\n\r\n activateOgcFilter() {\r\n this.toolState.toolbox.activateTool('activeOgcFilter');\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n isTimeFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.timeButton && options.timeFilterable && options.timeFilter;\r\n }\r\n\r\n isOGCFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&\r\n (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons\r\n || options.ogcFilters.select || options.ogcFilters.editable);\r\n }\r\n\r\n isExportButton(layer: Layer): boolean {\r\n if (\r\n (layer instanceof VectorLayer && layer.exportable === true) ||\r\n (layer.dataSource.options.download && layer.dataSource.options.download.url) ||\r\n (layer.options.workspace?.enabled && layer.options.workspace?.workspaceId !== layer.id))\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\">\r\n</igo-layer-legend-list>\r\n<ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n<p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n</p>\r\n\r\n\r\n<ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\n\r\n@ToolComponent({\r\n name: 'mapLegend',\r\n title: 'igo.integration.tools.legend',\r\n icon: 'format-list-bulleted-type'\r\n})\r\n@Component({\r\n selector: 'igo-map-legend-tool',\r\n templateUrl: './map-legend-tool.component.html',\r\n styleUrls: ['./map-legend-tool.component.scss']\r\n})\r\nexport class MapLegendToolComponent implements OnInit, OnDestroy {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers =>\r\n layers.filter(\r\n layer => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers => layers.filter(layer => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter(s => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n layer =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe(value => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\nimport { IgoMap, Layer, VectorLayer } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { ToolState } from '../../../tool/tool.state';\r\n\r\n@Component({\r\n selector: 'igo-advanced-swipe',\r\n templateUrl: './advanced-swipe.component.html',\r\n styleUrls: ['./advanced-swipe.component.scss']\r\n})\r\n\r\nexport class AdvancedSwipeComponent implements OnInit, OnDestroy {\r\n public swipe: boolean = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public form: FormGroup;\r\n public layers: VectorLayer[];\r\n public res: DetailedContext;\r\n public listForSwipe: Layer[];\r\n\r\n /**\r\n * Get an active map state\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private contextService: ContextService,\r\n private formBuilder: FormBuilder,\r\n private toolState: ToolState) {\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Get the list of layers for swipe\r\n * @internal\r\n */\r\n ngOnInit() {\r\n this.map.layers$.subscribe(ll => this.userControlledLayerList = ll.filter(layer =>\r\n (!layer.baseLayer && layer.showInLayerList && layer.displayed)));\r\n }\r\n\r\n /**\r\n * Desactivate the swipe\r\n * @internal\r\n */\r\n ngOnDestroy(){\r\n this.swipe = false;\r\n this.map.swipeEnabled$.next(this.swipe);\r\n }\r\n\r\n /**\r\n * Build a form for choise of the layers\r\n */\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Activate the swipe, send a list of layers for a swipe-tool\r\n */\r\n startSwipe(toggle: boolean){\r\n this.swipe = toggle;\r\n this.map.swipeEnabled$.next(toggle);\r\n this.listForSwipe = [];\r\n for (const layer of this.form.value.layers) {\r\n this.listForSwipe.push(layer);\r\n }\r\n this.map.selectedFeatures$.next(this.listForSwipe);\r\n }\r\n\r\n /**\r\n * Restart a swipe for a new layers-list\r\n */\r\n applyNewLayers(e) {\r\n this.startSwipe(false); // l'approche KISS\r\n this.startSwipe(true);\r\n if (e._selected) {e._selected = false; }\r\n const allLayers = this.userControlledLayerList.length;\r\n const selectedLayers = this.form.controls.layers.value.length;\r\n if (selectedLayers === allLayers){\r\n e._selected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Select all list of layers and restart a tool\r\n */\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n else {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n this.startSwipe(false);\r\n this.startSwipe(true);\r\n }\r\n\r\n /**\r\n * Open search tool\r\n */\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n /**\r\n * Open catalog\r\n */\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n /**\r\n * Open context manager\r\n */\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<button class=\"igo-form-button-group\"\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate }}\r\n</button>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { formatScale, IgoMap, InputProjections, ProjectionsLimitationsOptions } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService, StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { zoneMtm, zoneUtm, computeProjectionsConstraints } from '@igo2/geo';\r\nimport * as olproj from 'ol/proj';\r\n/**\r\n * Tool to display the coordinates and a cursor of the center of the map\r\n */\r\n@Component({\r\n selector: 'igo-advanced-coordinates',\r\n templateUrl: './advanced-coordinates.component.html',\r\n styleUrls: ['./advanced-coordinates.component.scss']\r\n})\r\nexport class AdvancedCoordinatesComponent implements OnInit, OnDestroy {\r\n public formattedScale$: BehaviorSubject<string> = new BehaviorSubject('');\r\n public projections$: BehaviorSubject<InputProjections[]> = new BehaviorSubject([]);\r\n public form: FormGroup;\r\n public coordinates: string[];\r\n private currentCenterDefaultProj: [number, number];\r\n public center: boolean = this.storageService.get('centerToggle') as boolean;\r\n private inMtmZone: boolean = true;\r\n private inLambert2 = {32198: true, 3798: true};\r\n private mapState$$: Subscription;\r\n private _projectionsLimitations: ProjectionsLimitationsOptions = {};\r\n private projectionsConstraints: ProjectionsLimitationsOptions;\r\n private defaultProj: InputProjections = {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n };\r\n private currentZones = { utm: undefined, mtm: undefined };\r\n public units: boolean = true;\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get inputProj(): InputProjections {\r\n return this.form.get('inputProj').value;\r\n }\r\n set inputProj(value: InputProjections) {\r\n this.form.patchValue({ inputProj: value });\r\n }\r\n get projectionsLimitations(): ProjectionsLimitationsOptions {\r\n return this._projectionsLimitations || {};\r\n }\r\n\r\n @Input()\r\n set projectionsLimitations(value: ProjectionsLimitationsOptions) {\r\n this._projectionsLimitations = value;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cdRef: ChangeDetectorRef,\r\n private storageService: StorageService,\r\n private config: ConfigService,\r\n private formBuilder: FormBuilder) {\r\n this.computeProjections();\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Listen a state of the map, a state of a form, update the coordinates\r\n */\r\n ngOnInit(): void {\r\n this.mapState$$ = combineLatest([this.map.viewController.state$.pipe(debounceTime(50)), this.form.valueChanges])\r\n .subscribe(() => {\r\n this.setScaleValue(this.map);\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {\r\n this.back2quebec();\r\n }\r\n let zoneChange = false;\r\n if (currentMtmZone !== this.currentZones.mtm) {\r\n this.currentZones.mtm = currentMtmZone;\r\n zoneChange = true;\r\n }\r\n if (currentUtmZone !== this.currentZones.utm) {\r\n this.currentZones.utm = currentUtmZone;\r\n zoneChange = true;\r\n }\r\n if (zoneChange) {\r\n this.updateProjectionsZoneChange();\r\n }\r\n this.checkLambert(this.currentCenterDefaultProj);\r\n this.coordinates = this.getCoordinates();\r\n this.cdRef.detectChanges();\r\n this.storageService.set('currentProjection', this.inputProj, StorageScope.SESSION);\r\n });\r\n\r\n const tempInputProj = this.storageService.get('currentProjection') as InputProjections;\r\n this.inputProj = this.projections$.value[0];\r\n if (tempInputProj !== null)\r\n {\r\n const pos = this.positionInList(tempInputProj);\r\n this.inputProj = this.projections$.value[pos];\r\n this.updateZoneMtmUtm();\r\n }\r\n this.map.mapCenter$.next(this.center);\r\n this.coordinates = this.getCoordinates();\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.map.mapCenter$.next(false);\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n setScaleValue(map: IgoMap) {\r\n this.formattedScale$.next(': ~ 1 / ' + formatScale(map.viewController.getScale()));\r\n }\r\n /**\r\n * Coordinates of the center of the map on the appropriate systeme of coordinates\r\n * @returns Array of two numbers\r\n */\r\n getCoordinates(): string[] {\r\n this.currentZones.mtm = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.currentZones.utm = zoneUtm(this.currentCenterDefaultProj[0]);\r\n let coord;\r\n const code = this.inputProj.code;\r\n let decimal = 2;\r\n if (code.includes('EPSG:4326') || code.includes('EPSG:4269')) {\r\n decimal = 5;\r\n }\r\n this.units = (code === 'EPSG:4326' || code === 'EPSG:4269');\r\n coord = this.map.viewController.getCenter(code).map(c => c.toFixed(decimal));\r\n return coord;\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n const successful = Clipboard.copy(this.coordinates.toString());\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyTitle'\r\n );\r\n const msg = translate.instant('igo.integration.advanced-map-tool.advanced-coordinates.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n\r\n /**\r\n * Display a cursor on the center of the map\r\n */\r\n displayCenter(toggle: boolean): void {\r\n this.center = toggle;\r\n this.map.mapCenter$.next(toggle);\r\n this.storageService.set('centerToggle', toggle, StorageScope.SESSION);\r\n }\r\n\r\n /**\r\n * Builder of the form\r\n */\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n inputProj: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Update list of projections after changing of the state of the map\r\n */\r\n private updateProjectionsZoneChange(): void {\r\n let modifiedProj = this.projections$.value;\r\n const translate = this.languageService.translate;\r\n modifiedProj.map(p => {\r\n if (p.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n p.alias = `MTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.mtm', p);\r\n }\r\n else {\r\n p.alias = '';\r\n this.inMtmZone = false;\r\n if (this.inputProj.translateKey === 'mtm') {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n }\r\n }\r\n if (p.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = `EPSG:326${zone}`;\r\n p.alias = `UTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.utm', p);\r\n }\r\n });\r\n modifiedProj = modifiedProj.filter(p => p.alias !== '');\r\n this.projections$.next(modifiedProj);\r\n }\r\n\r\n /**\r\n * Create a list of currents projections\r\n */\r\n private computeProjections(): void {\r\n this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);\r\n const projections: InputProjections[] = [];\r\n\r\n if (!this.currentCenterDefaultProj) {\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n const translate = this.languageService.translate;\r\n if (this.projectionsConstraints.wgs84) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.nad83) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.nad83', { code: 'EPSG:4269' }),\r\n translateKey: 'nad83', alias: 'NAD83', code: 'EPSG:4269', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.webMercator) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.webMercator', { code: 'EPSG:3857' }),\r\n translateKey: 'webMercator', alias: 'Web Mercator', code: 'EPSG:3857', zone: ''\r\n });\r\n }\r\n if (this.projectionsConstraints.mtm) {\r\n // Quebec\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n this.inMtmZone = true;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n else {\r\n this.inMtmZone = false;\r\n }\r\n }\r\n if (this.projectionsConstraints.utm) {\r\n const order = this.inMtmZone ? 4 : 3;\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n projections.splice(order, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone }),\r\n translateKey: 'utm', alias: `UTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n let configProjection = [];\r\n if (this.projectionsConstraints.projFromConfig) {\r\n configProjection = this.config.getConfig('projections') || [];\r\n }\r\n this.projections$.next(projections.concat(configProjection));\r\n }\r\n\r\n /**\r\n * Push the MTM in the array of systeme of coordinates\r\n * @param projections Array of the InputProjections\r\n */\r\n private pushMtm(projections: Array<InputProjections>): void {\r\n if (this.projectionsConstraints.mtm) {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`});\r\n }\r\n }\r\n\r\n /**\r\n * Updates the list of systems of coordinates for territory of Quebec\r\n * push MTM and UTM in the Array\r\n */\r\n private back2quebec(): void {\r\n const projections = this.projections$.value;\r\n this.pushMtm(projections);\r\n this.inMtmZone = true;\r\n }\r\n\r\n /**\r\n * Update the numbers of the zones when application is restarted\r\n */\r\n private updateZoneMtmUtm() {\r\n if (this.inputProj.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `MTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone });\r\n }\r\n if (this.inputProj.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `UTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone });\r\n }\r\n }\r\n\r\n /**\r\n * Compute the position of a current projection in a list. 0 if the projection is not in the list\r\n * @param translateKey string, translate key of a projection\r\n * @returns numeric, position of an element in the array\r\n */\r\n positionInList(tempInputProj: InputProjections): number {\r\n const tk = tempInputProj.translateKey;\r\n const alias = tempInputProj.alias;\r\n let position; // = undefined;\r\n let iter = 0;\r\n this.projections$.value.map((projection) => {\r\n if (tk) {\r\n if (tk === projection.translateKey) {\r\n position = iter;\r\n }\r\n }\r\n else if (alias === projection.alias) {\r\n position = iter;\r\n }\r\n iter++;\r\n });\r\n position = position ? position : 0;\r\n return position;\r\n }\r\n\r\n /**\r\n * Change the list of projections depending on the projections of Lambert\r\n * @param coordinates An array of numbers, longitude and latitude\r\n */\r\n checkLambert(coordinates: [number, number]) {\r\n const lambertProjections = this.config.getConfig('projections');\r\n lambertProjections.forEach(projection => {\r\n let modifiedProj = this.projections$.value;\r\n const extent = projection.extent;\r\n const code = projection.code.match(/\\d+/);\r\n const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);\r\n if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||\r\n coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {\r\n this.inLambert2[code] = false;\r\n if (this.inputProj.alias === projection.alias) {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n modifiedProj = modifiedProj.filter(p => p.alias !== projection.alias);\r\n this.projections$.next(modifiedProj);\r\n }\r\n else {\r\n if (!this.inLambert2[code]) {\r\n this.projections$.next(modifiedProj.concat(projection));\r\n this.inLambert2[code] = true;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'advancedMap',\r\n title: 'igo.integration.tools.advancedMap',\r\n icon: 'toolbox'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-advanced-map-tool',\r\n templateUrl: './advanced-map-tool.component.html',\r\n styleUrls: ['./advanced-map-tool.component.scss']\r\n})\r\n\r\nexport class AdvancedMapToolComponent {\r\n\r\n}\r\n","<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate}}</h4>\r\n<igo-advanced-swipe></igo-advanced-swipe>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-coordinates.coordinates' | translate}}</h4>\r\n<igo-advanced-coordinates></igo-advanced-coordinates>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoFilterModule,\r\n IgoImportExportModule\r\n} from '@igo2/geo';\r\nimport { IgoContextModule } from '@igo2/context';\r\nimport { MapDetailsToolComponent } from './map-details-tool/map-details-tool.component';\r\nimport { MapToolComponent } from './map-tool/map-tool.component';\r\nimport { MapToolsComponent } from './map-tools/map-tools.component';\r\nimport { MapLegendToolComponent } from './map-legend/map-legend-tool.component';\r\nimport { IgoAppWorkspaceModule } from '../workspace/workspace.module';\r\nimport { AdvancedMapToolComponent } from './advanced-map-tool/advanced-map-tool.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AdvancedSwipeComponent } from './advanced-map-tool/advanced-swipe/advanced-swipe.component';\r\nimport { AdvancedCoordinatesComponent } from './advanced-map-tool/advanced-coordinates/advanced-coordinates.component';\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoSpinnerModule,\r\n CommonModule,\r\n MatTabsModule,\r\n MatListModule,\r\n MatIconModule,\r\n IgoLanguageModule,\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoImportExportModule,\r\n IgoFilterModule,\r\n IgoContextModule,\r\n IgoAppWorkspaceModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatTooltipModule\r\n ],\r\n declarations: [ AdvancedMapToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],\r\n exports: [AdvancedMapToolComponent, MapToolComponent, MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMapModule {\r\n static forRoot(): ModuleWithProviders<IgoAppMapModule> {\r\n return {\r\n ngModule: IgoAppMapModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, FeatureWithMeasure } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MeasureState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<FeatureWithMeasure> = new FeatureStore<FeatureWithMeasure>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe((layers) => {\r\n if ((layers.filter(l => l.id.startsWith('igo-measures-')).length === 0)) {\r\n this.store.deleteMany(this.store.all());\r\n this.mapState.map.ol.getOverlays().getArray()\r\n .filter(overlay => (overlay as any).options.className.includes('igo-map-tooltip'))\r\n .map(overlay => this.mapState.map.ol.removeOverlay(overlay));\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, FeatureWithMeasure, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { MeasureState } from '../measure.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'measurer',\r\n title: 'igo.integration.tools.measurer',\r\n icon: 'ruler'\r\n})\r\n@Component({\r\n selector: 'igo-measurer-tool',\r\n templateUrl: './measurer-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MeasurerToolComponent {\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get store(): FeatureStore<FeatureWithMeasure> { return this.measureState.store; }\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private measureState: MeasureState,\r\n private mapState: MapState\r\n ) {}\r\n\r\n}\r\n","<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoMeasurerModule } from '@igo2/geo';\r\n\r\nimport { MeasurerToolComponent } from './measurer-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n IgoMeasurerModule\r\n ],\r\n declarations: [MeasurerToolComponent],\r\n exports: [MeasurerToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMeasurerToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppMeasurerToolModule } from './measurer-tool/measurer-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppMeasurerToolModule\r\n ]\r\n})\r\nexport class IgoAppMeasureModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\n@ToolComponent({\r\n name: 'print',\r\n title: 'igo.integration.tools.print',\r\n icon: 'printer'\r\n})\r\n@Component({\r\n selector: 'igo-print-tool',\r\n templateUrl: './print-tool.component.html'\r\n})\r\nexport class PrintToolComponent {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(private mapState: MapState) {}\r\n}\r\n","<igo-print [map]=\"map\"></igo-print>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoPrintModule } from '@igo2/geo';\r\nimport { PrintToolComponent } from './print-tool/print-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoPrintModule],\r\n declarations: [PrintToolComponent],\r\n exports: [PrintToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppPrintModule {\r\n static forRoot(): ModuleWithProviders<IgoAppPrintModule> {\r\n return {\r\n ngModule: IgoAppPrintModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityRecord, EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreStrategyFuncOptions } from '@igo2/common';\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport { SearchResult, SearchSourceService, SearchSource, CommonVectorStyleOptions } from '@igo2/geo';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchState {\r\n public searchOverlayStyle: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n public focusedOrResolution$$: Subscription;\r\n public selectedOrResolution$$: Subscription;\r\n\r\n readonly searchTermSplitter$: BehaviorSubject<string> = new BehaviorSubject('|');\r\n\r\n readonly searchTerm$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchType$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchDisabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchResultsGeometryEnabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchSettingsChange$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n readonly selectedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(undefined);\r\n\r\n /**\r\n * Store that holds the search results\r\n */\r\n readonly store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n\r\n /**\r\n * Search types currently enabled in the search source service\r\n */\r\n get searchTypes(): string[] {\r\n return this.searchSourceService\r\n .getEnabledSources()\r\n .map((source: SearchSource) => (source.constructor as any).type);\r\n }\r\n\r\n constructor(\r\n private searchSourceService: SearchSourceService,\r\n private storageService: StorageService,\r\n private configService: ConfigService) {\r\n const searchOverlayStyle = this.configService.getConfig('searchOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (searchOverlayStyle) {\r\n this.searchOverlayStyle = searchOverlayStyle.base;\r\n this.searchOverlayStyleSelection = searchOverlayStyle.selection;\r\n this.searchOverlayStyleFocus = searchOverlayStyle.focus;\r\n }\r\n\r\n const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled') as boolean;\r\n if (searchResultsGeometryEnabled) {\r\n this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);\r\n }\r\n this.store.addStrategy(this.createCustomFilterTermStrategy(), false);\r\n }\r\n\r\n private createCustomFilterTermStrategy(): EntityStoreFilterCustomFuncStrategy {\r\n const filterClauseFunc = (record: EntityRecord<SearchResult>) => {\r\n return record.entity.meta.score === 100;\r\n };\r\n return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions);\r\n }\r\n\r\n /**\r\n * Activate custom strategy\r\n *\r\n */\r\n activateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.activate();\r\n }\r\n }\r\n\r\n /**\r\n * Deactivate custom strategy\r\n *\r\n */\r\n deactivateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.deactivate();\r\n }\r\n }\r\n\r\n enableSearch() {\r\n this.searchDisabled$.next(false);\r\n }\r\n\r\n disableSearch() {\r\n this.searchDisabled$.next(true);\r\n }\r\n\r\n setSearchTerm(searchTerm: string) {\r\n this.searchTerm$.next(searchTerm);\r\n }\r\n\r\n setSearchType(searchType: string) {\r\n this.searchSourceService.enableSourcesByType(searchType);\r\n this.searchType$.next(searchType);\r\n }\r\n\r\n setSearchSettingsChange() {\r\n this.searchSettingsChange$.next(true);\r\n }\r\n\r\n setSelectedResult(result: SearchResult) {\r\n this.selectedResult$.next(result);\r\n }\r\n\r\n setSearchResultsGeometryStatus(value) {\r\n this.storageService.set('searchResultsGeometryEnabled', value);\r\n this.searchResultsGeometryEnabled$.next(value);\r\n }\r\n}\r\n","import { Directive, Self, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SearchBarComponent } from '@igo2/geo';\r\nimport { SearchState } from '../search.state';\r\n\r\n@Directive({\r\n selector: '[igoSearchBarBinding]'\r\n})\r\nexport class SearchBarBindingDirective implements OnInit, OnDestroy {\r\n\r\n get searchTerm(): string { return this.searchState.searchTerm$.value; }\r\n get searchType(): string { return this.searchState.searchType$.value; }\r\n\r\n private searchTerm$$: Subscription;\r\n private searchType$$: Subscription;\r\n private searchDisabled$$: Subscription;\r\n\r\n constructor(\r\n @Self() private component: SearchBarComponent,\r\n private searchState: SearchState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.component.setTerm(searchTerm);\r\n }\r\n });\r\n\r\n this.searchType$$ = this.searchState.searchType$.subscribe((searchType: string) => {\r\n if (searchType !== undefined && searchType !== null) {\r\n this.component.setSearchType(searchType);\r\n }\r\n });\r\n\r\n this.searchDisabled$$ = this.searchState.searchDisabled$.subscribe((searchDisabled: boolean) => {\r\n this.component.disabled = searchDisabled;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.searchTerm$$.unsubscribe();\r\n this.searchType$$.unsubscribe();\r\n this.searchDisabled$$.unsubscribe();\r\n }\r\n\r\n @HostListener('searchTermChange', ['$event'])\r\n onSearchTermChange(searchTerm?: string) {\r\n if (searchTerm !== this.searchTerm) {\r\n this.searchState.setSearchTerm(searchTerm);\r\n }\r\n }\r\n\r\n @HostListener('searchTypeChange', ['$event'])\r\n onSearchTypeChange(searchType?: string) {\r\n if (searchType !== this.searchType) {\r\n this.searchState.setSearchType(searchType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoSearchModule } from '@igo2/geo';\r\n\r\nimport { SearchBarBindingDirective } from './search-bar-binding.directive';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [IgoSearchModule],\r\n declarations: [SearchBarBindingDirective],\r\n exports: [SearchBarBindingDirective],\r\n})\r\nexport class IgoAppSearchBarModule {}\r\n","<div *ngIf=\"!store || store.stateView.empty\" style=\"margin: 10px;\">\r\n <section class=\"mat-typography\">\r\n <h4><strong>{{ 'igo.integration.searchResultsTool.noResults' | translate }}</strong></h4>\r\n <p><strong>{{ 'igo.integration.searchResultsTool.doSearch' | translate }}</strong></p>\r\n <div [innerHTML]=\"'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\"></div>\r\n</section>\r\n</div>\r\n\r\n<igo-flexible\r\n *ngIf=\"store && (store.stateView.empty$ | async)===false\"\r\n #topPanel\r\n initial=\"100%\"\r\n initialMobile=\"100%\"\r\n collapsed=\"calc(100% - 58px)\"\r\n collapsedMobile=\"calc(100% - 58px)\"\r\n expanded=\"60%\"\r\n expandedMobile=\"60%\"\r\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-search-results\r\n [store]=\"store\"\r\n [showIcons]=\"showIcons\"\r\n [term]=\"term\"\r\n [termSplitter]=\"termSplitter\"\r\n [settingsChange$]=\"settingsChange$\"\r\n placeholder=\"false\"\r\n (resultFocus)=\"onResultFocus($event)\"\r\n (resultSelect)=\"onResultSelect($event)\"\r\n (resultUnfocus)=\"onResultUnfocus($event)\"\r\n (resultMouseenter)=\"onResultFocus($event)\"\r\n (resultMouseleave)=\"onResultUnfocus($event)\"\r\n (moreResults)=\"onSearch($event)\">\r\n <ng-template #igoSearchItemToolbar let-result=\"result\">\r\n <igo-search-add-button\r\n [map]=\"map\"\r\n [layer]=\"result\">\r\n </igo-search-add-button>\r\n </ng-template>\r\n </igo-search-results>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature$ | async\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"(topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"feature.geometry\"\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n [matTooltip]=\"((isSelectedResultOutOfView$ | async) ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView' : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip') | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"zoomToFeatureExtent()\">\r\n <mat-icon\r\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async)===false\" \r\n svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n igoFeatureDetailsDirective\r\n [feature]=\"feature$ | async\"\r\n [map]=\"map\"\r\n [toolbox]=\"toolState.toolbox\"\r\n (routingEvent)=\"getRoute()\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n</igo-flexible>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olFeature from 'ol/Feature';\r\nimport olPoint from 'ol/geom/Point';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport pointOnFeature from '@turf/point-on-feature';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n EntityStore,\r\n ToolComponent,\r\n FlexibleState,\r\n getEntityTitle,\r\n FlexibleComponent,\r\n EntityState\r\n} from '@igo2/common';\r\n\r\nimport {\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n SearchResult,\r\n IgoMap,\r\n moveToOlFeatures,\r\n Research,\r\n featuresAreTooDeepInView,\r\n featureToOl,\r\n featureFromOl,\r\n getCommonVectorStyle,\r\n getCommonVectorSelectedStyle,\r\n computeOlFeaturesExtent,\r\n featuresAreOutOfView\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\nimport { SearchState } from '../search.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { DirectionState } from '../../directions/directions.state';\r\n\r\n/**\r\n * Tool to browse the search results\r\n */\r\n@ToolComponent({\r\n name: 'searchResults',\r\n title: 'igo.integration.tools.searchResults',\r\n icon: 'magnify'\r\n})\r\n@Component({\r\n selector: 'igo-search-results-tool',\r\n templateUrl: './search-results-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SearchResultsToolComponent implements OnInit, OnDestroy {\r\n /**\r\n * to show hide results icons\r\n */\r\n @Input() showIcons: boolean = true;\r\n\r\n private hasFeatureEmphasisOnSelection: boolean = false;\r\n\r\n private showResultsGeometries$$: Subscription;\r\n private getRoute$$: Subscription;\r\n private shownResultsGeometries: Feature[] = [];\r\n private shownResultsEmphasisGeometries: Feature[] = [];\r\n private focusedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(\r\n undefined\r\n );\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private abstractFocusedResult: Feature;\r\n private abstractSelectedResult: Feature;\r\n\r\n /**\r\n * Store holding the search results\r\n * @internal\r\n */\r\n get store(): EntityStore<SearchResult> {\r\n return this.searchState.store;\r\n }\r\n\r\n /**\r\n * Map to display the results on\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n get feature$(): Observable<Feature> {\r\n return this.store.stateView\r\n .firstBy$((e) => e.state.focused)\r\n .pipe(\r\n map(\r\n (element) =>\r\n (this.feature = element\r\n ? (element.entity.data as Feature)\r\n : undefined)\r\n )\r\n );\r\n }\r\n\r\n public feature: Feature;\r\n\r\n public term = '';\r\n private searchTerm$$: Subscription;\r\n\r\n public settingsChange$ = new BehaviorSubject<boolean>(undefined);\r\n\r\n public topPanelState$ = new BehaviorSubject<FlexibleState>('initial');\r\n private topPanelState$$: Subscription;\r\n\r\n @Input()\r\n set topPanelState(value: FlexibleState) {\r\n this.topPanelState$.next(value);\r\n }\r\n get topPanelState(): FlexibleState {\r\n return this.topPanelState$.value;\r\n }\r\n\r\n get termSplitter(): string {\r\n return this.searchState.searchTermSplitter$.value;\r\n }\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n private elRef: ElementRef,\r\n public toolState: ToolState,\r\n private directionState: DirectionState,\r\n configService: ConfigService\r\n ) {\r\n this.hasFeatureEmphasisOnSelection = configService.getConfig(\r\n 'hasFeatureEmphasisOnSelection'\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe(\r\n (searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.term = searchTerm;\r\n }\r\n }\r\n );\r\n\r\n for (const res of this.store.stateView.all$().value) {\r\n if (this.store.state.get(res.entity).selected === true) {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n this.searchState.searchSettingsChange$.subscribe(() => {\r\n this.settingsChange$.next(true);\r\n });\r\n\r\n this.topPanelState$$ = this.topPanelState$.subscribe(() => {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (selected) {\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n });\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n if (!this.searchState.focusedOrResolution$$) {\r\n this.searchState.focusedOrResolution$$ = combineLatest([\r\n this.focusedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'focused')\r\n );\r\n }\r\n\r\n if (!this.searchState.selectedOrResolution$$) {\r\n this.searchState.selectedOrResolution$$ = combineLatest([\r\n this.searchState.selectedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'selected')\r\n );\r\n }\r\n }\r\n this.monitorResultOutOfView();\r\n\r\n this.showResultsGeometries$$ = combineLatest([\r\n this.searchState.searchResultsGeometryEnabled$,\r\n this.store.stateView.all$(),\r\n this.focusedResult$,\r\n this.searchState.selectedResult$,\r\n this.searchState.searchTerm$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [boolean, { entity: SearchResult, state: EntityState }[], SearchResult, SearchResult, string, number]) => {\r\n\r\n const searchResultsGeometryEnabled = bunch[0];\r\n const searchResults = bunch[1];\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.clearFeatureEmphasis('shown');\r\n }\r\n this.shownResultsGeometries.map(result => this.map.queryResultsOverlay.removeFeature(result));\r\n const featureToHandleGeom = searchResults\r\n .filter(result =>\r\n result.entity.meta.dataType === FEATURE &&\r\n result.entity.data.geometry &&\r\n !result.state.selected &&\r\n !result.state.focused);\r\n\r\n featureToHandleGeom.map(result => {\r\n if (searchResultsGeometryEnabled) {\r\n result.entity.data.meta.style =\r\n getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.entity.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyle,\r\n result.entity.style?.base ? result.entity.style.base : {}\r\n ));\r\n this.shownResultsGeometries.push(result.entity.data as Feature);\r\n this.map.queryResultsOverlay.addFeature(result.entity.data as Feature, FeatureMotion.None);\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.buildResultEmphasis(result.entity as SearchResult<Feature>, 'shown');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.searchState.selectedResult$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1] as SearchResult<Feature>;\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n if (selectedResult.data.geometry) {\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(this.map, [\r\n selectedOlFeature\r\n ]);\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map, selectedOlFeatureExtent)\r\n );\r\n }\r\n });\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult<Feature>,\r\n trigger: 'selected' | 'focused' | 'shown' | undefined\r\n ) {\r\n if (trigger !== 'shown') {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n if (!result || !result.data.geometry) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (featuresAreTooDeepInView(this.map, olGeometry.getExtent() as [number, number, number, number], 0.0025)) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: `${trigger}AbstractResult'`,\r\n geometry: new olPoint([x, y])\r\n });\r\n const abstractResult = featureFromOl(feature1, this.map.projection);\r\n\r\n let computedStyle;\r\n let zIndexOffset = 0;\r\n\r\n switch (trigger) {\r\n case 'focused':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n zIndexOffset = 2;\r\n break;\r\n case 'shown':\r\n computedStyle = getCommonVectorStyle(Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyle,\r\n result.style?.base ? result.style.base : {}));\r\n break;\r\n case 'selected':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n zIndexOffset = 1;\r\n break;\r\n }\r\n abstractResult.meta.style = computedStyle;\r\n abstractResult.meta.style.setZIndex(2000 + zIndexOffset);\r\n this.map.searchResultsOverlay.addFeature(abstractResult, FeatureMotion.None);\r\n if (trigger === 'focused') {\r\n this.abstractFocusedResult = abstractResult;\r\n }\r\n if (trigger === 'selected') {\r\n this.abstractSelectedResult = abstractResult;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.push(abstractResult);\r\n }\r\n } else {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis(trigger: 'selected' | 'focused' | 'shown') {\r\n if (trigger === 'focused' && this.abstractFocusedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);\r\n this.abstractFocusedResult = undefined;\r\n }\r\n if (trigger === 'selected' && this.abstractSelectedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);\r\n this.abstractSelectedResult = undefined;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.map(shownResult => this.map.searchResultsOverlay.removeFeature(shownResult));\r\n this.shownResultsEmphasisGeometries = [];\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.topPanelState$$.unsubscribe();\r\n this.searchTerm$$.unsubscribe();\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.showResultsGeometries$$) {\r\n this.showResultsGeometries$$.unsubscribe();\r\n }\r\n if (this.getRoute$$) {\r\n this.getRoute$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being focused\r\n * @internal\r\n * @param result A search result that could be a feature\r\n */\r\n onResultFocus(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n if (result.meta.dataType === FEATURE && result.data.geometry) {\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n feature.setStyle(result.data.meta.style);\r\n return;\r\n }\r\n this.map.searchResultsOverlay.addFeature(result.data as Feature, FeatureMotion.None);\r\n }\r\n }\r\n\r\n onResultUnfocus(result: SearchResult) {\r\n this.focusedResult$.next(undefined);\r\n if (result.meta.dataType !== FEATURE) {\r\n return;\r\n }\r\n\r\n if (this.store.state.get(result).selected === true) {\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n const style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n feature.setStyle(style);\r\n }\r\n return;\r\n }\r\n this.map.searchResultsOverlay.removeFeature(result.data as Feature);\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being selected\r\n * @internal\r\n * @param result A search result that could be a feature or some layer options\r\n */\r\n onResultSelect(result: SearchResult) {\r\n this.map.searchResultsOverlay.dataSource.ol.clear();\r\n this.tryAddFeatureToMap(result);\r\n this.searchState.setSelectedResult(result);\r\n\r\n if (this.topPanelState === 'expanded') {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n\r\n if (this.topPanelState === 'initial') {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n const newResults = this.store.entities$.value\r\n .filter((result: SearchResult) => result.source !== event.research.source)\r\n .concat(results);\r\n\r\n this.store.load(newResults);\r\n\r\n for (const res of this.store.all()) {\r\n if (\r\n this.store.state.get(res).focused === true &&\r\n this.store.state.get(res).selected !== true\r\n ) {\r\n this.store.state.update(res, { focused: false }, true);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const igoList = this.elRef.nativeElement.querySelector('igo-list');\r\n let moreResults;\r\n event.research.request.subscribe((source) => {\r\n if (!source[0] || !source[0].source) {\r\n moreResults = null;\r\n } else if (source[0].source.getId() === 'icherche') {\r\n moreResults = igoList.querySelector('.icherche .moreResults');\r\n } else if (source[0].source.getId() === 'ilayer') {\r\n moreResults = igoList.querySelector('.ilayer .moreResults');\r\n } else if (source[0].source.getId() === 'nominatim') {\r\n moreResults = igoList.querySelector('.nominatim .moreResults');\r\n } else {\r\n moreResults = igoList.querySelector('.' + source[0].source.getId() + ' .moreResults');\r\n }\r\n\r\n if (\r\n moreResults !== null &&\r\n !this.isScrolledIntoView(igoList, moreResults)\r\n ) {\r\n igoList.scrollTop =\r\n moreResults.offsetTop +\r\n moreResults.offsetHeight -\r\n igoList.clientHeight;\r\n }\r\n });\r\n }, 250);\r\n }\r\n\r\n computeElementRef() {\r\n const items = document.getElementsByTagName('igo-search-results-item');\r\n const igoList = this.elRef.nativeElement.getElementsByTagName(\r\n 'igo-list'\r\n )[0];\r\n let selectedItem;\r\n // eslint-disable-next-line\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].className.includes('igo-list-item-selected')) {\r\n selectedItem = items[i];\r\n }\r\n }\r\n return [igoList, selectedItem];\r\n }\r\n\r\n adjustTopPanel(elemSource, elem) {\r\n if (!this.isScrolledIntoView(elemSource, elem)) {\r\n elemSource.scrollTop =\r\n elem.offsetTop +\r\n elem.children[0].offsetHeight -\r\n elemSource.clientHeight;\r\n }\r\n }\r\n\r\n toggleTopPanel() {\r\n if (this.topPanelState === 'expanded') {\r\n this.topPanelState = 'collapsed';\r\n } else {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const localOlFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [localOlFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map overlay\r\n * @param result A search result that could be a feature\r\n */\r\n private tryAddFeatureToMap(result: SearchResult) {\r\n if (result.meta.dataType !== FEATURE) {\r\n return undefined;\r\n }\r\n const feature = (result as SearchResult<Feature>).data;\r\n\r\n // Somethimes features have no geometry. It happens with some GetFeatureInfo\r\n if (!feature.geometry) {\r\n return;\r\n }\r\n\r\n feature.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n\r\n this.map.searchResultsOverlay.addFeature(feature);\r\n }\r\n\r\n isScrolledIntoView(elemSource, elem) {\r\n const padding = 6;\r\n const docViewTop = elemSource.scrollTop;\r\n const docViewBottom = docViewTop + elemSource.clientHeight;\r\n\r\n const elemTop = elem.offsetTop;\r\n const elemBottom = elemTop + elem.clientHeight + padding;\r\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\r\n }\r\n\r\n getRoute() {\r\n this.toolState.toolbox.activateTool('directions');\r\n this.directionState.stopsStore.clearStops();\r\n setTimeout(() => {\r\n let routingCoordLoaded = false;\r\n if (this.getRoute$$) { this.getRoute$$.unsubscribe(); }\r\n this.getRoute$$ = this.directionState.stopsStore.storeInitialized$.subscribe((init: boolean) => {\r\n if (this.directionState.stopsStore.storeInitialized$.value && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 1);\r\n let coord;\r\n if (this.feature.geometry) {\r\n if (this.feature.geometry.type === 'Point') {\r\n coord = [this.feature.geometry.coordinates[0], this.feature.geometry.coordinates[1]];\r\n } else {\r\n const point = pointOnFeature(this.feature.geometry);\r\n coord = [point.geometry.coordinates[0], point.geometry.coordinates[1]];\r\n }\r\n }\r\n stop.text = this.featureTitle;\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n }\r\n });\r\n }, 250);\r\n }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFlexibleModule, IgoCustomHtmlModule, IgoPanelModule } from '@igo2/common';\r\nimport {\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFeatureDetailsModule\r\n} from '@igo2/geo';\r\n\r\nimport { SearchResultsToolComponent } from './search-results-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatBadgeModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFlexibleModule,\r\n IgoPanelModule,\r\n IgoFeatureDetailsModule,\r\n IgoCustomHtmlModule\r\n ],\r\n declarations: [SearchResultsToolComponent],\r\n exports: [SearchResultsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppSearchResultsToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppSearchBarModule } from './search-bar/search-bar.module';\r\nimport { IgoAppSearchResultsToolModule } from './search-results-tool/search-results-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppSearchBarModule,\r\n IgoAppSearchResultsToolModule\r\n ],\r\n})\r\nexport class IgoAppSearchModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'ogcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter'\r\n})\r\n@Component({\r\n selector: 'igo-ogc-filter-tool',\r\n templateUrl: './ogc-filter-tool.component.html'\r\n})\r\nexport class OgcFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'timeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history'\r\n})\r\n@Component({\r\n selector: 'igo-time-filter-tool',\r\n templateUrl: './time-filter-tool.component.html'\r\n})\r\nexport class TimeFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\r\n","<igo-panel>\r\n <igo-spatial-filter-type\r\n [store]=\"spatialListStore\"\r\n [selectedQueryType]=\"queryType\"\r\n [zone]=\"zone\"\r\n [layers]=\"activeLayers\"\r\n (eventType)=\"getOutputType($event)\"\r\n (eventQueryType)=\"getOutputQueryType($event)\"\r\n (zoneChange)=\"onZoneChange($event)\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (bufferChange)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\">\r\n </igo-spatial-filter-type>\r\n\r\n <igo-spatial-filter-item\r\n [type]=\"type\"\r\n [queryType]=\"queryType\"\r\n [map]=\"map\"\r\n [zone]=\"zone\"\r\n [loading]=\"loading\"\r\n [store]=\"store\"\r\n [layers]=\"activeLayers\"\r\n [allLayers]=\"layers\"\r\n [thematicLength]=\"thematicLength\"\r\n (radiusEvent)=\"buffer = $event\"\r\n (bufferEvent)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\"\r\n (freehandControl)=\"freehandDrawIsActive = $event\"\r\n (drawZoneEvent)=\"zone = $event\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (itemTypeChange)=\"itemType = $event\"\r\n (thematicChange)=\"thematics = $event\"\r\n (toggleSearch)=\"getOutputToggleSearch()\"\r\n (clearButtonEvent)=\"clearMap()\"\r\n (clearSearchEvent)=\"getOutputClearSearch()\"\r\n (export)=\"activateExportTool()\"\r\n (openWorkspace)=\"activateWorkspace()\"\r\n (entityChange)=\"activateWorkspace($event)\">\r\n </igo-spatial-filter-item>\r\n</igo-panel>\r\n\r\n<igo-panel>\r\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </ng-container>\r\n</igo-panel>","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { Observable, forkJoin, Subject } from 'rxjs';\r\nimport { tap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n IgoMap,\r\n DataSourceService,\r\n LayerService,\r\n Feature,\r\n moveToOlFeatures,\r\n FeatureMotion,\r\n ClusterDataSource,\r\n featureToOl,\r\n DataSource,\r\n QueryableDataSourceOptions,\r\n SpatialFilterService,\r\n SpatialFilterType,\r\n SpatialFilterItemType,\r\n SpatialFilterQueryType,\r\n SpatialFilterThematic,\r\n Layer,\r\n createOverlayMarkerStyle,\r\n ExportOptions,\r\n MeasureLengthUnit\r\n} from '@igo2/geo';\r\nimport { EntityStore, ToolComponent } from '@igo2/common';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olSourceVector from 'ol/source/Vector';\r\nimport olSourceCluster from 'ol/source/Cluster';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState } from './../../import-export/import-export.state';\r\nimport * as olstyle from 'ol/style';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\nimport { EventsKey } from 'ol/events';\r\n\r\n/**\r\n * Tool to apply spatial filter\r\n */\r\n@ToolComponent({\r\n name: 'spatialFilter',\r\n title: 'igo.integration.tools.spatialFilter',\r\n icon: 'selection-marker'\r\n})\r\n/**\r\n * Spatial Filter Type\r\n */\r\n@Component({\r\n selector: 'igo-spatial-filter-tool',\r\n templateUrl: './spatial-filter-tool.component.html',\r\n styleUrls: ['./spatial-filter-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SpatialFilterToolComponent implements OnInit, OnDestroy {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() type: SpatialFilterType;\r\n @Input() itemType: SpatialFilterItemType = SpatialFilterItemType.Address;\r\n @Input() freehandDrawIsActive: boolean;\r\n\r\n public layers: Layer[] = [];\r\n public activeLayers: Layer[] = [];\r\n\r\n public queryType: SpatialFilterQueryType;\r\n public thematics: SpatialFilterThematic[];\r\n public zone: Feature;\r\n public zoneWithBuffer: Feature;\r\n public buffer = 0;\r\n\r\n public iterator = 1;\r\n\r\n public selectedFeature$: BehaviorSubject<Feature> = new BehaviorSubject(\r\n undefined\r\n );\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n public store: EntityStore<Feature> = new EntityStore<Feature>([]); // Store to print results at the end\r\n\r\n public spatialListStore: EntityStore<Feature> = new EntityStore<Feature>([]);\r\n\r\n public loading = false;\r\n\r\n public thematicLength = 0;\r\n\r\n public measureUnit: MeasureLengthUnit = MeasureLengthUnit.Meters;\r\n private unsubscribe$ = new Subject<void>();\r\n\r\n private moveendKey: EventsKey;\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private spatialFilterService: SpatialFilterService,\r\n private dataSourceService: DataSourceService,\r\n private layerService: LayerService,\r\n private mapState: MapState,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private importExportState: ImportExportState,\r\n private toolState: ToolState,\r\n private workspaceState: WorkspaceState,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n for (const layer of this.map.layers) {\r\n if (layer.title && layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {\r\n this.layers.push(layer);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getOutputType(event: SpatialFilterType) {\r\n this.type = event;\r\n this.queryType = undefined;\r\n }\r\n\r\n getOutputQueryType(event: SpatialFilterQueryType) {\r\n this.queryType = event;\r\n if (this.queryType) {\r\n this.loadFilterList();\r\n }\r\n }\r\n\r\n activateExportTool() {\r\n const ids = [];\r\n const re = new RegExp('^Zone \\\\d+');\r\n for (const layer of this.layers) {\r\n if (!layer.title.match(re)) {\r\n ids.push(layer.id);\r\n }\r\n }\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.importExportState.setsExportOptions({ layers: ids } as ExportOptions);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateWorkspace(record?) {\r\n let layerToOpenWks;\r\n this.workspaceState.store.entities$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n if (!record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n if (this.itemType === SpatialFilterItemType.Thematics) {\r\n for (const thematic of this.thematics) {\r\n if (!thematic.zeroResults) {\r\n layerToOpenWks = this.activeLayers.find(layer => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));\r\n break;\r\n }\r\n }\r\n } else {\r\n const title = 'Adresses ' + this.iterator.toString();\r\n this.activeLayers.forEach((layer) => {\r\n if (layer.title.includes(title)) {\r\n layerToOpenWks = layer;\r\n }\r\n });\r\n }\r\n\r\n if (layerToOpenWks) {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(layerToOpenWks.id);\r\n }\r\n } else if (record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n this.selectWorkspaceEntity(record);\r\n this.moveendKey = this.map.ol.on('moveend', () => {\r\n this.selectWorkspaceEntity(record);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private selectWorkspaceEntity(record) {\r\n this.workspaceState.store.all().forEach(workspace => {\r\n workspace.entityStore.state.updateAll({selected: false});\r\n if (workspace.title.includes(record.added[0].meta.title)) {\r\n this.workspaceState.setActiveWorkspaceById(workspace.id);\r\n workspace.entityStore.state.updateMany(record.added, {selected: true});\r\n }\r\n });\r\n }\r\n\r\n private loadFilterList() {\r\n this.spatialFilterService\r\n .loadFilterList(this.queryType)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((features: Feature[]) => {\r\n features.sort((a, b) => {\r\n if (a.properties.nom < b.properties.nom) {\r\n return -1;\r\n }\r\n if (a.properties.nom > b.properties.nom) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.spatialListStore.clear();\r\n this.spatialListStore.load(features);\r\n });\r\n }\r\n\r\n getOutputToggleSearch() {\r\n this.loadThematics();\r\n }\r\n\r\n getOutputClearSearch() {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n\r\n clearMap() {\r\n this.map.removeLayers(this.layers);\r\n this.layers = [];\r\n this.activeLayers = [];\r\n this.thematicLength = 0;\r\n this.iterator = 1;\r\n if (this.type === SpatialFilterType.Predefined) {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n }\r\n\r\n private loadThematics() {\r\n this.loading = true;\r\n let zeroResults = true;\r\n let thematics;\r\n if (this.buffer === 0 || this.type === SpatialFilterType.Point) {\r\n this.tryAddFeaturesToMap([this.zone]);\r\n }\r\n if (this.itemType !== SpatialFilterItemType.Thematics) {\r\n const theme: SpatialFilterThematic = {\r\n name: ''\r\n };\r\n thematics = [theme];\r\n } else {\r\n thematics = this.thematics;\r\n }\r\n if (this.measureUnit === MeasureLengthUnit.Kilometers && this.type !== SpatialFilterType.Point) {\r\n this.buffer = this.buffer * 1000;\r\n }\r\n if (this.type === SpatialFilterType.Polygon) {\r\n this.buffer = 0; // to avoid buffer enter a second time in terrAPI\r\n }\r\n\r\n const observables$: Observable<Feature[]>[] = [];\r\n thematics.forEach(thematic => {\r\n observables$.push(\r\n this.spatialFilterService\r\n .loadFilterItem(\r\n this.zone,\r\n this.itemType,\r\n this.queryType,\r\n thematic,\r\n this.buffer\r\n )\r\n .pipe(\r\n tap((features: Feature[]) => {\r\n this.store.insertMany(features);\r\n const featuresPoint: Feature[] = [];\r\n const featuresLinePoly: Feature[] = [];\r\n let idPoint;\r\n let idLinePoly;\r\n features.forEach(feature => {\r\n if (feature.geometry.type === 'Point') {\r\n feature.properties.longitude = feature.geometry.coordinates[0];\r\n feature.properties.latitude = feature.geometry.coordinates[1];\r\n featuresPoint.push(feature);\r\n idPoint = feature.meta.id;\r\n } else {\r\n featuresLinePoly.push(feature);\r\n idLinePoly = feature.meta.id;\r\n }\r\n });\r\n\r\n this.tryAddPointToMap(featuresPoint, idPoint);\r\n this.tryAddLayerToMap(featuresLinePoly, idLinePoly);\r\n if (features.length) {\r\n zeroResults = false;\r\n this.thematicLength += 1;\r\n thematic.zeroResults = false;\r\n this.cdRef.detectChanges();\r\n } else {\r\n thematic.zeroResults = true;\r\n }\r\n\r\n if (features.length >= 10000) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.maxSizeAlert'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n })\r\n )\r\n );\r\n });\r\n\r\n forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.loading = false;\r\n if (zeroResults) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.zeroResults'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n });\r\n }\r\n\r\n onZoneChange(feature: Feature, buffer?: boolean) {\r\n this.zone = feature;\r\n if (feature) {\r\n buffer ? this.tryAddFeaturesToMap([feature], true) : this.tryAddFeaturesToMap([feature]);\r\n this.zoomToFeatureExtent(feature);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add zone feature to the map overlay\r\n */\r\n public tryAddFeaturesToMap(features: Feature[], buffer?: boolean) {\r\n let i = 1;\r\n for (const feature of features) {\r\n if (this.type === SpatialFilterType.Predefined) {\r\n for (const layer of this.layers) {\r\n if (\r\n layer.options._internal &&\r\n layer.options._internal.code === feature.properties.code &&\r\n !buffer\r\n ) {\r\n if (!layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n }\r\n return;\r\n }\r\n if (layer.title?.startsWith('Zone')) {\r\n this.activeLayers = [];\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n } else {\r\n if (buffer) {\r\n for (const layer of this.activeLayers) {\r\n if (this.activeLayers.length === 1 && layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n }\r\n this.activeLayers = [];\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith('Zone')) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: ('Zone ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n workspace: { enabled: true },\r\n _internal: {\r\n code:\r\n this.type === SpatialFilterType.Predefined\r\n ? feature.properties.code\r\n : undefined\r\n },\r\n source: dataSource,\r\n visible: true,\r\n style: (_feature, resolution) => {\r\n const coordinates = (features[0] as any).coordinates;\r\n return new olstyle.Style({\r\n image: new olstyle.Circle({\r\n radius: coordinates\r\n ? this.buffer /\r\n Math.cos((Math.PI / 180) * coordinates[1]) /\r\n resolution\r\n : undefined,\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n })\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n }),\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n })\r\n });\r\n }\r\n });\r\n const featuresOl = features.map(f => {\r\n return featureToOl(f, this.map.projection);\r\n });\r\n if (this.type !== SpatialFilterType.Predefined) {\r\n const type = this.type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';\r\n featuresOl[0].set('nom', 'Zone', true);\r\n featuresOl[0].set('type', type, true);\r\n }\r\n const ol = dataSource.ol as olSourceVector<OlGeometry> | olSourceCluster;\r\n ol.addFeatures(featuresOl);\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.activeLayers.push(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Try to add point features to the map\r\n * Necessary to create clusters\r\n */\r\n private tryAddPointToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'cluster',\r\n id,\r\n queryable: true,\r\n distance: 120,\r\n meta: {\r\n title: 'Cluster'\r\n }\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: ClusterDataSource) => {\r\n const icon = features[0].meta.icon;\r\n let style: olstyle.Style;\r\n if (!icon) {\r\n style = createOverlayMarkerStyle();\r\n } else {\r\n style = this.createSvgIcon(icon) || createOverlayMarkerStyle();\r\n }\r\n\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true,\r\n style\r\n });\r\n\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceCluster;\r\n ol.getSource().addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.iterator = i;\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private createSvgIcon(icon): olstyle.Style {\r\n let style: olstyle.Style;\r\n this.matIconRegistry.getNamedSvgIcon(icon).subscribe(svgObj => {\r\n const xmlSerializer = new XMLSerializer();\r\n svgObj.setAttribute('width', '30');\r\n svgObj.setAttribute('height', '30');\r\n svgObj.setAttribute('fill', 'rgba(0, 128, 255)');\r\n svgObj.setAttribute('stroke', 'white');\r\n const svg = xmlSerializer.serializeToString(svgObj);\r\n style = new olstyle.Style({\r\n image: new olstyle.Icon({\r\n src: 'data:image/svg+xml;utf8,' + svg\r\n })\r\n });\r\n });\r\n return style;\r\n }\r\n /**\r\n * Try to add line or polygon features to the map\r\n */\r\n private tryAddLayerToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n id,\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true\r\n });\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceVector<OlGeometry>;\r\n ol.addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n zoomToFeatureExtent(feature) {\r\n if (feature) {\r\n const olFeature = this.format.readFeature(feature, {\r\n dataProjection: feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n pushLayer(layer) {\r\n for (const lay of this.activeLayers) {\r\n if (lay.id === layer.id) {\r\n return;\r\n }\r\n }\r\n\r\n this.activeLayers.push(layer);\r\n }\r\n}\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap, Layer } from '@igo2/geo';\r\nimport { toolSlideInOut } from './active-time-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeTimeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-time-filter-tool',\r\n templateUrl: './active-time-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveTimeFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-time-filter-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-time-filter-item>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { Layer, IgoMap } from '@igo2/geo';\r\n\r\nimport { toolSlideInOut } from './active-ogc-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeOgcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-ogc-filter-tool',\r\n templateUrl: './active-ogc-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveOgcFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-ogc-filterable-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-ogc-filterable-item>\r\n\r\n\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IgoFilterModule, IgoQueryModule } from '@igo2/geo';\r\nimport { OgcFilterToolComponent } from './ogc-filter-tool/ogc-filter-tool.component';\r\nimport { TimeFilterToolComponent } from './time-filter-tool/time-filter-tool.component';\r\nimport { SpatialFilterToolComponent } from './spatial-filter-tool/spatial-filter-tool.component';\r\nimport { ActiveTimeFilterToolComponent } from './active-time-filter-tool/active-time-filter-tool.component';\r\nimport { ActiveOgcFilterToolComponent } from './active-ogc-filter-tool/active-ogc-filter-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoFilterModule, IgoQueryModule, CommonModule],\r\n declarations: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n exports: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppFilterModule {\r\n static forRoot(): ModuleWithProviders<IgoAppFilterModule> {\r\n return {\r\n ngModule: IgoAppFilterModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<p></p>\r\n<igo-interactive-tour\r\n mat-raised-button\r\n tourToStart=\"global\"\r\n menuIsOpen=true\r\n styleButton=\"raised\"\r\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\">\r\n</igo-interactive-tour>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n (click)=\"openGuide()\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let guide of trainingGuideURLs\" mat-menu-item (click)=\"openGuide(guide)\">{{formatFileName(guide)}}</button>\r\n</mat-menu>\r\n\r\n<igo-custom-html *ngIf=\"headerHtml !== ''\" class=\"mat-typography\"\r\n [html]=\"headerHtml | translate\">\r\n</igo-custom-html>\r\n\r\n<igo-custom-html class=\"mat-typography\"\r\n [html]=\"html | translate: {version: version}\">\r\n</igo-custom-html>\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ConfigService, LanguageService, Version } from '@igo2/core';\r\nimport { of } from 'rxjs';\r\nimport type { Observable } from 'rxjs';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@ToolComponent({\r\n name: 'about',\r\n title: 'igo.integration.tools.about',\r\n icon: 'help-circle'\r\n})\r\n@Component({\r\n selector: 'igo-about-tool',\r\n templateUrl: './about-tool.component.html',\r\n styleUrls: ['./about-tool.component.scss']\r\n})\r\nexport class AboutToolComponent implements OnInit {\r\n @Input()\r\n get headerHtml() {\r\n return this._headerHtml;\r\n }\r\n set headerHtml(value: string) {\r\n this._headerHtml = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n\r\n @Input()\r\n get html() {\r\n return this._html;\r\n }\r\n set html(value: string) {\r\n this._html = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n private _discoverTitleInLocale: string = 'IGO';\r\n public discoverTitleInLocale$: Observable<string> = of(this._discoverTitleInLocale);\r\n\r\n @Input()\r\n get discoverTitleInLocale() {\r\n return this._discoverTitleInLocale;\r\n }\r\n set discoverTitleInLocale(value: string) {\r\n this._discoverTitleInLocale = value;\r\n this.discoverTitleInLocale$ = of(value);\r\n }\r\n\r\n @Input() trainingGuideURLs;\r\n\r\n public version: Version;\r\n private _html: string = 'igo.integration.aboutTool.html';\r\n private _headerHtml: string = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');\r\n\r\n private baseUrlProfil;\r\n private baseUrlGuide;\r\n\r\n public loading = false;\r\n\r\n constructor(\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private http: HttpClient,\r\n private cdRef: ChangeDetectorRef,\r\n private languageService: LanguageService) {\r\n this.version = configService.getConfig('version');\r\n this.baseUrlProfil = configService.getConfig('storage.url');\r\n this.baseUrlGuide = configService.getConfig('depot.url') + configService.getConfig('depot.guideUrl');\r\n }\r\n\r\n ngOnInit() {\r\n if (this.auth.authenticated && this.configService.getConfig('context.url')) {\r\n this.http.get(this.baseUrlProfil).subscribe((profil) => {\r\n const recast = profil as any;\r\n this.trainingGuideURLs = recast.guides;\r\n this.cdRef.detectChanges();\r\n });\r\n } else if (\r\n this.auth.authenticated &&\r\n !this.configService.getConfig('context.url') &&\r\n this.configService.getConfig('depot.trainingGuides')) {\r\n this.trainingGuideURLs = this.configService.getConfig('depot.trainingGuides');\r\n }\r\n }\r\n\r\n openGuide(guide?) {\r\n this.loading = true;\r\n const url = guide ?\r\n this.baseUrlGuide + guide + '?' :\r\n this.baseUrlGuide + this.trainingGuideURLs[0] + '?';\r\n this.http\r\n .get(url, {\r\n responseType: 'blob'\r\n })\r\n .subscribe(() => {\r\n this.loading = false;\r\n window.open(url, '_blank');\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n formatFileName(name: string) {\r\n name = name.split('_').join(' ');\r\n const index = name.indexOf('.');\r\n name = name.slice(0, index);\r\n return name;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\n\r\nimport { AboutToolComponent } from './about-tool/about-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n IgoInteractiveTourModule,\r\n CommonModule\r\n ],\r\n declarations: [AboutToolComponent],\r\n exports: [AboutToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppAboutModule {\r\n static forRoot(): ModuleWithProviders<IgoAppAboutModule> {\r\n return {\r\n ngModule: IgoAppAboutModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppStorageModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppAnalyticsModule } from './analytics/analytics.module';\r\nimport { IgoAppContextModule } from './context/context.module';\r\nimport { IgoAppCatalogModule } from './catalog/catalog.module';\r\nimport { IgoAppDirectionsModule } from './directions/directions.module';\r\nimport { IgoAppDrawModule } from './draw/draw.module';\r\nimport { IgoAppWorkspaceModule } from './workspace/workspace.module';\r\nimport { IgoAppImportExportModule } from './import-export/import-export.module';\r\nimport { IgoAppMapModule } from './map/map.module';\r\nimport { IgoAppMeasureModule } from './measure/measure.module';\r\nimport { IgoAppPrintModule } from './print/print.module';\r\nimport { IgoAppSearchModule } from './search/search.module';\r\nimport { IgoAppFilterModule } from './filter/filter.module';\r\nimport { IgoAppAboutModule } from './about/about.module';\r\nimport { IgoAppStorageModule } from './storage/storage.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppStorageModule,\r\n IgoAppAnalyticsModule,\r\n IgoAppContextModule,\r\n IgoAppCatalogModule,\r\n IgoAppDirectionsModule,\r\n IgoAppDrawModule,\r\n IgoAppWorkspaceModule,\r\n IgoAppImportExportModule,\r\n IgoAppMapModule,\r\n IgoAppMeasureModule,\r\n IgoAppPrintModule,\r\n IgoAppSearchModule,\r\n IgoAppFilterModule,\r\n IgoAppAboutModule\r\n ]\r\n})\r\nexport class IgoIntegrationModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppToolModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { skip } from 'rxjs/operators';\r\n\r\nimport { AnalyticsService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ContextState } from '../context/context.state';\r\nimport { SearchState } from '../search/search.state';\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsListenerService {\r\n /**\r\n * Toolbox that holds main tools\r\n */\r\n\r\n constructor(\r\n private analyticsService: AnalyticsService,\r\n private authService: AuthService,\r\n private contextState: ContextState,\r\n private searchState: SearchState,\r\n private toolState: ToolState\r\n ) {}\r\n\r\n listen() {\r\n this.listenUser();\r\n this.listenContext();\r\n this.listenTool();\r\n this.listenSearch();\r\n }\r\n\r\n listenUser() {\r\n this.authService.authenticate$.subscribe(() => {\r\n const tokenDecoded = this.authService.decodeToken() || {};\r\n if (tokenDecoded.user) {\r\n this.authService\r\n .getProfils()\r\n .subscribe(profils =>\r\n this.analyticsService.setUser(tokenDecoded.user, profils.profils)\r\n );\r\n } else {\r\n this.analyticsService.setUser();\r\n }\r\n });\r\n }\r\n\r\n listenContext() {\r\n this.contextState.context$.subscribe(context => {\r\n if (context) {\r\n this.analyticsService.trackEvent('context', 'activateContext', context.id || context.uri);\r\n }\r\n });\r\n }\r\n\r\n listenTool() {\r\n this.toolState.toolbox.activeTool$.pipe(skip(1)).subscribe(tool => {\r\n if (tool) {\r\n this.analyticsService.trackEvent('tool', 'activateTool', tool.name);\r\n }\r\n });\r\n }\r\n\r\n listenSearch() {\r\n this.searchState.searchTerm$.pipe(skip(1)).subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.analyticsService.trackSearch(searchTerm, this.searchState.store.count);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { CommonVectorStyleOptions, SearchResult } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the query module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryState {\r\n /**\r\n * Store that holds the query results\r\n */\r\n public store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n public queryOverlayStyle: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n constructor(private configService: ConfigService) {\r\n const queryOverlayStyle = this.configService.getConfig('queryOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (queryOverlayStyle) {\r\n this.queryOverlayStyle = queryOverlayStyle.base;\r\n this.queryOverlayStyleSelection = queryOverlayStyle.selection;\r\n this.queryOverlayStyleFocus = queryOverlayStyle.focus;\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tools\r\n */\r\n\r\nexport * from './lib/integration.module';\r\nexport * from './lib/about/about.module';\r\nexport * from './lib/analytics/analytics.module';\r\nexport * from './lib/storage/storage.module';\r\nexport * from './lib/context/context.module';\r\nexport * from './lib/catalog/catalog.module';\r\n\r\nexport * from './lib/directions/directions.module';\r\nexport * from './lib/draw/draw.module';\r\nexport * from './lib/workspace/workspace.module';\r\nexport * from './lib/filter/filter.module';\r\nexport * from './lib/import-export/import-export.module';\r\nexport * from './lib/map/map.module';\r\nexport * from './lib/measure/measure.module';\r\nexport * from './lib/print/print.module';\r\nexport * from './lib/search/search.module';\r\nexport * from './lib/tool/tool.module';\r\n\r\nexport * from './lib/about';\r\nexport * from './lib/analytics';\r\nexport * from './lib/context';\r\nexport * from './lib/catalog';\r\nexport * from './lib/directions';\r\nexport * from './lib/draw';\r\nexport * from './lib/workspace';\r\nexport * from './lib/filter';\r\nexport * from './lib/import-export';\r\nexport * from './lib/map';\r\nexport * from './lib/measure';\r\nexport * from './lib/print';\r\nexport * from './lib/search';\r\nexport * from './lib/tool';\r\nexport * from './lib/storage';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgModule","ImportExportType","ImportExportMode","BehaviorSubject","Injectable","ContextEditorToolComponent","i0","ToolComponent","Component","IgoMap","ContextManagerToolComponent","Input","ContextPermissionManagerToolComponent","ContextShareToolComponent","IgoContextModule","CUSTOM_ELEMENTS_SCHEMA","EntityStore","CatalogLibraryToolComponent","take","ChangeDetectionStrategy","CommonModule","IgoCatalogLibraryModule","CatalogBrowserToolComponent","IgoCatalogBrowserModule","Subject","StopsStore","StopsFeatureStore","RoutesFeatureStore","StepFeatureStore","DirectionsToolComponent","StorageScope","IgoDirectionsModule","FeatureStore","DrawingToolComponent","IgoDrawingToolModule","FeatureStoreSelectionStrategy","FeatureMotion","skipWhile","StorageServiceEventEnum","mapExtentStrategyActiveToolTip","noElementSelected","EntityStoreFilterCustomFuncStrategy","EntityStoreFilterSelectionStrategy","map","OgcFilterWidget","Inject","WorkspaceStore","WfsWorkspace","FeatureWorkspace","EditionWorkspace","combineLatest","MatIconModule","MatButtonModule","MatTooltipModule","IgoLanguageModule","ImportExportToolComponent","IgoImportExportModule","IgoContextImportExportModule","MatButtonToggleModule","MatTabsModule","MapDetailsToolComponent","LayerListControlsEnum","sourceCanSearch","MapToolComponent","MapToolsComponent","debounceTime","VectorLayer","ViewChild","MapLegendToolComponent","ReplaySubject","Validators","zoneMtm","zoneUtm","formatScale","Clipboard","computeProjectionsConstraints","olproj","AdvancedMapToolComponent","FormsModule","ReactiveFormsModule","MatDividerModule","MatSelectModule","MatOptionModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","IgoSpinnerModule","MatListModule","IgoLayerModule","IgoMetadataModule","IgoDownloadModule","IgoFilterModule","MatSlideToggleModule","MatMenuModule","MeasurerToolComponent","IgoMeasurerModule","PrintToolComponent","IgoPrintModule","Directive","Self","HostListener","IgoSearchModule","SearchResultsToolComponent","olFormatGeoJSON","getEntityTitle","FlexibleComponent","FEATURE","getCommonVectorStyle","featureToOl","computeOlFeaturesExtent","featuresAreOutOfView","featuresAreTooDeepInView","olFeature","olPoint","featureFromOl","getCommonVectorSelectedStyle","moveToOlFeatures","pointOnFeature","MatBadgeModule","IgoFeatureModule","IgoFlexibleModule","IgoPanelModule","IgoFeatureDetailsModule","IgoCustomHtmlModule","OgcFilterToolComponent","TimeFilterToolComponent","SpatialFilterToolComponent","SpatialFilterItemType","MeasureLengthUnit","takeUntil","SpatialFilterType","tap","forkJoin","olstyle","createOverlayMarkerStyle","toolSlideInOut","trigger","state","style","transition","animate","ActiveTimeFilterToolComponent","ActiveOgcFilterToolComponent","IgoQueryModule","AboutToolComponent","of","IgoInteractiveTourModule","skip"],"mappings":"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"}
|