@igo2/context 1.10.0 → 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.
Files changed (67) hide show
  1. package/bundles/igo2-context.umd.js +2 -2
  2. package/bundles/igo2-context.umd.js.map +1 -1
  3. package/esm2015/lib/context-import-export/context-import-export/context-import-export.component.js +1 -1
  4. package/esm2015/lib/context-import-export/context-import-export.module.js +1 -1
  5. package/esm2015/lib/context-import-export/index.js +1 -1
  6. package/esm2015/lib/context-import-export/shared/context-export.errors.js +1 -1
  7. package/esm2015/lib/context-import-export/shared/context-export.interface.js +1 -1
  8. package/esm2015/lib/context-import-export/shared/context-export.service.js +1 -1
  9. package/esm2015/lib/context-import-export/shared/context-export.utils.js +1 -1
  10. package/esm2015/lib/context-import-export/shared/context-import.errors.js +1 -1
  11. package/esm2015/lib/context-import-export/shared/context-import.service.js +1 -1
  12. package/esm2015/lib/context-import-export/shared/context-import.utils.js +1 -1
  13. package/esm2015/lib/context-import-export/shared/index.js +1 -1
  14. package/esm2015/lib/context-manager/context-edit/context-edit-binding.directive.js +1 -1
  15. package/esm2015/lib/context-manager/context-edit/context-edit.component.js +1 -1
  16. package/esm2015/lib/context-manager/context-edit/index.js +1 -1
  17. package/esm2015/lib/context-manager/context-form/context-form.component.js +1 -1
  18. package/esm2015/lib/context-manager/context-form/index.js +1 -1
  19. package/esm2015/lib/context-manager/context-item/context-item.component.js +1 -1
  20. package/esm2015/lib/context-manager/context-item/index.js +1 -1
  21. package/esm2015/lib/context-manager/context-list/context-list-binding.directive.js +1 -1
  22. package/esm2015/lib/context-manager/context-list/context-list.component.js +1 -1
  23. package/esm2015/lib/context-manager/context-list/context-list.enum.js +1 -1
  24. package/esm2015/lib/context-manager/context-list/index.js +1 -1
  25. package/esm2015/lib/context-manager/context-manager.module.js +1 -1
  26. package/esm2015/lib/context-manager/context-permissions/context-permissions-binding.directive.js +1 -1
  27. package/esm2015/lib/context-manager/context-permissions/context-permissions.component.js +1 -1
  28. package/esm2015/lib/context-manager/context-permissions/index.js +1 -1
  29. package/esm2015/lib/context-manager/index.js +1 -1
  30. package/esm2015/lib/context-manager/shared/context.enum.js +1 -1
  31. package/esm2015/lib/context-manager/shared/context.interface.js +1 -1
  32. package/esm2015/lib/context-manager/shared/context.service.js +1 -1
  33. package/esm2015/lib/context-manager/shared/index.js +1 -1
  34. package/esm2015/lib/context-manager/shared/layer-context.directive.js +1 -1
  35. package/esm2015/lib/context-manager/shared/map-context.directive.js +1 -1
  36. package/esm2015/lib/context-map-button/bookmark-button/bookmark-button.component.js +1 -1
  37. package/esm2015/lib/context-map-button/bookmark-button/bookmark-dialog.component.js +1 -1
  38. package/esm2015/lib/context-map-button/bookmark-button/index.js +1 -1
  39. package/esm2015/lib/context-map-button/context-map-button.module.js +1 -1
  40. package/esm2015/lib/context-map-button/index.js +1 -1
  41. package/esm2015/lib/context-map-button/poi-button/index.js +1 -1
  42. package/esm2015/lib/context-map-button/poi-button/poi-button.component.js +1 -1
  43. package/esm2015/lib/context-map-button/poi-button/poi-dialog.component.js +1 -1
  44. package/esm2015/lib/context-map-button/poi-button/shared/index.js +1 -1
  45. package/esm2015/lib/context-map-button/poi-button/shared/poi.interface.js +1 -1
  46. package/esm2015/lib/context-map-button/poi-button/shared/poi.service.js +1 -1
  47. package/esm2015/lib/context-map-button/user-button/index.js +1 -1
  48. package/esm2015/lib/context-map-button/user-button/user-button.animation.js +1 -1
  49. package/esm2015/lib/context-map-button/user-button/user-button.component.js +1 -1
  50. package/esm2015/lib/context-map-button/user-button/user-dialog.component.js +1 -1
  51. package/esm2015/lib/context.module.js +1 -1
  52. package/esm2015/lib/share-map/index.js +1 -1
  53. package/esm2015/lib/share-map/share-map/share-map-api.component.js +1 -1
  54. package/esm2015/lib/share-map/share-map/share-map-url.component.js +1 -1
  55. package/esm2015/lib/share-map/share-map/share-map.component.js +1 -1
  56. package/esm2015/lib/share-map/share-map.module.js +1 -1
  57. package/esm2015/lib/share-map/shared/index.js +1 -1
  58. package/esm2015/lib/share-map/shared/share-map.service.js +3 -3
  59. package/esm2015/lib/sidenav/index.js +1 -1
  60. package/esm2015/lib/sidenav/sidenav.component.js +1 -1
  61. package/esm2015/lib/sidenav/sidenav.module.js +1 -1
  62. package/esm2015/public_api.js +1 -1
  63. package/fesm2015/igo2-context.js +2 -2
  64. package/fesm2015/igo2-context.js.map +1 -1
  65. package/lib/context-manager/shared/context.interface.d.ts +7 -1
  66. package/ngcc.config.js +3 -3
  67. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-context.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../packages/context/src/lib/context-manager/shared/context.enum.ts","../../../packages/context/src/lib/context-manager/shared/context.service.ts","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts","../../../packages/context/src/lib/context-import-export/context-import-export.module.ts","../../../packages/context/src/lib/context-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.html","../../../packages/context/src/lib/context-manager/context-item/context-item.component.html","../../../packages/context/src/lib/context-manager/context-item/context-item.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.component.html","../../../packages/context/src/lib/context-manager/context-list/context-list.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-form/context-form.component.html","../../../packages/context/src/lib/context-manager/context-form/context-form.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.html","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.html","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions-binding.directive.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.html","../../../packages/context/src/lib/context-map-button/poi-button/shared/poi.service.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.animation.ts","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.ts","../../../packages/context/src/lib/context-map-button/context-map-button.module.ts","../../../packages/context/src/lib/context-manager/context-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.ts","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map.component.html","../../../packages/context/src/lib/share-map/share-map/share-map.component.ts","../../../packages/context/src/lib/share-map/share-map.module.ts","../../../packages/context/src/lib/sidenav/sidenav.component.html","../../../packages/context/src/lib/sidenav/sidenav.component.ts","../../../packages/context/src/lib/sidenav/sidenav.module.ts","../../../packages/context/src/lib/context.module.ts","../../../packages/context/src/public_api.ts","../../../packages/context/src/igo2-context.ts"],"sourcesContent":["/*! *****************************************************************************\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","export class ExportError extends Error {}\n\nexport class ExportInvalidFileError extends ExportError {\n constructor() {\n super('Invalid context');\n Object.setPrototypeOf(this, ExportInvalidFileError.prototype);\n }\n}\n\nexport class ExportNothingToExportError extends ExportError {\n constructor() {\n super('Nothing to export');\n Object.setPrototypeOf(this, ExportNothingToExportError.prototype);\n }\n}\n","import { MessageService, LanguageService } from '@igo2/core';\nimport { ExportNothingToExportError } from './context-export.errors';\n\nexport function handleFileExportError(\n error: Error,\n messageService: MessageService,\n languageService: LanguageService\n ) {\n if (error instanceof ExportNothingToExportError) {\n this.handleNothingToExportError(messageService, languageService);\n return;\n }\n const translate = languageService.translate;\n const title = translate.instant('igo.context.contextImportExport.export.failed.title');\n const message = translate.instant('igo.context.contextImportExport.export.failed.text');\n messageService.error(message, title);\n}\n\nexport function handleFileExportSuccess(\n messageService: MessageService,\n languageService: LanguageService\n ) {\n const translate = languageService.translate;\n const title = translate.instant('igo.context.contextImportExport.export.success.title');\n const message = translate.instant('igo.context.contextImportExport.export.success.text');\n messageService.success(message, title);\n}\n\nexport function handleNothingToExportError(\n messageService: MessageService,\n languageService: LanguageService\n ) {\n const translate = languageService.translate;\n const title = translate.instant('igo.context.contextImportExport.export.nothing.title');\n const message = translate.instant('igo.context.contextImportExport.export.nothing.text');\n messageService.error(message, title);\n}\n","import * as olStyle from 'ol/style';\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\n\nimport {\n FeatureDataSource,\n FeatureDataSourceOptions,\n IgoMap,\n VectorLayer,\n QueryableDataSourceOptions,\n StyleService,\n StyleListService,\n StyleByAttribute,\n ClusterParam,\n ClusterDataSourceOptions,\n ClusterDataSource\n} from '@igo2/geo';\nimport { MessageService, LanguageService } from '@igo2/core';\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\nimport { ContextService } from '../../context-manager/shared/context.service';\nimport OlFeature from 'ol/Feature';\n\nexport function handleFileImportSuccess(\n file: File,\n context: DetailedContext,\n messageService: MessageService,\n languageService: LanguageService,\n contextService: ContextService\n) {\n if (Object.keys(context).length <= 0) {\n handleNothingToImportError(file, messageService, languageService);\n return;\n }\n\n const contextTitle = computeLayerTitleFromFile(file);\n\n addContextToContextList(context, contextTitle, contextService);\n\n const translate = languageService.translate;\n const messageTitle = translate.instant(\n 'igo.context.contextImportExport.import.success.title'\n );\n const message = translate.instant(\n 'igo.context.contextImportExport.import.success.text',\n {\n value: contextTitle\n }\n );\n messageService.success(message, messageTitle);\n}\n\nexport function handleFileImportError(\n file: File,\n error: Error,\n messageService: MessageService,\n languageService: LanguageService,\n sizeMb?: number\n) {\n sizeMb = sizeMb ? sizeMb : 30;\n const errMapping = {\n 'Invalid file': handleInvalidFileImportError,\n 'File is too large': handleSizeFileImportError,\n 'Failed to read file': handleUnreadbleFileImportError\n };\n errMapping[error.message](\n file,\n error,\n messageService,\n languageService,\n sizeMb\n );\n}\n\nexport function handleInvalidFileImportError(\n file: File,\n error: Error,\n messageService: MessageService,\n languageService: LanguageService\n) {\n const translate = languageService.translate;\n const title = translate.instant(\n 'igo.context.contextImportExport.import.invalid.title'\n );\n const message = translate.instant(\n 'igo.context.contextImportExport.import.invalid.text',\n {\n value: file.name,\n mimeType: file.type\n }\n );\n messageService.error(message, title);\n}\n\nexport function handleSizeFileImportError(\n file: File,\n error: Error,\n messageService: MessageService,\n languageService: LanguageService,\n sizeMb: number\n) {\n const translate = languageService.translate;\n const title = translate.instant(\n 'igo.context.contextImportExport.import.tooLarge.title'\n );\n const message = translate.instant(\n 'igo.context.contextImportExport.import.tooLarge.text',\n {\n value: file.name,\n size: sizeMb\n }\n );\n messageService.error(message, title);\n}\n\nexport function handleUnreadbleFileImportError(\n file: File,\n error: Error,\n messageService: MessageService,\n languageService: LanguageService\n) {\n const translate = languageService.translate;\n const title = translate.instant(\n 'igo.context.contextImportExport.import.unreadable.title'\n );\n const message = translate.instant(\n 'igo.context.contextImportExport.import.unreadable.text',\n {\n value: file.name\n }\n );\n messageService.error(message, title);\n}\n\nexport function handleNothingToImportError(\n file: File,\n messageService: MessageService,\n languageService: LanguageService\n) {\n const translate = languageService.translate;\n const title = translate.instant(\n 'igo.context.contextImportExport.import.empty.title'\n );\n const message = translate.instant(\n 'igo.context.contextImportExport.import.empty.text',\n {\n value: file.name\n }\n );\n messageService.error(message, title);\n}\n\nexport function addContextToContextList(\n context: DetailedContext,\n contextTitle: string,\n contextService: ContextService\n) {\n context.title = contextTitle;\n context.imported = true;\n contextService.contexts$.value.ours.unshift(context);\n contextService.contexts$.next(contextService.contexts$.value);\n contextService.importedContext.unshift(context);\n contextService.loadContext(context.uri);\n}\n\nexport function getFileExtension(file: File): string {\n return file.name.split('.').pop().toLowerCase();\n}\n\nexport function computeLayerTitleFromFile(file: File): string {\n return file.name.substr(0, file.name.lastIndexOf('.'));\n}\n\nexport function addImportedFeaturesToMap(\n olFeatures: OlFeature<OlGeometry>[],\n map: IgoMap,\n layerTitle: string\n): VectorLayer {\n const r = Math.floor(Math.random() * 255);\n const g = Math.floor(Math.random() * 255);\n const b = Math.floor(Math.random() * 255);\n const stroke = new olStyle.Stroke({\n color: [r, g, b, 1],\n width: 2\n });\n\n const fill = new olStyle.Fill({\n color: [r, g, b, 0.4]\n });\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\n type: 'vector',\n queryable: true\n };\n const source = new FeatureDataSource(sourceOptions);\n source.ol.addFeatures(olFeatures);\n const layer = new VectorLayer({\n title: layerTitle,\n source,\n style: new olStyle.Style({\n stroke,\n fill,\n image: new olStyle.Circle({\n radius: 5,\n stroke,\n fill\n })\n })\n });\n map.addLayer(layer);\n\n return layer;\n}\n\nexport function addImportedFeaturesStyledToMap(\n olFeatures: OlFeature<OlGeometry>[],\n map: IgoMap,\n layerTitle: string,\n styleListService: StyleListService,\n styleService: StyleService\n): VectorLayer {\n let style;\n let distance: number;\n\n if (\n styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute')\n ) {\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\n layerTitle.toString() + '.styleByAttribute'\n );\n\n style = (feature) => {\n return styleService.createStyleByAttribute(feature, styleByAttribute);\n };\n } else if (\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\n ) {\n const clusterParam: ClusterParam = styleListService.getStyleList(\n layerTitle.toString() + '.clusterParam'\n );\n distance = styleListService.getStyleList(\n layerTitle.toString() + '.distance'\n );\n\n const baseStyle = styleService.createStyle(\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\n );\n\n style = (feature) => {\n return styleService.createClusterStyle(feature, clusterParam, baseStyle);\n };\n } else if (styleListService.getStyleList(layerTitle.toString() + '.style')) {\n style = styleService.createStyle(\n styleListService.getStyleList(layerTitle.toString() + '.style')\n );\n } else {\n style = styleService.createStyle(\n styleListService.getStyleList('default.style')\n );\n }\n let source;\n\n if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {\n const sourceOptions: ClusterDataSourceOptions &\n QueryableDataSourceOptions = {\n distance,\n type: 'cluster',\n queryable: true\n };\n source = new ClusterDataSource(sourceOptions);\n source.ol.source.addFeatures(olFeatures);\n } else {\n const sourceOptions: FeatureDataSourceOptions &\n QueryableDataSourceOptions = {\n type: 'vector',\n queryable: true\n };\n source = new FeatureDataSource(sourceOptions);\n source.ol.addFeatures(olFeatures);\n }\n\n const layer = new VectorLayer({\n title: layerTitle,\n source,\n style\n });\n map.addLayer(layer);\n\n return layer;\n}\n","export class ImportError extends Error {}\n\nexport class ImportInvalidFileError extends ImportError {\n constructor() {\n super('Invalid file');\n Object.setPrototypeOf(this, ImportInvalidFileError.prototype);\n }\n}\n\nexport class ImportUnreadableFileError extends ImportError {\n constructor() {\n super('Failed to read file');\n Object.setPrototypeOf(this, ImportUnreadableFileError.prototype);\n }\n}\n\nexport class ImportNothingToImportError extends ImportError {\n constructor() {\n super('Nothing to import');\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\n }\n}\n\nexport class ImportSizeError extends ImportError {\n constructor() {\n super('File is too large');\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\n }\n}\n\nexport class ImportSRSError extends ImportError {\n constructor() {\n super('Invalid SRS definition');\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\nimport { ConfigService } from '@igo2/core';\n\nimport {\n ImportInvalidFileError,\n ImportUnreadableFileError,\n ImportSizeError\n} from './context-import.errors';\nimport { getFileExtension } from './context-import.utils';\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextImportService {\n static allowedMimeTypes = ['application/json'];\n\n static allowedExtensions = 'json';\n\n private clientSideFileSizeMax: number;\n\n constructor(private config: ConfigService) {\n const configFileSizeMb = this.config.getConfig(\n 'importExport.clientSideFileSizeMaxMb'\n );\n this.clientSideFileSizeMax =\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\n }\n\n import(file: File): Observable<DetailedContext> {\n return this.importAsync(file);\n }\n\n private getFileImporter(\n file: File\n ): (\n file: File,\n observer: Observer<DetailedContext>,\n projectionIn: string,\n projectionOut: string\n ) => void {\n const extension = getFileExtension(file);\n const mimeType = file.type;\n const allowedMimeTypes = [...ContextImportService.allowedMimeTypes];\n const allowedExtensions = ContextImportService.allowedExtensions;\n\n if (\n allowedMimeTypes.indexOf(mimeType) < 0 &&\n allowedExtensions.indexOf(extension) < 0\n ) {\n return undefined;\n } else if (\n mimeType === 'application/json' ||\n extension === ContextImportService.allowedExtensions\n ) {\n return this.importFile;\n }\n return undefined;\n }\n\n private importAsync(file: File): Observable<DetailedContext> {\n const doImport = (observer: Observer<DetailedContext>) => {\n if (file.size >= this.clientSideFileSizeMax) {\n observer.error(new ImportSizeError());\n return;\n }\n const importer = this.getFileImporter(file);\n if (importer === undefined) {\n observer.error(new ImportInvalidFileError());\n return;\n }\n\n importer.call(this, file, observer);\n };\n\n return new Observable(doImport);\n }\n\n private importFile(file: File, observer: Observer<DetailedContext>) {\n const reader = new FileReader();\n\n reader.onload = (event: any) => {\n try {\n const context = this.parseContextFromFile(file, event.target.result);\n observer.next(context);\n } catch (e) {\n observer.error(new ImportUnreadableFileError());\n }\n\n observer.complete();\n };\n\n reader.onerror = (evt) => {\n observer.error(new ImportUnreadableFileError());\n };\n\n reader.readAsText(file, 'UTF-8');\n }\n\n private parseContextFromFile(file: File, data: string): DetailedContext {\n const context: DetailedContext = JSON.parse(data);\n return context;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { downloadContent } from '@igo2/utils';\n\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\nimport { ExportNothingToExportError } from './context-export.errors';\nimport { Observer, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextExportService {\n\n export(res: DetailedContext): Observable<void> {\n return this.exportAsync(res);\n }\n\n protected exportAsync(res: DetailedContext): Observable<void> {\n const doExport = (observer: Observer<void>) => {\n const nothingToExport = this.nothingToExport(res);\n if (nothingToExport === true) {\n observer.error(new ExportNothingToExportError());\n return;\n }\n const contextJSON = JSON.stringify(res);\n downloadContent(contextJSON, 'text/json;charset=utf-8', `${res.uri}.json`);\n observer.complete();\n };\n return new Observable(doExport);\n }\n\n protected nothingToExport(res: DetailedContext): boolean {\n if (res.map === undefined) {\n return true;\n }\n return false;\n }\n}\n","export enum TypePermission {\n null,\n read,\n write\n}\n\nexport enum Scope {\n public,\n protected,\n private\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\n\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport {\n map,\n tap,\n catchError,\n debounceTime,\n mergeMap,\n first,\n skip\n} from 'rxjs/operators';\n\nimport olPoint from 'ol/geom/Point';\nimport GeoJSON from 'ol/format/GeoJSON';\nimport Cluster from 'ol/source/Cluster';\nimport olVectorSource from 'ol/source/Vector';\n\nimport { Tool } from '@igo2/common';\nimport { uuid, ObjectUtils } from '@igo2/utils';\nimport {\n ConfigService,\n RouteService,\n Message,\n MessageService,\n LanguageService\n} from '@igo2/core';\n\nimport { AuthService } from '@igo2/auth';\nimport type { IgoMap, Layer } from '@igo2/geo';\n\nimport { TypePermission } from './context.enum';\nimport {\n ContextsList,\n ContextServiceOptions,\n Context,\n DetailedContext,\n ContextMapView,\n ContextPermission,\n ContextProfils\n} from './context.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextService {\n public context$ = new BehaviorSubject<DetailedContext>(undefined);\n public contexts$ = new BehaviorSubject<ContextsList>({ ours: [] });\n public defaultContextId$ = new BehaviorSubject<string>(undefined);\n public editedContext$ = new BehaviorSubject<DetailedContext>(undefined);\n public importedContext: Array<DetailedContext> = [];\n public toolsChanged$ = new Subject<DetailedContext>();\n private mapViewFromRoute: ContextMapView = {};\n private options: ContextServiceOptions;\n private baseUrl: string;\n\n // Until the ContextService is completely refactored, this is needed\n // to track the current tools\n private tools: Tool[];\n private toolbar: string[];\n\n get defaultContextUri(): string {\n return this._defaultContextUri || this.options.defaultContextUri;\n }\n set defaultContextUri(uri: string) {\n this._defaultContextUri = uri;\n }\n private _defaultContextUri: string;\n\n constructor(\n private http: HttpClient,\n private authService: AuthService,\n private languageService: LanguageService,\n private config: ConfigService,\n private messageService: MessageService,\n @Optional() private route: RouteService\n ) {\n this.options = Object.assign(\n {\n basePath: 'contexts',\n contextListFile: '_contexts.json',\n defaultContextUri: '_default'\n },\n this.config.getConfig('context')\n );\n\n this.baseUrl = this.options.url;\n\n this.readParamsFromRoute();\n\n if (this.authService.hasAuthService) {\n this.authService.logged$.subscribe((logged) => {\n if (logged) {\n this.contexts$.pipe(skip(1), first()).subscribe((c) => {\n this.handleContextsChange();\n });\n this.loadContexts();\n }\n });\n } else {\n this.loadContexts();\n this.handleContextsChange(false);\n }\n }\n\n get(permissions?: string[], hidden?: boolean): Observable<ContextsList> {\n let url = this.baseUrl + '/contexts';\n if (permissions && this.authService.authenticated) {\n url += '?permission=' + permissions.join();\n if (hidden) {\n url += '&hidden=true';\n }\n }\n return this.http.get<ContextsList>(url);\n }\n\n getById(id: string): Observable<Context> {\n const url = this.baseUrl + '/contexts/' + id;\n return this.http.get<Context>(url);\n }\n\n getDetails(id: string): Observable<DetailedContext> {\n const url = `${this.baseUrl}/contexts/${id}/details`;\n return this.http.get<DetailedContext>(url).pipe(\n catchError((res) => {\n this.handleError(res, id);\n throw res;\n })\n );\n }\n\n getDefault(): Observable<DetailedContext> {\n const url = this.baseUrl + '/contexts/default';\n return this.http.get<DetailedContext>(url).pipe(\n tap((context) => {\n this.defaultContextId$.next(context.id);\n })\n );\n }\n\n getProfilByUser(): Observable<ContextProfils[]> {\n if (this.baseUrl) {\n const url = this.baseUrl + '/profils?';\n return this.http.get<ContextProfils[]>(url);\n }\n return of([]);\n }\n\n setDefault(id: string): Observable<any> {\n const url = this.baseUrl + '/contexts/default';\n return this.http.post(url, { defaultContextId: id });\n }\n\n hideContext(id: string) {\n const url = this.baseUrl + '/contexts/' + id + '/hide';\n return this.http.post(url, {});\n }\n\n showContext(id: string) {\n const url = this.baseUrl + '/contexts/' + id + '/show';\n return this.http.post(url, {});\n }\n\n delete(id: string, imported = false): Observable<void> {\n const contexts: ContextsList = { ours: [] };\n Object.keys(this.contexts$.value).forEach(\n (key) =>\n (contexts[key] = this.contexts$.value[key].filter((c) => c.id !== id))\n );\n\n if (imported) {\n this.importedContext = this.importedContext.filter((c) => c.id !== id);\n return of(this.contexts$.next(contexts));\n }\n\n const url = this.baseUrl + '/contexts/' + id;\n return this.http.delete<void>(url).pipe(\n tap((res) => {\n this.contexts$.next(contexts);\n })\n );\n }\n\n create(context: DetailedContext): Observable<Context> {\n const url = this.baseUrl + '/contexts';\n return this.http.post<Context>(url, context).pipe(\n map((contextCreated) => {\n if (this.authService.authenticated) {\n contextCreated.permission = TypePermission[TypePermission.write];\n } else {\n contextCreated.permission = TypePermission[TypePermission.read];\n }\n this.contexts$.value.ours.unshift(contextCreated);\n this.contexts$.next(this.contexts$.value);\n return contextCreated;\n })\n );\n }\n\n clone(id: string, properties = {}): Observable<Context> {\n const url = this.baseUrl + '/contexts/' + id + '/clone';\n return this.http.post<Context>(url, properties).pipe(\n map((contextCloned) => {\n contextCloned.permission = TypePermission[TypePermission.write];\n this.contexts$.value.ours.unshift(contextCloned);\n this.contexts$.next(this.contexts$.value);\n return contextCloned;\n })\n );\n }\n\n update(id: string, context: Context): Observable<Context> {\n const url = this.baseUrl + '/contexts/' + id;\n return this.http.patch<Context>(url, context);\n }\n\n // =================================================================\n\n addToolAssociation(contextId: string, toolId: string): Observable<void> {\n const url = `${this.baseUrl}/contexts/${contextId}/tools`;\n const association = {\n toolId\n };\n return this.http.post<void>(url, association);\n }\n\n deleteToolAssociation(contextId: string, toolId: string): Observable<any> {\n const url = `${this.baseUrl}/contexts/${contextId}/tools/${toolId}`;\n return this.http.delete(url);\n }\n\n getPermissions(id: string): Observable<ContextPermission[]> {\n const url = this.baseUrl + '/contexts/' + id + '/permissions';\n return this.http.get<ContextPermission[]>(url);\n }\n\n addPermissionAssociation(\n contextId: string,\n profil: string,\n type: TypePermission\n ): Observable<ContextPermission[]> {\n const url = `${this.baseUrl}/contexts/${contextId}/permissions`;\n const association = {\n profil,\n typePermission: type\n };\n\n return this.http.post<ContextPermission[]>(url, association).pipe(\n catchError((res) => {\n this.handleError(res, undefined, true);\n throw [res]; // TODO Not sure about this.\n })\n );\n }\n\n deletePermissionAssociation(\n contextId: string,\n permissionId: string\n ): Observable<void> {\n const url = `${this.baseUrl}/contexts/${contextId}/permissions/${permissionId}`;\n return this.http.delete<void>(url);\n }\n\n // ======================================================================\n\n getLocalContexts(): Observable<ContextsList> {\n const url = this.getPath(this.options.contextListFile);\n return this.http.get<ContextsList>(url).pipe(\n map((res: any) => {\n return { ours: res };\n })\n );\n }\n\n getLocalContext(uri: string): Observable<DetailedContext> {\n const url = this.getPath(`${uri}.json`);\n return this.http.get<DetailedContext>(url).pipe(\n mergeMap((res) => {\n if (!res.base) {\n return of(res);\n }\n const urlBase = this.getPath(`${res.base}.json`);\n return this.http.get<DetailedContext>(urlBase).pipe(\n map((resBase: DetailedContext) => {\n const resMerge = res;\n resMerge.map = ObjectUtils.mergeDeep(resBase.map, res.map);\n resMerge.layers = (resBase.layers || [])\n .concat(res.layers || [])\n .reverse()\n .filter(\n (l, index, self) =>\n !l.id || self.findIndex((l2) => l2.id === l.id) === index\n )\n .reverse();\n resMerge.toolbar = res.toolbar || resBase.toolbar;\n resMerge.message = res.message || resBase.message;\n resMerge.messages = res.messages || resBase.messages;\n resMerge.tools = (res.tools || [])\n .concat(resBase.tools || [])\n .filter(\n (t, index, self) =>\n self.findIndex((t2) => t2.name === t.name) === index\n );\n return resMerge;\n }),\n catchError((err) => {\n this.handleError(err, uri);\n throw err;\n })\n );\n }),\n catchError((err2) => {\n this.handleError(err2, uri);\n throw err2;\n })\n );\n }\n\n loadContexts(permissions?: string[], hidden?: boolean) {\n let request;\n if (this.baseUrl) {\n request = this.get(permissions, hidden);\n } else {\n request = this.getLocalContexts();\n }\n request.subscribe((contexts) => {\n contexts.ours = this.importedContext.concat(contexts.ours);\n this.contexts$.next(contexts);\n });\n }\n\n loadDefaultContext() {\n const loadFct = (direct = false) => {\n if (!direct && this.baseUrl && this.authService.authenticated) {\n this.getDefault().subscribe(\n (_context: DetailedContext) => {\n this.defaultContextUri = _context.uri;\n this.addContextToList(_context);\n this.setContext(_context);\n },\n () => {\n this.defaultContextId$.next(undefined);\n this.loadContext(this.defaultContextUri);\n }\n );\n } else {\n this.loadContext(this.defaultContextUri);\n }\n };\n\n if (this.route && this.route.options.contextKey) {\n this.route.queryParams.pipe(debounceTime(100)).subscribe((params) => {\n const contextParam = params[this.route.options.contextKey as string];\n let direct = false;\n if (contextParam) {\n this.defaultContextUri = contextParam;\n direct = true;\n }\n loadFct(direct);\n });\n } else {\n loadFct();\n }\n }\n\n loadContext(uri: string) {\n const context = this.context$.value;\n\n if (context && context.uri === uri) {\n return;\n }\n\n this.getContextByUri(uri)\n .pipe(first())\n .subscribe(\n (_context: DetailedContext) => {\n this.addContextToList(_context);\n this.setContext(_context);\n },\n (err) => {\n if (uri !== this.options.defaultContextUri) {\n this.loadContext(this.options.defaultContextUri);\n }\n }\n );\n }\n\n setContext(context: DetailedContext) {\n this.handleContextMessage(context);\n const currentContext = this.context$.value;\n if (currentContext && context && context.id === currentContext.id) {\n if (context.map.view.keepCurrentView === undefined) {\n context.map.view.keepCurrentView = true;\n }\n this.context$.next(context);\n return;\n }\n\n if (!context.map) {\n context.map = { view: {} };\n }\n\n Object.assign(context.map.view, this.mapViewFromRoute);\n\n this.context$.next(context);\n }\n\n loadEditedContext(uri: string) {\n this.getContextByUri(uri).subscribe((_context: DetailedContext) => {\n this.setEditedContext(_context);\n });\n }\n\n setEditedContext(context: DetailedContext) {\n this.editedContext$.next(context);\n }\n\n getContextFromMap(igoMap: IgoMap, empty?: boolean): DetailedContext {\n const view = igoMap.ol.getView();\n const proj = view.getProjection().getCode();\n const center: any = new olPoint(view.getCenter()).transform(\n proj,\n 'EPSG:4326'\n );\n\n const context = {\n uri: uuid(),\n title: '',\n scope: 'private',\n map: {\n view: {\n center: center.getCoordinates(),\n zoom: view.getZoom(),\n projection: proj,\n maxZoomOnExtent: igoMap.viewController.maxZoomOnExtent\n }\n },\n layers: [],\n tools: []\n };\n\n let layers = [];\n if (empty === true) {\n layers = igoMap.layers$\n .getValue()\n .filter(\n (lay) =>\n lay.baseLayer === true ||\n lay.options.id === 'searchPointerSummaryId'\n )\n .sort((a, b) => a.zIndex - b.zIndex);\n } else {\n layers = igoMap.layers$.getValue().filter(lay => !lay.id.includes('WfsWorkspaceTableDest')).sort((a, b) => a.zIndex - b.zIndex);\n }\n\n let i = 0;\n for (const l of layers) {\n const layer: any = l;\n const opts = {\n id: layer.options.id ? String(layer.options.id) : undefined,\n layerOptions: {\n title: layer.options.title,\n zIndex: ++i,\n visible: layer.visible\n },\n sourceOptions: {\n type: layer.dataSource.options.type,\n params: layer.dataSource.options.params,\n url: layer.dataSource.options.url,\n queryable: layer.queryable\n }\n };\n if (opts.sourceOptions.type) {\n context.layers.push(opts);\n }\n }\n\n context.tools = this.tools.map((tool) => {\n return { id: String(tool.id), global: tool.global };\n });\n\n return context;\n }\n\n getContextFromLayers(\n igoMap: IgoMap,\n layers: Layer[],\n name: string\n ): DetailedContext {\n const currentContext = this.context$.getValue();\n const view = igoMap.ol.getView();\n const proj = view.getProjection().getCode();\n const center: any = new olPoint(view.getCenter()).transform(\n proj,\n 'EPSG:4326'\n );\n\n const context = {\n uri: name,\n title: name,\n map: {\n view: {\n center: center.getCoordinates(),\n zoom: view.getZoom(),\n projection: proj\n }\n },\n layers: [],\n toolbar: [],\n tools: [],\n extraFeatures: []\n };\n\n const currentLayers = igoMap.layers$.getValue();\n context.layers = currentLayers\n .filter((l) => l.baseLayer)\n .map((l) => {\n return {\n baseLayer: true,\n sourceOptions: l.options.sourceOptions,\n title: l.options.title,\n visible: l.visible\n };\n });\n\n layers.forEach((layer) => {\n const layerFound = currentContext.layers.find(\n (contextLayer) =>\n layer.id === contextLayer.source.id && !contextLayer.baseLayer\n );\n\n if (layerFound) {\n let layerStyle = layerFound[`style`];\n if (layerFound[`styleByAttribute`]) {\n layerStyle = undefined;\n } else if (layerFound[`clusterBaseStyle`]) {\n layerStyle = undefined;\n delete layerFound.sourceOptions[`source`];\n delete layerFound.sourceOptions[`format`];\n }\n const opts = {\n baseLayer: layerFound.baseLayer,\n title: layer.options.title,\n zIndex: layer.zIndex,\n styleByAttribute: layerFound[`styleByAttribute`],\n clusterBaseStyle: layerFound[`clusterBaseStyle`],\n style: layerStyle,\n clusterParam: layerFound[`clusterParam`],\n visible: layer.visible,\n opacity: layer.opacity,\n sourceOptions: layerFound.sourceOptions\n };\n context.layers.push(opts);\n } else {\n if (!(layer.ol.getSource() instanceof olVectorSource)) {\n const catalogLayer = layer.options;\n catalogLayer.zIndex = layer.zIndex;\n delete catalogLayer.source;\n context.layers.push(catalogLayer);\n } else {\n let features;\n const writer = new GeoJSON();\n if (layer.ol.getSource() instanceof Cluster) {\n const clusterSource = layer.ol.getSource() as Cluster;\n features = writer.writeFeatures(\n clusterSource.getFeatures(),\n {\n dataProjection: 'EPSG:4326',\n featureProjection: 'EPSG:3857'\n }\n );\n } else {\n const source = layer.ol.getSource() as any;\n features = writer.writeFeatures(\n source.getFeatures(),\n {\n dataProjection: 'EPSG:4326',\n featureProjection: 'EPSG:3857'\n }\n );\n }\n features = JSON.parse(features);\n features.name = layer.options.title;\n context.extraFeatures.push(features);\n }\n }\n });\n\n context.toolbar = this.toolbar;\n context.tools = this.tools;\n\n return context;\n }\n\n setTools(tools: Tool[]) {\n this.tools = tools;\n }\n\n setToolbar(toolbar: string[]) {\n this.toolbar = toolbar;\n }\n\n private handleContextMessage(context: DetailedContext) {\n if (this.context$.value && context.uri && this.context$.value.uri !== context.uri) {\n this.messageService.removeAllAreNotError();\n }\n\n context.messages = context.messages ? context.messages : [];\n context.messages.push(context.message);\n context.messages.map(message => {\n if (message) {\n message.title = message.title\n ? this.languageService.translate.instant(message.title)\n : undefined;\n message.text = message.text\n ? this.languageService.translate.instant(message.text)\n : undefined;\n this.messageService.message(message as Message);\n }\n });\n }\n\n private getContextByUri(uri: string): Observable<DetailedContext> {\n if (this.baseUrl) {\n let contextToLoad;\n for (const key of Object.keys(this.contexts$.value)) {\n contextToLoad = this.contexts$.value[key].find((c) => {\n return c.uri === uri;\n });\n if (contextToLoad) {\n break;\n }\n }\n\n if (contextToLoad && contextToLoad.imported) {\n return of(contextToLoad);\n }\n\n // TODO : use always id or uri\n const id = contextToLoad ? contextToLoad.id : uri;\n return this.getDetails(id);\n }\n\n const importedContext = this.contexts$.value.ours.find((currentContext) => {\n return currentContext.uri === uri && currentContext.imported === true;\n });\n\n if (importedContext) {\n return of(importedContext);\n } else {\n return this.getLocalContext(uri);\n }\n }\n\n getContextLayers(igoMap: IgoMap) {\n const layers: Layer[] = [];\n const mapLayers = igoMap.layers$.getValue();\n mapLayers.forEach((layer) => {\n if (!layer.baseLayer && layer.options.id !== 'searchPointerSummaryId') {\n layers.push(layer);\n }\n });\n return layers;\n }\n\n private readParamsFromRoute() {\n if (!this.route) {\n return;\n }\n\n this.route.queryParams.subscribe((params) => {\n const centerKey = this.route.options.centerKey;\n if (centerKey && params[centerKey as string]) {\n const centerParams = params[centerKey as string];\n this.mapViewFromRoute.center = centerParams.split(',').map(Number);\n this.mapViewFromRoute.geolocate = false;\n }\n\n const projectionKey = this.route.options.projectionKey;\n if (projectionKey && params[projectionKey as string]) {\n const projectionParam = params[projectionKey as string];\n this.mapViewFromRoute.projection = projectionParam;\n }\n\n const zoomKey = this.route.options.zoomKey;\n if (zoomKey && params[zoomKey as string]) {\n const zoomParam = params[zoomKey as string];\n this.mapViewFromRoute.zoom = Number(zoomParam);\n }\n });\n }\n\n private getPath(file: string) {\n const basePath = this.options.basePath.replace(/\\/$/, '');\n\n return `${basePath}/${file}`;\n }\n\n private handleError(\n error: HttpErrorResponse,\n uri: string,\n permissionError?: boolean\n ) {\n const context = this.contexts$.value.ours.find((obj) => obj.uri === uri);\n const titleContext = context ? context.title : uri;\n error.error.title = this.languageService.translate.instant(\n 'igo.context.contextManager.invalid.title'\n );\n\n error.error.message = this.languageService.translate.instant(\n 'igo.context.contextManager.invalid.text',\n { value: titleContext }\n );\n\n error.error.toDisplay = true;\n\n if (permissionError) {\n error.error.title = this.languageService.translate.instant(\n 'igo.context.contextManager.errors.addPermissionTitle'\n );\n error.error.message = this.languageService.translate.instant(\n 'igo.context.contextManager.errors.addPermission'\n );\n }\n this.messageService.error(error.error.message, error.error.title);\n }\n\n private handleContextsChange(\n keepCurrentContext = true\n ) {\n const context = this.context$.value;\n const editedContext = this.editedContext$.value;\n if (!context || context.uri === this.options.defaultContextUri) {\n keepCurrentContext = false;\n }\n if (!keepCurrentContext || !this.findContext(context)) {\n this.defaultContextUri = undefined;\n this.loadDefaultContext();\n } else {\n this.getContextByUri(context.uri)\n .pipe(first())\n .subscribe(\n (newContext: DetailedContext) => {\n this.toolsChanged$.next(newContext);\n }\n );\n\n if (this.baseUrl && this.authService.authenticated) {\n this.getDefault().subscribe();\n }\n }\n const editedFound = this.findContext(editedContext);\n if (!editedFound || editedFound.permission !== 'write') {\n this.setEditedContext(undefined);\n }\n }\n\n private addContextToList(context: Context) {\n const contextFound = this.findContext(context);\n if (!contextFound) {\n const contextSimplifie = {\n id: context.id,\n uri: context.uri,\n title: context.title,\n scope: context.scope,\n permission: TypePermission[TypePermission.read]\n };\n\n if (this.contexts$.value && this.contexts$.value.public) {\n this.contexts$.value.public.push(contextSimplifie);\n this.contexts$.next(this.contexts$.value);\n }\n }\n }\n\n private findContext(context: Context) {\n if (!context) {\n return false;\n }\n\n const contexts = this.contexts$.value;\n let found;\n for (const key of Object.keys(contexts)) {\n const value = contexts[key];\n found = value.find(\n (c) =>\n (context.id && c.id === context.id) ||\n (context.uri && c.uri === context.uri)\n );\n if (found) {\n break;\n }\n }\n\n return found;\n }\n}\n","<div class=\"import-export-toggle mat-typography\">\n <mat-button-toggle-group\n [value]=\"activeImportExport\"\n (change)=\"onImportExportChange($event)\">\n <mat-button-toggle [value]=\"'import'\">\n {{'igo.geo.importExportForm.importTabTitle' | translate}}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{'igo.geo.importExportForm.exportTabTitle' | translate}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n<div *ngIf=\"activeImportExport === 'import'\">\n <form class=\"igo-form\">\n <div class=\"igo-form-button-group\">\n <button mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\n {{'igo.geo.importExportForm.importButton' | translate}}\n </button>\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\n <input\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($event.target.files)\">\n </div>\n </form>\n <section class=\"mat-typography\">\n <h4>{{'igo.geo.importExportForm.importClarifications' | translate}}</h4>\n <ul>\n <li>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\n </ul>\n </section>\n</div>\n\n\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</mat-label>\n <input formControlName=\"name\" matInput [value]=\"\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\">\n {{'igo.geo.importExportForm.exportButton' | translate}}\n </button>\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\n </div>\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { MessageService, LanguageService, ConfigService } from '@igo2/core';\nimport { Layer, VectorLayer } from '@igo2/geo';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { handleFileExportError } from '../shared/context-export.utils';\nimport {\n handleFileImportSuccess,\n handleFileImportError\n} from '../shared/context-import.utils';\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\nimport { ContextService } from '../../context-manager/shared/context.service';\nimport { ContextImportService } from '../shared/context-import.service';\nimport { ContextExportService } from '../shared/context-export.service';\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\n\n@Component({\n selector: 'igo-context-import-export',\n templateUrl: './context-import-export.component.html',\n styleUrls: ['./context-import-export.component.scss']\n})\nexport class ContextImportExportComponent implements OnInit {\n public form: FormGroup;\n public layers: VectorLayer[];\n public inputProj: string = 'EPSG:4326';\n public loading$ = new BehaviorSubject(false);\n public forceNaming = false;\n public layerList: Layer[];\n public userControlledLayerList: Layer[];\n public res: DetailedContext;\n private clientSideFileSizeMax: number;\n public fileSizeMb: number;\n public activeImportExport: string = 'import';\n\n @Input() map: IgoMap;\n\n constructor(\n private contextImportService: ContextImportService,\n private contextExportService: ContextExportService,\n private languageService: LanguageService,\n private messageService: MessageService,\n private formBuilder: FormBuilder,\n private config: ConfigService,\n private contextService: ContextService\n ) {\n this.buildForm();\n }\n\n ngOnInit() {\n const configFileSizeMb = this.config.getConfig(\n 'importExport.clientSideFileSizeMaxMb'\n );\n this.clientSideFileSizeMax =\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\n this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);\n this.layerList = this.contextService.getContextLayers(this.map);\n this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);\n }\n\n importFiles(files: File[]) {\n this.loading$.next(true);\n for (const file of files) {\n this.contextImportService.import(file).pipe(take(1)).subscribe(\n (context: DetailedContext) => this.onFileImportSuccess(file, context),\n (error: Error) => this.onFileImportError(file, error),\n () => {\n this.loading$.next(false);\n }\n );\n }\n }\n\n handleExportFormSubmit(contextOptions) {\n this.loading$.next(true);\n this.res = this.contextService.getContextFromLayers(\n this.map,\n contextOptions.layers,\n contextOptions.name\n );\n this.res.imported = true;\n this.contextExportService.export(this.res).pipe(take(1)).subscribe(\n () => {},\n (error: Error) => this.onFileExportError(error),\n () => {\n this.onFileExportSuccess();\n this.loading$.next(false);\n }\n );\n }\n\n private buildForm() {\n this.form = this.formBuilder.group({\n layers: ['', [Validators.required]],\n name: ['', [Validators.required]]\n });\n }\n\n private onFileImportSuccess(file: File, context: DetailedContext) {\n handleFileImportSuccess(\n file,\n context,\n this.messageService,\n this.languageService,\n this.contextService\n );\n }\n\n private onFileImportError(file: File, error: Error) {\n this.loading$.next(false);\n handleFileImportError(\n file,\n error,\n this.messageService,\n this.languageService,\n this.fileSizeMb\n );\n }\n\n private onFileExportError(error: Error) {\n this.loading$.next(false);\n handleFileExportError(error, this.messageService, this.languageService);\n }\n\n private onFileExportSuccess() {\n handleFileExportSuccess(this.messageService, this.languageService);\n }\n\n selectAll(e) {\n if (e._selected) {\n this.form.controls.layers.setValue(this.userControlledLayerList);\n e._selected = true;\n }\n if (e._selected === false) {\n this.form.controls.layers.setValue([]);\n }\n }\n\n onImportExportChange(event) {\n this.activeImportExport = event.value;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\nimport { IgoSpinnerModule } from '@igo2/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatDividerModule,\n MatTabsModule,\n MatSelectModule,\n MatOptionModule,\n MatFormFieldModule,\n MatInputModule,\n MatCheckboxModule,\n IgoLanguageModule,\n IgoSpinnerModule,\n MatTooltipModule,\n ],\n exports: [\n ContextImportExportComponent\n ],\n declarations: [\n ContextImportExportComponent\n ]\n})\nexport class IgoContextImportExportModule {\n static forRoot(): ModuleWithProviders<IgoContextImportExportModule> {\n return {\n ngModule: IgoContextImportExportModule\n };\n }\n}\n","import { Directive, OnInit, OnDestroy } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { MapViewOptions, MapBrowserComponent, MapControlsOptions, MapScaleLineOptions } from '@igo2/geo';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { ContextService } from './context.service';\nimport { DetailedContext, ContextMapView } from './context.interface';\nimport { MediaService } from '@igo2/core';\n\n@Directive({\n selector: '[igoMapContext]'\n})\nexport class MapContextDirective implements OnInit, OnDestroy {\n private component: MapBrowserComponent;\n private context$$: Subscription;\n\n get map(): IgoMap {\n return this.component.map;\n }\n\n constructor(\n component: MapBrowserComponent,\n private contextService: ContextService,\n private mediaService: MediaService\n ) {\n this.component = component;\n }\n\n ngOnInit() {\n this.context$$ = this.contextService.context$\n .pipe(filter(context => context !== undefined))\n .subscribe(context => this.handleContextChange(context));\n }\n\n ngOnDestroy() {\n this.context$$.unsubscribe();\n }\n\n private handleContextChange(context: DetailedContext) {\n if (context.map === undefined) {\n return;\n }\n\n // This creates a new ol.Map when the context changes. Doing that\n // allows the print tool to work properly even when the map's canvas\n // has been tainted (CORS) with the layers of another context. This could\n // have some side effects such as unbinding all listeners on the first map.\n // A better solution would be to create a new map (preview) before\n // printing and avoid the tainted canvas issue. This will come later so\n // this snippet of code is kept here in case it takes too long becomes\n // an issue\n\n // const target = this.component.map.ol.getTarget();\n // this.component.map.ol.setTarget(undefined);\n // this.component.map.init();\n // this.component.map.ol.setTarget(target);\n\n const viewContext: ContextMapView = context.map.view;\n if (!this.component.view || viewContext.keepCurrentView !== true) {\n this.component.view = viewContext as MapViewOptions;\n }\n\n const controlsContext: MapControlsOptions = context.map.controls;\n if (!this.component.controls && controlsContext) {\n if (this.mediaService.isMobile()) {\n if (typeof(controlsContext.scaleLine) !== 'boolean') {\n const scaleLineOption = controlsContext.scaleLine as MapScaleLineOptions;\n if (!scaleLineOption.minWidth) {\n scaleLineOption.minWidth = Math.min(64, scaleLineOption.minWidth);\n controlsContext.scaleLine = scaleLineOption;\n }\n }\n }\n this.component.controls = controlsContext;\n }\n }\n}\n","import { Directive, OnInit, OnDestroy, Optional, Input } from '@angular/core';\n\nimport { Subscription, merge } from 'rxjs';\nimport { buffer, debounceTime, filter } from 'rxjs/operators';\n\nimport { RouteService, ConfigService } from '@igo2/core';\nimport {\n MapBrowserComponent,\n Layer,\n LayerService,\n LayerOptions,\n StyleListService,\n StyleService\n} from '@igo2/geo';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { ContextService } from './context.service';\nimport { DetailedContext } from './context.interface';\nimport {\n addImportedFeaturesToMap,\n addImportedFeaturesStyledToMap\n} from '../../context-import-export/shared/context-import.utils';\nimport GeoJSON from 'ol/format/GeoJSON';\n\n@Directive({\n selector: '[igoLayerContext]'\n})\nexport class LayerContextDirective implements OnInit, OnDestroy {\n private context$$: Subscription;\n private queryParams: any;\n\n private contextLayers: Layer[] = [];\n\n @Input() removeLayersOnContextChange: boolean = true;\n\n get map(): IgoMap {\n return this.component.map;\n }\n\n constructor(\n private component: MapBrowserComponent,\n private contextService: ContextService,\n private layerService: LayerService,\n private configService: ConfigService,\n private styleListService: StyleListService,\n private styleService: StyleService,\n @Optional() private route: RouteService\n ) {}\n\n ngOnInit() {\n this.context$$ = this.contextService.context$\n .pipe(filter((context) => context !== undefined))\n .subscribe((context) => this.handleContextChange(context));\n\n if (\n this.route &&\n this.route.options.visibleOnLayersKey &&\n this.route.options.visibleOffLayersKey &&\n this.route.options.contextKey\n ) {\n const queryParams$$ = this.route.queryParams.subscribe((params) => {\n if (Object.keys(params).length > 0) {\n this.queryParams = params;\n queryParams$$.unsubscribe();\n }\n });\n }\n }\n\n ngOnDestroy() {\n this.context$$.unsubscribe();\n }\n\n private handleContextChange(context: DetailedContext) {\n if (context.layers === undefined) {\n return;\n }\n if (this.removeLayersOnContextChange === true) {\n this.map.removeAllLayers();\n } else {\n this.map.removeLayers(this.contextLayers);\n }\n this.contextLayers = [];\n\n const layersAndIndex$ = merge(\n ...context.layers.map((layerOptions: LayerOptions, index: number) => {\n return this.layerService.createAsyncLayer(layerOptions, context.uri);\n })\n );\n\n layersAndIndex$\n .pipe(buffer(layersAndIndex$.pipe(debounceTime(500))))\n .subscribe((layers: Layer[]) => {\n layers = layers\n .filter((layer: Layer) => layer !== undefined)\n .map((layer) => {\n layer.visible = this.computeLayerVisibilityFromUrl(layer);\n layer.zIndex = layer.zIndex;\n\n return layer;\n });\n\n this.contextLayers.concat(layers);\n this.map.addLayers(layers);\n\n if (context.extraFeatures) {\n context.extraFeatures.forEach((featureCollection) => {\n const format = new GeoJSON();\n const title = featureCollection.name;\n featureCollection = JSON.stringify(featureCollection);\n featureCollection = format.readFeatures(featureCollection, {\n dataProjection: 'EPSG:4326',\n featureProjection: 'EPSG:3857'\n });\n if (!this.configService.getConfig('importWithStyle')) {\n addImportedFeaturesToMap(featureCollection, this.map, title);\n } else {\n addImportedFeaturesStyledToMap(\n featureCollection,\n this.map,\n title,\n this.styleListService,\n this.styleService\n );\n }\n });\n }\n });\n }\n\n private computeLayerVisibilityFromUrl(layer: Layer): boolean {\n const params = this.queryParams;\n const currentContext = this.contextService.context$.value.uri;\n const currentLayerid: string = layer.id;\n\n let visible = layer.visible;\n if (!params || !currentLayerid) {\n return visible;\n }\n\n const contextParams = params[this.route.options.contextKey as string];\n if (contextParams === currentContext || !contextParams) {\n let visibleOnLayersParams = '';\n let visibleOffLayersParams = '';\n let visiblelayers: string[] = [];\n let invisiblelayers: string[] = [];\n\n if (\n this.route.options.visibleOnLayersKey &&\n params[this.route.options.visibleOnLayersKey as string]\n ) {\n visibleOnLayersParams =\n params[this.route.options.visibleOnLayersKey as string];\n }\n if (\n this.route.options.visibleOffLayersKey &&\n params[this.route.options.visibleOffLayersKey as string]\n ) {\n visibleOffLayersParams =\n params[this.route.options.visibleOffLayersKey as string];\n }\n\n /* This order is important because to control whichever\n the order of * param. First whe open and close everything.*/\n if (visibleOnLayersParams === '*') {\n visible = true;\n }\n if (visibleOffLayersParams === '*') {\n visible = false;\n }\n\n // After, managing named layer by id (context.json OR id from datasource)\n visiblelayers = visibleOnLayersParams.split(',');\n invisiblelayers = visibleOffLayersParams.split(',');\n if (visiblelayers.indexOf(currentLayerid) > -1 || visiblelayers.indexOf(currentLayerid.toString()) > -1) {\n visible = true;\n }\n if (invisiblelayers.indexOf(currentLayerid) > -1 || invisiblelayers.indexOf(currentLayerid.toString()) > -1) {\n visible = false;\n }\n }\n\n return visible;\n }\n}\n","export enum ContextListControlsEnum {\n always = 'always',\n never = 'never',\n default = 'default'\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-bookmark-dialog',\n templateUrl: './bookmark-dialog.component.html'\n})\nexport class BookmarkDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' | translate }}</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <mat-form-field>\n <input matInput required autocomplete=\"off\"\n maxlength=\"128\"\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' | translate\"\n [(ngModel)]=\"title\">\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\">\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\n </button>\n <button mat-button\n (click)=\"dialogRef.close(false)\">\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\n </button>\n</div>\n","<mat-list-item\n class=\"mat-list-item\"\n [ngClass]=\"{'mat-list-item-light': hidden}\">\n <button mat-list-avatar\n *ngIf=\"auth.authenticated\"\n mat-icon-button\n igoStopPropagation\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\n matTooltipShowDelay=\"500\"\n [color]=\"default ? 'primary' : 'default'\"\n (click)=\"favoriteClick(context)\">\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\n </button>\n <h4 matLine>{{context.title}}</h4>\n\n <div *ngIf=\"auth.authenticated\"\n igoStopPropagation\n class=\"igo-actions-container\">\n\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\n class=\"save-button\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"save.emit(context)\">\n <mat-icon svgIcon=\"content-save\"></mat-icon>\n </button>\n\n <div #actions class=\"igo-actions-expand-container\">\n\n <button *ngIf=\"canShare && !context.imported\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"managePermissions.emit(context)\">\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\n </button>\n\n <!--button\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\n [color]=\"color\"\n (click)=\"manageTools.emit(context)\">\n <mat-icon svgIcon=\"widgets\"></mat-icon>\n </button-->\n\n <button *ngIf=\"!context.imported\"\n class=\"clone-button\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\n matTooltipShowDelay=\"500\"\n [color]=\"color\"\n (click)=\"clone.emit(context)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\n class=\"edit-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"edit.emit(context)\">\n <mat-icon svgIcon=\"pencil\"></mat-icon>\n </button>\n\n <button *ngIf=\"!context.hidden && !context.imported\"\n class=\"hide-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"hide.emit(context)\">\n <mat-icon svgIcon=\"eye\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.hidden && !context.imported\"\n class=\"hide-button\"\n mat-icon-button\n [color]=\"color\"\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"show.emit(context)\">\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\n </button>\n\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\n class=\"delete-button\"\n mat-icon-button\n color=\"warn\"\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"delete.emit(context)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n\n <button\n class=\"actions-button\"\n mat-icon-button\n igoCollapse\n [color]=\"color\"\n [target]=\"actions\"\n [collapsed]=collapsed\n (click)=\"collapsed = !collapsed\">\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\n </button>\n\n </div>\n\n</mat-list-item>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { StorageService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\nimport { TypePermission } from '../shared/context.enum';\nimport { DetailedContext } from '../shared/context.interface';\n\n@Component({\n selector: 'igo-context-item',\n templateUrl: './context-item.component.html',\n styleUrls: ['./context-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContextItemComponent {\n public typePermission = TypePermission;\n public color = 'primary';\n public collapsed = true;\n\n @Input()\n get context(): DetailedContext {\n return this._context;\n }\n set context(value: DetailedContext) {\n this._context = value;\n }\n private _context: DetailedContext;\n\n @Input()\n get default(): boolean {\n return this._default;\n }\n set default(value: boolean) {\n this._default = value;\n }\n private _default = false;\n\n @Input() selected: boolean;\n\n @Output() edit = new EventEmitter<DetailedContext>();\n @Output() delete = new EventEmitter<DetailedContext>();\n @Output() save = new EventEmitter<DetailedContext>();\n @Output() clone = new EventEmitter<DetailedContext>();\n @Output() hide = new EventEmitter<DetailedContext>();\n @Output() show = new EventEmitter<DetailedContext>();\n @Output() favorite = new EventEmitter<DetailedContext>();\n @Output() managePermissions = new EventEmitter<DetailedContext>();\n @Output() manageTools = new EventEmitter<DetailedContext>();\n\n get hidden(): boolean {\n return this.context.hidden;\n }\n\n get canShare(): boolean {\n return this.storageService.get('canShare') === true;\n }\n\n constructor(\n public auth: AuthService,\n private storageService: StorageService\n ) {}\n\n favoriteClick(context) {\n if (this.auth.authenticated) {\n this.favorite.emit(context);\n }\n }\n}\n","<igo-list [navigation]=\"true\">\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\n <input\n matInput\n type=\"text\"\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\n [(ngModel)]=\"term\">\n <button\n mat-button\n mat-icon-button\n matSuffix\n class=\"clear-button\"\n *ngIf=\"term.length\"\n aria-label=\"Clear\"\n color=\"warn\"\n (click)=\"clearFilter()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n\n <button\n *ngIf=\"!sortedAlpha\"\n class=\"sort-alpha\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort(true)\">\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></mat-icon>\n </button>\n <button\n *ngIf=\"sortedAlpha\"\n class=\"sort-alpha\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleSort(false)\">\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\n </button>\n\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\n class=\"add-context-button\"\n [iconColor]=\"color\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n icon=\"plus\"\n [withTitle]=\"actionbarMode === 'overlay'\"\n [horizontal]=\"false\"\n [mode]=\"actionbarMode\">\n </igo-actionbar>\n\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\n class=\"users-filter\"\n mat-icon-button\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"accountMenu\">\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\n </button>\n\n <mat-menu #accountMenu=\"matMenu\">\n <ng-container *ngFor=\"let user of users\">\n <span class=\"profilsMenu\">\n <mat-checkbox\n class=\"mat-menu-item\"\n [checked]=\"getPermission(user).checked\"\n [indeterminate]=\"getPermission(user).indeterminate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"userSelection(user)\">\n </mat-checkbox>\n <button *ngIf=\"user.childs\"\n [matMenuTriggerFor]=\"subAccountMenu\"\n mat-menu-item>\n {{user.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"!user.childs\">\n {{user.title}}\n </button>\n </span>\n\n <mat-menu #subAccountMenu=\"matMenu\">\n <mat-checkbox *ngFor=\"let child of user.childs\"\n class=\"mat-menu-item\"\n [checked]=\"getPermission(child).checked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"userSelection(child, user)\">\n {{child.title}}\n </mat-checkbox>\n </mat-menu>\n </ng-container>\n\n <span class=\"profilsMenu\">\n <mat-checkbox\n class=\"mat-menu-item\"\n [checked]=\"showHidden\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showHiddenContexts.emit()\">\n </mat-checkbox>\n <button mat-menu-item>\n {{ 'igo.context.contextManager.showHidden' | translate }}\n </button>\n </span>\n </mat-menu>\n\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\n\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\">\n\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\n [context]=\"context\"\n [default]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\n (edit)=\"edit.emit(context)\"\n (delete)=\"delete.emit(context)\"\n (clone)=\"clone.emit(context)\"\n (save)=\"save.emit(context)\"\n (hide)=\"hideContext(context)\"\n (show)=\"showContext(context)\"\n (favorite)=\"favorite.emit(context)\"\n (manageTools)=\"manageTools.emit(context)\"\n (managePermissions)=\"managePermissions.emit(context)\"\n (select)=\"select.emit(context)\"\n (unselect)=\"unselect.emit(context)\">\n </igo-context-item>\n </ng-template>\n\n </igo-collapsible>\n\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\n <igo-context-item\n igoListItem\n color=\"accent\"\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\n [context]=\"context\"\n [default]=\"this.defaultContextId === context.id\"\n (select)=\"select.emit(context)\"\n (unselect)=\"unselect.emit(context)\">\n </igo-context-item>\n </ng-template>\n\n </ng-template>\n</igo-list>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy\n} from '@angular/core';\n\nimport { AuthService } from '@igo2/auth';\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\nimport type { IgoMap } from '@igo2/geo';\n\nimport {\n DetailedContext,\n ContextsList,\n ContextUserPermission,\n ContextProfils\n} from '../shared/context.interface';\nimport { ContextListControlsEnum } from './context-list.enum';\nimport {\n Subscription,\n BehaviorSubject,\n ReplaySubject,\n EMPTY,\n timer\n} from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { MatDialog } from '@angular/material/dialog';\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\nimport { debounce } from 'rxjs/operators';\nimport { ActionStore, ActionbarMode } from '@igo2/common';\nimport { ContextService } from '../shared/context.service';\n\n@Component({\n selector: 'igo-context-list',\n templateUrl: './context-list.component.html',\n styleUrls: ['./context-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContextListComponent implements OnInit, OnDestroy {\n private contextsInitial: ContextsList = { ours: [] };\n contexts$: BehaviorSubject<ContextsList> = new BehaviorSubject(\n this.contextsInitial\n );\n\n change$ = new ReplaySubject<void>(1);\n\n private change$$: Subscription;\n\n @Input()\n get contexts(): ContextsList {\n return this._contexts;\n }\n set contexts(value: ContextsList) {\n this._contexts = value;\n this.cdRef.detectChanges();\n this.next();\n }\n private _contexts: ContextsList = { ours: [] };\n\n @Input()\n get selectedContext(): DetailedContext {\n return this._selectedContext;\n }\n set selectedContext(value: DetailedContext) {\n this._selectedContext = value;\n this.cdRef.detectChanges();\n }\n private _selectedContext: DetailedContext;\n\n @Input()\n get map(): IgoMap {\n return this._map;\n }\n set map(value: IgoMap) {\n this._map = value;\n }\n private _map: IgoMap;\n\n @Input()\n get defaultContextId(): string {\n return this._defaultContextId;\n }\n set defaultContextId(value: string) {\n this._defaultContextId = value;\n }\n private _defaultContextId: string;\n\n public collapsed: { contextScope }[] = [];\n\n @Output() select = new EventEmitter<DetailedContext>();\n @Output() unselect = new EventEmitter<DetailedContext>();\n @Output() edit = new EventEmitter<DetailedContext>();\n @Output() delete = new EventEmitter<DetailedContext>();\n @Output() save = new EventEmitter<DetailedContext>();\n @Output() clone = new EventEmitter<DetailedContext>();\n @Output() create = new EventEmitter<{ title: string; empty: boolean }>();\n @Output() hide = new EventEmitter<DetailedContext>();\n @Output() show = new EventEmitter<DetailedContext>();\n @Output() showHiddenContexts = new EventEmitter<boolean>();\n @Output() favorite = new EventEmitter<DetailedContext>();\n @Output() managePermissions = new EventEmitter<DetailedContext>();\n @Output() manageTools = new EventEmitter<DetailedContext>();\n @Output() filterPermissionsChanged = new EventEmitter<\n ContextUserPermission[]\n >();\n\n public titleMapping = {\n ours: 'igo.context.contextManager.ourContexts',\n shared: 'igo.context.contextManager.sharedContexts',\n public: 'igo.context.contextManager.publicContexts'\n };\n\n public users: ContextProfils[];\n public permissions: ContextUserPermission[] = [];\n\n public actionStore = new ActionStore([]);\n public actionbarMode = ActionbarMode.Overlay;\n\n public color = 'primary';\n\n public showHidden = false;\n\n /**\n * Context filter term\n */\n @Input()\n set term(value: string) {\n this._term = value;\n this.next();\n }\n get term(): string {\n return this._term;\n }\n public _term: string = '';\n\n get sortedAlpha(): boolean {\n return this._sortedAlpha;\n }\n set sortedAlpha(value: boolean) {\n this._sortedAlpha = value;\n this.next();\n }\n private _sortedAlpha: boolean = undefined;\n\n public showContextFilter = ContextListControlsEnum.always;\n\n public thresholdToFilter = 5;\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private contextService: ContextService,\n public configService: ConfigService,\n public auth: AuthService,\n private dialog: MatDialog,\n private languageService: LanguageService,\n private storageService: StorageService\n ) {}\n\n ngOnInit() {\n this.change$$ = this.change$\n .pipe(\n debounce(() => {\n return this.contexts.ours.length === 0 ? EMPTY : timer(50);\n })\n )\n .subscribe(() => {\n this.contexts$.next(this.filterContextsList(this.contexts));\n });\n\n this.actionStore.load([\n {\n id: 'emptyContext',\n title: this.languageService.translate.instant(\n 'igo.context.contextManager.emptyContext'\n ),\n icon: 'map-outline',\n tooltip: this.languageService.translate.instant(\n 'igo.context.contextManager.emptyContextTooltip'\n ),\n handler: () => {\n this.createContext(true);\n }\n },\n {\n id: 'contextFromMap',\n title: this.languageService.translate.instant(\n 'igo.context.contextManager.contextMap'\n ),\n icon: 'map-check',\n tooltip: this.languageService.translate.instant(\n 'igo.context.contextManager.contextMapTooltip'\n ),\n handler: () => {\n this.createContext(false);\n }\n }\n ]);\n }\n\n private next() {\n this.change$.next();\n }\n\n private filterContextsList(contexts: ContextsList) {\n if (this.term === '') {\n if (this.sortedAlpha) {\n contexts = this.sortContextsList(contexts);\n }\n return contexts;\n } else {\n const ours = contexts.ours.filter((context) => {\n const filterNormalized = this.term\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const contextTitleNormalized = context.title\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n return contextTitleNormalized.includes(filterNormalized);\n });\n\n let updateContexts: ContextsList = {\n ours\n };\n\n if (this.contexts.public) {\n const publics = contexts.public.filter((context) => {\n const filterNormalized = this.term\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const contextTitleNormalized = context.title\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n return contextTitleNormalized.includes(filterNormalized);\n });\n updateContexts.public = publics;\n }\n\n if (this.contexts.shared) {\n const shared = contexts.shared.filter((context) => {\n const filterNormalized = this.term\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const contextTitleNormalized = context.title\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n return contextTitleNormalized.includes(filterNormalized);\n });\n updateContexts.shared = shared;\n }\n\n if (this.sortedAlpha) {\n updateContexts = this.sortContextsList(updateContexts);\n }\n return updateContexts;\n }\n }\n\n ngOnDestroy() {\n this.change$$.unsubscribe();\n }\n\n public showFilter() {\n switch (this.showContextFilter) {\n case ContextListControlsEnum.always:\n return true;\n case ContextListControlsEnum.never:\n return false;\n default:\n let totalLength = this.contexts.ours.length;\n this.contexts.public\n ? (totalLength += this.contexts.public.length)\n : (totalLength += 0);\n this.contexts.shared\n ? (totalLength += this.contexts.shared.length)\n : (totalLength += 0);\n if (totalLength >= this.thresholdToFilter) {\n return true;\n }\n return false;\n }\n }\n\n sortContextsList(contexts: ContextsList) {\n if (contexts) {\n const contextsList = JSON.parse(JSON.stringify(contexts));\n contextsList.ours.sort((a, b) => {\n if (this.normalize(a.title) < this.normalize(b.title)) {\n return -1;\n }\n if (this.normalize(a.title) > this.normalize(b.title)) {\n return 1;\n }\n return 0;\n });\n\n if (contextsList.shared) {\n contextsList.shared.sort((a, b) => {\n if (this.normalize(a.title) < this.normalize(b.title)) {\n return -1;\n }\n if (this.normalize(a.title) > this.normalize(b.title)) {\n return 1;\n }\n return 0;\n });\n } else if (contextsList.public) {\n contextsList.public.sort((a, b) => {\n if (this.normalize(a.title) < this.normalize(b.title)) {\n return -1;\n }\n if (this.normalize(a.title) > this.normalize(b.title)) {\n return 1;\n }\n return 0;\n });\n }\n return contextsList;\n }\n }\n\n normalize(str: string) {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n }\n\n toggleSort(sortAlpha: boolean) {\n this.sortedAlpha = sortAlpha;\n }\n\n clearFilter() {\n this.term = '';\n }\n\n createContext(empty?: boolean) {\n this.dialog\n .open(BookmarkDialogComponent, { disableClose: false })\n .afterClosed()\n .pipe(take(1))\n .subscribe((title: string) => {\n if (title) {\n this.create.emit({ title, empty });\n }\n });\n }\n\n getPermission(user?): ContextUserPermission {\n if (user) {\n const permission = this.permissions.find((p) => p.name === user.name);\n return permission;\n }\n }\n\n userSelection(user, parent?) {\n const permission = this.getPermission(user);\n if (permission) {\n permission.checked = !permission.checked;\n this.storageService.set(\n 'contexts.permissions.' + permission.name,\n permission.checked\n );\n permission.indeterminate = false;\n }\n\n if (parent) {\n let indeterminate = false;\n\n for (const c of parent.childs) {\n const cPermission = this.getPermission(c);\n if (cPermission.checked !== permission.checked) {\n indeterminate = true;\n break;\n }\n }\n const parentPermission = this.getPermission(parent);\n if (parentPermission) {\n parentPermission.checked = permission.checked;\n this.storageService.set(\n 'contexts.permissions.' + parentPermission.name,\n permission.checked\n );\n parentPermission.indeterminate = indeterminate;\n }\n }\n\n if (user.childs) {\n for (const c of user.childs) {\n const childrenPermission = this.getPermission(c);\n if (\n childrenPermission &&\n childrenPermission.checked !== permission.checked\n ) {\n childrenPermission.checked = permission.checked;\n this.storageService.set(\n 'contexts.permissions.' + childrenPermission.name,\n permission.checked\n );\n }\n }\n }\n\n this.filterPermissionsChanged.emit(this.permissions);\n }\n\n hideContext(context: DetailedContext) {\n context.hidden = true;\n if (!this.showHidden) {\n const contexts: ContextsList = { ours: [], shared: [], public: [] };\n contexts.ours = this.contexts.ours.filter((c) => c.id !== context.id);\n contexts.shared = this.contexts.shared.filter((c) => c.id !== context.id);\n contexts.public = this.contexts.public.filter((c) => c.id !== context.id);\n this.contexts = contexts;\n }\n this.hide.emit(context);\n }\n\n showContext(context: DetailedContext) {\n context.hidden = false;\n this.show.emit(context);\n }\n}\n","import {\n Directive,\n Self,\n OnInit,\n OnDestroy,\n HostListener\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { MessageService, LanguageService, StorageService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\nimport { ConfirmDialogService } from '@igo2/common';\nimport { MapService } from '@igo2/geo';\n\nimport {\n Context,\n DetailedContext,\n ContextsList,\n ContextUserPermission\n} from '../shared/context.interface';\nimport { ContextService } from '../shared/context.service';\nimport { ContextListComponent } from './context-list.component';\n\n@Directive({\n selector: '[igoContextListBinding]'\n})\nexport class ContextListBindingDirective implements OnInit, OnDestroy {\n private component: ContextListComponent;\n private contexts$$: Subscription;\n private selectedContext$$: Subscription;\n private defaultContextId$$: Subscription;\n\n @HostListener('select', ['$event'])\n onSelect(context: Context) {\n this.contextService.loadContext(context.uri);\n }\n\n @HostListener('edit', ['$event'])\n onEdit(context: Context) {\n this.contextService.loadEditedContext(context.uri);\n }\n\n @HostListener('save', ['$event'])\n onSave(context: Context) {\n const map = this.mapService.getMap();\n const contextFromMap = this.contextService.getContextFromMap(map);\n\n const msgSuccess = () => {\n const translate = this.languageService.translate;\n const message = translate.instant(\n 'igo.context.contextManager.dialog.saveMsg',\n {\n value: context.title\n }\n );\n const title = translate.instant(\n 'igo.context.contextManager.dialog.saveTitle'\n );\n this.messageService.success(message, title);\n };\n\n if (context.imported) {\n contextFromMap.title = context.title;\n this.contextService.delete(context.id, true);\n this.contextService.create(contextFromMap).subscribe((contextCreated) => {\n this.contextService.loadContext(contextCreated.uri);\n msgSuccess();\n });\n return;\n }\n\n const changes: any = {\n layers: contextFromMap.layers,\n map: {\n view: contextFromMap.map.view\n }\n };\n\n this.contextService.update(context.id, changes).subscribe(() => {\n msgSuccess();\n });\n }\n\n @HostListener('favorite', ['$event'])\n onFavorite(context: Context) {\n this.contextService.setDefault(context.id).subscribe(() => {\n this.contextService.defaultContextId$.next(context.id);\n const translate = this.languageService.translate;\n const message = translate.instant(\n 'igo.context.contextManager.dialog.favoriteMsg',\n {\n value: context.title\n }\n );\n const title = translate.instant(\n 'igo.context.contextManager.dialog.favoriteTitle'\n );\n this.messageService.success(message, title);\n });\n }\n\n @HostListener('manageTools', ['$event'])\n onManageTools(context: Context) {\n this.contextService.loadEditedContext(context.uri);\n }\n\n @HostListener('managePermissions', ['$event'])\n onManagePermissions(context: Context) {\n this.contextService.loadEditedContext(context.uri);\n }\n\n @HostListener('delete', ['$event'])\n onDelete(context: Context) {\n const translate = this.languageService.translate;\n this.confirmDialogService\n .open(\n translate.instant('igo.context.contextManager.dialog.confirmDelete')\n )\n .subscribe((confirm) => {\n if (confirm) {\n this.contextService\n .delete(context.id, context.imported)\n .subscribe(() => {\n const message = translate.instant(\n 'igo.context.contextManager.dialog.deleteMsg',\n {\n value: context.title\n }\n );\n const title = translate.instant(\n 'igo.context.contextManager.dialog.deleteTitle'\n );\n this.messageService.info(message, title);\n });\n }\n });\n }\n\n @HostListener('clone', ['$event'])\n onClone(context: DetailedContext) {\n const properties = {\n title: context.title + '-copy',\n uri: context.uri + '-copy'\n };\n this.contextService.clone(context.id, properties).subscribe(() => {\n const translate = this.languageService.translate;\n const message = translate.instant(\n 'igo.context.contextManager.dialog.cloneMsg',\n {\n value: context.title\n }\n );\n const title = translate.instant(\n 'igo.context.contextManager.dialog.cloneTitle'\n );\n this.messageService.success(message, title);\n });\n }\n\n @HostListener('create', ['$event'])\n onCreate(opts: { title: string; empty: boolean }) {\n const { title, empty } = opts;\n const context = this.contextService.getContextFromMap(\n this.component.map,\n empty\n );\n context.title = title;\n this.contextService.create(context).subscribe(() => {\n const translate = this.languageService.translate;\n const titleD = translate.instant(\n 'igo.context.bookmarkButton.dialog.createTitle'\n );\n const message = translate.instant(\n 'igo.context.bookmarkButton.dialog.createMsg',\n {\n value: context.title\n }\n );\n this.messageService.success(message, titleD);\n this.contextService.loadContext(context.uri);\n });\n }\n\n @HostListener('filterPermissionsChanged')\n loadContexts() {\n const permissions = ['none'];\n for (const p of this.component.permissions) {\n if (p.checked === true || p.indeterminate === true) {\n permissions.push(p.name);\n }\n }\n this.component.showHidden\n ? this.contextService.loadContexts(permissions, true)\n : this.contextService.loadContexts(permissions, false);\n }\n\n @HostListener('showHiddenContexts')\n showHiddenContexts() {\n this.component.showHidden = !this.component.showHidden;\n this.storageService.set('contexts.showHidden', this.component.showHidden);\n this.loadContexts();\n }\n\n @HostListener('show', ['$event'])\n onShowContext(context: DetailedContext) {\n this.contextService.showContext(context.id).subscribe();\n }\n\n @HostListener('hide', ['$event'])\n onHideContext(context: DetailedContext) {\n this.contextService.hideContext(context.id).subscribe();\n }\n\n constructor(\n @Self() component: ContextListComponent,\n private contextService: ContextService,\n private mapService: MapService,\n private languageService: LanguageService,\n private confirmDialogService: ConfirmDialogService,\n private messageService: MessageService,\n private auth: AuthService,\n private storageService: StorageService\n ) {\n this.component = component;\n }\n\n ngOnInit() {\n // Override input contexts\n this.component.contexts = { ours: [] };\n this.component.showHidden = this.storageService.get(\n 'contexts.showHidden'\n ) as boolean;\n\n this.contexts$$ = this.contextService.contexts$.subscribe((contexts) =>\n this.handleContextsChange(contexts)\n );\n\n this.defaultContextId$$ = this.contextService.defaultContextId$.subscribe(\n (id) => {\n this.component.defaultContextId = id;\n }\n );\n\n // See feature-list.component for an explanation about the debounce time\n this.selectedContext$$ = this.contextService.context$\n .pipe(debounceTime(100))\n .subscribe((context) => (this.component.selectedContext = context));\n\n this.auth.authenticate$.subscribe((authenticate) => {\n if (authenticate) {\n this.contextService.getProfilByUser().subscribe((profils) => {\n this.component.users = profils;\n this.component.permissions = [];\n const profilsAcc = this.component.users.reduce((acc, cur) => {\n acc = acc.concat(cur);\n acc = cur.childs ? acc.concat(cur.childs) : acc;\n return acc;\n }, []);\n\n for (const user of profilsAcc) {\n const permission: ContextUserPermission = {\n name: user.name,\n checked: this.storageService.get(\n 'contexts.permissions.' + user.name\n ) as boolean\n };\n if (permission.checked === null) {\n permission.checked = true;\n }\n this.component.permissions.push(permission);\n }\n\n const permissions = ['none'];\n for (const p of this.component.permissions) {\n if (p.checked === true || p.indeterminate === true) {\n permissions.push(p.name);\n }\n }\n\n this.component.showHidden\n ? this.contextService.loadContexts(permissions, true)\n : this.contextService.loadContexts(permissions, false);\n });\n }\n });\n }\n\n ngOnDestroy() {\n this.contexts$$.unsubscribe();\n this.selectedContext$$.unsubscribe();\n this.defaultContextId$$.unsubscribe();\n }\n\n private handleContextsChange(contexts: ContextsList) {\n this.component.contexts = contexts;\n }\n}\n","<form class=\"igo-form\" [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\">\n\n <mat-form-field class=\"full-width\">\n <input matInput required\n maxlength=\"128\"\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\">\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field id=\"uriInput\" class=\"full-width\">\n <span *ngIf=\"prefix\" class=\"prefix\">{{prefix}}-</span>\n <span class=\"fieldWrapper\">\n <input matInput\n maxlength=\"64\"\n floatLabel = \"always\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\">\n </span>\n </mat-form-field>\n\n <button\n id=\"copyButton\"\n type=\"button\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard()\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid || disabled\">\n {{ 'igo.context.contextManager.form.edit' | translate }}\n </button>\n </div>\n\n</form>\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { ObjectUtils, Clipboard } from '@igo2/utils';\nimport { MessageService, LanguageService } from '@igo2/core';\nimport { Context } from '../shared/context.interface';\n\n@Component({\n selector: 'igo-context-form',\n templateUrl: './context-form.component.html',\n styleUrls: ['./context-form.component.scss']\n})\nexport class ContextFormComponent implements OnInit {\n public form: FormGroup;\n public prefix: string;\n\n @Input()\n get btnSubmitText(): string {\n return this._btnSubmitText;\n }\n set btnSubmitText(value: string) {\n this._btnSubmitText = value;\n }\n private _btnSubmitText: string;\n\n @Input()\n get context(): Context {\n return this._context;\n }\n set context(value: Context) {\n this._context = value;\n this.buildForm();\n }\n private _context: Context;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n private _disabled = false;\n\n // TODO: replace any by ContextOptions or Context\n @Output() submitForm: EventEmitter<any> = new EventEmitter();\n @Output() clone: EventEmitter<any> = new EventEmitter();\n @Output() delete: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private formBuilder: FormBuilder,\n private languageService: LanguageService,\n private messageService: MessageService\n ) {}\n\n ngOnInit(): void {\n this.buildForm();\n }\n\n public handleFormSubmit(value) {\n let inputs = Object.assign({}, value);\n inputs = ObjectUtils.removeNull(inputs);\n inputs.uri = inputs.uri.replace(' ', '');\n if (inputs.uri) {\n inputs.uri = this.prefix + '-' + inputs.uri;\n } else {\n inputs.uri = this.prefix;\n }\n this.submitForm.emit(inputs);\n }\n\n public copyTextToClipboard() {\n const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');\n const successful = Clipboard.copy(text);\n if (successful) {\n const translate = this.languageService.translate;\n const title = translate.instant(\n 'igo.context.contextManager.dialog.copyTitle'\n );\n const msg = translate.instant(\n 'igo.context.contextManager.dialog.copyMsg'\n );\n this.messageService.success(msg, title);\n }\n }\n\n private buildForm(): void {\n const context: any = this.context || {};\n\n const uriSplit = context.uri.split('-');\n this.prefix = uriSplit.shift();\n const uri = uriSplit.join('-');\n\n this.form = this.formBuilder.group({\n title: [context.title],\n uri: [uri || ' ']\n });\n }\n}\n","<igo-context-form *ngIf=\"context\"\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\n [context]=\"context\"\n (submitForm)=\"submitForm.emit($event)\">\n</igo-context-form>\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\n\nimport { Context } from '../shared/context.interface';\n\n@Component({\n selector: 'igo-context-edit',\n templateUrl: './context-edit.component.html'\n})\nexport class ContextEditComponent {\n @Input()\n get context(): Context {\n return this._context;\n }\n set context(value: Context) {\n this._context = value;\n this.refresh();\n }\n private _context: Context;\n\n @Output() submitForm: EventEmitter<Context> = new EventEmitter();\n\n constructor(private cd: ChangeDetectorRef) {}\n\n refresh() {\n this.cd.detectChanges();\n }\n}\n","import {\n Output,\n EventEmitter,\n Directive,\n Self,\n OnInit,\n OnDestroy,\n HostListener\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { MessageService, LanguageService } from '@igo2/core';\n\nimport { Context, DetailedContext } from '../shared/context.interface';\nimport { ContextService } from '../shared/context.service';\nimport { ContextEditComponent } from './context-edit.component';\n\n@Directive({\n selector: '[igoContextEditBinding]'\n})\nexport class ContextEditBindingDirective implements OnInit, OnDestroy {\n private component: ContextEditComponent;\n private editedContext$$: Subscription;\n\n @Output() submitSuccessed: EventEmitter<Context> = new EventEmitter();\n\n @HostListener('submitForm', ['$event'])\n onEdit(context: Context) {\n const id = this.component.context.id;\n this.contextService.update(id, context).subscribe(() => {\n const translate = this.languageService.translate;\n const message = translate.instant('igo.context.contextManager.dialog.saveMsg', {\n value: context.title || this.component.context.title\n });\n const title = translate.instant('igo.context.contextManager.dialog.saveTitle');\n this.messageService.success(message, title);\n this.contextService.setEditedContext(undefined);\n this.submitSuccessed.emit(context);\n });\n }\n\n constructor(\n @Self() component: ContextEditComponent,\n private contextService: ContextService,\n private messageService: MessageService,\n private languageService: LanguageService\n ) {\n this.component = component;\n }\n\n ngOnInit() {\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\n context => this.handleEditedContextChange(context)\n );\n }\n\n ngOnDestroy() {\n this.editedContext$$.unsubscribe();\n }\n\n private handleEditedContextChange(context: DetailedContext) {\n this.component.context = context;\n }\n}\n","<div *ngIf=\"context\">\n\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\n <mat-radio-group [(ngModel)]=\"context.scope\"\n (change)=\"scopeChanged.emit(context)\">\n <mat-radio-button value=\"private\">\n {{ 'igo.context.permission.scope.private' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"protected\">\n {{ 'igo.context.permission.scope.shared' | translate }}\n </mat-radio-button>\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <form *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\">\n\n <mat-form-field class=\"full-width\">\n <input matInput required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\n {{profil.title}}<br>\n <small class=\"mat-typography\">{{profil.name}}</small>\n </mat-option>\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <mat-radio-group formControlName=\"typePermission\">\n <mat-radio-button value=\"read\">\n {{ 'igo.context.permission.read' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"write\">\n {{ 'igo.context.permission.write' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n\n </form>\n\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\n <igo-collapsible\n *ngIf=\"groupPermissions.value.length\"\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\">\n\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\n <mat-list-item>\n <mat-icon mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\n\n <div igoStopPropagation\n class=\"igo-actions-container\">\n\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\n mat-icon-button\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\n matTooltipShowDelay=\"500\"\n color=\"warn\"\n (click)=\"removePermission.emit(permission)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n\n </mat-list-item>\n </ng-template>\n </igo-collapsible>\n </ng-template>\n </igo-list>\n\n</div>\n","import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\n\nimport {\n Context,\n ContextPermission,\n ContextPermissionsList,\n ContextProfils\n} from '../shared/context.interface';\nimport { TypePermission } from '../shared/context.enum';\n\nimport { HttpClient } from '@angular/common/http';\nimport { Subscription } from 'rxjs';\n\nimport { AuthService } from '@igo2/auth';\nimport { ConfigService } from '@igo2/core';\n\n@Component({\n selector: 'igo-context-permissions',\n templateUrl: './context-permissions.component.html',\n styleUrls: ['./context-permissions.component.scss']\n})\nexport class ContextPermissionsComponent implements OnInit {\n public form: FormGroup;\n\n @Input()\n get context(): Context {\n return this._context;\n }\n set context(value: Context) {\n this._context = value;\n this.cd.detectChanges();\n }\n private _context: Context;\n\n @Input()\n get permissions(): ContextPermissionsList {\n return this._permissions;\n }\n set permissions(value: ContextPermissionsList) {\n this._permissions = value;\n this.cd.detectChanges();\n }\n private _permissions: ContextPermissionsList;\n\n get profils(): ContextProfils[] {\n return this._profils;\n }\n set profils(value: ContextProfils[]) {\n this._profils = value;\n this.cd.detectChanges();\n }\n private _profils: ContextProfils[] = [];\n\n get canWrite(): boolean {\n return this.context.permission === TypePermission[TypePermission.write];\n }\n\n private baseUrlProfils;\n\n public formControl = new FormControl();\n formValueChanges$$: Subscription;\n\n @Output() addPermission: EventEmitter<ContextPermission> = new EventEmitter();\n @Output() removePermission: EventEmitter<ContextPermission> = new EventEmitter();\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\n\n constructor(private formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n private http: HttpClient,\n public authService: AuthService,\n private config: ConfigService) {}\n\n ngOnInit(): void {\n this.buildForm();\n\n this.baseUrlProfils = this.config.getConfig('context.url') + '/profils-users?';\n\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe((value) => {\n if (value.length) {\n this.http.get(this.baseUrlProfils + 'q=' + value).subscribe(profils => {\n this.profils = profils as ContextProfils[];\n });\n this.profils.filter((profil) => {\n const filterNormalized = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n const profilTitleNormalized = profil.title.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n const profilNameNormalized = profil.name.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n const profilNormalized = profilNameNormalized + profilTitleNormalized;\n return profilNormalized.includes(filterNormalized);\n });\n } else {\n this.profils = [];\n }\n });\n }\n\n displayFn(profil?: ContextProfils): string | undefined {\n return profil ? profil.title : undefined;\n }\n\n public handleFormSubmit(value) {\n this.addPermission.emit(value);\n }\n\n private buildForm(): void {\n this.form = this.formBuilder.group({\n profil: [],\n typePermission: ['read']\n });\n }\n\n onProfilSelected(value) {\n this.form.setValue({\n profil: value.name,\n typePermission: this.form.value.typePermission\n });\n }\n}\n","import {\n Directive,\n Self,\n OnInit,\n OnDestroy,\n HostListener,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { MessageService, LanguageService } from '@igo2/core';\n\nimport {\n Context,\n ContextPermission,\n DetailedContext\n} from '../shared/context.interface';\nimport { ContextService } from '../shared/context.service';\nimport { ContextPermissionsComponent } from './context-permissions.component';\n\n@Directive({\n selector: '[igoContextPermissionsBinding]'\n})\nexport class ContextPermissionsBindingDirective implements OnInit, OnDestroy {\n private component: ContextPermissionsComponent;\n private editedContext$$: Subscription;\n\n @HostListener('addPermission', ['$event'])\n onAddPermission(permission: ContextPermission) {\n const translate = this.languageService.translate;\n if (!permission.profil) {\n const message = translate.instant(\n 'igo.context.contextManager.errors.addPermissionEmpty'\n );\n const title = translate.instant(\n 'igo.context.contextManager.errors.addPermissionTitle'\n );\n this.messageService.error(message, title);\n return;\n }\n const contextId = this.component.context.id;\n this.contextService\n .addPermissionAssociation(\n contextId,\n permission.profil,\n permission.typePermission\n )\n .subscribe(profils => {\n for (const p of profils) {\n this.component.permissions[permission.typePermission].push(p);\n }\n const profil = permission.profil;\n const message = translate.instant(\n 'igo.context.permission.dialog.addMsg',\n {\n value: profil\n }\n );\n const title = translate.instant(\n 'igo.context.permission.dialog.addTitle'\n );\n this.messageService.success(message, title);\n this.cd.detectChanges();\n });\n }\n\n @HostListener('removePermission', ['$event'])\n onRemovePermission(permission: ContextPermission) {\n const contextId = this.component.context.id;\n this.contextService\n .deletePermissionAssociation(contextId, permission.id)\n .subscribe(() => {\n const index = this.component.permissions[\n permission.typePermission\n ].findIndex(p => {\n return p.id === permission.id;\n });\n this.component.permissions[permission.typePermission].splice(index, 1);\n\n const profil = permission.profil;\n const translate = this.languageService.translate;\n const message = translate.instant(\n 'igo.context.permission.dialog.deleteMsg',\n {\n value: profil\n }\n );\n const title = translate.instant(\n 'igo.context.permission.dialog.deleteTitle'\n );\n this.messageService.success(message, title);\n this.cd.detectChanges();\n });\n }\n\n @HostListener('scopeChanged', ['$event'])\n onScopeChanged(context: Context) {\n const scope = context.scope;\n this.contextService.update(context.id, { scope }).subscribe(() => {\n const translate = this.languageService.translate;\n const message = translate.instant(\n 'igo.context.permission.dialog.scopeChangedMsg',\n {\n value: translate.instant('igo.context.permission.scope.' + scope)\n }\n );\n const title = translate.instant(\n 'igo.context.permission.dialog.scopeChangedTitle'\n );\n this.messageService.success(message, title);\n });\n }\n\n constructor(\n @Self() component: ContextPermissionsComponent,\n private contextService: ContextService,\n private languageService: LanguageService,\n private messageService: MessageService,\n private cd: ChangeDetectorRef\n ) {\n this.component = component;\n }\n\n ngOnInit() {\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\n context => this.handleEditedContextChange(context)\n );\n }\n\n ngOnDestroy() {\n this.editedContext$$.unsubscribe();\n this.contextService.editedContext$.next(undefined);\n }\n\n private handleEditedContextChange(context: DetailedContext) {\n this.component.context = context;\n\n if (context) {\n this.contextService\n .getPermissions(context.id)\n .subscribe(permissionsArray => {\n permissionsArray = permissionsArray || [];\n const permissions = {\n read: permissionsArray.filter(p => {\n return p.typePermission.toString() === 'read';\n }),\n write: permissionsArray.filter(p => {\n return p.typePermission.toString() === 'write';\n })\n };\n return (this.component.permissions = permissions);\n });\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { take } from 'rxjs/operators';\n\nimport { MessageService, LanguageService } from '@igo2/core';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { ContextService } from '../../context-manager/shared/context.service';\nimport { BookmarkDialogComponent } from './bookmark-dialog.component';\n\n@Component({\n selector: 'igo-bookmark-button',\n templateUrl: './bookmark-button.component.html',\n styleUrls: ['./bookmark-button.component.scss']\n})\nexport class BookmarkButtonComponent {\n @Input()\n get map(): IgoMap {\n return this._map;\n }\n set map(value: IgoMap) {\n this._map = value;\n }\n private _map: IgoMap;\n\n @Input()\n get color(): string {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color: string;\n\n constructor(\n private dialog: MatDialog,\n private contextService: ContextService,\n private languageService: LanguageService,\n private messageService: MessageService\n ) {}\n\n createContext() {\n this.dialog\n .open(BookmarkDialogComponent, { disableClose: false })\n .afterClosed()\n .pipe(take(1))\n .subscribe(title => {\n if (title) {\n const context = this.contextService.getContextFromMap(this.map);\n context.title = title;\n this.contextService.create(context).subscribe(() => {\n const translate = this.languageService.translate;\n const titleD = translate.instant(\n 'igo.context.bookmarkButton.dialog.createTitle'\n );\n const message = translate.instant(\n 'igo.context.bookmarkButton.dialog.createMsg',\n {\n value: context.title\n }\n );\n this.messageService.success(message, titleD);\n this.contextService.loadContext(context.uri);\n });\n }\n });\n }\n}\n","<div class=\"igo-bookmark-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"createContext()\">\n <mat-icon svgIcon=\"star\"></mat-icon>\n </button>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-poi-dialog',\n templateUrl: './poi-dialog.component.html'\n})\nexport class PoiDialogComponent {\n public title: string;\n\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\n<div mat-dialog-content>\n <mat-form-field>\n <input matInput required autocomplete=\"off\"\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\n [(ngModel)]=\"title\">\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\">\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\n </button>\n <button mat-button\n (click)=\"dialogRef.close(false)\">\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, EMPTY } from 'rxjs';\n\nimport { ConfigService } from '@igo2/core';\nimport { Poi } from './poi.interface';\n\n@Injectable()\nexport class PoiService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, private config: ConfigService) {\n this.baseUrl = this.config.getConfig('context.url');\n }\n\n get(): Observable<Poi[]> {\n if (!this.baseUrl) {\n return EMPTY;\n }\n\n const url = this.baseUrl + '/pois';\n return this.http.get<Poi[]>(url);\n }\n\n delete(id: string): Observable<void> {\n const url = this.baseUrl + '/pois/' + id;\n return this.http.delete<void>(url);\n }\n\n create(context: Poi): Observable<Poi> {\n const url = this.baseUrl + '/pois';\n return this.http.post<Poi>(url, context);\n }\n}\n","<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\n floatPlaceholder=\"never\">\n\n <mat-option (click)=\"createPoi()\">\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' | translate }}</div>\n <button igoStopPropagation class=\"addPoi buttonPoi\"\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\">\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\n </button>\n </mat-option>\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\n <div class=\"titlePoi\">{{ poi.title }}</div>\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\n mat-icon-button\n color=\"warn\"\n (click)=\"deletePoi(poi)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </mat-option>\n</mat-select>\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport * as olproj from 'ol/proj';\nimport * as oleasing from 'ol/easing';\nimport olPoint from 'ol/geom/Point';\n\nimport { MessageService, LanguageService } from '@igo2/core';\nimport { ConfirmDialogService } from '@igo2/common';\nimport { AuthService } from '@igo2/auth';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { PoiService } from './shared/poi.service';\nimport { Poi } from './shared/poi.interface';\nimport { PoiDialogComponent } from './poi-dialog.component';\n\n@Component({\n selector: 'igo-poi-button',\n templateUrl: './poi-button.component.html',\n styleUrls: ['./poi-button.component.scss']\n})\nexport class PoiButtonComponent implements OnInit, OnDestroy {\n @Input()\n get map(): IgoMap {\n return this._map;\n }\n set map(value: IgoMap) {\n this._map = value;\n }\n private _map: IgoMap;\n\n @Input()\n get color(): string {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color: string;\n\n public pois: Poi[];\n private authenticate$$: Subscription;\n\n constructor(\n private dialog: MatDialog,\n private authService: AuthService,\n private poiService: PoiService,\n private messageService: MessageService,\n private languageService: LanguageService,\n private confirmDialogService: ConfirmDialogService\n ) {}\n\n ngOnInit() {\n this.authenticate$$ = this.authService.authenticate$.subscribe(auth => {\n if (auth) {\n this.getPois();\n }\n });\n }\n\n ngOnDestroy() {\n this.authenticate$$.unsubscribe();\n }\n\n deletePoi(poi: Poi) {\n if (poi && poi.id) {\n const translate = this.languageService.translate;\n this.confirmDialogService\n .open(translate.instant('igo.context.poiButton.dialog.confirmDelete'))\n .subscribe(confirm => {\n if (confirm) {\n this.poiService.delete(poi.id).subscribe(\n () => {\n const title = translate.instant(\n 'igo.context.poiButton.dialog.deleteTitle'\n );\n const message = translate.instant(\n 'igo.context.poiButton.dialog.deleteMsg',\n {\n value: poi.title\n }\n );\n this.messageService.info(message, title);\n this.pois = this.pois.filter(p => p.id !== poi.id);\n },\n err => {\n err.error.title = 'DELETE Pois';\n this.messageService.showError(err);\n }\n );\n }\n });\n }\n }\n\n private getPois() {\n this.poiService.get().pipe(take(1)).subscribe(\n rep => {\n this.pois = rep;\n },\n err => {\n err.error.title = 'GET Pois';\n this.messageService.showError(err);\n }\n );\n }\n\n createPoi() {\n const view = this.map.ol.getView();\n const proj = view.getProjection().getCode();\n const center: any = new olPoint(view.getCenter()).transform(\n proj,\n 'EPSG:4326'\n );\n\n const poi: Poi = {\n title: '',\n x: center.getCoordinates()[0],\n y: center.getCoordinates()[1],\n zoom: view.getZoom()\n };\n\n this.dialog\n .open(PoiDialogComponent, { disableClose: false })\n .afterClosed()\n .subscribe(title => {\n if (title) {\n poi.title = title;\n this.poiService.create(poi).subscribe(\n newPoi => {\n const translate = this.languageService.translate;\n const titleD = translate.instant(\n 'igo.context.poiButton.dialog.createTitle'\n );\n const message = translate.instant(\n 'igo.context.poiButton.dialog.createMsg',\n {\n value: poi.title\n }\n );\n this.messageService.success(message, titleD);\n poi.id = newPoi.id;\n this.pois.push(poi);\n },\n err => {\n err.error.title = 'POST Pois';\n this.messageService.showError(err);\n }\n );\n }\n });\n }\n\n zoomOnPoi(id) {\n const poi = this.pois.find(p => p.id === id);\n\n const center = olproj.fromLonLat(\n [Number(poi.x), Number(poi.y)],\n this.map.projection\n );\n\n this.map.ol.getView().animate({\n center,\n zoom: poi.zoom,\n duration: 500,\n easing: oleasing.easeOut\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { StorageService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\n\n@Component({\n selector: 'igo-user-dialog',\n templateUrl: './user-dialog.component.html'\n})\nexport class UserDialogComponent {\n public user;\n public exp;\n\n constructor(\n public dialogRef: MatDialogRef<UserDialogComponent>,\n private auth: AuthService,\n private storageService: StorageService\n ) {\n const decodeToken = this.auth.decodeToken();\n this.user = decodeToken.user;\n this.exp = new Date(decodeToken.exp * 1000).toLocaleString();\n }\n\n clearPreferences() {\n this.storageService.clear();\n }\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</p>\n <p>{{'igo.context.userButton.dialog.expiration' | translate}}: {{exp}}</p>\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\n {{'igo.context.userButton.dialog.clearPreferences' | translate}}\n </button>\n <br>\n</div>\n<div mat-dialog-actions style=\"justify-content: center\">\n <button mat-raised-button color=\"primary\"\n (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function userButtonSlideInOut(): AnimationTriggerMetadata {\n return trigger('userButtonState', [\n state(\n 'collapse',\n style({\n width: '0',\n overflow: 'hidden',\n display: 'none'\n })\n ),\n state(\n 'expand',\n style({\n overflow: 'hidden',\n display: 'display'\n })\n ),\n transition('collapse => expand', animate('200ms')),\n transition('expand => collapse', animate('200ms'))\n ]);\n}\n","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\n <div class=\"igo-user-button-more-container\" [@userButtonState]=\"expand ? 'expand' : 'collapse'\">\n\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"infoUser()\">\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"logout()\">\n <mat-icon svgIcon=\"power\"></mat-icon>\n </button>\n\n </div>\n\n <button\n mat-icon-button\n [color]=\"auth.authenticated ? color : 'warn'\"\n (click)=\"accountClick()\">\n <mat-icon svgIcon=\"account-box\"></mat-icon>\n </button>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { ConfigService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { UserDialogComponent } from './user-dialog.component';\nimport { userButtonSlideInOut } from './user-button.animation';\n\n@Component({\n selector: 'igo-user-button',\n templateUrl: './user-button.component.html',\n styleUrls: ['./user-button.component.scss'],\n animations: [userButtonSlideInOut()]\n})\nexport class UserButtonComponent {\n @Input()\n get map(): IgoMap {\n return this._map;\n }\n set map(value: IgoMap) {\n this._map = value;\n }\n private _map: IgoMap;\n\n @Input()\n get color(): string {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color: string;\n\n public expand = false;\n public visible = false;\n public hasApi = false;\n\n constructor(\n private dialog: MatDialog,\n private config: ConfigService,\n public auth: AuthService\n ) {\n this.visible = this.config.getConfig('auth') ? true : false;\n this.hasApi = this.config.getConfig('context.url') !== undefined;\n }\n\n accountClick() {\n if (this.auth.authenticated) {\n this.expand = !this.expand;\n } else {\n this.auth.logout();\n }\n }\n\n logout() {\n this.expand = false;\n this.auth.logout();\n }\n\n infoUser() {\n this.dialog.open(UserDialogComponent, { disableClose: false });\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\nimport { IgoAuthModule } from '@igo2/auth';\n\nimport { BookmarkButtonComponent } from './bookmark-button/bookmark-button.component';\nimport { BookmarkDialogComponent } from './bookmark-button/bookmark-dialog.component';\nimport { PoiButtonComponent } from './poi-button/poi-button.component';\nimport { PoiDialogComponent } from './poi-button/poi-dialog.component';\nimport { PoiService } from './poi-button/shared/poi.service';\nimport { UserDialogComponent } from './user-button/user-dialog.component';\nimport { UserButtonComponent } from './user-button/user-button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoLanguageModule,\n IgoConfirmDialogModule,\n IgoStopPropagationModule,\n IgoAuthModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n MatOptionModule,\n MatTooltipModule,\n MatFormFieldModule,\n MatDialogModule,\n MatInputModule\n ],\n exports: [BookmarkButtonComponent, PoiButtonComponent, UserButtonComponent, BookmarkDialogComponent],\n declarations: [\n BookmarkButtonComponent,\n BookmarkDialogComponent,\n PoiButtonComponent,\n PoiDialogComponent,\n UserButtonComponent,\n UserDialogComponent\n ],\n providers: [PoiService]\n})\nexport class IgoContextMapButtonModule {\n static forRoot(): ModuleWithProviders<IgoContextMapButtonModule> {\n return {\n ngModule: IgoContextMapButtonModule\n };\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoAuthModule } from '@igo2/auth';\nimport { IgoLanguageModule } from '@igo2/core';\nimport {\n IgoListModule,\n IgoKeyValueModule,\n IgoCollapsibleModule,\n IgoStopPropagationModule,\n IgoActionbarModule\n} from '@igo2/common';\n\nimport { MapContextDirective } from './shared/map-context.directive';\nimport { LayerContextDirective } from './shared/layer-context.directive';\nimport { ContextListComponent } from './context-list/context-list.component';\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\nimport { ContextItemComponent } from './context-item/context-item.component';\nimport { ContextFormComponent } from './context-form/context-form.component';\nimport { ContextEditComponent } from './context-edit/context-edit.component';\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\n\nconst CONTEXT_DIRECTIVES = [\n MapContextDirective,\n LayerContextDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatCheckboxModule,\n MatRadioModule,\n MatDialogModule,\n MatMenuModule,\n MatOptionModule,\n MatAutocompleteModule,\n IgoAuthModule,\n IgoListModule,\n IgoKeyValueModule,\n IgoCollapsibleModule,\n IgoStopPropagationModule,\n IgoLanguageModule,\n IgoContextImportExportModule,\n IgoContextMapButtonModule,\n IgoActionbarModule\n ],\n exports: [\n ContextListComponent,\n ContextListBindingDirective,\n ContextItemComponent,\n ContextFormComponent,\n ContextEditComponent,\n ContextEditBindingDirective,\n ContextPermissionsComponent,\n ContextPermissionsBindingDirective,\n\n ...CONTEXT_DIRECTIVES\n ],\n declarations: [\n ContextListComponent,\n ContextListBindingDirective,\n ContextItemComponent,\n ContextFormComponent,\n ContextEditComponent,\n ContextEditBindingDirective,\n ContextPermissionsComponent,\n ContextPermissionsBindingDirective,\n\n ...CONTEXT_DIRECTIVES\n ]\n})\nexport class IgoContextManagerModule {\n static forRoot(): ModuleWithProviders<IgoContextManagerModule> {\n return {\n ngModule: IgoContextManagerModule\n };\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { RouteService, MessageService } from '@igo2/core';\nimport { Layer, WMSDataSourceOptions } from '@igo2/geo';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\nimport { ContextService } from '../../context-manager/shared/context.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ShareMapService {\n\n constructor(\n private contextService: ContextService,\n private messageService: MessageService,\n @Optional() private route: RouteService\n ) {}\n\n getUrlWithApi(formValues) {\n return `${location.origin + location.pathname}?context=${formValues.uri}`;\n }\n\n createContextShared(map: IgoMap, formValues) {\n const context = this.contextService.getContextFromMap(map);\n context.scope = 'public';\n context.title = formValues.title;\n context.uri = formValues.uri;\n return this.contextService.create(context);\n }\n\n updateContextShared(map: IgoMap, formValues, id: string) {\n const context = this.contextService.getContextFromMap(map);\n return this.contextService.update(id, {\n title: formValues.title,\n map: context.map\n } as DetailedContext);\n }\n\n getUrlWithoutApi(map: IgoMap, publicShareOption) {\n if (\n !this.route ||\n !this.route.options.visibleOnLayersKey ||\n !this.route.options.visibleOffLayersKey ||\n !map.viewController.getZoom()\n ) {\n return;\n }\n const llc = publicShareOption.layerlistControls.querystring;\n\n let visibleKey = this.route.options.visibleOnLayersKey;\n let invisibleKey = this.route.options.visibleOffLayersKey;\n const layers = map.layers;\n\n const visibleLayers = layers.filter(lay => lay.visible && lay.id !== 'searchPointerSummaryId');\n const invisibleLayers = layers.filter(lay => !lay.visible && lay.id !== 'searchPointerSummaryId');\n\n if (visibleLayers.length === 0) {\n visibleKey = '';\n }\n if (invisibleLayers.length === 0) {\n invisibleKey = '';\n }\n\n let layersUrl = '';\n let layersToLoop = [];\n if (visibleLayers.length > invisibleLayers.length) {\n layersUrl = `${visibleKey}=*&${invisibleKey}=`;\n layersToLoop = invisibleLayers;\n } else {\n layersUrl = `${invisibleKey}=*&${visibleKey}=`;\n layersToLoop = visibleLayers;\n }\n\n for (const layer of layersToLoop) {\n if (layer.id) {\n layersUrl += layer.id + ',';\n }\n }\n const contextLayersID = [];\n const contextLayers = this.contextService.context$.value.layers;\n for (const contextLayer of contextLayers) {\n if ( typeof contextLayer.id !== 'undefined' || typeof contextLayer.source !== 'undefined' ) {\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\n }\n }\n\n const addedLayersQueryParamsWms = this.makeLayersByService(layers, contextLayersID, 'wms');\n const addedLayersQueryParamsWmts = this.makeLayersByService(layers, contextLayersID, 'wmts');\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(layers, contextLayersID, 'arcgisrest');\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(layers, contextLayersID, 'imagearcgisrest');\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(layers, contextLayersID, 'tilearcgisrest');\n\n layersUrl = layersUrl.substr(0, layersUrl.length - 1);\n\n const zoomKey = this.route.options.zoomKey;\n const centerKey = this.route.options.centerKey;\n const contextKey = this.route.options.contextKey;\n\n const zoom = `${zoomKey}=${map.viewController.getZoom()}`;\n const arrayCenter = map.viewController.getCenter('EPSG:4326') || [];\n const long = arrayCenter[0].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\n const lat = arrayCenter[1].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\n const center = `${centerKey}=${long},${lat}`.replace(/.00000/g, '');\n let context = '';\n if (this.contextService.context$.value) {\n context = `${contextKey}=${this.contextService.context$.value.uri}`;\n }\n\n let url = `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}`;\n\n for (let i = 0; i < 5; i++) {\n url = url.replace(/&&/g, '&');\n url = url.endsWith('&') ? url.slice(0, -1) : url;\n }\n url = url.endsWith('&') ? url.slice(0, -1) : url;\n url = url.replace('?&wm', '&wm');\n url = url.replace('?&', '?');\n\n return url;\n }\n\n private makeLayersByService(layers: Layer[], contextLayersID: any[], typeService: string): string {\n\n const addedLayersByService = [];\n for (const layer of layers.filter(l => l.dataSource.options?.type === typeService)) {\n if (contextLayersID.indexOf(layer.id) === -1) {\n let linkUrl = encodeURIComponent((layer.dataSource.options as any).url);\n let addedLayer = '';\n let layerVersion: string;\n switch (layer.dataSource.options.type.toLowerCase()) {\n case 'wms':\n const datasourceOptions = layer.dataSource.options as WMSDataSourceOptions;\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\n layerVersion = datasourceOptions.params.VERSION === '1.3.0' ? layerVersion : datasourceOptions.params.VERSION;\n break;\n case 'wmts':\n case 'arcgisrest':\n case 'imagearcgisrest':\n case 'tilearcgisrest':\n addedLayer = encodeURIComponent((layer.dataSource.options as any).layer);\n break;\n }\n const addedLayerPosition = `${addedLayer}:igoz${layer.zIndex}`;\n\n let version = '';\n if (layerVersion) {\n const operator = (layer.dataSource.options as any).url.indexOf('?') === -1 ? '?' : '&';\n version = encodeURIComponent(`${operator}VERSION=${layerVersion}`);\n }\n linkUrl = `${linkUrl}${version}`;\n\n if (\n !addedLayersByService.find(definedUrl => definedUrl.url === linkUrl)\n ) {\n addedLayersByService.push({\n url: linkUrl,\n layers: [addedLayerPosition]\n });\n } else {\n addedLayersByService.forEach(service => {\n if (service.url === linkUrl) {\n service.layers.push(addedLayerPosition);\n }\n });\n }\n }\n }\n\n let addedLayersQueryParams = '';\n if (addedLayersByService.length >= 1) {\n let linkUrlKey;\n let layersKey;\n /*\n const linkUrlKey = (typeService === 'wms') ? this.route.options.wmsUrlKey :\n (typeService === 'wmts') ? this.route.options.wmtsUrlKey : '' ;\n const layersKey = (typeService === 'wms') ? this.route.options.wmsLayersKey :\n (typeService === 'wmts') ? this.route.options.wmtsLayersKey : '' ;\n*/\n switch (typeService.toLowerCase()) {\n case 'wms':\n linkUrlKey = this.route.options.wmsUrlKey;\n layersKey = this.route.options.wmsLayersKey;\n break;\n case 'wmts':\n linkUrlKey = this.route.options.wmtsUrlKey;\n layersKey = this.route.options.wmtsLayersKey;\n break;\n case 'arcgisrest':\n linkUrlKey = this.route.options.arcgisUrlKey;\n layersKey = this.route.options.arcgisLayersKey;\n break;\n case 'imagearcgisrest':\n linkUrlKey = this.route.options.iarcgisUrlKey;\n layersKey = this.route.options.iarcgisLayersKey;\n break;\n case 'tilearcgisrest':\n linkUrlKey = this.route.options.tarcgisUrlKey;\n layersKey = this.route.options.tarcgisLayersKey;\n break;\n default:\n linkUrlKey = '';\n layersKey = '';\n }\n\n let linkUrlQueryParams = '';\n let layersQueryParams = '';\n addedLayersByService.forEach(service => {\n linkUrlQueryParams += `${service.url},`;\n layersQueryParams += `(${service.layers.join(',')}),`;\n });\n linkUrlQueryParams = linkUrlQueryParams.endsWith(',')\n ? linkUrlQueryParams.slice(0, -1)\n : linkUrlQueryParams;\n layersQueryParams = layersQueryParams.endsWith(',')\n ? layersQueryParams.slice(0, -1)\n : layersQueryParams;\n addedLayersQueryParams = `${linkUrlKey}=${linkUrlQueryParams}&${layersKey}=${layersQueryParams}`;\n }\n\n return addedLayersQueryParams;\n }\n}\n","<form class=\"igo-form\" [formGroup]=\"form\"\n (ngSubmit)=\"createUrl(form.value)\">\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input matInput required\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\n formControlName=\"title\">\n <mat-error>\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div id=\"uriInput\" class=\"igo-input-container\">\n <mat-form-field>\n <span *ngIf=\"userId\" class=\"prefix\">{{userId}}-</span>\n <span class=\"fieldWrapper\">\n <input matInput required\n [readonly]=\"!userId\"\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\n formControlName=\"uri\">\n </span>\n <mat-error>\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group\">\n <button *ngIf=\"!url\"\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid\">\n {{ 'igo.context.shareMap.button' | translate }}\n </button>\n <button *ngIf=\"url\"\n mat-raised-button\n type=\"button\"\n (click)=\"updateContextShared(form.value)\">\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\n </button>\n </div>\n</form>\n\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\n <mat-form-field>\n <textarea #textArea matInput readonly rows=\"3\"\n class=\"textAreaWithButton\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"></textarea>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\n color=\"primary\"\n (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n </mat-form-field>\n<div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { uuid, Clipboard } from '@igo2/utils';\nimport { MessageService, LanguageService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { ShareMapService } from '../shared/share-map.service';\n\n@Component({\n selector: 'igo-share-map-api',\n templateUrl: './share-map-api.component.html',\n styleUrls: ['./share-map-api.component.scss']\n})\nexport class ShareMapApiComponent implements OnInit {\n public form: FormGroup;\n\n @Input() map: IgoMap;\n\n public url: string;\n public userId: string;\n public idContextShared: string;\n\n constructor(\n private languageService: LanguageService,\n private messageService: MessageService,\n private auth: AuthService,\n private shareMapService: ShareMapService,\n private formBuilder: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.auth.authenticate$.subscribe(auth => {\n const decodeToken = this.auth.decodeToken();\n this.userId = decodeToken.user ? decodeToken.user.id : undefined;\n this.buildForm();\n });\n }\n\n createUrl(values: any = {}) {\n const inputs = Object.assign({}, values);\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\n this.url = this.shareMapService.getUrlWithApi(inputs);\n this.shareMapService.createContextShared(this.map, inputs).subscribe(\n rep => {\n this.idContextShared = rep.id;\n const title = this.languageService.translate.instant(\n 'igo.context.contextManager.dialog.saveTitle'\n );\n const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {\n value: inputs.title\n });\n this.messageService.success(msg, title);\n },\n err => {\n err.error.title = this.languageService.translate.instant(\n 'igo.context.shareMap.errorTitle'\n );\n this.messageService.showError(err);\n }\n );\n }\n\n updateContextShared(values: any = {}) {\n const inputs = Object.assign({}, values);\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\n this.shareMapService.updateContextShared(this.map, inputs, this.idContextShared).subscribe(\n rep => {\n const title = this.languageService.translate.instant(\n 'igo.context.contextManager.dialog.saveTitle'\n );\n const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {\n value: inputs.title\n });\n this.messageService.success(msg, title);\n },\n err => {\n err.error.title = this.languageService.translate.instant(\n 'igo.context.shareMap.errorTitle'\n );\n this.messageService.showError(err);\n }\n );\n }\n\n copyTextToClipboard(textArea) {\n const successful = Clipboard.copy(textArea);\n if (successful) {\n const translate = this.languageService.translate;\n const title = translate.instant(\n 'igo.context.shareMap.dialog.copyTitle'\n );\n const msg = translate.instant('igo.context.shareMap.dialog.copyMsg');\n this.messageService.success(msg, title);\n }\n }\n\n buildForm(): void {\n this.url = undefined;\n const id = uuid();\n let title = 'Partage ';\n title += this.userId ? `(${this.userId}-${id})` : `(${id})`;\n this.form = this.formBuilder.group({\n title: [title],\n uri: [id]\n });\n }\n}\n","<div class=\"igo-input-container linkToShare\">\n <mat-form-field>\n <textarea #textArea matInput readonly rows=\"3\"\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\n [value]=\"url\"></textarea>\n </mat-form-field>\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n (click)=\"copyTextToClipboard(textArea)\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n {{ 'igo.context.shareMap.copy' | translate }}\n </button>\n </div>\n <div>\n <br/>\n <section class=\"mat-typography\">\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\n <ul>\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\n </ul>\n\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\n <ul>\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\n </ul>\n </section>\n </div>\n</div>\n","import { AfterViewInit, Component, Input, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\n\nimport { Clipboard } from '@igo2/utils';\nimport { MessageService, LanguageService } from '@igo2/core';\nimport type { IgoMap } from '@igo2/geo';\n\nimport { ShareMapService } from '../shared/share-map.service';\nimport { combineLatest, Subscription } from 'rxjs';\n\n@Component({\n selector: 'igo-share-map-url',\n templateUrl: './share-map-url.component.html',\n styleUrls: ['./share-map-url.component.scss']\n})\nexport class ShareMapUrlComponent implements AfterViewInit, OnInit, OnDestroy {\n private mapState$$: Subscription;\n\n @Input() map: IgoMap;\n\n public url: string;\n public publicShareOption = {\n layerlistControls: { querystring: '' }\n };\n\n constructor(\n private languageService: LanguageService,\n private messageService: MessageService,\n private shareMapService: ShareMapService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.resetUrl();\n this.mapState$$ = combineLatest([\n this.map.viewController.state$,\n this.map.status$]).subscribe(c => {\n this.resetUrl();\n this.cdRef.detectChanges();\n });\n }\n\n ngAfterViewInit(): void {\n this.resetUrl();\n }\n\n ngOnDestroy(): void {\n this.mapState$$.unsubscribe();\n }\n\n resetUrl(values: any = {}) {\n this.url = this.shareMapService.getUrlWithoutApi(this.map, this.publicShareOption);\n }\n\n copyTextToClipboard(textArea) {\n const successful = Clipboard.copy(textArea);\n if (successful) {\n const translate = this.languageService.translate;\n const title = translate.instant(\n 'igo.context.shareMap.dialog.copyTitle'\n );\n const msg = translate.instant('igo.context.shareMap.dialog.copyMsg');\n this.messageService.success(msg, title);\n }\n }\n}\n","<mat-tab-group *ngIf=\"hasApi\" >\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\n </mat-tab>\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\n </mat-tab>\n</mat-tab-group>\n\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\n","import { Component, Input } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core';\nimport type { IgoMap } from '@igo2/geo';\n\n@Component({\n selector: 'igo-share-map',\n templateUrl: './share-map.component.html',\n styleUrls: ['./share-map.component.scss']\n})\nexport class ShareMapComponent {\n\n @Input() map: IgoMap;\n\n public hasApi = false;\n\n constructor(\n private config: ConfigService\n ) {\n this.hasApi = this.config.getConfig('context.url') ? true : false;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ShareMapComponent } from './share-map/share-map.component';\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatIconModule,\n MatTooltipModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n IgoLanguageModule\n ],\n exports: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent],\n declarations: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent]\n})\nexport class IgoShareMapModule {\n static forRoot(): ModuleWithProviders<IgoShareMapModule> {\n return {\n ngModule: IgoShareMapModule\n };\n }\n}\n","<mat-sidenav\n #sidenav\n igoSidenavShim\n mode=\"side\"\n [opened]=\"opened\">\n\n <div class=\"igo-sidenav-content\">\n\n <igo-flexible\n #topPanel\n initial=\"50%\" initialMobile=\"100%\"\n expanded=\"calc(100% - 58px)\"\n [state]=\"topPanelState\">\n\n <div class=\"igo-content\">\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\n <button\n mat-icon-button\n panelLeftButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\n *ngIf=\"tool\">\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n panelRightButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n *ngIf=\"tool\">\n <mat-icon svgIcon=\"menu\"></mat-icon>\n </button>\n\n </igo-panel>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature && media !== 'mobile'\">\n\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\">\n <mat-icon [svgIcon]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n (click)=\"zoomToFeatureExtent()\"\n *ngIf=\"feature.geometry\">\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\n </button>\n\n <igo-feature-details\n [feature]=\"feature\"\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\">\n </igo-feature-details>\n </igo-panel>\n </div>\n\n </igo-flexible>\n\n </div>\n</mat-sidenav>\n","import { Component, Input } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport type { Media } from '@igo2/core';\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\nimport { Feature, FeatureMotion, moveToOlFeatures } from '@igo2/geo';\nimport type { IgoMap } from '@igo2/geo';\n\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\n\n@Component({\n selector: 'igo-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.scss']\n})\nexport class SidenavComponent {\n private format = new olFormatGeoJSON();\n @Input()\n get map(): IgoMap {\n return this._map;\n }\n set map(value: IgoMap) {\n this._map = value;\n }\n private _map: IgoMap;\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: boolean) {\n this._opened = value;\n }\n private _opened: boolean;\n\n @Input()\n get feature(): Feature {\n return this._feature;\n }\n set feature(value: Feature) {\n this._feature = value;\n }\n private _feature: Feature;\n\n @Input()\n get tool(): Tool {\n return this._tool;\n }\n set tool(value: Tool) {\n this._tool = value;\n }\n private _tool: Tool;\n\n @Input()\n get media(): Media {\n return this._media;\n }\n set media(value: Media) {\n this._media = value;\n }\n private _media: Media;\n\n @Input()\n get title(): string {\n return this._title;\n }\n set title(value: string) {\n if (value) {\n this._title = value;\n }\n }\n private _title: string = this.titleService.getTitle();\n\n public topPanelState: FlexibleState = 'initial';\n\n get featureTitle(): string {\n return this.feature ? getEntityTitle(this.feature) : undefined;\n }\n\n constructor(public titleService: Title) {}\n\n zoomToFeatureExtent() {\n if (this.feature.geometry) {\n const olFeature = this.format.readFeature(this.feature, {\n dataProjection: this.feature.projection,\n featureProjection: this.map.projection\n });\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\n }\n }\n\n toggleTopPanel() {\n if (this.topPanelState === 'initial') {\n this.topPanelState = 'expanded';\n } else {\n this.topPanelState = 'initial';\n }\n }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoPanelModule, IgoFlexibleModule } from '@igo2/common';\nimport { IgoFeatureModule } from '@igo2/geo';\n\nimport { IgoContextManagerModule } from '../context-manager/context-manager.module';\nimport { SidenavComponent } from './sidenav.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatSidenavModule,\n MatTooltipModule,\n IgoLanguageModule,\n IgoPanelModule,\n IgoFlexibleModule,\n IgoFeatureModule,\n IgoContextManagerModule\n ],\n exports: [SidenavComponent],\n declarations: [SidenavComponent]\n})\nexport class IgoSidenavModule {\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\n return {\n ngModule: IgoSidenavModule\n };\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { IgoContextImportExportModule } from './context-import-export/context-import-export.module';\nimport { IgoContextManagerModule } from './context-manager/context-manager.module';\nimport { IgoContextMapButtonModule } from './context-map-button/context-map-button.module';\nimport { IgoShareMapModule } from './share-map/share-map.module';\nimport { IgoSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n imports: [MatInputModule, MatFormFieldModule, MatMenuModule],\n declarations: [],\n exports: [\n IgoContextImportExportModule,\n IgoContextManagerModule,\n IgoContextMapButtonModule,\n IgoShareMapModule,\n IgoSidenavModule\n ]\n})\nexport class IgoContextModule {\n static forRoot(): ModuleWithProviders<IgoContextModule> {\n return {\n ngModule: IgoContextModule,\n providers: []\n };\n }\n}\n","/*\n * Public API Surface of context\n */\n\nexport * from './lib/context.module';\nexport * from './lib/context-import-export/context-import-export.module';\nexport * from './lib/context-manager/context-manager.module';\nexport * from './lib/context-map-button/context-map-button.module';\nexport * from './lib/share-map/share-map.module';\nexport * from './lib/sidenav/sidenav.module';\n\nexport * from './lib/context-import-export';\nexport * from './lib/context-manager';\nexport * from './lib/context-map-button';\nexport * from './lib/share-map';\nexport * from './lib/sidenav';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["olStyle","FeatureDataSource","VectorLayer","ClusterDataSource","Observable","Injectable","downloadContent","TypePermission","Scope","BehaviorSubject","Subject","skip","first","catchError","tap","of","map","mergeMap","ObjectUtils","debounceTime","olPoint","uuid","olVectorSource","GeoJSON","Cluster","Optional","i0","take","Validators","Component","Input","FormsModule","ReactiveFormsModule","CommonModule","MatButtonModule","MatButtonToggleModule","MatDividerModule","MatTabsModule","MatSelectModule","MatOptionModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","IgoLanguageModule","IgoSpinnerModule","MatTooltipModule","NgModule","filter","Directive","merge","buffer","EventEmitter","ChangeDetectionStrategy","Output","ReplaySubject","ActionStore","ActionbarMode","debounce","EMPTY","timer","Self","HostListener","Clipboard","FormControl","olproj","oleasing","trigger","state","style","transition","animate","IgoConfirmDialogModule","IgoStopPropagationModule","IgoAuthModule","MatIconModule","MatDialogModule","MatListModule","MatRadioModule","MatMenuModule","MatAutocompleteModule","IgoListModule","IgoKeyValueModule","IgoCollapsibleModule","IgoActionbarModule","combineLatest","olFormatGeoJSON","getEntityTitle","moveToOlFeatures","FeatureMotion","MatSidenavModule","IgoPanelModule","IgoFlexibleModule","IgoFeatureModule"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-context.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../packages/context/src/lib/context-import-export/shared/context-export.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.utils.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.errors.ts","../../../packages/context/src/lib/context-import-export/shared/context-import.service.ts","../../../packages/context/src/lib/context-import-export/shared/context-export.service.ts","../../../packages/context/src/lib/context-manager/shared/context.enum.ts","../../../packages/context/src/lib/context-manager/shared/context.service.ts","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.html","../../../packages/context/src/lib/context-import-export/context-import-export/context-import-export.component.ts","../../../packages/context/src/lib/context-import-export/context-import-export.module.ts","../../../packages/context/src/lib/context-manager/shared/map-context.directive.ts","../../../packages/context/src/lib/context-manager/shared/layer-context.directive.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.enum.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-dialog.component.html","../../../packages/context/src/lib/context-manager/context-item/context-item.component.html","../../../packages/context/src/lib/context-manager/context-item/context-item.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list.component.html","../../../packages/context/src/lib/context-manager/context-list/context-list.component.ts","../../../packages/context/src/lib/context-manager/context-list/context-list-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-form/context-form.component.html","../../../packages/context/src/lib/context-manager/context-form/context-form.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.html","../../../packages/context/src/lib/context-manager/context-edit/context-edit.component.ts","../../../packages/context/src/lib/context-manager/context-edit/context-edit-binding.directive.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.html","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions.component.ts","../../../packages/context/src/lib/context-manager/context-permissions/context-permissions-binding.directive.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.ts","../../../packages/context/src/lib/context-map-button/bookmark-button/bookmark-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-dialog.component.html","../../../packages/context/src/lib/context-map-button/poi-button/shared/poi.service.ts","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.html","../../../packages/context/src/lib/context-map-button/poi-button/poi-button.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.ts","../../../packages/context/src/lib/context-map-button/user-button/user-dialog.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.animation.ts","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.html","../../../packages/context/src/lib/context-map-button/user-button/user-button.component.ts","../../../packages/context/src/lib/context-map-button/context-map-button.module.ts","../../../packages/context/src/lib/context-manager/context-manager.module.ts","../../../packages/context/src/lib/share-map/shared/share-map.service.ts","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-api.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.html","../../../packages/context/src/lib/share-map/share-map/share-map-url.component.ts","../../../packages/context/src/lib/share-map/share-map/share-map.component.html","../../../packages/context/src/lib/share-map/share-map/share-map.component.ts","../../../packages/context/src/lib/share-map/share-map.module.ts","../../../packages/context/src/lib/sidenav/sidenav.component.html","../../../packages/context/src/lib/sidenav/sidenav.component.ts","../../../packages/context/src/lib/sidenav/sidenav.module.ts","../../../packages/context/src/lib/context.module.ts","../../../packages/context/src/public_api.ts","../../../packages/context/src/igo2-context.ts"],"sourcesContent":["/*! *****************************************************************************\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","export class ExportError extends Error {}\r\n\r\nexport class ExportInvalidFileError extends ExportError {\r\n constructor() {\r\n super('Invalid context');\r\n Object.setPrototypeOf(this, ExportInvalidFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ExportNothingToExportError extends ExportError {\r\n constructor() {\r\n super('Nothing to export');\r\n Object.setPrototypeOf(this, ExportNothingToExportError.prototype);\r\n }\r\n}\r\n","import { MessageService, LanguageService } from '@igo2/core';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\n\r\nexport function handleFileExportError(\r\n error: Error,\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n ) {\r\n if (error instanceof ExportNothingToExportError) {\r\n this.handleNothingToExportError(messageService, languageService);\r\n return;\r\n }\r\n const translate = languageService.translate;\r\n const title = translate.instant('igo.context.contextImportExport.export.failed.title');\r\n const message = translate.instant('igo.context.contextImportExport.export.failed.text');\r\n messageService.error(message, title);\r\n}\r\n\r\nexport function handleFileExportSuccess(\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n ) {\r\n const translate = languageService.translate;\r\n const title = translate.instant('igo.context.contextImportExport.export.success.title');\r\n const message = translate.instant('igo.context.contextImportExport.export.success.text');\r\n messageService.success(message, title);\r\n}\r\n\r\nexport function handleNothingToExportError(\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n ) {\r\n const translate = languageService.translate;\r\n const title = translate.instant('igo.context.contextImportExport.export.nothing.title');\r\n const message = translate.instant('igo.context.contextImportExport.export.nothing.text');\r\n messageService.error(message, title);\r\n}\r\n","import * as olStyle from 'ol/style';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport {\r\n FeatureDataSource,\r\n FeatureDataSourceOptions,\r\n IgoMap,\r\n VectorLayer,\r\n QueryableDataSourceOptions,\r\n StyleService,\r\n StyleListService,\r\n StyleByAttribute,\r\n ClusterParam,\r\n ClusterDataSourceOptions,\r\n ClusterDataSource\r\n} from '@igo2/geo';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport OlFeature from 'ol/Feature';\r\n\r\nexport function handleFileImportSuccess(\r\n file: File,\r\n context: DetailedContext,\r\n messageService: MessageService,\r\n languageService: LanguageService,\r\n contextService: ContextService\r\n) {\r\n if (Object.keys(context).length <= 0) {\r\n handleNothingToImportError(file, messageService, languageService);\r\n return;\r\n }\r\n\r\n const contextTitle = computeLayerTitleFromFile(file);\r\n\r\n addContextToContextList(context, contextTitle, contextService);\r\n\r\n const translate = languageService.translate;\r\n const messageTitle = translate.instant(\r\n 'igo.context.contextImportExport.import.success.title'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.contextImportExport.import.success.text',\r\n {\r\n value: contextTitle\r\n }\r\n );\r\n messageService.success(message, messageTitle);\r\n}\r\n\r\nexport function handleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n languageService: LanguageService,\r\n sizeMb?: number\r\n) {\r\n sizeMb = sizeMb ? sizeMb : 30;\r\n const errMapping = {\r\n 'Invalid file': handleInvalidFileImportError,\r\n 'File is too large': handleSizeFileImportError,\r\n 'Failed to read file': handleUnreadbleFileImportError\r\n };\r\n errMapping[error.message](\r\n file,\r\n error,\r\n messageService,\r\n languageService,\r\n sizeMb\r\n );\r\n}\r\n\r\nexport function handleInvalidFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n) {\r\n const translate = languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.contextImportExport.import.invalid.title'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.contextImportExport.import.invalid.text',\r\n {\r\n value: file.name,\r\n mimeType: file.type\r\n }\r\n );\r\n messageService.error(message, title);\r\n}\r\n\r\nexport function handleSizeFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n languageService: LanguageService,\r\n sizeMb: number\r\n) {\r\n const translate = languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.contextImportExport.import.tooLarge.title'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.contextImportExport.import.tooLarge.text',\r\n {\r\n value: file.name,\r\n size: sizeMb\r\n }\r\n );\r\n messageService.error(message, title);\r\n}\r\n\r\nexport function handleUnreadbleFileImportError(\r\n file: File,\r\n error: Error,\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n) {\r\n const translate = languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.contextImportExport.import.unreadable.title'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.contextImportExport.import.unreadable.text',\r\n {\r\n value: file.name\r\n }\r\n );\r\n messageService.error(message, title);\r\n}\r\n\r\nexport function handleNothingToImportError(\r\n file: File,\r\n messageService: MessageService,\r\n languageService: LanguageService\r\n) {\r\n const translate = languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.contextImportExport.import.empty.title'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.contextImportExport.import.empty.text',\r\n {\r\n value: file.name\r\n }\r\n );\r\n messageService.error(message, title);\r\n}\r\n\r\nexport function addContextToContextList(\r\n context: DetailedContext,\r\n contextTitle: string,\r\n contextService: ContextService\r\n) {\r\n context.title = contextTitle;\r\n context.imported = true;\r\n contextService.contexts$.value.ours.unshift(context);\r\n contextService.contexts$.next(contextService.contexts$.value);\r\n contextService.importedContext.unshift(context);\r\n contextService.loadContext(context.uri);\r\n}\r\n\r\nexport function getFileExtension(file: File): string {\r\n return file.name.split('.').pop().toLowerCase();\r\n}\r\n\r\nexport function computeLayerTitleFromFile(file: File): string {\r\n return file.name.substr(0, file.name.lastIndexOf('.'));\r\n}\r\n\r\nexport function addImportedFeaturesToMap(\r\n olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string\r\n): VectorLayer {\r\n const r = Math.floor(Math.random() * 255);\r\n const g = Math.floor(Math.random() * 255);\r\n const b = Math.floor(Math.random() * 255);\r\n const stroke = new olStyle.Stroke({\r\n color: [r, g, b, 1],\r\n width: 2\r\n });\r\n\r\n const fill = new olStyle.Fill({\r\n color: [r, g, b, 0.4]\r\n });\r\n const sourceOptions: FeatureDataSourceOptions & QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n const source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n const layer = new VectorLayer({\r\n title: layerTitle,\r\n source,\r\n style: new olStyle.Style({\r\n stroke,\r\n fill,\r\n image: new olStyle.Circle({\r\n radius: 5,\r\n stroke,\r\n fill\r\n })\r\n })\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n\r\nexport function addImportedFeaturesStyledToMap(\r\n olFeatures: OlFeature<OlGeometry>[],\r\n map: IgoMap,\r\n layerTitle: string,\r\n styleListService: StyleListService,\r\n styleService: StyleService\r\n): VectorLayer {\r\n let style;\r\n let distance: number;\r\n\r\n if (\r\n styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute')\r\n ) {\r\n const styleByAttribute: StyleByAttribute = styleListService.getStyleList(\r\n layerTitle.toString() + '.styleByAttribute'\r\n );\r\n\r\n style = (feature) => {\r\n return styleService.createStyleByAttribute(feature, styleByAttribute);\r\n };\r\n } else if (\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\r\n ) {\r\n const clusterParam: ClusterParam = styleListService.getStyleList(\r\n layerTitle.toString() + '.clusterParam'\r\n );\r\n distance = styleListService.getStyleList(\r\n layerTitle.toString() + '.distance'\r\n );\r\n\r\n const baseStyle = styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')\r\n );\r\n\r\n style = (feature) => {\r\n return styleService.createClusterStyle(feature, clusterParam, baseStyle);\r\n };\r\n } else if (styleListService.getStyleList(layerTitle.toString() + '.style')) {\r\n style = styleService.createStyle(\r\n styleListService.getStyleList(layerTitle.toString() + '.style')\r\n );\r\n } else {\r\n style = styleService.createStyle(\r\n styleListService.getStyleList('default.style')\r\n );\r\n }\r\n let source;\r\n\r\n if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {\r\n const sourceOptions: ClusterDataSourceOptions &\r\n QueryableDataSourceOptions = {\r\n distance,\r\n type: 'cluster',\r\n queryable: true\r\n };\r\n source = new ClusterDataSource(sourceOptions);\r\n source.ol.source.addFeatures(olFeatures);\r\n } else {\r\n const sourceOptions: FeatureDataSourceOptions &\r\n QueryableDataSourceOptions = {\r\n type: 'vector',\r\n queryable: true\r\n };\r\n source = new FeatureDataSource(sourceOptions);\r\n source.ol.addFeatures(olFeatures);\r\n }\r\n\r\n const layer = new VectorLayer({\r\n title: layerTitle,\r\n source,\r\n style\r\n });\r\n map.addLayer(layer);\r\n\r\n return layer;\r\n}\r\n","export class ImportError extends Error {}\r\n\r\nexport class ImportInvalidFileError extends ImportError {\r\n constructor() {\r\n super('Invalid file');\r\n Object.setPrototypeOf(this, ImportInvalidFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportUnreadableFileError extends ImportError {\r\n constructor() {\r\n super('Failed to read file');\r\n Object.setPrototypeOf(this, ImportUnreadableFileError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportNothingToImportError extends ImportError {\r\n constructor() {\r\n super('Nothing to import');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSizeError extends ImportError {\r\n constructor() {\r\n super('File is too large');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n\r\nexport class ImportSRSError extends ImportError {\r\n constructor() {\r\n super('Invalid SRS definition');\r\n Object.setPrototypeOf(this, ImportNothingToImportError.prototype);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n ImportInvalidFileError,\r\n ImportUnreadableFileError,\r\n ImportSizeError\r\n} from './context-import.errors';\r\nimport { getFileExtension } from './context-import.utils';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextImportService {\r\n static allowedMimeTypes = ['application/json'];\r\n\r\n static allowedExtensions = 'json';\r\n\r\n private clientSideFileSizeMax: number;\r\n\r\n constructor(private config: ConfigService) {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n }\r\n\r\n import(file: File): Observable<DetailedContext> {\r\n return this.importAsync(file);\r\n }\r\n\r\n private getFileImporter(\r\n file: File\r\n ): (\r\n file: File,\r\n observer: Observer<DetailedContext>,\r\n projectionIn: string,\r\n projectionOut: string\r\n ) => void {\r\n const extension = getFileExtension(file);\r\n const mimeType = file.type;\r\n const allowedMimeTypes = [...ContextImportService.allowedMimeTypes];\r\n const allowedExtensions = ContextImportService.allowedExtensions;\r\n\r\n if (\r\n allowedMimeTypes.indexOf(mimeType) < 0 &&\r\n allowedExtensions.indexOf(extension) < 0\r\n ) {\r\n return undefined;\r\n } else if (\r\n mimeType === 'application/json' ||\r\n extension === ContextImportService.allowedExtensions\r\n ) {\r\n return this.importFile;\r\n }\r\n return undefined;\r\n }\r\n\r\n private importAsync(file: File): Observable<DetailedContext> {\r\n const doImport = (observer: Observer<DetailedContext>) => {\r\n if (file.size >= this.clientSideFileSizeMax) {\r\n observer.error(new ImportSizeError());\r\n return;\r\n }\r\n const importer = this.getFileImporter(file);\r\n if (importer === undefined) {\r\n observer.error(new ImportInvalidFileError());\r\n return;\r\n }\r\n\r\n importer.call(this, file, observer);\r\n };\r\n\r\n return new Observable(doImport);\r\n }\r\n\r\n private importFile(file: File, observer: Observer<DetailedContext>) {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n try {\r\n const context = this.parseContextFromFile(file, event.target.result);\r\n observer.next(context);\r\n } catch (e) {\r\n observer.error(new ImportUnreadableFileError());\r\n }\r\n\r\n observer.complete();\r\n };\r\n\r\n reader.onerror = (evt) => {\r\n observer.error(new ImportUnreadableFileError());\r\n };\r\n\r\n reader.readAsText(file, 'UTF-8');\r\n }\r\n\r\n private parseContextFromFile(file: File, data: string): DetailedContext {\r\n const context: DetailedContext = JSON.parse(data);\r\n return context;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { downloadContent } from '@igo2/utils';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ExportNothingToExportError } from './context-export.errors';\r\nimport { Observer, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextExportService {\r\n\r\n export(res: DetailedContext): Observable<void> {\r\n return this.exportAsync(res);\r\n }\r\n\r\n protected exportAsync(res: DetailedContext): Observable<void> {\r\n const doExport = (observer: Observer<void>) => {\r\n const nothingToExport = this.nothingToExport(res);\r\n if (nothingToExport === true) {\r\n observer.error(new ExportNothingToExportError());\r\n return;\r\n }\r\n const contextJSON = JSON.stringify(res);\r\n downloadContent(contextJSON, 'text/json;charset=utf-8', `${res.uri}.json`);\r\n observer.complete();\r\n };\r\n return new Observable(doExport);\r\n }\r\n\r\n protected nothingToExport(res: DetailedContext): boolean {\r\n if (res.map === undefined) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","export enum TypePermission {\r\n null,\r\n read,\r\n write\r\n}\r\n\r\nexport enum Scope {\r\n public,\r\n protected,\r\n private\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n map,\r\n tap,\r\n catchError,\r\n debounceTime,\r\n mergeMap,\r\n first,\r\n skip\r\n} from 'rxjs/operators';\r\n\r\nimport olPoint from 'ol/geom/Point';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport Cluster from 'ol/source/Cluster';\r\nimport olVectorSource from 'ol/source/Vector';\r\n\r\nimport { Tool } from '@igo2/common';\r\nimport { uuid, ObjectUtils } from '@igo2/utils';\r\nimport {\r\n ConfigService,\r\n RouteService,\r\n Message,\r\n MessageService,\r\n LanguageService\r\n} from '@igo2/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap, Layer } from '@igo2/geo';\r\n\r\nimport { TypePermission } from './context.enum';\r\nimport {\r\n ContextsList,\r\n ContextServiceOptions,\r\n Context,\r\n DetailedContext,\r\n ContextMapView,\r\n ContextPermission,\r\n ContextProfils\r\n} from './context.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextService {\r\n public context$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public contexts$ = new BehaviorSubject<ContextsList>({ ours: [] });\r\n public defaultContextId$ = new BehaviorSubject<string>(undefined);\r\n public editedContext$ = new BehaviorSubject<DetailedContext>(undefined);\r\n public importedContext: Array<DetailedContext> = [];\r\n public toolsChanged$ = new Subject<DetailedContext>();\r\n private mapViewFromRoute: ContextMapView = {};\r\n private options: ContextServiceOptions;\r\n private baseUrl: string;\r\n\r\n // Until the ContextService is completely refactored, this is needed\r\n // to track the current tools\r\n private tools: Tool[];\r\n private toolbar: string[];\r\n\r\n get defaultContextUri(): string {\r\n return this._defaultContextUri || this.options.defaultContextUri;\r\n }\r\n set defaultContextUri(uri: string) {\r\n this._defaultContextUri = uri;\r\n }\r\n private _defaultContextUri: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private languageService: LanguageService,\r\n private config: ConfigService,\r\n private messageService: MessageService,\r\n @Optional() private route: RouteService\r\n ) {\r\n this.options = Object.assign(\r\n {\r\n basePath: 'contexts',\r\n contextListFile: '_contexts.json',\r\n defaultContextUri: '_default'\r\n },\r\n this.config.getConfig('context')\r\n );\r\n\r\n this.baseUrl = this.options.url;\r\n\r\n this.readParamsFromRoute();\r\n\r\n if (this.authService.hasAuthService) {\r\n this.authService.logged$.subscribe((logged) => {\r\n if (logged) {\r\n this.contexts$.pipe(skip(1), first()).subscribe((c) => {\r\n this.handleContextsChange();\r\n });\r\n this.loadContexts();\r\n }\r\n });\r\n } else {\r\n this.loadContexts();\r\n this.handleContextsChange(false);\r\n }\r\n }\r\n\r\n get(permissions?: string[], hidden?: boolean): Observable<ContextsList> {\r\n let url = this.baseUrl + '/contexts';\r\n if (permissions && this.authService.authenticated) {\r\n url += '?permission=' + permissions.join();\r\n if (hidden) {\r\n url += '&hidden=true';\r\n }\r\n }\r\n return this.http.get<ContextsList>(url);\r\n }\r\n\r\n getById(id: string): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.get<Context>(url);\r\n }\r\n\r\n getDetails(id: string): Observable<DetailedContext> {\r\n const url = `${this.baseUrl}/contexts/${id}/details`;\r\n return this.http.get<DetailedContext>(url).pipe(\r\n catchError((res) => {\r\n this.handleError(res, id);\r\n throw res;\r\n })\r\n );\r\n }\r\n\r\n getDefault(): Observable<DetailedContext> {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.get<DetailedContext>(url).pipe(\r\n tap((context) => {\r\n this.defaultContextId$.next(context.id);\r\n })\r\n );\r\n }\r\n\r\n getProfilByUser(): Observable<ContextProfils[]> {\r\n if (this.baseUrl) {\r\n const url = this.baseUrl + '/profils?';\r\n return this.http.get<ContextProfils[]>(url);\r\n }\r\n return of([]);\r\n }\r\n\r\n setDefault(id: string): Observable<any> {\r\n const url = this.baseUrl + '/contexts/default';\r\n return this.http.post(url, { defaultContextId: id });\r\n }\r\n\r\n hideContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/hide';\r\n return this.http.post(url, {});\r\n }\r\n\r\n showContext(id: string) {\r\n const url = this.baseUrl + '/contexts/' + id + '/show';\r\n return this.http.post(url, {});\r\n }\r\n\r\n delete(id: string, imported = false): Observable<void> {\r\n const contexts: ContextsList = { ours: [] };\r\n Object.keys(this.contexts$.value).forEach(\r\n (key) =>\r\n (contexts[key] = this.contexts$.value[key].filter((c) => c.id !== id))\r\n );\r\n\r\n if (imported) {\r\n this.importedContext = this.importedContext.filter((c) => c.id !== id);\r\n return of(this.contexts$.next(contexts));\r\n }\r\n\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.delete<void>(url).pipe(\r\n tap((res) => {\r\n this.contexts$.next(contexts);\r\n })\r\n );\r\n }\r\n\r\n create(context: DetailedContext): Observable<Context> {\r\n const url = this.baseUrl + '/contexts';\r\n return this.http.post<Context>(url, context).pipe(\r\n map((contextCreated) => {\r\n if (this.authService.authenticated) {\r\n contextCreated.permission = TypePermission[TypePermission.write];\r\n } else {\r\n contextCreated.permission = TypePermission[TypePermission.read];\r\n }\r\n this.contexts$.value.ours.unshift(contextCreated);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCreated;\r\n })\r\n );\r\n }\r\n\r\n clone(id: string, properties = {}): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id + '/clone';\r\n return this.http.post<Context>(url, properties).pipe(\r\n map((contextCloned) => {\r\n contextCloned.permission = TypePermission[TypePermission.write];\r\n this.contexts$.value.ours.unshift(contextCloned);\r\n this.contexts$.next(this.contexts$.value);\r\n return contextCloned;\r\n })\r\n );\r\n }\r\n\r\n update(id: string, context: Context): Observable<Context> {\r\n const url = this.baseUrl + '/contexts/' + id;\r\n return this.http.patch<Context>(url, context);\r\n }\r\n\r\n // =================================================================\r\n\r\n addToolAssociation(contextId: string, toolId: string): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools`;\r\n const association = {\r\n toolId\r\n };\r\n return this.http.post<void>(url, association);\r\n }\r\n\r\n deleteToolAssociation(contextId: string, toolId: string): Observable<any> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/tools/${toolId}`;\r\n return this.http.delete(url);\r\n }\r\n\r\n getPermissions(id: string): Observable<ContextPermission[]> {\r\n const url = this.baseUrl + '/contexts/' + id + '/permissions';\r\n return this.http.get<ContextPermission[]>(url);\r\n }\r\n\r\n addPermissionAssociation(\r\n contextId: string,\r\n profil: string,\r\n type: TypePermission\r\n ): Observable<ContextPermission[]> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions`;\r\n const association = {\r\n profil,\r\n typePermission: type\r\n };\r\n\r\n return this.http.post<ContextPermission[]>(url, association).pipe(\r\n catchError((res) => {\r\n this.handleError(res, undefined, true);\r\n throw [res]; // TODO Not sure about this.\r\n })\r\n );\r\n }\r\n\r\n deletePermissionAssociation(\r\n contextId: string,\r\n permissionId: string\r\n ): Observable<void> {\r\n const url = `${this.baseUrl}/contexts/${contextId}/permissions/${permissionId}`;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n // ======================================================================\r\n\r\n getLocalContexts(): Observable<ContextsList> {\r\n const url = this.getPath(this.options.contextListFile);\r\n return this.http.get<ContextsList>(url).pipe(\r\n map((res: any) => {\r\n return { ours: res };\r\n })\r\n );\r\n }\r\n\r\n getLocalContext(uri: string): Observable<DetailedContext> {\r\n const url = this.getPath(`${uri}.json`);\r\n return this.http.get<DetailedContext>(url).pipe(\r\n mergeMap((res) => {\r\n if (!res.base) {\r\n return of(res);\r\n }\r\n const urlBase = this.getPath(`${res.base}.json`);\r\n return this.http.get<DetailedContext>(urlBase).pipe(\r\n map((resBase: DetailedContext) => {\r\n const resMerge = res;\r\n resMerge.map = ObjectUtils.mergeDeep(resBase.map, res.map);\r\n resMerge.layers = (resBase.layers || [])\r\n .concat(res.layers || [])\r\n .reverse()\r\n .filter(\r\n (l, index, self) =>\r\n !l.id || self.findIndex((l2) => l2.id === l.id) === index\r\n )\r\n .reverse();\r\n resMerge.toolbar = res.toolbar || resBase.toolbar;\r\n resMerge.message = res.message || resBase.message;\r\n resMerge.messages = res.messages || resBase.messages;\r\n resMerge.tools = (res.tools || [])\r\n .concat(resBase.tools || [])\r\n .filter(\r\n (t, index, self) =>\r\n self.findIndex((t2) => t2.name === t.name) === index\r\n );\r\n return resMerge;\r\n }),\r\n catchError((err) => {\r\n this.handleError(err, uri);\r\n throw err;\r\n })\r\n );\r\n }),\r\n catchError((err2) => {\r\n this.handleError(err2, uri);\r\n throw err2;\r\n })\r\n );\r\n }\r\n\r\n loadContexts(permissions?: string[], hidden?: boolean) {\r\n let request;\r\n if (this.baseUrl) {\r\n request = this.get(permissions, hidden);\r\n } else {\r\n request = this.getLocalContexts();\r\n }\r\n request.subscribe((contexts) => {\r\n contexts.ours = this.importedContext.concat(contexts.ours);\r\n this.contexts$.next(contexts);\r\n });\r\n }\r\n\r\n loadDefaultContext() {\r\n const loadFct = (direct = false) => {\r\n if (!direct && this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe(\r\n (_context: DetailedContext) => {\r\n this.defaultContextUri = _context.uri;\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n () => {\r\n this.defaultContextId$.next(undefined);\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n );\r\n } else {\r\n this.loadContext(this.defaultContextUri);\r\n }\r\n };\r\n\r\n if (this.route && this.route.options.contextKey) {\r\n this.route.queryParams.pipe(debounceTime(100)).subscribe((params) => {\r\n const contextParam = params[this.route.options.contextKey as string];\r\n let direct = false;\r\n if (contextParam) {\r\n this.defaultContextUri = contextParam;\r\n direct = true;\r\n }\r\n loadFct(direct);\r\n });\r\n } else {\r\n loadFct();\r\n }\r\n }\r\n\r\n loadContext(uri: string) {\r\n const context = this.context$.value;\r\n\r\n if (context && context.uri === uri) {\r\n return;\r\n }\r\n\r\n this.getContextByUri(uri)\r\n .pipe(first())\r\n .subscribe(\r\n (_context: DetailedContext) => {\r\n this.addContextToList(_context);\r\n this.setContext(_context);\r\n },\r\n (err) => {\r\n if (uri !== this.options.defaultContextUri) {\r\n this.loadContext(this.options.defaultContextUri);\r\n }\r\n }\r\n );\r\n }\r\n\r\n setContext(context: DetailedContext) {\r\n this.handleContextMessage(context);\r\n const currentContext = this.context$.value;\r\n if (currentContext && context && context.id === currentContext.id) {\r\n if (context.map.view.keepCurrentView === undefined) {\r\n context.map.view.keepCurrentView = true;\r\n }\r\n this.context$.next(context);\r\n return;\r\n }\r\n\r\n if (!context.map) {\r\n context.map = { view: {} };\r\n }\r\n\r\n Object.assign(context.map.view, this.mapViewFromRoute);\r\n\r\n this.context$.next(context);\r\n }\r\n\r\n loadEditedContext(uri: string) {\r\n this.getContextByUri(uri).subscribe((_context: DetailedContext) => {\r\n this.setEditedContext(_context);\r\n });\r\n }\r\n\r\n setEditedContext(context: DetailedContext) {\r\n this.editedContext$.next(context);\r\n }\r\n\r\n getContextFromMap(igoMap: IgoMap, empty?: boolean): DetailedContext {\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context = {\r\n uri: uuid(),\r\n title: '',\r\n scope: 'private',\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj,\r\n maxZoomOnExtent: igoMap.viewController.maxZoomOnExtent\r\n }\r\n },\r\n layers: [],\r\n tools: []\r\n };\r\n\r\n let layers = [];\r\n if (empty === true) {\r\n layers = igoMap.layers$\r\n .getValue()\r\n .filter(\r\n (lay) =>\r\n lay.baseLayer === true ||\r\n lay.options.id === 'searchPointerSummaryId'\r\n )\r\n .sort((a, b) => a.zIndex - b.zIndex);\r\n } else {\r\n layers = igoMap.layers$.getValue().filter(lay => !lay.id.includes('WfsWorkspaceTableDest')).sort((a, b) => a.zIndex - b.zIndex);\r\n }\r\n\r\n let i = 0;\r\n for (const l of layers) {\r\n const layer: any = l;\r\n const opts = {\r\n id: layer.options.id ? String(layer.options.id) : undefined,\r\n layerOptions: {\r\n title: layer.options.title,\r\n zIndex: ++i,\r\n visible: layer.visible\r\n },\r\n sourceOptions: {\r\n type: layer.dataSource.options.type,\r\n params: layer.dataSource.options.params,\r\n url: layer.dataSource.options.url,\r\n queryable: layer.queryable\r\n }\r\n };\r\n if (opts.sourceOptions.type) {\r\n context.layers.push(opts);\r\n }\r\n }\r\n\r\n context.tools = this.tools.map((tool) => {\r\n return { id: String(tool.id), global: tool.global };\r\n });\r\n\r\n return context;\r\n }\r\n\r\n getContextFromLayers(\r\n igoMap: IgoMap,\r\n layers: Layer[],\r\n name: string\r\n ): DetailedContext {\r\n const currentContext = this.context$.getValue();\r\n const view = igoMap.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const context = {\r\n uri: name,\r\n title: name,\r\n map: {\r\n view: {\r\n center: center.getCoordinates(),\r\n zoom: view.getZoom(),\r\n projection: proj\r\n }\r\n },\r\n layers: [],\r\n toolbar: [],\r\n tools: [],\r\n extraFeatures: []\r\n };\r\n\r\n const currentLayers = igoMap.layers$.getValue();\r\n context.layers = currentLayers\r\n .filter((l) => l.baseLayer)\r\n .map((l) => {\r\n return {\r\n baseLayer: true,\r\n sourceOptions: l.options.sourceOptions,\r\n title: l.options.title,\r\n visible: l.visible\r\n };\r\n });\r\n\r\n layers.forEach((layer) => {\r\n const layerFound = currentContext.layers.find(\r\n (contextLayer) =>\r\n layer.id === contextLayer.source.id && !contextLayer.baseLayer\r\n );\r\n\r\n if (layerFound) {\r\n let layerStyle = layerFound[`style`];\r\n if (layerFound[`styleByAttribute`]) {\r\n layerStyle = undefined;\r\n } else if (layerFound[`clusterBaseStyle`]) {\r\n layerStyle = undefined;\r\n delete layerFound.sourceOptions[`source`];\r\n delete layerFound.sourceOptions[`format`];\r\n }\r\n const opts = {\r\n baseLayer: layerFound.baseLayer,\r\n title: layer.options.title,\r\n zIndex: layer.zIndex,\r\n styleByAttribute: layerFound[`styleByAttribute`],\r\n clusterBaseStyle: layerFound[`clusterBaseStyle`],\r\n style: layerStyle,\r\n clusterParam: layerFound[`clusterParam`],\r\n visible: layer.visible,\r\n opacity: layer.opacity,\r\n sourceOptions: layerFound.sourceOptions\r\n };\r\n context.layers.push(opts);\r\n } else {\r\n if (!(layer.ol.getSource() instanceof olVectorSource)) {\r\n const catalogLayer = layer.options;\r\n catalogLayer.zIndex = layer.zIndex;\r\n delete catalogLayer.source;\r\n context.layers.push(catalogLayer);\r\n } else {\r\n let features;\r\n const writer = new GeoJSON();\r\n if (layer.ol.getSource() instanceof Cluster) {\r\n const clusterSource = layer.ol.getSource() as Cluster;\r\n features = writer.writeFeatures(\r\n clusterSource.getFeatures(),\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n } else {\r\n const source = layer.ol.getSource() as any;\r\n features = writer.writeFeatures(\r\n source.getFeatures(),\r\n {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n }\r\n );\r\n }\r\n features = JSON.parse(features);\r\n features.name = layer.options.title;\r\n context.extraFeatures.push(features);\r\n }\r\n }\r\n });\r\n\r\n context.toolbar = this.toolbar;\r\n context.tools = this.tools;\r\n\r\n return context;\r\n }\r\n\r\n setTools(tools: Tool[]) {\r\n this.tools = tools;\r\n }\r\n\r\n setToolbar(toolbar: string[]) {\r\n this.toolbar = toolbar;\r\n }\r\n\r\n private handleContextMessage(context: DetailedContext) {\r\n if (this.context$.value && context.uri && this.context$.value.uri !== context.uri) {\r\n this.messageService.removeAllAreNotError();\r\n }\r\n\r\n context.messages = context.messages ? context.messages : [];\r\n context.messages.push(context.message);\r\n context.messages.map(message => {\r\n if (message) {\r\n message.title = message.title\r\n ? this.languageService.translate.instant(message.title)\r\n : undefined;\r\n message.text = message.text\r\n ? this.languageService.translate.instant(message.text)\r\n : undefined;\r\n this.messageService.message(message as Message);\r\n }\r\n });\r\n }\r\n\r\n private getContextByUri(uri: string): Observable<DetailedContext> {\r\n if (this.baseUrl) {\r\n let contextToLoad;\r\n for (const key of Object.keys(this.contexts$.value)) {\r\n contextToLoad = this.contexts$.value[key].find((c) => {\r\n return c.uri === uri;\r\n });\r\n if (contextToLoad) {\r\n break;\r\n }\r\n }\r\n\r\n if (contextToLoad && contextToLoad.imported) {\r\n return of(contextToLoad);\r\n }\r\n\r\n // TODO : use always id or uri\r\n const id = contextToLoad ? contextToLoad.id : uri;\r\n return this.getDetails(id);\r\n }\r\n\r\n const importedContext = this.contexts$.value.ours.find((currentContext) => {\r\n return currentContext.uri === uri && currentContext.imported === true;\r\n });\r\n\r\n if (importedContext) {\r\n return of(importedContext);\r\n } else {\r\n return this.getLocalContext(uri);\r\n }\r\n }\r\n\r\n getContextLayers(igoMap: IgoMap) {\r\n const layers: Layer[] = [];\r\n const mapLayers = igoMap.layers$.getValue();\r\n mapLayers.forEach((layer) => {\r\n if (!layer.baseLayer && layer.options.id !== 'searchPointerSummaryId') {\r\n layers.push(layer);\r\n }\r\n });\r\n return layers;\r\n }\r\n\r\n private readParamsFromRoute() {\r\n if (!this.route) {\r\n return;\r\n }\r\n\r\n this.route.queryParams.subscribe((params) => {\r\n const centerKey = this.route.options.centerKey;\r\n if (centerKey && params[centerKey as string]) {\r\n const centerParams = params[centerKey as string];\r\n this.mapViewFromRoute.center = centerParams.split(',').map(Number);\r\n this.mapViewFromRoute.geolocate = false;\r\n }\r\n\r\n const projectionKey = this.route.options.projectionKey;\r\n if (projectionKey && params[projectionKey as string]) {\r\n const projectionParam = params[projectionKey as string];\r\n this.mapViewFromRoute.projection = projectionParam;\r\n }\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n if (zoomKey && params[zoomKey as string]) {\r\n const zoomParam = params[zoomKey as string];\r\n this.mapViewFromRoute.zoom = Number(zoomParam);\r\n }\r\n });\r\n }\r\n\r\n private getPath(file: string) {\r\n const basePath = this.options.basePath.replace(/\\/$/, '');\r\n\r\n return `${basePath}/${file}`;\r\n }\r\n\r\n private handleError(\r\n error: HttpErrorResponse,\r\n uri: string,\r\n permissionError?: boolean\r\n ) {\r\n const context = this.contexts$.value.ours.find((obj) => obj.uri === uri);\r\n const titleContext = context ? context.title : uri;\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.title'\r\n );\r\n\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.invalid.text',\r\n { value: titleContext }\r\n );\r\n\r\n error.error.toDisplay = true;\r\n\r\n if (permissionError) {\r\n error.error.title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n error.error.message = this.languageService.translate.instant(\r\n 'igo.context.contextManager.errors.addPermission'\r\n );\r\n }\r\n this.messageService.error(error.error.message, error.error.title);\r\n }\r\n\r\n private handleContextsChange(\r\n keepCurrentContext = true\r\n ) {\r\n const context = this.context$.value;\r\n const editedContext = this.editedContext$.value;\r\n if (!context || context.uri === this.options.defaultContextUri) {\r\n keepCurrentContext = false;\r\n }\r\n if (!keepCurrentContext || !this.findContext(context)) {\r\n this.defaultContextUri = undefined;\r\n this.loadDefaultContext();\r\n } else {\r\n this.getContextByUri(context.uri)\r\n .pipe(first())\r\n .subscribe(\r\n (newContext: DetailedContext) => {\r\n this.toolsChanged$.next(newContext);\r\n }\r\n );\r\n\r\n if (this.baseUrl && this.authService.authenticated) {\r\n this.getDefault().subscribe();\r\n }\r\n }\r\n const editedFound = this.findContext(editedContext);\r\n if (!editedFound || editedFound.permission !== 'write') {\r\n this.setEditedContext(undefined);\r\n }\r\n }\r\n\r\n private addContextToList(context: Context) {\r\n const contextFound = this.findContext(context);\r\n if (!contextFound) {\r\n const contextSimplifie = {\r\n id: context.id,\r\n uri: context.uri,\r\n title: context.title,\r\n scope: context.scope,\r\n permission: TypePermission[TypePermission.read]\r\n };\r\n\r\n if (this.contexts$.value && this.contexts$.value.public) {\r\n this.contexts$.value.public.push(contextSimplifie);\r\n this.contexts$.next(this.contexts$.value);\r\n }\r\n }\r\n }\r\n\r\n private findContext(context: Context) {\r\n if (!context) {\r\n return false;\r\n }\r\n\r\n const contexts = this.contexts$.value;\r\n let found;\r\n for (const key of Object.keys(contexts)) {\r\n const value = contexts[key];\r\n found = value.find(\r\n (c) =>\r\n (context.id && c.id === context.id) ||\r\n (context.uri && c.uri === context.uri)\r\n );\r\n if (found) {\r\n break;\r\n }\r\n }\r\n\r\n return found;\r\n }\r\n}\r\n","<div class=\"import-export-toggle mat-typography\">\r\n <mat-button-toggle-group\r\n [value]=\"activeImportExport\"\r\n (change)=\"onImportExportChange($event)\">\r\n <mat-button-toggle [value]=\"'import'\">\r\n {{'igo.geo.importExportForm.importTabTitle' | translate}}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'export'\">\r\n {{'igo.geo.importExportForm.exportTabTitle' | translate}}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div *ngIf=\"activeImportExport === 'import'\">\r\n <form class=\"igo-form\">\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button type=\"button\" (click)=\"fileInput.click()\" [disabled]=\"loading$ | async\">\r\n {{'igo.geo.importExportForm.importButton' | translate}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n [style.display]=\"'none'\"\r\n (click)=\"fileInput.value = null\"\r\n (change)=\"importFiles($event.target.files)\">\r\n </div>\r\n </form>\r\n <section class=\"mat-typography\">\r\n <h4>{{'igo.geo.importExportForm.importClarifications' | translate}}</h4>\r\n <ul>\r\n <li>{{'igo.geo.importExportForm.importSizeMax' | translate: {size: fileSizeMb} }}</li>\r\n </ul>\r\n </section>\r\n</div>\r\n\r\n\r\n<form class=\"igo-form\" *ngIf=\"activeImportExport === 'export'\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{'igo.context.contextImportExport.export.exportContextName' | translate}}</mat-label>\r\n <input formControlName=\"name\" matInput [value]=\"\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.context.contextImportExport.export.exportPlaceHolder' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.context.contextImportExport.export.exportSelectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (loading$ | async)\"\r\n (click)=\"handleExportFormSubmit(form.value)\">\r\n {{'igo.geo.importExportForm.exportButton' | translate}}\r\n </button>\r\n <igo-spinner [shown]=\"loading$ | async\"></igo-spinner>\r\n </div>\r\n</form>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService, LanguageService, ConfigService } from '@igo2/core';\r\nimport { Layer, VectorLayer } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { handleFileExportError } from '../shared/context-export.utils';\r\nimport {\r\n handleFileImportSuccess,\r\n handleFileImportError\r\n} from '../shared/context-import.utils';\r\nimport { handleFileExportSuccess } from '../shared/context-export.utils';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { ContextImportService } from '../shared/context-import.service';\r\nimport { ContextExportService } from '../shared/context-export.service';\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-import-export',\r\n templateUrl: './context-import-export.component.html',\r\n styleUrls: ['./context-import-export.component.scss']\r\n})\r\nexport class ContextImportExportComponent implements OnInit {\r\n public form: FormGroup;\r\n public layers: VectorLayer[];\r\n public inputProj: string = 'EPSG:4326';\r\n public loading$ = new BehaviorSubject(false);\r\n public forceNaming = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public res: DetailedContext;\r\n private clientSideFileSizeMax: number;\r\n public fileSizeMb: number;\r\n public activeImportExport: string = 'import';\r\n\r\n @Input() map: IgoMap;\r\n\r\n constructor(\r\n private contextImportService: ContextImportService,\r\n private contextExportService: ContextExportService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private formBuilder: FormBuilder,\r\n private config: ConfigService,\r\n private contextService: ContextService\r\n ) {\r\n this.buildForm();\r\n }\r\n\r\n ngOnInit() {\r\n const configFileSizeMb = this.config.getConfig(\r\n 'importExport.clientSideFileSizeMaxMb'\r\n );\r\n this.clientSideFileSizeMax =\r\n (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);\r\n this.fileSizeMb = this.clientSideFileSizeMax / Math.pow(1024, 2);\r\n this.layerList = this.contextService.getContextLayers(this.map);\r\n this.userControlledLayerList = this.layerList.filter(layer => layer.showInLayerList);\r\n }\r\n\r\n importFiles(files: File[]) {\r\n this.loading$.next(true);\r\n for (const file of files) {\r\n this.contextImportService.import(file).pipe(take(1)).subscribe(\r\n (context: DetailedContext) => this.onFileImportSuccess(file, context),\r\n (error: Error) => this.onFileImportError(file, error),\r\n () => {\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n }\r\n\r\n handleExportFormSubmit(contextOptions) {\r\n this.loading$.next(true);\r\n this.res = this.contextService.getContextFromLayers(\r\n this.map,\r\n contextOptions.layers,\r\n contextOptions.name\r\n );\r\n this.res.imported = true;\r\n this.contextExportService.export(this.res).pipe(take(1)).subscribe(\r\n () => {},\r\n (error: Error) => this.onFileExportError(error),\r\n () => {\r\n this.onFileExportSuccess();\r\n this.loading$.next(false);\r\n }\r\n );\r\n }\r\n\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]],\r\n name: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n private onFileImportSuccess(file: File, context: DetailedContext) {\r\n handleFileImportSuccess(\r\n file,\r\n context,\r\n this.messageService,\r\n this.languageService,\r\n this.contextService\r\n );\r\n }\r\n\r\n private onFileImportError(file: File, error: Error) {\r\n this.loading$.next(false);\r\n handleFileImportError(\r\n file,\r\n error,\r\n this.messageService,\r\n this.languageService,\r\n this.fileSizeMb\r\n );\r\n }\r\n\r\n private onFileExportError(error: Error) {\r\n this.loading$.next(false);\r\n handleFileExportError(error, this.messageService, this.languageService);\r\n }\r\n\r\n private onFileExportSuccess() {\r\n handleFileExportSuccess(this.messageService, this.languageService);\r\n }\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 if (e._selected === false) {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n }\r\n\r\n onImportExportChange(event) {\r\n this.activeImportExport = event.value;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\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 { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { ContextImportExportComponent } from './context-import-export/context-import-export.component';\r\nimport { IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoLanguageModule,\r\n IgoSpinnerModule,\r\n MatTooltipModule,\r\n ],\r\n exports: [\r\n ContextImportExportComponent\r\n ],\r\n declarations: [\r\n ContextImportExportComponent\r\n ]\r\n})\r\nexport class IgoContextImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoContextImportExportModule> {\r\n return {\r\n ngModule: IgoContextImportExportModule\r\n };\r\n }\r\n}\r\n","import { Directive, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { MapViewOptions, MapBrowserComponent, MapControlsOptions, MapScaleLineOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext, ContextMapView } from './context.interface';\r\nimport { MediaService } from '@igo2/core';\r\n\r\n@Directive({\r\n selector: '[igoMapContext]'\r\n})\r\nexport class MapContextDirective implements OnInit, OnDestroy {\r\n private component: MapBrowserComponent;\r\n private context$$: Subscription;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private mediaService: MediaService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter(context => context !== undefined))\r\n .subscribe(context => this.handleContextChange(context));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.map === undefined) {\r\n return;\r\n }\r\n\r\n // This creates a new ol.Map when the context changes. Doing that\r\n // allows the print tool to work properly even when the map's canvas\r\n // has been tainted (CORS) with the layers of another context. This could\r\n // have some side effects such as unbinding all listeners on the first map.\r\n // A better solution would be to create a new map (preview) before\r\n // printing and avoid the tainted canvas issue. This will come later so\r\n // this snippet of code is kept here in case it takes too long becomes\r\n // an issue\r\n\r\n // const target = this.component.map.ol.getTarget();\r\n // this.component.map.ol.setTarget(undefined);\r\n // this.component.map.init();\r\n // this.component.map.ol.setTarget(target);\r\n\r\n const viewContext: ContextMapView = context.map.view;\r\n if (!this.component.view || viewContext.keepCurrentView !== true) {\r\n this.component.view = viewContext as MapViewOptions;\r\n }\r\n\r\n const controlsContext: MapControlsOptions = context.map.controls;\r\n if (!this.component.controls && controlsContext) {\r\n if (this.mediaService.isMobile()) {\r\n if (typeof(controlsContext.scaleLine) !== 'boolean') {\r\n const scaleLineOption = controlsContext.scaleLine as MapScaleLineOptions;\r\n if (!scaleLineOption.minWidth) {\r\n scaleLineOption.minWidth = Math.min(64, scaleLineOption.minWidth);\r\n controlsContext.scaleLine = scaleLineOption;\r\n }\r\n }\r\n }\r\n this.component.controls = controlsContext;\r\n }\r\n }\r\n}\r\n","import { Directive, OnInit, OnDestroy, Optional, Input } from '@angular/core';\r\n\r\nimport { Subscription, merge } from 'rxjs';\r\nimport { buffer, debounceTime, filter } from 'rxjs/operators';\r\n\r\nimport { RouteService, ConfigService } from '@igo2/core';\r\nimport {\r\n MapBrowserComponent,\r\n Layer,\r\n LayerService,\r\n LayerOptions,\r\n StyleListService,\r\n StyleService\r\n} from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from './context.service';\r\nimport { DetailedContext } from './context.interface';\r\nimport {\r\n addImportedFeaturesToMap,\r\n addImportedFeaturesStyledToMap\r\n} from '../../context-import-export/shared/context-import.utils';\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\n\r\n@Directive({\r\n selector: '[igoLayerContext]'\r\n})\r\nexport class LayerContextDirective implements OnInit, OnDestroy {\r\n private context$$: Subscription;\r\n private queryParams: any;\r\n\r\n private contextLayers: Layer[] = [];\r\n\r\n @Input() removeLayersOnContextChange: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.component.map;\r\n }\r\n\r\n constructor(\r\n private component: MapBrowserComponent,\r\n private contextService: ContextService,\r\n private layerService: LayerService,\r\n private configService: ConfigService,\r\n private styleListService: StyleListService,\r\n private styleService: StyleService,\r\n @Optional() private route: RouteService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.context$$ = this.contextService.context$\r\n .pipe(filter((context) => context !== undefined))\r\n .subscribe((context) => this.handleContextChange(context));\r\n\r\n if (\r\n this.route &&\r\n this.route.options.visibleOnLayersKey &&\r\n this.route.options.visibleOffLayersKey &&\r\n this.route.options.contextKey\r\n ) {\r\n const queryParams$$ = this.route.queryParams.subscribe((params) => {\r\n if (Object.keys(params).length > 0) {\r\n this.queryParams = params;\r\n queryParams$$.unsubscribe();\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.context$$.unsubscribe();\r\n }\r\n\r\n private handleContextChange(context: DetailedContext) {\r\n if (context.layers === undefined) {\r\n return;\r\n }\r\n if (this.removeLayersOnContextChange === true) {\r\n this.map.removeAllLayers();\r\n } else {\r\n this.map.removeLayers(this.contextLayers);\r\n }\r\n this.contextLayers = [];\r\n\r\n const layersAndIndex$ = merge(\r\n ...context.layers.map((layerOptions: LayerOptions, index: number) => {\r\n return this.layerService.createAsyncLayer(layerOptions, context.uri);\r\n })\r\n );\r\n\r\n layersAndIndex$\r\n .pipe(buffer(layersAndIndex$.pipe(debounceTime(500))))\r\n .subscribe((layers: Layer[]) => {\r\n layers = layers\r\n .filter((layer: Layer) => layer !== undefined)\r\n .map((layer) => {\r\n layer.visible = this.computeLayerVisibilityFromUrl(layer);\r\n layer.zIndex = layer.zIndex;\r\n\r\n return layer;\r\n });\r\n\r\n this.contextLayers.concat(layers);\r\n this.map.addLayers(layers);\r\n\r\n if (context.extraFeatures) {\r\n context.extraFeatures.forEach((featureCollection) => {\r\n const format = new GeoJSON();\r\n const title = featureCollection.name;\r\n featureCollection = JSON.stringify(featureCollection);\r\n featureCollection = format.readFeatures(featureCollection, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:3857'\r\n });\r\n if (!this.configService.getConfig('importWithStyle')) {\r\n addImportedFeaturesToMap(featureCollection, this.map, title);\r\n } else {\r\n addImportedFeaturesStyledToMap(\r\n featureCollection,\r\n this.map,\r\n title,\r\n this.styleListService,\r\n this.styleService\r\n );\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n private computeLayerVisibilityFromUrl(layer: Layer): boolean {\r\n const params = this.queryParams;\r\n const currentContext = this.contextService.context$.value.uri;\r\n const currentLayerid: string = layer.id;\r\n\r\n let visible = layer.visible;\r\n if (!params || !currentLayerid) {\r\n return visible;\r\n }\r\n\r\n const contextParams = params[this.route.options.contextKey as string];\r\n if (contextParams === currentContext || !contextParams) {\r\n let visibleOnLayersParams = '';\r\n let visibleOffLayersParams = '';\r\n let visiblelayers: string[] = [];\r\n let invisiblelayers: string[] = [];\r\n\r\n if (\r\n this.route.options.visibleOnLayersKey &&\r\n params[this.route.options.visibleOnLayersKey as string]\r\n ) {\r\n visibleOnLayersParams =\r\n params[this.route.options.visibleOnLayersKey as string];\r\n }\r\n if (\r\n this.route.options.visibleOffLayersKey &&\r\n params[this.route.options.visibleOffLayersKey as string]\r\n ) {\r\n visibleOffLayersParams =\r\n params[this.route.options.visibleOffLayersKey as string];\r\n }\r\n\r\n /* This order is important because to control whichever\r\n the order of * param. First whe open and close everything.*/\r\n if (visibleOnLayersParams === '*') {\r\n visible = true;\r\n }\r\n if (visibleOffLayersParams === '*') {\r\n visible = false;\r\n }\r\n\r\n // After, managing named layer by id (context.json OR id from datasource)\r\n visiblelayers = visibleOnLayersParams.split(',');\r\n invisiblelayers = visibleOffLayersParams.split(',');\r\n if (visiblelayers.indexOf(currentLayerid) > -1 || visiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = true;\r\n }\r\n if (invisiblelayers.indexOf(currentLayerid) > -1 || invisiblelayers.indexOf(currentLayerid.toString()) > -1) {\r\n visible = false;\r\n }\r\n }\r\n\r\n return visible;\r\n }\r\n}\r\n","export enum ContextListControlsEnum {\r\n always = 'always',\r\n never = 'never',\r\n default = 'default'\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-dialog',\r\n templateUrl: './bookmark-dialog.component.html'\r\n})\r\nexport class BookmarkDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<BookmarkDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.bookmarkButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.bookmarkButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","<mat-list-item\r\n class=\"mat-list-item\"\r\n [ngClass]=\"{'mat-list-item-light': hidden}\">\r\n <button mat-list-avatar\r\n *ngIf=\"auth.authenticated\"\r\n mat-icon-button\r\n igoStopPropagation\r\n [matTooltip]=\"auth.authenticated ? ('igo.context.contextManager.favorite' | translate) : ''\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"default ? 'primary' : 'default'\"\r\n (click)=\"favoriteClick(context)\">\r\n <mat-icon *ngIf=\"!context.iconImage\" svgIcon=\"{{context.icon ? context.icon : context.scope === 'public' ? 'earth' : 'star'}}\"></mat-icon>\r\n <img *ngIf=\"context.iconImage\" [src]=\"context.iconImage\">\r\n </button>\r\n <h4 matLine>{{context.title}}</h4>\r\n\r\n <div *ngIf=\"auth.authenticated\"\r\n igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"collapsed && selected && (context.permission === typePermission[typePermission.write] || context.imported)\"\r\n class=\"save-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.save' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"save.emit(context)\">\r\n <mat-icon svgIcon=\"content-save\"></mat-icon>\r\n </button>\r\n\r\n <div #actions class=\"igo-actions-expand-container\">\r\n\r\n <button *ngIf=\"canShare && !context.imported\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.managePermissions' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"managePermissions.emit(context)\">\r\n <mat-icon svgIcon=\"account-arrow-right\"></mat-icon>\r\n </button>\r\n\r\n <!--button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.manageTools' | translate\"\r\n [color]=\"color\"\r\n (click)=\"manageTools.emit(context)\">\r\n <mat-icon svgIcon=\"widgets\"></mat-icon>\r\n </button-->\r\n\r\n <button *ngIf=\"!context.imported\"\r\n class=\"clone-button\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.clone' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [color]=\"color\"\r\n (click)=\"clone.emit(context)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] && !context.imported\"\r\n class=\"edit-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.edit' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"edit.emit(context)\">\r\n <mat-icon svgIcon=\"pencil\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.hide' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"hide.emit(context)\">\r\n <mat-icon svgIcon=\"eye\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.hidden && !context.imported\"\r\n class=\"hide-button\"\r\n mat-icon-button\r\n [color]=\"color\"\r\n [matTooltip]=\"'igo.context.contextManager.show' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"show.emit(context)\">\r\n <mat-icon svgIcon=\"eye-off\"></mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"context.permission === typePermission[typePermission.write] || context.imported\"\r\n class=\"delete-button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n [matTooltip]=\"'igo.context.contextManager.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"delete.emit(context)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button\r\n class=\"actions-button\"\r\n mat-icon-button\r\n igoCollapse\r\n [color]=\"color\"\r\n [target]=\"actions\"\r\n [collapsed]=collapsed\r\n (click)=\"collapsed = !collapsed\">\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n</mat-list-item>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { TypePermission } from '../shared/context.enum';\r\nimport { DetailedContext } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-item',\r\n templateUrl: './context-item.component.html',\r\n styleUrls: ['./context-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextItemComponent {\r\n public typePermission = TypePermission;\r\n public color = 'primary';\r\n public collapsed = true;\r\n\r\n @Input()\r\n get context(): DetailedContext {\r\n return this._context;\r\n }\r\n set context(value: DetailedContext) {\r\n this._context = value;\r\n }\r\n private _context: DetailedContext;\r\n\r\n @Input()\r\n get default(): boolean {\r\n return this._default;\r\n }\r\n set default(value: boolean) {\r\n this._default = value;\r\n }\r\n private _default = false;\r\n\r\n @Input() selected: boolean;\r\n\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n\r\n get hidden(): boolean {\r\n return this.context.hidden;\r\n }\r\n\r\n get canShare(): boolean {\r\n return this.storageService.get('canShare') === true;\r\n }\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n favoriteClick(context) {\r\n if (this.auth.authenticated) {\r\n this.favorite.emit(context);\r\n }\r\n }\r\n}\r\n","<igo-list [navigation]=\"true\">\r\n <mat-form-field *ngIf=\"showFilter()\" [ngClass]=\"auth.authenticated && configService.getConfig('context') ? 'context-filter-min-width' : 'context-filter-max-width'\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"'igo.context.contextManager.filterPlaceHolder' | translate\"\r\n [(ngModel)]=\"term\">\r\n <button\r\n mat-button\r\n mat-icon-button\r\n matSuffix\r\n class=\"clear-button\"\r\n *ngIf=\"term.length\"\r\n aria-label=\"Clear\"\r\n color=\"warn\"\r\n (click)=\"clearFilter()\">\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <button\r\n *ngIf=\"!sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortAlphabetically' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(true)\">\r\n <mat-icon color=\"primary\" svgIcon=\"sort-alphabetical-variant\"></mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"sortedAlpha\"\r\n class=\"sort-alpha\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.sortContextOrder' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleSort(false)\">\r\n <mat-icon color=\"warn\" svgIcon=\"sort-variant-remove\"></mat-icon>\r\n </button>\r\n\r\n <igo-actionbar *ngIf=\"auth.authenticated && configService.getConfig('context')\"\r\n class=\"add-context-button\"\r\n [iconColor]=\"color\"\r\n [store]=\"actionStore\"\r\n [withIcon]=\"true\"\r\n icon=\"plus\"\r\n [withTitle]=\"actionbarMode === 'overlay'\"\r\n [horizontal]=\"false\"\r\n [mode]=\"actionbarMode\">\r\n </igo-actionbar>\r\n\r\n <button *ngIf=\"auth.authenticated && configService.getConfig('context')\"\r\n class=\"users-filter\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.contextManager.filterUser' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n [matMenuTriggerFor]=\"accountMenu\">\r\n <mat-icon color=\"primary\" svgIcon=\"filter-menu\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #accountMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let user of users\">\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(user).checked\"\r\n [indeterminate]=\"getPermission(user).indeterminate\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(user)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"user.childs\"\r\n [matMenuTriggerFor]=\"subAccountMenu\"\r\n mat-menu-item>\r\n {{user.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"!user.childs\">\r\n {{user.title}}\r\n </button>\r\n </span>\r\n\r\n <mat-menu #subAccountMenu=\"matMenu\">\r\n <mat-checkbox *ngFor=\"let child of user.childs\"\r\n class=\"mat-menu-item\"\r\n [checked]=\"getPermission(child).checked\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"userSelection(child, user)\">\r\n {{child.title}}\r\n </mat-checkbox>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <span class=\"profilsMenu\">\r\n <mat-checkbox\r\n class=\"mat-menu-item\"\r\n [checked]=\"showHidden\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"showHiddenContexts.emit()\">\r\n </mat-checkbox>\r\n <button mat-menu-item>\r\n {{ 'igo.context.contextManager.showHidden' | translate }}\r\n </button>\r\n </span>\r\n </mat-menu>\r\n\r\n <ng-template ngFor let-groupContexts [ngForOf]=\"contexts$ | async | keyvalue\">\r\n\r\n <igo-collapsible *ngIf=\"groupContexts.value.length && auth.authenticated\" [title]=\"titleMapping[groupContexts.key] | translate\"\r\n [collapsed]=\"collapsed[titleMapping[groupContexts.key]]\" (toggle)=\"collapsed[titleMapping[groupContexts.key]] = $event\">\r\n\r\n <ng-template ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"context.id && this.defaultContextId && this.defaultContextId === context.id\"\r\n (edit)=\"edit.emit(context)\"\r\n (delete)=\"delete.emit(context)\"\r\n (clone)=\"clone.emit(context)\"\r\n (save)=\"save.emit(context)\"\r\n (hide)=\"hideContext(context)\"\r\n (show)=\"showContext(context)\"\r\n (favorite)=\"favorite.emit(context)\"\r\n (manageTools)=\"manageTools.emit(context)\"\r\n (managePermissions)=\"managePermissions.emit(context)\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </igo-collapsible>\r\n\r\n <ng-template *ngIf=\"groupContexts.value.length && !auth.authenticated\" ngFor let-context [ngForOf]=\"groupContexts.value\">\r\n <igo-context-item\r\n igoListItem\r\n color=\"accent\"\r\n [selected]=\"selectedContext && selectedContext.uri === context.uri\"\r\n [context]=\"context\"\r\n [default]=\"this.defaultContextId === context.id\"\r\n (select)=\"select.emit(context)\"\r\n (unselect)=\"unselect.emit(context)\">\r\n </igo-context-item>\r\n </ng-template>\r\n\r\n </ng-template>\r\n</igo-list>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService, LanguageService, StorageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport {\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { ContextListControlsEnum } from './context-list.enum';\r\nimport {\r\n Subscription,\r\n BehaviorSubject,\r\n ReplaySubject,\r\n EMPTY,\r\n timer\r\n} from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BookmarkDialogComponent } from '../../context-map-button/bookmark-button/bookmark-dialog.component';\r\nimport { debounce } from 'rxjs/operators';\r\nimport { ActionStore, ActionbarMode } from '@igo2/common';\r\nimport { ContextService } from '../shared/context.service';\r\n\r\n@Component({\r\n selector: 'igo-context-list',\r\n templateUrl: './context-list.component.html',\r\n styleUrls: ['./context-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextListComponent implements OnInit, OnDestroy {\r\n private contextsInitial: ContextsList = { ours: [] };\r\n contexts$: BehaviorSubject<ContextsList> = new BehaviorSubject(\r\n this.contextsInitial\r\n );\r\n\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private change$$: Subscription;\r\n\r\n @Input()\r\n get contexts(): ContextsList {\r\n return this._contexts;\r\n }\r\n set contexts(value: ContextsList) {\r\n this._contexts = value;\r\n this.cdRef.detectChanges();\r\n this.next();\r\n }\r\n private _contexts: ContextsList = { ours: [] };\r\n\r\n @Input()\r\n get selectedContext(): DetailedContext {\r\n return this._selectedContext;\r\n }\r\n set selectedContext(value: DetailedContext) {\r\n this._selectedContext = value;\r\n this.cdRef.detectChanges();\r\n }\r\n private _selectedContext: DetailedContext;\r\n\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get defaultContextId(): string {\r\n return this._defaultContextId;\r\n }\r\n set defaultContextId(value: string) {\r\n this._defaultContextId = value;\r\n }\r\n private _defaultContextId: string;\r\n\r\n public collapsed: { contextScope }[] = [];\r\n\r\n @Output() select = new EventEmitter<DetailedContext>();\r\n @Output() unselect = new EventEmitter<DetailedContext>();\r\n @Output() edit = new EventEmitter<DetailedContext>();\r\n @Output() delete = new EventEmitter<DetailedContext>();\r\n @Output() save = new EventEmitter<DetailedContext>();\r\n @Output() clone = new EventEmitter<DetailedContext>();\r\n @Output() create = new EventEmitter<{ title: string; empty: boolean }>();\r\n @Output() hide = new EventEmitter<DetailedContext>();\r\n @Output() show = new EventEmitter<DetailedContext>();\r\n @Output() showHiddenContexts = new EventEmitter<boolean>();\r\n @Output() favorite = new EventEmitter<DetailedContext>();\r\n @Output() managePermissions = new EventEmitter<DetailedContext>();\r\n @Output() manageTools = new EventEmitter<DetailedContext>();\r\n @Output() filterPermissionsChanged = new EventEmitter<\r\n ContextUserPermission[]\r\n >();\r\n\r\n public titleMapping = {\r\n ours: 'igo.context.contextManager.ourContexts',\r\n shared: 'igo.context.contextManager.sharedContexts',\r\n public: 'igo.context.contextManager.publicContexts'\r\n };\r\n\r\n public users: ContextProfils[];\r\n public permissions: ContextUserPermission[] = [];\r\n\r\n public actionStore = new ActionStore([]);\r\n public actionbarMode = ActionbarMode.Overlay;\r\n\r\n public color = 'primary';\r\n\r\n public showHidden = false;\r\n\r\n /**\r\n * Context filter term\r\n */\r\n @Input()\r\n set term(value: string) {\r\n this._term = value;\r\n this.next();\r\n }\r\n get term(): string {\r\n return this._term;\r\n }\r\n public _term: string = '';\r\n\r\n get sortedAlpha(): boolean {\r\n return this._sortedAlpha;\r\n }\r\n set sortedAlpha(value: boolean) {\r\n this._sortedAlpha = value;\r\n this.next();\r\n }\r\n private _sortedAlpha: boolean = undefined;\r\n\r\n public showContextFilter = ContextListControlsEnum.always;\r\n\r\n public thresholdToFilter = 5;\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private contextService: ContextService,\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private dialog: MatDialog,\r\n private languageService: LanguageService,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.change$$ = this.change$\r\n .pipe(\r\n debounce(() => {\r\n return this.contexts.ours.length === 0 ? EMPTY : timer(50);\r\n })\r\n )\r\n .subscribe(() => {\r\n this.contexts$.next(this.filterContextsList(this.contexts));\r\n });\r\n\r\n this.actionStore.load([\r\n {\r\n id: 'emptyContext',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContext'\r\n ),\r\n icon: 'map-outline',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.emptyContextTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(true);\r\n }\r\n },\r\n {\r\n id: 'contextFromMap',\r\n title: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMap'\r\n ),\r\n icon: 'map-check',\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.context.contextManager.contextMapTooltip'\r\n ),\r\n handler: () => {\r\n this.createContext(false);\r\n }\r\n }\r\n ]);\r\n }\r\n\r\n private next() {\r\n this.change$.next();\r\n }\r\n\r\n private filterContextsList(contexts: ContextsList) {\r\n if (this.term === '') {\r\n if (this.sortedAlpha) {\r\n contexts = this.sortContextsList(contexts);\r\n }\r\n return contexts;\r\n } else {\r\n const ours = contexts.ours.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n\r\n let updateContexts: ContextsList = {\r\n ours\r\n };\r\n\r\n if (this.contexts.public) {\r\n const publics = contexts.public.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.public = publics;\r\n }\r\n\r\n if (this.contexts.shared) {\r\n const shared = contexts.shared.filter((context) => {\r\n const filterNormalized = this.term\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n const contextTitleNormalized = context.title\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n return contextTitleNormalized.includes(filterNormalized);\r\n });\r\n updateContexts.shared = shared;\r\n }\r\n\r\n if (this.sortedAlpha) {\r\n updateContexts = this.sortContextsList(updateContexts);\r\n }\r\n return updateContexts;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.change$$.unsubscribe();\r\n }\r\n\r\n public showFilter() {\r\n switch (this.showContextFilter) {\r\n case ContextListControlsEnum.always:\r\n return true;\r\n case ContextListControlsEnum.never:\r\n return false;\r\n default:\r\n let totalLength = this.contexts.ours.length;\r\n this.contexts.public\r\n ? (totalLength += this.contexts.public.length)\r\n : (totalLength += 0);\r\n this.contexts.shared\r\n ? (totalLength += this.contexts.shared.length)\r\n : (totalLength += 0);\r\n if (totalLength >= this.thresholdToFilter) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n sortContextsList(contexts: ContextsList) {\r\n if (contexts) {\r\n const contextsList = JSON.parse(JSON.stringify(contexts));\r\n contextsList.ours.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n if (contextsList.shared) {\r\n contextsList.shared.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n } else if (contextsList.public) {\r\n contextsList.public.sort((a, b) => {\r\n if (this.normalize(a.title) < this.normalize(b.title)) {\r\n return -1;\r\n }\r\n if (this.normalize(a.title) > this.normalize(b.title)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n return contextsList;\r\n }\r\n }\r\n\r\n normalize(str: string) {\r\n return str\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .toLowerCase();\r\n }\r\n\r\n toggleSort(sortAlpha: boolean) {\r\n this.sortedAlpha = sortAlpha;\r\n }\r\n\r\n clearFilter() {\r\n this.term = '';\r\n }\r\n\r\n createContext(empty?: boolean) {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe((title: string) => {\r\n if (title) {\r\n this.create.emit({ title, empty });\r\n }\r\n });\r\n }\r\n\r\n getPermission(user?): ContextUserPermission {\r\n if (user) {\r\n const permission = this.permissions.find((p) => p.name === user.name);\r\n return permission;\r\n }\r\n }\r\n\r\n userSelection(user, parent?) {\r\n const permission = this.getPermission(user);\r\n if (permission) {\r\n permission.checked = !permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + permission.name,\r\n permission.checked\r\n );\r\n permission.indeterminate = false;\r\n }\r\n\r\n if (parent) {\r\n let indeterminate = false;\r\n\r\n for (const c of parent.childs) {\r\n const cPermission = this.getPermission(c);\r\n if (cPermission.checked !== permission.checked) {\r\n indeterminate = true;\r\n break;\r\n }\r\n }\r\n const parentPermission = this.getPermission(parent);\r\n if (parentPermission) {\r\n parentPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + parentPermission.name,\r\n permission.checked\r\n );\r\n parentPermission.indeterminate = indeterminate;\r\n }\r\n }\r\n\r\n if (user.childs) {\r\n for (const c of user.childs) {\r\n const childrenPermission = this.getPermission(c);\r\n if (\r\n childrenPermission &&\r\n childrenPermission.checked !== permission.checked\r\n ) {\r\n childrenPermission.checked = permission.checked;\r\n this.storageService.set(\r\n 'contexts.permissions.' + childrenPermission.name,\r\n permission.checked\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.filterPermissionsChanged.emit(this.permissions);\r\n }\r\n\r\n hideContext(context: DetailedContext) {\r\n context.hidden = true;\r\n if (!this.showHidden) {\r\n const contexts: ContextsList = { ours: [], shared: [], public: [] };\r\n contexts.ours = this.contexts.ours.filter((c) => c.id !== context.id);\r\n contexts.shared = this.contexts.shared.filter((c) => c.id !== context.id);\r\n contexts.public = this.contexts.public.filter((c) => c.id !== context.id);\r\n this.contexts = contexts;\r\n }\r\n this.hide.emit(context);\r\n }\r\n\r\n showContext(context: DetailedContext) {\r\n context.hidden = false;\r\n this.show.emit(context);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { MessageService, LanguageService, StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { MapService } from '@igo2/geo';\r\n\r\nimport {\r\n Context,\r\n DetailedContext,\r\n ContextsList,\r\n ContextUserPermission\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextListComponent } from './context-list.component';\r\n\r\n@Directive({\r\n selector: '[igoContextListBinding]'\r\n})\r\nexport class ContextListBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextListComponent;\r\n private contexts$$: Subscription;\r\n private selectedContext$$: Subscription;\r\n private defaultContextId$$: Subscription;\r\n\r\n @HostListener('select', ['$event'])\r\n onSelect(context: Context) {\r\n this.contextService.loadContext(context.uri);\r\n }\r\n\r\n @HostListener('edit', ['$event'])\r\n onEdit(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('save', ['$event'])\r\n onSave(context: Context) {\r\n const map = this.mapService.getMap();\r\n const contextFromMap = this.contextService.getContextFromMap(map);\r\n\r\n const msgSuccess = () => {\r\n const translate = this.languageService.translate;\r\n const message = translate.instant(\r\n 'igo.context.contextManager.dialog.saveMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.contextManager.dialog.saveTitle'\r\n );\r\n this.messageService.success(message, title);\r\n };\r\n\r\n if (context.imported) {\r\n contextFromMap.title = context.title;\r\n this.contextService.delete(context.id, true);\r\n this.contextService.create(contextFromMap).subscribe((contextCreated) => {\r\n this.contextService.loadContext(contextCreated.uri);\r\n msgSuccess();\r\n });\r\n return;\r\n }\r\n\r\n const changes: any = {\r\n layers: contextFromMap.layers,\r\n map: {\r\n view: contextFromMap.map.view\r\n }\r\n };\r\n\r\n this.contextService.update(context.id, changes).subscribe(() => {\r\n msgSuccess();\r\n });\r\n }\r\n\r\n @HostListener('favorite', ['$event'])\r\n onFavorite(context: Context) {\r\n this.contextService.setDefault(context.id).subscribe(() => {\r\n this.contextService.defaultContextId$.next(context.id);\r\n const translate = this.languageService.translate;\r\n const message = translate.instant(\r\n 'igo.context.contextManager.dialog.favoriteMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.contextManager.dialog.favoriteTitle'\r\n );\r\n this.messageService.success(message, title);\r\n });\r\n }\r\n\r\n @HostListener('manageTools', ['$event'])\r\n onManageTools(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('managePermissions', ['$event'])\r\n onManagePermissions(context: Context) {\r\n this.contextService.loadEditedContext(context.uri);\r\n }\r\n\r\n @HostListener('delete', ['$event'])\r\n onDelete(context: Context) {\r\n const translate = this.languageService.translate;\r\n this.confirmDialogService\r\n .open(\r\n translate.instant('igo.context.contextManager.dialog.confirmDelete')\r\n )\r\n .subscribe((confirm) => {\r\n if (confirm) {\r\n this.contextService\r\n .delete(context.id, context.imported)\r\n .subscribe(() => {\r\n const message = translate.instant(\r\n 'igo.context.contextManager.dialog.deleteMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.contextManager.dialog.deleteTitle'\r\n );\r\n this.messageService.info(message, title);\r\n });\r\n }\r\n });\r\n }\r\n\r\n @HostListener('clone', ['$event'])\r\n onClone(context: DetailedContext) {\r\n const properties = {\r\n title: context.title + '-copy',\r\n uri: context.uri + '-copy'\r\n };\r\n this.contextService.clone(context.id, properties).subscribe(() => {\r\n const translate = this.languageService.translate;\r\n const message = translate.instant(\r\n 'igo.context.contextManager.dialog.cloneMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.contextManager.dialog.cloneTitle'\r\n );\r\n this.messageService.success(message, title);\r\n });\r\n }\r\n\r\n @HostListener('create', ['$event'])\r\n onCreate(opts: { title: string; empty: boolean }) {\r\n const { title, empty } = opts;\r\n const context = this.contextService.getContextFromMap(\r\n this.component.map,\r\n empty\r\n );\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n const translate = this.languageService.translate;\r\n const titleD = translate.instant(\r\n 'igo.context.bookmarkButton.dialog.createTitle'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n this.messageService.success(message, titleD);\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n\r\n @HostListener('filterPermissionsChanged')\r\n loadContexts() {\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n }\r\n\r\n @HostListener('showHiddenContexts')\r\n showHiddenContexts() {\r\n this.component.showHidden = !this.component.showHidden;\r\n this.storageService.set('contexts.showHidden', this.component.showHidden);\r\n this.loadContexts();\r\n }\r\n\r\n @HostListener('show', ['$event'])\r\n onShowContext(context: DetailedContext) {\r\n this.contextService.showContext(context.id).subscribe();\r\n }\r\n\r\n @HostListener('hide', ['$event'])\r\n onHideContext(context: DetailedContext) {\r\n this.contextService.hideContext(context.id).subscribe();\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextListComponent,\r\n private contextService: ContextService,\r\n private mapService: MapService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private storageService: StorageService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n // Override input contexts\r\n this.component.contexts = { ours: [] };\r\n this.component.showHidden = this.storageService.get(\r\n 'contexts.showHidden'\r\n ) as boolean;\r\n\r\n this.contexts$$ = this.contextService.contexts$.subscribe((contexts) =>\r\n this.handleContextsChange(contexts)\r\n );\r\n\r\n this.defaultContextId$$ = this.contextService.defaultContextId$.subscribe(\r\n (id) => {\r\n this.component.defaultContextId = id;\r\n }\r\n );\r\n\r\n // See feature-list.component for an explanation about the debounce time\r\n this.selectedContext$$ = this.contextService.context$\r\n .pipe(debounceTime(100))\r\n .subscribe((context) => (this.component.selectedContext = context));\r\n\r\n this.auth.authenticate$.subscribe((authenticate) => {\r\n if (authenticate) {\r\n this.contextService.getProfilByUser().subscribe((profils) => {\r\n this.component.users = profils;\r\n this.component.permissions = [];\r\n const profilsAcc = this.component.users.reduce((acc, cur) => {\r\n acc = acc.concat(cur);\r\n acc = cur.childs ? acc.concat(cur.childs) : acc;\r\n return acc;\r\n }, []);\r\n\r\n for (const user of profilsAcc) {\r\n const permission: ContextUserPermission = {\r\n name: user.name,\r\n checked: this.storageService.get(\r\n 'contexts.permissions.' + user.name\r\n ) as boolean\r\n };\r\n if (permission.checked === null) {\r\n permission.checked = true;\r\n }\r\n this.component.permissions.push(permission);\r\n }\r\n\r\n const permissions = ['none'];\r\n for (const p of this.component.permissions) {\r\n if (p.checked === true || p.indeterminate === true) {\r\n permissions.push(p.name);\r\n }\r\n }\r\n\r\n this.component.showHidden\r\n ? this.contextService.loadContexts(permissions, true)\r\n : this.contextService.loadContexts(permissions, false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.contexts$$.unsubscribe();\r\n this.selectedContext$$.unsubscribe();\r\n this.defaultContextId$$.unsubscribe();\r\n }\r\n\r\n private handleContextsChange(contexts: ContextsList) {\r\n this.component.contexts = contexts;\r\n }\r\n}\r\n","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n maxlength=\"128\"\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field id=\"uriInput\" class=\"full-width\">\r\n <span *ngIf=\"prefix\" class=\"prefix\">{{prefix}}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input matInput\r\n maxlength=\"64\"\r\n floatLabel = \"always\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\r\n </span>\r\n </mat-form-field>\r\n\r\n <button\r\n id=\"copyButton\"\r\n type=\"button\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.contextManager.form.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid || disabled\">\r\n {{ 'igo.context.contextManager.form.edit' | translate }}\r\n </button>\r\n </div>\r\n\r\n</form>\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { ObjectUtils, Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-form',\r\n templateUrl: './context-form.component.html',\r\n styleUrls: ['./context-form.component.scss']\r\n})\r\nexport class ContextFormComponent implements OnInit {\r\n public form: FormGroup;\r\n public prefix: string;\r\n\r\n @Input()\r\n get btnSubmitText(): string {\r\n return this._btnSubmitText;\r\n }\r\n set btnSubmitText(value: string) {\r\n this._btnSubmitText = value;\r\n }\r\n private _btnSubmitText: string;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.buildForm();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n private _disabled = false;\r\n\r\n // TODO: replace any by ContextOptions or Context\r\n @Output() submitForm: EventEmitter<any> = new EventEmitter();\r\n @Output() clone: EventEmitter<any> = new EventEmitter();\r\n @Output() delete: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private languageService: LanguageService,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n let inputs = Object.assign({}, value);\r\n inputs = ObjectUtils.removeNull(inputs);\r\n inputs.uri = inputs.uri.replace(' ', '');\r\n if (inputs.uri) {\r\n inputs.uri = this.prefix + '-' + inputs.uri;\r\n } else {\r\n inputs.uri = this.prefix;\r\n }\r\n this.submitForm.emit(inputs);\r\n }\r\n\r\n public copyTextToClipboard() {\r\n const text = this.prefix + '-' + this.form.value.uri.replace(' ', '');\r\n const successful = Clipboard.copy(text);\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.contextManager.dialog.copyTitle'\r\n );\r\n const msg = translate.instant(\r\n 'igo.context.contextManager.dialog.copyMsg'\r\n );\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n const context: any = this.context || {};\r\n\r\n const uriSplit = context.uri.split('-');\r\n this.prefix = uriSplit.shift();\r\n const uri = uriSplit.join('-');\r\n\r\n this.form = this.formBuilder.group({\r\n title: [context.title],\r\n uri: [uri || ' ']\r\n });\r\n }\r\n}\r\n","<igo-context-form *ngIf=\"context\"\r\n [btnSubmitText]=\"'igo.context.contextManager.save' | translate\"\r\n [context]=\"context\"\r\n (submitForm)=\"submitForm.emit($event)\">\r\n</igo-context-form>\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { Context } from '../shared/context.interface';\r\n\r\n@Component({\r\n selector: 'igo-context-edit',\r\n templateUrl: './context-edit.component.html'\r\n})\r\nexport class ContextEditComponent {\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.refresh();\r\n }\r\n private _context: Context;\r\n\r\n @Output() submitForm: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n refresh() {\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","import {\r\n Output,\r\n EventEmitter,\r\n Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\n\r\nimport { Context, DetailedContext } from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextEditComponent } from './context-edit.component';\r\n\r\n@Directive({\r\n selector: '[igoContextEditBinding]'\r\n})\r\nexport class ContextEditBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextEditComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @Output() submitSuccessed: EventEmitter<Context> = new EventEmitter();\r\n\r\n @HostListener('submitForm', ['$event'])\r\n onEdit(context: Context) {\r\n const id = this.component.context.id;\r\n this.contextService.update(id, context).subscribe(() => {\r\n const translate = this.languageService.translate;\r\n const message = translate.instant('igo.context.contextManager.dialog.saveMsg', {\r\n value: context.title || this.component.context.title\r\n });\r\n const title = translate.instant('igo.context.contextManager.dialog.saveTitle');\r\n this.messageService.success(message, title);\r\n this.contextService.setEditedContext(undefined);\r\n this.submitSuccessed.emit(context);\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextEditComponent,\r\n private contextService: ContextService,\r\n private messageService: MessageService,\r\n private languageService: LanguageService\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n context => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n }\r\n}\r\n","<div *ngIf=\"context\">\r\n\r\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\r\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\r\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\r\n </div>\r\n\r\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\r\n <mat-radio-group [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\">\r\n <mat-radio-button value=\"private\">\r\n {{ 'igo.context.permission.scope.private' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"protected\">\r\n {{ 'igo.context.permission.scope.shared' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\r\n {{ 'igo.context.permission.scope.public' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <form *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\">\r\n\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\r\n {{profil.title}}<br>\r\n <small class=\"mat-typography\">{{profil.name}}</small>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error>\r\n {{ 'igo.context.permission.profilRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n <mat-radio-group formControlName=\"typePermission\">\r\n <mat-radio-button value=\"read\">\r\n {{ 'igo.context.permission.read' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"write\">\r\n {{ 'igo.context.permission.write' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n\r\n </form>\r\n\r\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\r\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupPermissions.value.length\"\r\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\">\r\n\r\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\r\n <mat-list-item>\r\n <mat-icon mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\r\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\r\n\r\n <div igoStopPropagation\r\n class=\"igo-actions-container\">\r\n\r\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n color=\"warn\"\r\n (click)=\"removePermission.emit(permission)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n\r\n</div>\r\n","import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n ContextPermissionsList,\r\n ContextProfils\r\n} from '../shared/context.interface';\r\nimport { TypePermission } from '../shared/context.enum';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'igo-context-permissions',\r\n templateUrl: './context-permissions.component.html',\r\n styleUrls: ['./context-permissions.component.scss']\r\n})\r\nexport class ContextPermissionsComponent implements OnInit {\r\n public form: FormGroup;\r\n\r\n @Input()\r\n get context(): Context {\r\n return this._context;\r\n }\r\n set context(value: Context) {\r\n this._context = value;\r\n this.cd.detectChanges();\r\n }\r\n private _context: Context;\r\n\r\n @Input()\r\n get permissions(): ContextPermissionsList {\r\n return this._permissions;\r\n }\r\n set permissions(value: ContextPermissionsList) {\r\n this._permissions = value;\r\n this.cd.detectChanges();\r\n }\r\n private _permissions: ContextPermissionsList;\r\n\r\n get profils(): ContextProfils[] {\r\n return this._profils;\r\n }\r\n set profils(value: ContextProfils[]) {\r\n this._profils = value;\r\n this.cd.detectChanges();\r\n }\r\n private _profils: ContextProfils[] = [];\r\n\r\n get canWrite(): boolean {\r\n return this.context.permission === TypePermission[TypePermission.write];\r\n }\r\n\r\n private baseUrlProfils;\r\n\r\n public formControl = new FormControl();\r\n formValueChanges$$: Subscription;\r\n\r\n @Output() addPermission: EventEmitter<ContextPermission> = new EventEmitter();\r\n @Output() removePermission: EventEmitter<ContextPermission> = new EventEmitter();\r\n @Output() scopeChanged: EventEmitter<Context> = new EventEmitter();\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private cd: ChangeDetectorRef,\r\n private http: HttpClient,\r\n public authService: AuthService,\r\n private config: ConfigService) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.baseUrlProfils = this.config.getConfig('context.url') + '/profils-users?';\r\n\r\n this.formValueChanges$$ = this.formControl.valueChanges.subscribe((value) => {\r\n if (value.length) {\r\n this.http.get(this.baseUrlProfils + 'q=' + value).subscribe(profils => {\r\n this.profils = profils as ContextProfils[];\r\n });\r\n this.profils.filter((profil) => {\r\n const filterNormalized = value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilTitleNormalized = profil.title.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNameNormalized = profil.name.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const profilNormalized = profilNameNormalized + profilTitleNormalized;\r\n return profilNormalized.includes(filterNormalized);\r\n });\r\n } else {\r\n this.profils = [];\r\n }\r\n });\r\n }\r\n\r\n displayFn(profil?: ContextProfils): string | undefined {\r\n return profil ? profil.title : undefined;\r\n }\r\n\r\n public handleFormSubmit(value) {\r\n this.addPermission.emit(value);\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n profil: [],\r\n typePermission: ['read']\r\n });\r\n }\r\n\r\n onProfilSelected(value) {\r\n this.form.setValue({\r\n profil: value.name,\r\n typePermission: this.form.value.typePermission\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Self,\r\n OnInit,\r\n OnDestroy,\r\n HostListener,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\n\r\nimport {\r\n Context,\r\n ContextPermission,\r\n DetailedContext\r\n} from '../shared/context.interface';\r\nimport { ContextService } from '../shared/context.service';\r\nimport { ContextPermissionsComponent } from './context-permissions.component';\r\n\r\n@Directive({\r\n selector: '[igoContextPermissionsBinding]'\r\n})\r\nexport class ContextPermissionsBindingDirective implements OnInit, OnDestroy {\r\n private component: ContextPermissionsComponent;\r\n private editedContext$$: Subscription;\r\n\r\n @HostListener('addPermission', ['$event'])\r\n onAddPermission(permission: ContextPermission) {\r\n const translate = this.languageService.translate;\r\n if (!permission.profil) {\r\n const message = translate.instant(\r\n 'igo.context.contextManager.errors.addPermissionEmpty'\r\n );\r\n const title = translate.instant(\r\n 'igo.context.contextManager.errors.addPermissionTitle'\r\n );\r\n this.messageService.error(message, title);\r\n return;\r\n }\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .addPermissionAssociation(\r\n contextId,\r\n permission.profil,\r\n permission.typePermission\r\n )\r\n .subscribe(profils => {\r\n for (const p of profils) {\r\n this.component.permissions[permission.typePermission].push(p);\r\n }\r\n const profil = permission.profil;\r\n const message = translate.instant(\r\n 'igo.context.permission.dialog.addMsg',\r\n {\r\n value: profil\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.permission.dialog.addTitle'\r\n );\r\n this.messageService.success(message, title);\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('removePermission', ['$event'])\r\n onRemovePermission(permission: ContextPermission) {\r\n const contextId = this.component.context.id;\r\n this.contextService\r\n .deletePermissionAssociation(contextId, permission.id)\r\n .subscribe(() => {\r\n const index = this.component.permissions[\r\n permission.typePermission\r\n ].findIndex(p => {\r\n return p.id === permission.id;\r\n });\r\n this.component.permissions[permission.typePermission].splice(index, 1);\r\n\r\n const profil = permission.profil;\r\n const translate = this.languageService.translate;\r\n const message = translate.instant(\r\n 'igo.context.permission.dialog.deleteMsg',\r\n {\r\n value: profil\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.permission.dialog.deleteTitle'\r\n );\r\n this.messageService.success(message, title);\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n @HostListener('scopeChanged', ['$event'])\r\n onScopeChanged(context: Context) {\r\n const scope = context.scope;\r\n this.contextService.update(context.id, { scope }).subscribe(() => {\r\n const translate = this.languageService.translate;\r\n const message = translate.instant(\r\n 'igo.context.permission.dialog.scopeChangedMsg',\r\n {\r\n value: translate.instant('igo.context.permission.scope.' + scope)\r\n }\r\n );\r\n const title = translate.instant(\r\n 'igo.context.permission.dialog.scopeChangedTitle'\r\n );\r\n this.messageService.success(message, title);\r\n });\r\n }\r\n\r\n constructor(\r\n @Self() component: ContextPermissionsComponent,\r\n private contextService: ContextService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.component = component;\r\n }\r\n\r\n ngOnInit() {\r\n this.editedContext$$ = this.contextService.editedContext$.subscribe(\r\n context => this.handleEditedContextChange(context)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editedContext$$.unsubscribe();\r\n this.contextService.editedContext$.next(undefined);\r\n }\r\n\r\n private handleEditedContextChange(context: DetailedContext) {\r\n this.component.context = context;\r\n\r\n if (context) {\r\n this.contextService\r\n .getPermissions(context.id)\r\n .subscribe(permissionsArray => {\r\n permissionsArray = permissionsArray || [];\r\n const permissions = {\r\n read: permissionsArray.filter(p => {\r\n return p.typePermission.toString() === 'read';\r\n }),\r\n write: permissionsArray.filter(p => {\r\n return p.typePermission.toString() === 'write';\r\n })\r\n };\r\n return (this.component.permissions = permissions);\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\nimport { BookmarkDialogComponent } from './bookmark-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-bookmark-button',\r\n templateUrl: './bookmark-button.component.html',\r\n styleUrls: ['./bookmark-button.component.scss']\r\n})\r\nexport class BookmarkButtonComponent {\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private contextService: ContextService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService\r\n ) {}\r\n\r\n createContext() {\r\n this.dialog\r\n .open(BookmarkDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .pipe(take(1))\r\n .subscribe(title => {\r\n if (title) {\r\n const context = this.contextService.getContextFromMap(this.map);\r\n context.title = title;\r\n this.contextService.create(context).subscribe(() => {\r\n const translate = this.languageService.translate;\r\n const titleD = translate.instant(\r\n 'igo.context.bookmarkButton.dialog.createTitle'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.bookmarkButton.dialog.createMsg',\r\n {\r\n value: context.title\r\n }\r\n );\r\n this.messageService.success(message, titleD);\r\n this.contextService.loadContext(context.uri);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"igo-bookmark-button-container\">\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"createContext()\">\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'igo-poi-dialog',\r\n templateUrl: './poi-dialog.component.html'\r\n})\r\nexport class PoiDialogComponent {\r\n public title: string;\r\n\r\n constructor(public dialogRef: MatDialogRef<PoiDialogComponent>) {}\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{ 'igo.context.poiButton.dialog.title' | translate }}</h1>\r\n<div mat-dialog-content>\r\n <mat-form-field>\r\n <input matInput required autocomplete=\"off\"\r\n [placeholder]=\"'igo.context.poiButton.dialog.placeholder' | translate\"\r\n [(ngModel)]=\"title\">\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\">\r\n {{'igo.common.confirmDialog.confirmBtn' | translate}}\r\n </button>\r\n <button mat-button\r\n (click)=\"dialogRef.close(false)\">\r\n {{'igo.common.confirmDialog.cancelBtn' | translate}}\r\n </button>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, EMPTY } from 'rxjs';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { Poi } from './poi.interface';\r\n\r\n@Injectable()\r\nexport class PoiService {\r\n private baseUrl: string;\r\n\r\n constructor(private http: HttpClient, private config: ConfigService) {\r\n this.baseUrl = this.config.getConfig('context.url');\r\n }\r\n\r\n get(): Observable<Poi[]> {\r\n if (!this.baseUrl) {\r\n return EMPTY;\r\n }\r\n\r\n const url = this.baseUrl + '/pois';\r\n return this.http.get<Poi[]>(url);\r\n }\r\n\r\n delete(id: string): Observable<void> {\r\n const url = this.baseUrl + '/pois/' + id;\r\n return this.http.delete<void>(url);\r\n }\r\n\r\n create(context: Poi): Observable<Poi> {\r\n const url = this.baseUrl + '/pois';\r\n return this.http.post<Poi>(url, context);\r\n }\r\n}\r\n","<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' | translate\"\r\n floatPlaceholder=\"never\">\r\n\r\n <mat-option (click)=\"createPoi()\">\r\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' | translate }}</div>\r\n <button igoStopPropagation class=\"addPoi buttonPoi\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"createPoi()\">\r\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\r\n <div class=\"titlePoi\">{{ poi.title }}</div>\r\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"deletePoi(poi)\">\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </mat-option>\r\n</mat-select>\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport * as olproj from 'ol/proj';\r\nimport * as oleasing from 'ol/easing';\r\nimport olPoint from 'ol/geom/Point';\r\n\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ConfirmDialogService } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { PoiService } from './shared/poi.service';\r\nimport { Poi } from './shared/poi.interface';\r\nimport { PoiDialogComponent } from './poi-dialog.component';\r\n\r\n@Component({\r\n selector: 'igo-poi-button',\r\n templateUrl: './poi-button.component.html',\r\n styleUrls: ['./poi-button.component.scss']\r\n})\r\nexport class PoiButtonComponent implements OnInit, OnDestroy {\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public pois: Poi[];\r\n private authenticate$$: Subscription;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private authService: AuthService,\r\n private poiService: PoiService,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private confirmDialogService: ConfirmDialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.authenticate$$ = this.authService.authenticate$.subscribe(auth => {\r\n if (auth) {\r\n this.getPois();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n deletePoi(poi: Poi) {\r\n if (poi && poi.id) {\r\n const translate = this.languageService.translate;\r\n this.confirmDialogService\r\n .open(translate.instant('igo.context.poiButton.dialog.confirmDelete'))\r\n .subscribe(confirm => {\r\n if (confirm) {\r\n this.poiService.delete(poi.id).subscribe(\r\n () => {\r\n const title = translate.instant(\r\n 'igo.context.poiButton.dialog.deleteTitle'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.poiButton.dialog.deleteMsg',\r\n {\r\n value: poi.title\r\n }\r\n );\r\n this.messageService.info(message, title);\r\n this.pois = this.pois.filter(p => p.id !== poi.id);\r\n },\r\n err => {\r\n err.error.title = 'DELETE Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getPois() {\r\n this.poiService.get().pipe(take(1)).subscribe(\r\n rep => {\r\n this.pois = rep;\r\n },\r\n err => {\r\n err.error.title = 'GET Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n createPoi() {\r\n const view = this.map.ol.getView();\r\n const proj = view.getProjection().getCode();\r\n const center: any = new olPoint(view.getCenter()).transform(\r\n proj,\r\n 'EPSG:4326'\r\n );\r\n\r\n const poi: Poi = {\r\n title: '',\r\n x: center.getCoordinates()[0],\r\n y: center.getCoordinates()[1],\r\n zoom: view.getZoom()\r\n };\r\n\r\n this.dialog\r\n .open(PoiDialogComponent, { disableClose: false })\r\n .afterClosed()\r\n .subscribe(title => {\r\n if (title) {\r\n poi.title = title;\r\n this.poiService.create(poi).subscribe(\r\n newPoi => {\r\n const translate = this.languageService.translate;\r\n const titleD = translate.instant(\r\n 'igo.context.poiButton.dialog.createTitle'\r\n );\r\n const message = translate.instant(\r\n 'igo.context.poiButton.dialog.createMsg',\r\n {\r\n value: poi.title\r\n }\r\n );\r\n this.messageService.success(message, titleD);\r\n poi.id = newPoi.id;\r\n this.pois.push(poi);\r\n },\r\n err => {\r\n err.error.title = 'POST Pois';\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n zoomOnPoi(id) {\r\n const poi = this.pois.find(p => p.id === id);\r\n\r\n const center = olproj.fromLonLat(\r\n [Number(poi.x), Number(poi.y)],\r\n this.map.projection\r\n );\r\n\r\n this.map.ol.getView().animate({\r\n center,\r\n zoom: poi.zoom,\r\n duration: 500,\r\n easing: oleasing.easeOut\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { StorageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\n@Component({\r\n selector: 'igo-user-dialog',\r\n templateUrl: './user-dialog.component.html'\r\n})\r\nexport class UserDialogComponent {\r\n public user;\r\n public exp;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<UserDialogComponent>,\r\n private auth: AuthService,\r\n private storageService: StorageService\r\n ) {\r\n const decodeToken = this.auth.decodeToken();\r\n this.user = decodeToken.user;\r\n this.exp = new Date(decodeToken.exp * 1000).toLocaleString();\r\n }\r\n\r\n clearPreferences() {\r\n this.storageService.clear();\r\n }\r\n}\r\n","<h1 mat-dialog-title class=\"mat-typography\">{{'igo.context.userButton.infoTitle' | translate}}</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <p>{{'igo.context.userButton.dialog.user' | translate}}: {{user.sourceId}}</p>\r\n <p>{{'igo.context.userButton.dialog.email' | translate}}: {{user.email}}</p>\r\n <p>{{'igo.context.userButton.dialog.expiration' | translate}}: {{exp}}</p>\r\n <button mat-stroked-button color=\"primary\" (click)=\"clearPreferences()\">\r\n {{'igo.context.userButton.dialog.clearPreferences' | translate}}\r\n </button>\r\n <br>\r\n</div>\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <button mat-raised-button color=\"primary\"\r\n (click)=\"dialogRef.close(false)\">\r\n OK\r\n </button>\r\n</div>\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 userButtonSlideInOut(): AnimationTriggerMetadata {\r\n return trigger('userButtonState', [\r\n state(\r\n 'collapse',\r\n style({\r\n width: '0',\r\n overflow: 'hidden',\r\n display: 'none'\r\n })\r\n ),\r\n state(\r\n 'expand',\r\n style({\r\n overflow: 'hidden',\r\n display: 'display'\r\n })\r\n ),\r\n transition('collapse => expand', animate('200ms')),\r\n transition('expand => collapse', animate('200ms'))\r\n ]);\r\n}\r\n","<div *ngIf=\"visible\" class=\"igo-user-button-container\">\r\n <div class=\"igo-user-button-more-container\" [@userButtonState]=\"expand ? 'expand' : 'collapse'\">\r\n\r\n <igo-poi-button *ngIf=\"hasApi\" [color]=\"color\" [map]=\"map\"></igo-poi-button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.infoTitle' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"infoUser()\">\r\n <mat-icon svgIcon=\"information-outline\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.userButton.logout' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"logout()\">\r\n <mat-icon svgIcon=\"power\"></mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n <button\r\n mat-icon-button\r\n [color]=\"auth.authenticated ? color : 'warn'\"\r\n (click)=\"accountClick()\">\r\n <mat-icon svgIcon=\"account-box\"></mat-icon>\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { UserDialogComponent } from './user-dialog.component';\r\nimport { userButtonSlideInOut } from './user-button.animation';\r\n\r\n@Component({\r\n selector: 'igo-user-button',\r\n templateUrl: './user-button.component.html',\r\n styleUrls: ['./user-button.component.scss'],\r\n animations: [userButtonSlideInOut()]\r\n})\r\nexport class UserButtonComponent {\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n\r\n @Input()\r\n get color(): string {\r\n return this._color;\r\n }\r\n set color(value: string) {\r\n this._color = value;\r\n }\r\n private _color: string;\r\n\r\n public expand = false;\r\n public visible = false;\r\n public hasApi = false;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private config: ConfigService,\r\n public auth: AuthService\r\n ) {\r\n this.visible = this.config.getConfig('auth') ? true : false;\r\n this.hasApi = this.config.getConfig('context.url') !== undefined;\r\n }\r\n\r\n accountClick() {\r\n if (this.auth.authenticated) {\r\n this.expand = !this.expand;\r\n } else {\r\n this.auth.logout();\r\n }\r\n }\r\n\r\n logout() {\r\n this.expand = false;\r\n this.auth.logout();\r\n }\r\n\r\n infoUser() {\r\n this.dialog.open(UserDialogComponent, { disableClose: false });\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoConfirmDialogModule, IgoStopPropagationModule } from '@igo2/common';\r\nimport { IgoAuthModule } from '@igo2/auth';\r\n\r\nimport { BookmarkButtonComponent } from './bookmark-button/bookmark-button.component';\r\nimport { BookmarkDialogComponent } from './bookmark-button/bookmark-dialog.component';\r\nimport { PoiButtonComponent } from './poi-button/poi-button.component';\r\nimport { PoiDialogComponent } from './poi-button/poi-dialog.component';\r\nimport { PoiService } from './poi-button/shared/poi.service';\r\nimport { UserDialogComponent } from './user-button/user-dialog.component';\r\nimport { UserButtonComponent } from './user-button/user-button.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoLanguageModule,\r\n IgoConfirmDialogModule,\r\n IgoStopPropagationModule,\r\n IgoAuthModule,\r\n FormsModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n MatInputModule\r\n ],\r\n exports: [BookmarkButtonComponent, PoiButtonComponent, UserButtonComponent, BookmarkDialogComponent],\r\n declarations: [\r\n BookmarkButtonComponent,\r\n BookmarkDialogComponent,\r\n PoiButtonComponent,\r\n PoiDialogComponent,\r\n UserButtonComponent,\r\n UserDialogComponent\r\n ],\r\n providers: [PoiService]\r\n})\r\nexport class IgoContextMapButtonModule {\r\n static forRoot(): ModuleWithProviders<IgoContextMapButtonModule> {\r\n return {\r\n ngModule: IgoContextMapButtonModule\r\n };\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoAuthModule } from '@igo2/auth';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoActionbarModule\r\n} from '@igo2/common';\r\n\r\nimport { MapContextDirective } from './shared/map-context.directive';\r\nimport { LayerContextDirective } from './shared/layer-context.directive';\r\nimport { ContextListComponent } from './context-list/context-list.component';\r\nimport { ContextListBindingDirective } from './context-list/context-list-binding.directive';\r\nimport { ContextItemComponent } from './context-item/context-item.component';\r\nimport { ContextFormComponent } from './context-form/context-form.component';\r\nimport { ContextEditComponent } from './context-edit/context-edit.component';\r\nimport { ContextEditBindingDirective } from './context-edit/context-edit-binding.directive';\r\nimport { ContextPermissionsComponent } from './context-permissions/context-permissions.component';\r\nimport { ContextPermissionsBindingDirective } from './context-permissions/context-permissions-binding.directive';\r\nimport { IgoContextMapButtonModule } from '../context-map-button/context-map-button.module';\r\nimport { IgoContextImportExportModule } from '../context-import-export/context-import-export.module';\r\n\r\nconst CONTEXT_DIRECTIVES = [\r\n MapContextDirective,\r\n LayerContextDirective\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n MatMenuModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n IgoAuthModule,\r\n IgoListModule,\r\n IgoKeyValueModule,\r\n IgoCollapsibleModule,\r\n IgoStopPropagationModule,\r\n IgoLanguageModule,\r\n IgoContextImportExportModule,\r\n IgoContextMapButtonModule,\r\n IgoActionbarModule\r\n ],\r\n exports: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ],\r\n declarations: [\r\n ContextListComponent,\r\n ContextListBindingDirective,\r\n ContextItemComponent,\r\n ContextFormComponent,\r\n ContextEditComponent,\r\n ContextEditBindingDirective,\r\n ContextPermissionsComponent,\r\n ContextPermissionsBindingDirective,\r\n\r\n ...CONTEXT_DIRECTIVES\r\n ]\r\n})\r\nexport class IgoContextManagerModule {\r\n static forRoot(): ModuleWithProviders<IgoContextManagerModule> {\r\n return {\r\n ngModule: IgoContextManagerModule\r\n };\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\n\r\nimport { RouteService, MessageService } from '@igo2/core';\r\nimport { Layer, WMSDataSourceOptions } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { DetailedContext } from '../../context-manager/shared/context.interface';\r\nimport { ContextService } from '../../context-manager/shared/context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareMapService {\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private messageService: MessageService,\r\n @Optional() private route: RouteService\r\n ) {}\r\n\r\n getUrlWithApi(formValues) {\r\n return `${location.origin + location.pathname}?context=${formValues.uri}`;\r\n }\r\n\r\n createContextShared(map: IgoMap, formValues) {\r\n const context = this.contextService.getContextFromMap(map);\r\n context.scope = 'public';\r\n context.title = formValues.title;\r\n context.uri = formValues.uri;\r\n return this.contextService.create(context);\r\n }\r\n\r\n updateContextShared(map: IgoMap, formValues, id: string) {\r\n const context = this.contextService.getContextFromMap(map);\r\n return this.contextService.update(id, {\r\n title: formValues.title,\r\n map: context.map\r\n } as DetailedContext);\r\n }\r\n\r\n getUrlWithoutApi(map: IgoMap, publicShareOption) {\r\n if (\r\n !this.route ||\r\n !this.route.options.visibleOnLayersKey ||\r\n !this.route.options.visibleOffLayersKey ||\r\n !map.viewController.getZoom()\r\n ) {\r\n return;\r\n }\r\n const llc = publicShareOption.layerlistControls.querystring;\r\n\r\n let visibleKey = this.route.options.visibleOnLayersKey;\r\n let invisibleKey = this.route.options.visibleOffLayersKey;\r\n const layers = map.layers;\r\n\r\n const visibleLayers = layers.filter(lay => lay.visible && !lay.isIgoInternalLayer);\r\n const invisibleLayers = layers.filter(lay => !lay.visible && !lay.isIgoInternalLayer);\r\n\r\n if (visibleLayers.length === 0) {\r\n visibleKey = '';\r\n }\r\n if (invisibleLayers.length === 0) {\r\n invisibleKey = '';\r\n }\r\n\r\n let layersUrl = '';\r\n let layersToLoop = [];\r\n if (visibleLayers.length > invisibleLayers.length) {\r\n layersUrl = `${visibleKey}=*&${invisibleKey}=`;\r\n layersToLoop = invisibleLayers;\r\n } else {\r\n layersUrl = `${invisibleKey}=*&${visibleKey}=`;\r\n layersToLoop = visibleLayers;\r\n }\r\n\r\n for (const layer of layersToLoop) {\r\n if (layer.id) {\r\n layersUrl += layer.id + ',';\r\n }\r\n }\r\n const contextLayersID = [];\r\n const contextLayers = this.contextService.context$.value.layers;\r\n for (const contextLayer of contextLayers) {\r\n if ( typeof contextLayer.id !== 'undefined' || typeof contextLayer.source !== 'undefined' ) {\r\n contextLayersID.push(contextLayer.id || contextLayer.source.id);\r\n }\r\n }\r\n\r\n const addedLayersQueryParamsWms = this.makeLayersByService(layers, contextLayersID, 'wms');\r\n const addedLayersQueryParamsWmts = this.makeLayersByService(layers, contextLayersID, 'wmts');\r\n const addedLayersQueryParamsArcgisRest = this.makeLayersByService(layers, contextLayersID, 'arcgisrest');\r\n const addedLayersQueryParamsImageArcgisRest = this.makeLayersByService(layers, contextLayersID, 'imagearcgisrest');\r\n const addedLayersQueryParamsTileArcgisRest = this.makeLayersByService(layers, contextLayersID, 'tilearcgisrest');\r\n\r\n layersUrl = layersUrl.substr(0, layersUrl.length - 1);\r\n\r\n const zoomKey = this.route.options.zoomKey;\r\n const centerKey = this.route.options.centerKey;\r\n const contextKey = this.route.options.contextKey;\r\n\r\n const zoom = `${zoomKey}=${map.viewController.getZoom()}`;\r\n const arrayCenter = map.viewController.getCenter('EPSG:4326') || [];\r\n const long = arrayCenter[0].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const lat = arrayCenter[1].toFixed(5).replace(/\\.([^0]+)0+$/, '.$1');\r\n const center = `${centerKey}=${long},${lat}`.replace(/.00000/g, '');\r\n let context = '';\r\n if (this.contextService.context$.value) {\r\n context = `${contextKey}=${this.contextService.context$.value.uri}`;\r\n }\r\n\r\n let url = `${location.origin}${location.pathname}?${context}&${zoom}&${center}&${layersUrl}&${llc}&${addedLayersQueryParamsWms}&${llc}&${addedLayersQueryParamsWmts}&${addedLayersQueryParamsArcgisRest}&${addedLayersQueryParamsImageArcgisRest}&${addedLayersQueryParamsTileArcgisRest}`;\r\n\r\n for (let i = 0; i < 5; i++) {\r\n url = url.replace(/&&/g, '&');\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n }\r\n url = url.endsWith('&') ? url.slice(0, -1) : url;\r\n url = url.replace('?&wm', '&wm');\r\n url = url.replace('?&', '?');\r\n\r\n return url;\r\n }\r\n\r\n private makeLayersByService(layers: Layer[], contextLayersID: any[], typeService: string): string {\r\n\r\n const addedLayersByService = [];\r\n for (const layer of layers.filter(l => l.dataSource.options?.type === typeService)) {\r\n if (contextLayersID.indexOf(layer.id) === -1) {\r\n let linkUrl = encodeURIComponent((layer.dataSource.options as any).url);\r\n let addedLayer = '';\r\n let layerVersion: string;\r\n switch (layer.dataSource.options.type.toLowerCase()) {\r\n case 'wms':\r\n const datasourceOptions = layer.dataSource.options as WMSDataSourceOptions;\r\n addedLayer = encodeURIComponent(datasourceOptions.params.LAYERS);\r\n layerVersion = datasourceOptions.params.VERSION === '1.3.0' ? layerVersion : datasourceOptions.params.VERSION;\r\n break;\r\n case 'wmts':\r\n case 'arcgisrest':\r\n case 'imagearcgisrest':\r\n case 'tilearcgisrest':\r\n addedLayer = encodeURIComponent((layer.dataSource.options as any).layer);\r\n break;\r\n }\r\n const addedLayerPosition = `${addedLayer}:igoz${layer.zIndex}`;\r\n\r\n let version = '';\r\n if (layerVersion) {\r\n const operator = (layer.dataSource.options as any).url.indexOf('?') === -1 ? '?' : '&';\r\n version = encodeURIComponent(`${operator}VERSION=${layerVersion}`);\r\n }\r\n linkUrl = `${linkUrl}${version}`;\r\n\r\n if (\r\n !addedLayersByService.find(definedUrl => definedUrl.url === linkUrl)\r\n ) {\r\n addedLayersByService.push({\r\n url: linkUrl,\r\n layers: [addedLayerPosition]\r\n });\r\n } else {\r\n addedLayersByService.forEach(service => {\r\n if (service.url === linkUrl) {\r\n service.layers.push(addedLayerPosition);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n let addedLayersQueryParams = '';\r\n if (addedLayersByService.length >= 1) {\r\n let linkUrlKey;\r\n let layersKey;\r\n /*\r\n const linkUrlKey = (typeService === 'wms') ? this.route.options.wmsUrlKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsUrlKey : '' ;\r\n const layersKey = (typeService === 'wms') ? this.route.options.wmsLayersKey :\r\n (typeService === 'wmts') ? this.route.options.wmtsLayersKey : '' ;\r\n*/\r\n switch (typeService.toLowerCase()) {\r\n case 'wms':\r\n linkUrlKey = this.route.options.wmsUrlKey;\r\n layersKey = this.route.options.wmsLayersKey;\r\n break;\r\n case 'wmts':\r\n linkUrlKey = this.route.options.wmtsUrlKey;\r\n layersKey = this.route.options.wmtsLayersKey;\r\n break;\r\n case 'arcgisrest':\r\n linkUrlKey = this.route.options.arcgisUrlKey;\r\n layersKey = this.route.options.arcgisLayersKey;\r\n break;\r\n case 'imagearcgisrest':\r\n linkUrlKey = this.route.options.iarcgisUrlKey;\r\n layersKey = this.route.options.iarcgisLayersKey;\r\n break;\r\n case 'tilearcgisrest':\r\n linkUrlKey = this.route.options.tarcgisUrlKey;\r\n layersKey = this.route.options.tarcgisLayersKey;\r\n break;\r\n default:\r\n linkUrlKey = '';\r\n layersKey = '';\r\n }\r\n\r\n let linkUrlQueryParams = '';\r\n let layersQueryParams = '';\r\n addedLayersByService.forEach(service => {\r\n linkUrlQueryParams += `${service.url},`;\r\n layersQueryParams += `(${service.layers.join(',')}),`;\r\n });\r\n linkUrlQueryParams = linkUrlQueryParams.endsWith(',')\r\n ? linkUrlQueryParams.slice(0, -1)\r\n : linkUrlQueryParams;\r\n layersQueryParams = layersQueryParams.endsWith(',')\r\n ? layersQueryParams.slice(0, -1)\r\n : layersQueryParams;\r\n addedLayersQueryParams = `${linkUrlKey}=${linkUrlQueryParams}&${layersKey}=${layersQueryParams}`;\r\n }\r\n\r\n return addedLayersQueryParams;\r\n }\r\n}\r\n","<form class=\"igo-form\" [formGroup]=\"form\"\r\n (ngSubmit)=\"createUrl(form.value)\">\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input matInput required\r\n [placeholder]=\"'igo.context.contextManager.form.title' | translate\"\r\n formControlName=\"title\">\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.titleRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"uriInput\" class=\"igo-input-container\">\r\n <mat-form-field>\r\n <span *ngIf=\"userId\" class=\"prefix\">{{userId}}-</span>\r\n <span class=\"fieldWrapper\">\r\n <input matInput required\r\n [readonly]=\"!userId\"\r\n [placeholder]=\"'igo.context.contextManager.form.uri' | translate\"\r\n formControlName=\"uri\">\r\n </span>\r\n <mat-error>\r\n {{ 'igo.context.contextManager.form.uriRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button *ngIf=\"!url\"\r\n mat-raised-button\r\n type=\"submit\"\r\n [disabled]=\"!form.valid\">\r\n {{ 'igo.context.shareMap.button' | translate }}\r\n </button>\r\n <button *ngIf=\"url\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"updateContextShared(form.value)\">\r\n {{ 'igo.context.shareMap.refreshBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<div *ngIf=\"url\" class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n class=\"textAreaWithButton\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.shareMap.copy' | translate\"\r\n color=\"primary\"\r\n (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n<div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { uuid, Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\n\r\n@Component({\r\n selector: 'igo-share-map-api',\r\n templateUrl: './share-map-api.component.html',\r\n styleUrls: ['./share-map-api.component.scss']\r\n})\r\nexport class ShareMapApiComponent implements OnInit {\r\n public form: FormGroup;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public userId: string;\r\n public idContextShared: string;\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private auth: AuthService,\r\n private shareMapService: ShareMapService,\r\n private formBuilder: FormBuilder\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.auth.authenticate$.subscribe(auth => {\r\n const decodeToken = this.auth.decodeToken();\r\n this.userId = decodeToken.user ? decodeToken.user.id : undefined;\r\n this.buildForm();\r\n });\r\n }\r\n\r\n createUrl(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.url = this.shareMapService.getUrlWithApi(inputs);\r\n this.shareMapService.createContextShared(this.map, inputs).subscribe(\r\n rep => {\r\n this.idContextShared = rep.id;\r\n const title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.dialog.saveTitle'\r\n );\r\n const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {\r\n value: inputs.title\r\n });\r\n this.messageService.success(msg, title);\r\n },\r\n err => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n updateContextShared(values: any = {}) {\r\n const inputs = Object.assign({}, values);\r\n inputs.uri = this.userId ? `${this.userId}-${values.uri}` : values.uri;\r\n this.shareMapService.updateContextShared(this.map, inputs, this.idContextShared).subscribe(\r\n rep => {\r\n const title = this.languageService.translate.instant(\r\n 'igo.context.contextManager.dialog.saveTitle'\r\n );\r\n const msg = this.languageService.translate.instant('igo.context.contextManager.dialog.saveMsg', {\r\n value: inputs.title\r\n });\r\n this.messageService.success(msg, title);\r\n },\r\n err => {\r\n err.error.title = this.languageService.translate.instant(\r\n 'igo.context.shareMap.errorTitle'\r\n );\r\n this.messageService.showError(err);\r\n }\r\n );\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n const msg = translate.instant('igo.context.shareMap.dialog.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n\r\n buildForm(): void {\r\n this.url = undefined;\r\n const id = uuid();\r\n let title = 'Partage ';\r\n title += this.userId ? `(${this.userId}-${id})` : `(${id})`;\r\n this.form = this.formBuilder.group({\r\n title: [title],\r\n uri: [id]\r\n });\r\n }\r\n}\r\n","<div class=\"igo-input-container linkToShare\">\r\n <mat-form-field>\r\n <textarea #textArea matInput readonly rows=\"3\"\r\n [placeholder]=\"'igo.context.shareMap.placeholderLink' | translate\"\r\n [value]=\"url\"></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard(textArea)\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.context.shareMap.copy' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <br/>\r\n <section class=\"mat-typography\">\r\n <h4 *ngIf=\"('igo.context.shareMap.included' | translate)!==''\">{{'igo.context.shareMap.included' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.context' | translate)!==''\">{{'igo.context.shareMap.context' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.center' | translate)!==''\">{{'igo.context.shareMap.center' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.zoom' | translate)!==''\">{{'igo.context.shareMap.zoom' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.addedLayers' | translate)!==''\">{{'igo.context.shareMap.addedLayers' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.visibleInvisible' | translate)!==''\">{{'igo.context.shareMap.visibleInvisible' | translate}}</li>\r\n </ul>\r\n\r\n <h4 *ngIf=\"('igo.context.shareMap.excluded' | translate)!==''\">{{'igo.context.shareMap.excluded' | translate}}</h4>\r\n <ul>\r\n <li *ngIf=\"('igo.context.shareMap.order' | translate)!==''\">{{'igo.context.shareMap.order' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.opacity' | translate)!==''\">{{'igo.context.shareMap.opacity' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterOgc' | translate)!==''\">{{'igo.context.shareMap.filterOgc' | translate}}</li>\r\n <li *ngIf=\"('igo.context.shareMap.filterTime' | translate)!==''\">{{'igo.context.shareMap.filterTime' | translate}}</li>\r\n </ul>\r\n </section>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, Input, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\n\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport { ShareMapService } from '../shared/share-map.service';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-share-map-url',\r\n templateUrl: './share-map-url.component.html',\r\n styleUrls: ['./share-map-url.component.scss']\r\n})\r\nexport class ShareMapUrlComponent implements AfterViewInit, OnInit, OnDestroy {\r\n private mapState$$: Subscription;\r\n\r\n @Input() map: IgoMap;\r\n\r\n public url: string;\r\n public publicShareOption = {\r\n layerlistControls: { querystring: '' }\r\n };\r\n\r\n constructor(\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private shareMapService: ShareMapService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resetUrl();\r\n this.mapState$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.map.status$]).subscribe(c => {\r\n this.resetUrl();\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.resetUrl();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n resetUrl(values: any = {}) {\r\n this.url = this.shareMapService.getUrlWithoutApi(this.map, this.publicShareOption);\r\n }\r\n\r\n copyTextToClipboard(textArea) {\r\n const successful = Clipboard.copy(textArea);\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.context.shareMap.dialog.copyTitle'\r\n );\r\n const msg = translate.instant('igo.context.shareMap.dialog.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n}\r\n","<mat-tab-group *ngIf=\"hasApi\" >\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithApi' | translate\">\r\n <igo-share-map-api [map]=\"map\"></igo-share-map-api>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.context.shareMap.shareWithUrl' | translate\">\r\n <igo-share-map-url [map]=\"map\"></igo-share-map-url>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-share-map-url *ngIf=\"!hasApi\" [map]=\"map\"></igo-share-map-url>\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\n@Component({\r\n selector: 'igo-share-map',\r\n templateUrl: './share-map.component.html',\r\n styleUrls: ['./share-map.component.scss']\r\n})\r\nexport class ShareMapComponent {\r\n\r\n @Input() map: IgoMap;\r\n\r\n public hasApi = false;\r\n\r\n constructor(\r\n private config: ConfigService\r\n ) {\r\n this.hasApi = this.config.getConfig('context.url') ? true : false;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { ShareMapComponent } from './share-map/share-map.component';\r\nimport { ShareMapUrlComponent } from './share-map/share-map-url.component';\r\nimport { ShareMapApiComponent } from './share-map/share-map-api.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatTabsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n IgoLanguageModule\r\n ],\r\n exports: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent],\r\n declarations: [ShareMapComponent, ShareMapUrlComponent, ShareMapApiComponent]\r\n})\r\nexport class IgoShareMapModule {\r\n static forRoot(): ModuleWithProviders<IgoShareMapModule> {\r\n return {\r\n ngModule: IgoShareMapModule\r\n };\r\n }\r\n}\r\n","<mat-sidenav\r\n #sidenav\r\n igoSidenavShim\r\n mode=\"side\"\r\n [opened]=\"opened\">\r\n\r\n <div class=\"igo-sidenav-content\">\r\n\r\n <igo-flexible\r\n #topPanel\r\n initial=\"50%\" initialMobile=\"100%\"\r\n expanded=\"calc(100% - 58px)\"\r\n [state]=\"topPanelState\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-panel [title]=\"tool ? (tool.title | translate) : title\">\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.goBack' | translate\"\r\n *ngIf=\"tool\">\r\n <mat-icon svgIcon=\"arrow-back\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\r\n *ngIf=\"tool\">\r\n <mat-icon svgIcon=\"menu\"></mat-icon>\r\n </button>\r\n\r\n </igo-panel>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel\r\n [title]=\"featureTitle\"\r\n *ngIf=\"feature && media !== 'mobile'\">\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]=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0 ? 'arrow_downward' : 'arrow_upward'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n (click)=\"zoomToFeatureExtent()\"\r\n *ngIf=\"feature.geometry\">\r\n <mat-icon svgIcon=\"zoom-in\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n [feature]=\"feature\"\r\n *ngIf=\"['collapsed', 'initial'].indexOf(topPanel.state) >= 0\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n </igo-flexible>\r\n\r\n </div>\r\n</mat-sidenav>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport type { Media } from '@igo2/core';\r\nimport { FlexibleState, Tool, getEntityTitle } from '@igo2/common';\r\nimport { Feature, FeatureMotion, moveToOlFeatures } from '@igo2/geo';\r\nimport type { IgoMap } from '@igo2/geo';\r\n\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\n\r\n@Component({\r\n selector: 'igo-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss']\r\n})\r\nexport class SidenavComponent {\r\n private format = new olFormatGeoJSON();\r\n @Input()\r\n get map(): IgoMap {\r\n return this._map;\r\n }\r\n set map(value: IgoMap) {\r\n this._map = value;\r\n }\r\n private _map: IgoMap;\r\n @Input()\r\n get opened(): boolean {\r\n return this._opened;\r\n }\r\n set opened(value: boolean) {\r\n this._opened = value;\r\n }\r\n private _opened: boolean;\r\n\r\n @Input()\r\n get feature(): Feature {\r\n return this._feature;\r\n }\r\n set feature(value: Feature) {\r\n this._feature = value;\r\n }\r\n private _feature: Feature;\r\n\r\n @Input()\r\n get tool(): Tool {\r\n return this._tool;\r\n }\r\n set tool(value: Tool) {\r\n this._tool = value;\r\n }\r\n private _tool: Tool;\r\n\r\n @Input()\r\n get media(): Media {\r\n return this._media;\r\n }\r\n set media(value: Media) {\r\n this._media = value;\r\n }\r\n private _media: Media;\r\n\r\n @Input()\r\n get title(): string {\r\n return this._title;\r\n }\r\n set title(value: string) {\r\n if (value) {\r\n this._title = value;\r\n }\r\n }\r\n private _title: string = this.titleService.getTitle();\r\n\r\n public topPanelState: FlexibleState = 'initial';\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n constructor(public titleService: Title) {}\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const olFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.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 toggleTopPanel() {\r\n if (this.topPanelState === 'initial') {\r\n this.topPanelState = 'expanded';\r\n } else {\r\n this.topPanelState = 'initial';\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoPanelModule, IgoFlexibleModule } from '@igo2/common';\r\nimport { IgoFeatureModule } from '@igo2/geo';\r\n\r\nimport { IgoContextManagerModule } from '../context-manager/context-manager.module';\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n MatTooltipModule,\r\n IgoLanguageModule,\r\n IgoPanelModule,\r\n IgoFlexibleModule,\r\n IgoFeatureModule,\r\n IgoContextManagerModule\r\n ],\r\n exports: [SidenavComponent],\r\n declarations: [SidenavComponent]\r\n})\r\nexport class IgoSidenavModule {\r\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\r\n return {\r\n ngModule: IgoSidenavModule\r\n };\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoContextImportExportModule } from './context-import-export/context-import-export.module';\r\nimport { IgoContextManagerModule } from './context-manager/context-manager.module';\r\nimport { IgoContextMapButtonModule } from './context-map-button/context-map-button.module';\r\nimport { IgoShareMapModule } from './share-map/share-map.module';\r\nimport { IgoSidenavModule } from './sidenav/sidenav.module';\r\n\r\n@NgModule({\r\n imports: [MatInputModule, MatFormFieldModule, MatMenuModule],\r\n declarations: [],\r\n exports: [\r\n IgoContextImportExportModule,\r\n IgoContextManagerModule,\r\n IgoContextMapButtonModule,\r\n IgoShareMapModule,\r\n IgoSidenavModule\r\n ]\r\n})\r\nexport class IgoContextModule {\r\n static forRoot(): ModuleWithProviders<IgoContextModule> {\r\n return {\r\n ngModule: IgoContextModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of context\r\n */\r\n\r\nexport * from './lib/context.module';\r\nexport * from './lib/context-import-export/context-import-export.module';\r\nexport * from './lib/context-manager/context-manager.module';\r\nexport * from './lib/context-map-button/context-map-button.module';\r\nexport * from './lib/share-map/share-map.module';\r\nexport * from './lib/sidenav/sidenav.module';\r\n\r\nexport * from './lib/context-import-export';\r\nexport * from './lib/context-manager';\r\nexport * from './lib/context-map-button';\r\nexport * from './lib/share-map';\r\nexport * from './lib/sidenav';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["olStyle","FeatureDataSource","VectorLayer","ClusterDataSource","Observable","Injectable","downloadContent","TypePermission","Scope","BehaviorSubject","Subject","skip","first","catchError","tap","of","map","mergeMap","ObjectUtils","debounceTime","olPoint","uuid","olVectorSource","GeoJSON","Cluster","Optional","i0","take","Validators","Component","Input","FormsModule","ReactiveFormsModule","CommonModule","MatButtonModule","MatButtonToggleModule","MatDividerModule","MatTabsModule","MatSelectModule","MatOptionModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","IgoLanguageModule","IgoSpinnerModule","MatTooltipModule","NgModule","filter","Directive","merge","buffer","EventEmitter","ChangeDetectionStrategy","Output","ReplaySubject","ActionStore","ActionbarMode","debounce","EMPTY","timer","Self","HostListener","Clipboard","FormControl","olproj","oleasing","trigger","state","style","transition","animate","IgoConfirmDialogModule","IgoStopPropagationModule","IgoAuthModule","MatIconModule","MatDialogModule","MatListModule","MatRadioModule","MatMenuModule","MatAutocompleteModule","IgoListModule","IgoKeyValueModule","IgoCollapsibleModule","IgoActionbarModule","combineLatest","olFormatGeoJSON","getEntityTitle","moveToOlFeatures","FeatureMotion","MatSidenavModule","IgoPanelModule","IgoFlexibleModule","IgoFeatureModule"],"mappings":"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"}