{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/_modal/modal.component.html","./src/app/app.component.html","./src/app/article/article.component.html","./src/app/change-marking-switcher/change-marking-switcher.component.html","./src/app/hearing/hearing.component.html","./src/app/history/history.component.html","./src/app/info/info.component.html","./src/app/language/language.component.html","./src/app/layer-switcher/layer-switcher.component.html","./src/app/map/map.component.html","./src/app/news/news.component.html","./src/app/search/search.component.html","./src/app/service-layers/service-layers.component.html","./src/app/share-link/share-link.component.html","./src/app/sidebar/sidebar.component.html","./src/app/zones/zones.component.html","./node_modules/tslib/tslib.es6.js","./src/app/_modal/index.ts","./src/app/_modal/modal.component.scss","./src/app/_modal/modal.component.ts","./src/app/_modal/modal.module.ts","./src/app/_modal/modal.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/article/article.component.scss","./src/app/article/article.component.ts","./src/app/change-marking-switcher/change-marking-switcher.component.scss","./src/app/change-marking-switcher/change-marking-switcher.component.ts","./src/app/date/NgbDateCustomParserFormatter.ts","./src/app/hearing/hearing.component.scss","./src/app/hearing/hearing.component.ts","./src/app/history/history.component.scss","./src/app/history/history.component.ts","./src/app/history/i18Date.service.ts","./src/app/info/info.component.scss","./src/app/info/info.component.ts","./src/app/language/language.component.scss","./src/app/language/language.component.ts","./src/app/language/language.module.ts","./src/app/layer-switcher/layer-switcher.component.scss","./src/app/layer-switcher/layer-switcher.component.ts","./src/app/map/drawingtools/drawingtool.ts","./src/app/map/map.component.scss","./src/app/map/map.component.ts","./src/app/map/util/mapHelper.ts","./src/app/map/vectorstyle/vector-style.ts","./src/app/models/mapsettings.ts","./src/app/models/plandatatimelineinfo.ts","./src/app/models/routeinfo.ts","./src/app/models/statusinfo.ts","./src/app/models/timeline.ts","./src/app/models/timeplanversionevent.ts","./src/app/models/zoneinhoering.ts","./src/app/news/news.component.scss","./src/app/news/news.component.ts","./src/app/plandataDefinition/planInfo.ts","./src/app/plandataDefinition/zoneFeature.ts","./src/app/search/search.component.scss","./src/app/search/search.component.ts","./src/app/service-layers/service-layers.component.scss","./src/app/service-layers/service-layers.component.ts","./src/app/services/consultationdata.service.ts","./src/app/services/content.service.ts","./src/app/services/date.service.ts","./src/app/services/environment.service.ts","./src/app/services/language.service.ts","./src/app/services/map.service.ts","./src/app/services/plandata.service.ts","./src/app/services/preview.service.ts","./src/app/services/print.service.ts","./src/app/services/routereuse.service.ts","./src/app/services/routing.service.ts","./src/app/share-link/share-link.component.scss","./src/app/share-link/share-link.component.ts","./src/app/sidebar/sidebar.component.scss","./src/app/sidebar/sidebar.component.ts","./src/app/validators/phone-number-validator.directive.ts","./src/app/zones/zones.component.scss","./src/app/zones/zones.component.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"
\\n
\\n \\n
\\n
\\n
\"","export default \"
\\n \\n
\\n

{{popUpText?.text1}}

\\n
\\n
\\n \\n
\\n
\\n\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n\"","export default \"
\\n
\\n
\\n \\n
{{menuItem.text1}}
\\n
\\n
\\n \\\"\\\" {{backButton.text1}}\\n
\\n
\\n\\n
\\n
\\n

{{ currentArticle.title }}

\\n
{{ currentArticle.createdAt | date : 'dd/MM-yyyy' }}
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n {{getText(mapPrefix, \\\"map_markingswitcher_title\\\")}}\\n
\\n\\n
\\n
\\n\\n
\\n \\\"\\\"\\n\\n \\n {{layer.layerSwitcherDisplayName[currentLang]}}\\n \\n
\\n
\\n
\\n\\n
\\n\"","export default \"
\\n\\n \\n
\\n

{{ getText(consultationPrefix, \\\"conslutationlist_title\\\") }}

\\n
{{ getText(consultationPrefix, \\\"after_conslutationlist_title\\\") }}
\\n
\\n
\\n \\n \\n
\\n
\\n
{{ getText(consultationPrefix, \\\"conslutationlist_current_filter\\\") }}
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
{{ getText(consultationPrefix, \\\"conslutationlist_column_name\\\") }}{{ getText(consultationPrefix, \\\"conslutationlist_column_deadline\\\") }}
{{ consultation.title}}{{ consultation.title_en}}{{ showDate(consultation.consultationEnd) }}
\\n
\\n\\n \\n
\\n
\\n \\\"\\\" {{getText(consultationPrefix, \\\"consultation_go_back_to_consultationlist\\\")}}\\n
\\n

{{selectedConsultation.title}}

\\n

{{selectedConsultation.title_en}}

\\n \\n\\n \\n \\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
{{ getText(consultationPrefix, \\\"consultation_attribute_status\\\") }}
{{ getConsultationStatusText()}}
\\n
{{ getText(consultationPrefix, \\\"consultation_approved_date\\\") }}
\\n
{{ getText(consultationPrefix, \\\"consultation_cancel_date\\\") }}
\\n
{{showDate(selectedConsultation.effectiveDate)}}
{{ getText(consultationPrefix, \\\"consultation_attribute_consultation_start\\\") }}
{{ showDate(selectedConsultation.consultationStart) }}
{{ getText(consultationPrefix, \\\"consultation_attribute_consultation_end\\\") }}
{{ showDate(selectedConsultation.consultationEnd) }}
\\n\\n \\n {{ getText(consultationPrefix, \\\"conslutation_goto_responses_button_navigation\\\") }}\\n \\n
\\n\\n
\\n
\\n
\\n
\\n

{{ getText(consultationPrefix, \\\"consultation_title_description\\\") }}

\\n
\\n
\\n\\n
\\n

{{ getText(consultationPrefix, \\\"consultation_title_description\\\") }}

\\n
\\n
\\n\\n
\\n

\\n {{ getText(consultationPrefix, \\\"consultation_title_note\\\") }}\\n

\\n \\n
\\n
{{ getText(consultationPrefix, \\\"consultation_title_note_notexist\\\") }}
\\n\\n
\\n\\n\\n\\n\\n
\\n
\\n {{ getText(consultationPrefix, \\\"consultation_memo_text_description\\\") }} {{getText(consultationPrefix, 'consultation_response_description_url')}}\\n
\\n
\\n\\n \\n
\\n\\n \\n
\\n
\\n \\\"\\\" {{ getText(consultationResponsePrefix, \\\"responsecreate_go_back_link\\\") }}\\n
\\n

{{ getText(consultationResponsePrefix, \\\"responselist_title\\\") }} {{selectedConsultation.title}}

\\n
\\n\\n\\n\\n\\n
\\n \\n \\n \\\"\\\"\\n \\\"\\\"\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n
{{ getText(consultationResponsePrefix, \\\"responselist_column_creator\\\") }}{{ getText(consultationResponsePrefix, \\\"responselist_column_date\\\") }}
{{(consultationResponse.name.length > 33)?(consultationResponse.name | slice:0:33)+'...':(consultationResponse.name)}}{{this.showDate(consultationResponse.currentDateTime)}}
\\n\\n \\n
\\n\\n
\\n\\n \\n
\\n
\\n \\\"\\\" {{ getText(consultationResponsePrefix, \\\"responselist_go_back_link\\\") }}\\n
\\n

{{ getText(consultationResponsePrefix, \\\"response_title\\\") }}: {{selectedConsultation.title}}

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n
{{ getText(consultationResponsePrefix, \\\"response_detail_published_at\\\") }}{{this.showDate(selectedConsultationResponse.currentDateTime)}}
{{ getText(consultationResponsePrefix, \\\"response_detail_name\\\") }}{{selectedConsultationResponse.name}}
{{ getText(consultationResponsePrefix, \\\"response_detail_postalcode\\\") }}/{{ getText(consultationResponsePrefix, \\\"response_detail_city\\\") }}{{selectedConsultationResponse.postalcode}} {{selectedConsultationResponse.city}}
{{ getText(consultationResponsePrefix, \\\"response_detail_dokument\\\") }}\\n {{ getText(consultationPrefix, \\\"consultation_title_note_download\\\") }}\\n \\n
\\n
0\\\">{{ getText(consultationResponsePrefix, \\\"zone_detail_list\\\") }}
\\n
0\\\">{{ getText(consultationResponsePrefix, \\\"sektor_detail_list\\\") }}
\\n
{{ getText(consultationResponsePrefix, \\\"manual_drowing_geometry_msg\\\") }}
\\n
{{ getText(consultationResponsePrefix, \\\"all_zone_selected_msg\\\") }}
\\n \\n
0\\\">\\n
\\n {{zone}} - {{getZoneRefNameById(zone)}}\\n
\\n
\\n \\n
0\\\">\\n
\\n {{getZoneLayerNameById(zone)}}\\n
\\n
\\n
\\n
\\n
{{ getText(consultationResponsePrefix, \\\"response_responsetext\\\") }}
\\n

\\n\\n
\\n\\n \\n
\\n
\\n \\\"\\\" {{ getText(consultationResponsePrefix, \\\"responsecreate_go_back_link\\\") }}\\n
\\n

{{ getText(consultationResponsePrefix, \\\"responsecreate_intro\\\") }}

\\n\\n

\\n
\\n
\\n

{{ getText(consultationResponsePrefix, \\\"responsecreate_geometry\\\") }}

\\n\\n\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n {{ zoneInHearing.refId }}\\n \\n \\n {{ zonesInHearings[item].refId }} - {{ getTitlePrefixZoneId(zonesInHearings[item]) }}\\n \\n \\n
0\\\" [innerHTML]=\\\"getHTML(currentLang+'/plan/consultation/response', 'select_multiple_zones_selected_list')\\\">
\\n
    0\\\">\\n
  • {{getZoneByIndex(item)}}
  • \\n
\\n
\\n
\\n\\n \\n
\\n \\n \\n \\n
\\n \\n\\n \\n {{ zonelayer.type }}\\n \\n \\n {{ zoneLayers[item]['layerSwitcherDisplayName'][currentLang] }}\\n \\n \\n
0\\\" [innerHTML]=\\\"getHTML(currentLang+'/plan/consultation/response', 'selected_multiple_sectors_text')\\\">
\\n
    0\\\">\\n
  • {{getZoneLayerByIndex(item)}}
  • \\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n \\n
\\n \\n \\n
\\n\\n
\\n {{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_geo\\\") }}\\n
\\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n  \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_name\\\") }}
\\n
\\n
\\n\\n\\n
\\n \\n \\n
\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_address\\\") }}
\\n
\\n
\\n
\\n \\n \\n
\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_postalcode\\\") }}
\\n
\\n
\\n
\\n \\n \\n
\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_city\\\") }}
\\n
\\n
\\n
\\n \\n \\n\\n
\\n\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_email\\\") }}
\\n\\n
\\n {{ getText(consultationResponsePrefix, \\\"responsecreate_validation_email\\\") }}\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n\\n \\n \\n\\n
\\n
{{ getText(consultationResponsePrefix, \\\"responsecreate_validation_error_response\\\") }}
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n

\\n
\\n
\\n
\\n
\\n \\n\\n \\n \\n
\\n


\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n {{getText(consultationResponsePrefix, \\\"confirm_sender_type\\\")}}{{selectedTypeValue}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_name_address_protection\\\")}}{{consultationResponse.isPrivate ? 'ja' : 'nej'}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_name\\\")}}{{consultationResponse.name}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_address\\\")}}{{consultationResponse.address}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_postnumber\\\")}}{{consultationResponse.postalcode}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_city\\\")}}{{consultationResponse.city}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_email\\\")}}{{consultationResponse.email}}
\\n {{ getText(consultationResponsePrefix, \\\"confirm_other_contact_information\\\")}}{{consultationResponse.othercontact}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_consultation_response\\\")}}\\n

\\n {{getText(consultationResponsePrefix, \\\"confirm_document\\\")}}{{(files && files.length > 0) ? (files.length + \\\" dokumenter vedhæftet\\\") : 'Ingen dokumenter vedhæftet'}}
\\n {{getText(consultationResponsePrefix, \\\"confirm_Geography\\\")}}{{(selectedZone && selectedZone.length > 1) ? 'zoner' : 'zone'}}: {{getZoneRefNameByIndexList()}}\\n {{getText(consultationResponsePrefix, \\\"confirm_Geography\\\")}}{{(selectedZoneLayer && selectedZoneLayer.length > 1) ? 'sektorer' : 'sektor'}}: {{getZoneLayerNameByIndexList()}}\\n \\n {{getText(consultationResponsePrefix, \\\"confirm_Geography\\\")}} {{(consultationResponse.geometry) ? 'Indtegnet' : ' ingen tegning valgt'}}\\n {{getText(consultationResponsePrefix, \\\"confirm_Geography\\\")}} {{getText(consultationResponsePrefix, \\\"confirm_all_zones_selected\\\")}} {{isTillag ? 'selectedConsultation.title' : ''}}\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n

\\n \\n {{getText(consultationResponsePrefix, 'responsecreate_warning')}}!\\n {{getText(consultationResponsePrefix, 'responsecreate_zone_not_for_consultation')}}\\n \\n

\\n\\n\\n
\\n\\n \\n
\\n\\n
\\n \\\"\\\" {{ getText(consultationResponsePrefix, \\\"responsecreate_go_back_link\\\") }}\\n
\\n\\n \\n

{{ getText(consultationResponsePrefix, \\\"responseconfirm_text_heading\\\") }}

\\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n
\\n\\n \\n
\\n

Eksporterer... {{printedReportsPercentage}}%

\\n

Download er klar snarest

\\n
\\n
\\n\\n\"","export default \"
\\n

{{ getText(historyPrefix, \\\"history_title\\\") }}

\\n
{{ getText(historyPrefix, \\\"after_history_title\\\") }}

\\n

{{ getText(historyPrefix, \\\"history_datepicker_label\\\") }}

\\n\\n
\\n \\n
\\\"Kalender\\\"
\\n
\\n

{{ getText(historyPrefix, \\\"history_timeline_label\\\") }}

\\n
\\n\\n \\n
0\\\">\\n
\\n \\n
\\n
\\n
    \\n
  1. \\n
    {{ dateService.formatDateOnly(item.start | date )}}
    \\n
    \\n
    \\n
  2. \\n
\\n
\\n
\\n 0\\\">\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n
\\n
\\n {{getText(historyPrefix,\\\"history_change_label\\\")}}
\\n
\\n
{{plandataTimeLineInfo.plantype}}\\n
\\n
\\n
\\n {{getText(historyPrefix,\\\"history_name_label\\\")}}
\\n
\\n {{getText(historyPrefix,\\\"history_Canceled_date_level\\\")}}
\\n
\\n
\\n {{plandataTimeLineInfo.plantitle}}\\n
\\n
\\n {{plandataTimeLineInfo.plantitle_en}}
\\n
\\n {{dateService.format(plandataTimeLineInfo.planCancelDate)}}
\\n
\\n
\\n {{getText(historyPrefix,\\\"history_consultation_start_label\\\")}}
\\n
\\n
\\n {{dateService.format(plandataTimeLineInfo.planConsultationStart)}}
\\n
\\n
\\n {{getText(historyPrefix,\\\"history_consultation_end_label\\\")}}
\\n
\\n
\\n {{dateService.format(plandataTimeLineInfo.planConsultationEnd)}}
\\n
\\n
\\n {{getText(historyPrefix,\\\"history_effective_date_label\\\")}}
\\n
\\n
\\n {{dateService.format(plandataTimeLineInfo.planApprovedeffEctiveDate)}}
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n\"","export default \"
\\n

{{ getText(infoPrefix, \\\"info_intro\\\") }}

\\n
\\n

\\n\\n

\\n

\\n\\n \\n\\n
{{ getText(infoPrefix, \\\"info_guide_title\\\") }}
\\n
\\n
\\n
\\n \\\"\\\"\\n
\\n
{{ getText(tabsPrefix, \\\"tab_lawtext\\\") }}
\\n
\\n
\\n
\\n \\\"\\\"\\n
\\n
{{ getText(tabsPrefix, \\\"tab_consultation\\\") }}
\\n
\\n
\\n
\\n \\\"\\\"\\n
\\n
{{ getText(tabsPrefix, \\\"tab_history\\\") }}
\\n
\\n
\\n
\\n \\\"\\\"\\n
\\n
{{ getText(tabsPrefix, \\\"tab_search\\\") }}
\\n
\\n
\\n
\\n \\\"\\\"\\n
\\n
{{ getText(tabsPrefix, \\\"tab_service_layers\\\") }}
\\n
\\n \\n
\\n
{{ getText(infoPrefix, \\\"info_guide_help_link\\\") }}
\\n
\\n\"","export default \"
\\n \\n
\\n \\n
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","export default \"
\\n
\\n
\\n {{ getText(mapPrefix, \\\"map_layerswitcher_title\\\") }}\\n\\n \\n   {{ getText(mapPrefix, \\\"map_layerswitcher_reset\\\") }}\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n
\\n
\\n\\n\\n \\n\\n
\\n \\\"\\\"\\n\\n {{layer.layerSwitcherDisplayName[currentLang]}}\\n
\\n
\\n
\\n \\\"\\\"\\n\\n {{sublayer.layerSwitcherDisplayName[currentLang]}}\\n
\\n
\\n\\n
\\n\\n
\\n\\n\\n\\n
\\n
\\n
{{ getText(mapPrefix, \\\"map_layerswitcher_depths_all\\\") }}
\\n
{{ getText(mapPrefix, \\\"map_layerswitcher_depths_above\\\") }}
\\n
{{ getText(mapPrefix, \\\"map_layerswitcher_depths_sealevel\\\") }}
\\n
{{ getText(mapPrefix, \\\"map_layerswitcher_depths_below\\\") }}
\\n
{{ getText(mapPrefix, \\\"map_layerswitcher_depths_bottom\\\") }}
\\n
\\n
\\n
\\n\"","export default \"\\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n\\n
\\n
\\n\\n
\\n
\\n \\n \\n\\n\\n\\n \\n\\n \\n\\n \\n \\n \\n\\n
\\n
\\n \\n\\n\"","export default \"
\\n
\\n \\n \\n \\n
\\n \\n
\\n

{{title}}

\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
{{ dateService.formatDateOnly(item.createdAt | date )}}
\\n
{{ item.title }}
\\n {{item.teaser}}\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n

{{getText(subscriptionPrefix, \\\"subscription_title\\\")}}

\\n\\n
\\n
\\n \\n \\n
\\n
{{getText(subscriptionPrefix, \\\"email_required_validation\\\")}}
\\n
{{getText(subscriptionPrefix, \\\"must_be_valid_email_validation\\\")}}
\\n
\\n
\\n\\n
\\n     \\n \\n
\\n
\\n
{{getText(subscriptionPrefix, \\\"checkbox_required_validation\\\")}}
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\"","export default \"
\\n\\n

{{getText(searchPrefix, \\\"search_title\\\")}}

\\n\\n
\\n \\n \\n {{getText(searchPrefix, \\\"search_heading_text\\\")}}\\n \\n
\\n\\n
\\n\\n
\\n\\n
{{getText(searchPrefix, 'search_mode_choose')}}
\\n\\n
\\n \\n \\n \\n
\\n\\n \\n \\\"\\\"\\n \\\"\\\"\\n \\n\\n \\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n\\n
\\n
\\n
{{getZoneTitle(result)}} - {{ result.refId }}
\\n {{getText(searchPrefix, 'search_applicable_result')}}\\n {{getText(searchPrefix, 'search_hearing_result')}} {{ dateService.format(result.consultationEnd) }}\\n
\\n
\\n\\n\\n
\\n\\n
\\n {{getText(searchPrefix, 'search_no_result')}}\\n
\\n\\n
\\n\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n\"","export default \"
\\n \\n\\n
\\n {{ currentLang == \\\"en\\\" ? \\\"Service Layers\\\" : \\\"Servicelag\\\" }}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n {{ columnData[\\\"name\\\" + (currentLang == \\\"en\\\" ? \\\"_en\\\" : \\\"\\\")] }}\\n \\n\\n
\\n
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n  {{\\n innerItem[\\\"displayName\\\" + (currentLang == \\\"en\\\" ? \\\"_en\\\" : \\\"\\\")]\\n }}\\n \\n   0\\n \\\"\\n class=\\\"fa fa-info-circle aaa\\\"\\n style=\\\"cursor: pointer\\\"\\n triggers=\\\"focus\\\"\\n [autoClose]=\\\"'outside'\\\"\\n [ngbTooltip]=\\\"tipContent\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"info\\\"\\n (keydown.enter)=\\\"('click')\\\"\\n >\\n \\n   0\\n \\\"\\n class=\\\"fa fa-info-circle aaa\\\"\\n style=\\\"cursor: pointer\\\"\\n triggers=\\\"focus\\\"\\n [autoClose]=\\\"'outside'\\\"\\n [ngbTooltip]=\\\"tipContentEn\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"info\\\"\\n (keydown.enter)=\\\"('click')\\\"\\n >\\n \\n   0\\n \\\"\\n tabindex=\\\"0\\\"\\n role=\\\"link\\\"\\n aria-label=\\\"m\\\"\\n (keydown.enter)=\\\"openLinkField(innerItem['linkField'])\\\"\\n (click)=\\\"openLinkField(innerItem['linkField'])\\\"\\n >\\\"m-link\\\"\\n\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n  {{\\n innerItem[\\\"displayName\\\" + (currentLang == \\\"en\\\" ? \\\"_en\\\" : \\\"\\\")]\\n }}\\n   0\\n \\\"\\n class=\\\"fa fa-info-circle\\\"\\n style=\\\"cursor: pointer\\\"\\n triggers=\\\"focus\\\"\\n [autoClose]=\\\"'outside'\\\"\\n [ngbTooltip]=\\\"tipContent\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"info\\\"\\n (keydown.enter)=\\\"('click')\\\"\\n >\\n \\n   0\\n \\\"\\n class=\\\"fa fa-info-circle aaa\\\"\\n style=\\\"cursor: pointer\\\"\\n triggers=\\\"focus\\\"\\n [autoClose]=\\\"'outside'\\\"\\n [ngbTooltip]=\\\"tipContentEn\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"info\\\"\\n (keydown.enter)=\\\"('click')\\\"\\n >\\n \\n   0\\n \\\"\\n tabindex=\\\"0\\\"\\n role=\\\"link\\\"\\n aria-label=\\\"m\\\"\\n (keydown.enter)=\\\"openLinkField(innerItem['linkField'])\\\"\\n (click)=\\\"openLinkField(innerItem['linkField'])\\\"\\n >\\\"m-link\\\"\\n\\n
\\n
\\n
\\n
\\n
\\n \\n\\n\"","export default \"\\n \\n {{getText(\\\"\\\", \\\"topmenu_share_link\\\")}}\\n\\n\\n\\n
\\n

{{getText(sharelinkPrefix, \\\"sharelink_title\\\")}}


\\n\\n \\n
\\n
\\n

{{getText(sharelinkPrefix, \\\"sharelink_text\\\")}}

\\n \\n \\n
\\n\\n
\\n\\n\"","export default \"
\\n \\n
\\n\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n \\\"\\\"\\n \\\"\\\"\\n
\\n
\\n
{{getText(currentLang+\\\"/plan/tabs\\\",\\\"tab_showmap\\\")}}
\\n
\\n\\n
\\n\"","export default \"
\\n \\n
\\n\\n

{{ getText(lawtextPrefix, \\\"lawtext_list_title\\\") }}

\\n\\n
\\n {{getText(lawtextPrefix, \\\"lawtext_zone_count_1\\\")}} {{ selectedZones.length }}\\n {{getText(lawtextPrefix, \\\"lawtext_zone_count_2\\\")}} \\n
\\n
\\n \\n
\\n
\\n {{ getTitlePrefixZoneId(zone) }}\\n - {{zone.refId}}\\n
\\n \\n
\\n
\\n
\\n\\n \\n
\\n\\n
\\n \\\"\\\" {{ getText(lawtextPrefix, \\\"lawtext_go_back_zones_selected_point\\\") }}\\n
\\n\\n
\\n \\n
\\n \\\"\\\" {{ getText(lawtextPrefix, \\\"lawtext_go_back_link\\\") }}\\n
\\n
\\n \\\"\\\" {{ getText('/plan/consultation/response', \\\"responsecreate_go_back_link\\\") }}\\n
\\n
\\n \\n
\\n \\n
0\\\">\\n
\\n \\n
\\n
\\n
    \\n
  1. \\n
    {{ dateService.formatDateOnly(item.start | date )}}
    \\n
    \\n
    \\n
  2. \\n
\\n
\\n
\\n 0\\\">\\n
\\n
\\n\\n
\\n\\n
\\n
\\n {{ getText(lawtextPrefix, \\\"lawtext_nozonepoint_message\\\") }}\\n
\\n\\n
\\n\\n
\\n \\n

\\n {{ singleZone.planInfo.name === \\\"removed\\\" ? \\\"Fjernet areal fra: \\\" : \\\"\\\"}}\\n {{ titlePrefixZoneId }}\\n - {{singleZone.refId}}\\n

\\n\\n

{{ getText(lawtextPrefix, \\\"lawtext_zone_name\\\") }}: {{singleZone?.planInfo?.planversionName}}

\\n

{{ getText(lawtextPrefix, \\\"lawtext_zone_name\\\") }}: {{singleZone?.planInfo?.planversionName_en}}

\\n\\n \\n\\n\\n\\n\\n
\\n\\n\\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n {{getText(lawtextPrefix, \\\"lawtext_missing\\\")}}\\n
\\n
\\n\\n
\\n
{{ getText(lawtextPrefix, \\\"lawtext_generalrules_header\\\") }}
\\n
\\n
\\n\\n
\\n
\\n {{ getText(lawtextPrefix, \\\"lawtext_other_zones_list_title\\\") }}\\n
\\n
\\n
\\n {{otherZone.refId}} - {{ getTitlePrefixZoneId(otherZone) }}\\n
\\n
\\n
\\n
\\n\\n \\n
\\n\\n
\\n\\n \\n
\\n

{{ getText(lawtextPrefix, \\\"lawtext_title\\\") }}

\\n
\\n
\\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export * from './modal.module';\nexport * from './modal.service';","export default \"/* MODAL STYLES\\n-------------------------------*/\\njw-modal {\\n /* modals are hidden by default */\\n display: none;\\n}\\njw-modal .jw-modal {\\n /* modal container fixed across whole screen */\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* z-index must be higher than .jw-modal-background */\\n z-index: 100000;\\n /* enables scrolling for tall modals */\\n overflow: auto;\\n}\\njw-modal .jw-modal .jw-modal-body {\\n padding: 3rem 8rem;\\n background: #fff;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n /* margin exposes part of the modal background */\\n max-width: 60%;\\n margin: 10vh auto;\\n}\\njw-modal .jw-modal-background {\\n /* modal background fixed across whole screen */\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* semi-transparent black */\\n background-color: #fff;\\n opacity: 0.6;\\n /* z-index must be below .jw-modal and above everything else */\\n z-index: 900;\\n}\\nbody.jw-modal-open {\\n /* body overflow is hidden to hide main scrollbar when modal window is open */\\n overflow: hidden;\\n}\\n@media only screen and (max-width: 767px) {\\n .jw-modal-body {\\n padding: 2rem !important;\\n max-width: 95% !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvX21vZGFsL21vZGFsLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9fbW9kYWwvbW9kYWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Z0NBQUE7QUFFQTtFQUNFLGlDQUFBO0VBQ0EsYUFBQTtBQ0NGO0FEQ0U7RUFDRSw4Q0FBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBRUEscURBQUE7RUFDQSxlQUFBO0VBRUEsc0NBQUE7RUFDQSxjQUFBO0FDREo7QURHSTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGdEQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDRE47QURLRTtFQUNFLCtDQUFBO0VBQ0EsZUFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFFQSw0QkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUVBLCtEQUFBO0VBQ0EsWUFBQTtBQ0xKO0FEU0E7RUFDRSw2RUFBQTtFQUNBLGdCQUFBO0FDTkY7QURTQTtFQUNFO0lBQ0Usd0JBQUE7SUFDQSx5QkFBQTtFQ05GO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9fbW9kYWwvbW9kYWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBNT0RBTCBTVFlMRVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuanctbW9kYWwge1xuICAvKiBtb2RhbHMgYXJlIGhpZGRlbiBieSBkZWZhdWx0ICovXG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLmp3LW1vZGFsIHtcbiAgICAvKiBtb2RhbCBjb250YWluZXIgZml4ZWQgYWNyb3NzIHdob2xlIHNjcmVlbiAqL1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICAvKiB6LWluZGV4IG11c3QgYmUgaGlnaGVyIHRoYW4gLmp3LW1vZGFsLWJhY2tncm91bmQgKi9cbiAgICB6LWluZGV4OiAxMDAwMDA7XG5cbiAgICAvKiBlbmFibGVzIHNjcm9sbGluZyBmb3IgdGFsbCBtb2RhbHMgKi9cbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC5qdy1tb2RhbC1ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDNyZW0gOHJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3gtc2hhZG93OiAwIDAgNHB4IDBweCAjYjFiMWIxO1xuICAgICAgLyogbWFyZ2luIGV4cG9zZXMgcGFydCBvZiB0aGUgbW9kYWwgYmFja2dyb3VuZCAqL1xuICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICBtYXJnaW46IDEwdmggYXV0bztcbiAgICB9XG4gIH1cblxuICAuanctbW9kYWwtYmFja2dyb3VuZCB7XG4gICAgLyogbW9kYWwgYmFja2dyb3VuZCBmaXhlZCBhY3Jvc3Mgd2hvbGUgc2NyZWVuICovXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcblxuICAgIC8qIHNlbWktdHJhbnNwYXJlbnQgYmxhY2sgICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICAvKiB6LWluZGV4IG11c3QgYmUgYmVsb3cgLmp3LW1vZGFsIGFuZCBhYm92ZSBldmVyeXRoaW5nIGVsc2UgICovXG4gICAgei1pbmRleDogOTAwO1xuICB9XG59XG5cbmJvZHkuanctbW9kYWwtb3BlbiB7XG4gIC8qIGJvZHkgb3ZlcmZsb3cgaXMgaGlkZGVuIHRvIGhpZGUgbWFpbiBzY3JvbGxiYXIgd2hlbiBtb2RhbCB3aW5kb3cgaXMgb3BlbiAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5qdy1tb2RhbC1ib2R5IHtcbiAgICBwYWRkaW5nOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiA5NSUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyogTU9EQUwgU1RZTEVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmp3LW1vZGFsIHtcbiAgLyogbW9kYWxzIGFyZSBoaWRkZW4gYnkgZGVmYXVsdCAqL1xuICBkaXNwbGF5OiBub25lO1xufVxuanctbW9kYWwgLmp3LW1vZGFsIHtcbiAgLyogbW9kYWwgY29udGFpbmVyIGZpeGVkIGFjcm9zcyB3aG9sZSBzY3JlZW4gKi9cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIHotaW5kZXggbXVzdCBiZSBoaWdoZXIgdGhhbiAuanctbW9kYWwtYmFja2dyb3VuZCAqL1xuICB6LWluZGV4OiAxMDAwMDA7XG4gIC8qIGVuYWJsZXMgc2Nyb2xsaW5nIGZvciB0YWxsIG1vZGFscyAqL1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmp3LW1vZGFsIC5qdy1tb2RhbCAuanctbW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDNyZW0gOHJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgLyogbWFyZ2luIGV4cG9zZXMgcGFydCBvZiB0aGUgbW9kYWwgYmFja2dyb3VuZCAqL1xuICBtYXgtd2lkdGg6IDYwJTtcbiAgbWFyZ2luOiAxMHZoIGF1dG87XG59XG5qdy1tb2RhbCAuanctbW9kYWwtYmFja2dyb3VuZCB7XG4gIC8qIG1vZGFsIGJhY2tncm91bmQgZml4ZWQgYWNyb3NzIHdob2xlIHNjcmVlbiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgLyogc2VtaS10cmFuc3BhcmVudCBibGFjayAgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMC42O1xuICAvKiB6LWluZGV4IG11c3QgYmUgYmVsb3cgLmp3LW1vZGFsIGFuZCBhYm92ZSBldmVyeXRoaW5nIGVsc2UgICovXG4gIHotaW5kZXg6IDkwMDtcbn1cblxuYm9keS5qdy1tb2RhbC1vcGVuIHtcbiAgLyogYm9keSBvdmVyZmxvdyBpcyBoaWRkZW4gdG8gaGlkZSBtYWluIHNjcm9sbGJhciB3aGVuIG1vZGFsIHdpbmRvdyBpcyBvcGVuICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmp3LW1vZGFsLWJvZHkge1xuICAgIHBhZGRpbmc6IDJyZW0gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDk1JSAhaW1wb3J0YW50O1xuICB9XG59Il19 */\"","import {\n Component,\n ViewEncapsulation,\n ElementRef,\n Input,\n OnInit,\n OnDestroy\n} from \"@angular/core\";\n\nimport { ModalService } from \"./modal.service\";\n\n@Component({\n selector: \"jw-modal\",\n templateUrl: \"modal.component.html\",\n styleUrls: [\"modal.component.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() id: string;\n private element: any;\n\n constructor(private modalService: ModalService, private el: ElementRef) {\n this.element = el.nativeElement;\n }\n\n ngOnInit(): void {\n // ensure id attribute exists\n if (!this.id) {\n console.error(\"modal must have an id\");\n return;\n }\n\n // move element to bottom of page (just before ) so it can be displayed above everything else\n document.body.appendChild(this.element);\n\n // close modal on background click\n this.element.addEventListener(\"click\", el => {\n if (el.target.className === \"jw-modal\") {\n // this.close();\n }\n });\n\n // add self (this modal instance) to the modal service so it's accessible from controllers\n this.modalService.add(this);\n }\n\n // remove self from modal service when component is destroyed\n ngOnDestroy(): void {\n this.modalService.remove(this.id);\n this.element.remove();\n }\n\n // open modal\n open(): void {\n this.element.style.display = \"block\";\n document.body.classList.add(\"jw-modal-open\");\n }\n\n // close modal\n close(): void {\n this.element.style.display = \"none\";\n document.body.classList.remove(\"jw-modal-open\");\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ModalComponent],\n exports: [ModalComponent]\n})\nexport class ModalModule { }","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private modals: any[] = [];\n\n add(modal: any) {\n // add modal to array of active modals\n this.modals.push(modal);\n }\n\n remove(id: string) {\n // remove modal from array of active modals\n this.modals = this.modals.filter(x => x.id !== id);\n }\n\n open(id: string) {\n // open modal specified by id\n const modal = this.modals.find(x => x.id === id);\n modal.open();\n }\n\n close(id: string) {\n // close modal specified by id\n const modal = this.modals.find(x => x.id === id);\n modal.close();\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { Routes, RouterModule, Router } from \"@angular/router\";\nimport { MapComponent } from \"./map/map.component\";\nimport { NewsComponent } from \"./news/news.component\";\nimport { ContentService } from \"./services/content.service\";\nimport { ArticleComponent } from \"./article/article.component\";\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\nimport { InfoComponent } from \"./info/info.component\";\nimport { HistoryComponent } from \"./history/history.component\";\nimport { SearchComponent } from \"./search/search.component\";\nimport { HearingComponent } from \"./hearing/hearing.component\";\nimport { ZonesComponent } from \"./zones/zones.component\";\nimport { LanguageService } from \"./services/language.service\";\nimport {ServiceLayersComponent} from \"./service-layers/service-layers.component\";\n\nlet routes: Routes = [\n { path: \"da\", redirectTo: \"da/page/info\", pathMatch: \"full\" },\n { path: \"en\", redirectTo: \"en/page/info\", pathMatch: \"full\" },\n {\n path: \"da/page\",\n data: { reuse: true },\n component: MapComponent,\n children: [\n { path: \"info\", component: InfoComponent },\n { path: \"zone\", component: ZonesComponent },\n { path: \"zone/:id\", component: ZonesComponent },\n { path: \"zone/s/:planversionid/:name/:id\", component: ZonesComponent },\n {\n path: \"zone/s/:planversionid/:x/:y/:name/:id\",\n component: ZonesComponent,\n },\n // { path: \"zone/m/:planversionid/:x/:y\", component: ZonesComponent },\n { path: \"zone/m/:x/:y\", component: ZonesComponent },\n { path: \"zone/n/:x/:y/:type\", component: ZonesComponent },\n { path: \"zone/n/:type\", component: ZonesComponent },\n { path: \"consultation\", component: HearingComponent }, // Show all current hearings\n { path: \"consultation/hist\", component: HearingComponent }, // Show all hearings\n { path: \"consultation/print\", component: HearingComponent }, // Show all hearings\n { path: \"consultation/:planversionid\", component: HearingComponent }, // Show a hearing\n\n { path: \"consultation/:planversionid/hist\", component: HearingComponent }, // Show all hearings\n {\n path: \"consultation/answer/:planversionid/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create/:zoneid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/show\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/page/:pageNum\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/page/:pageNum/search/:searchTerm\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/page/:pageNum/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/page/:pageNum/search/:searchTerm/hist\",\n component: HearingComponent,\n },\n { path: \"hist\", component: HistoryComponent },\n { path: \"hist/:id\", component: HistoryComponent },\n { path: \"search\", component: SearchComponent },\n { path: \"search/:tekst\", component: SearchComponent },\n { path: \"service-layers\", component: ServiceLayersComponent},\n ],\n },\n { path: \"da/news\", component: NewsComponent },\n { path: \"da/news/:shortName\", component: ArticleComponent },\n\n {\n path: \"en/page\",\n data: { reuse: true },\n component: MapComponent,\n children: [\n { path: \"info\", component: InfoComponent },\n { path: \"zone\", component: ZonesComponent },\n { path: \"zone/:id\", component: ZonesComponent },\n { path: \"zone/s/:planversionid/:name/:id\", component: ZonesComponent },\n {\n path: \"zone/s/:planversionid/:x/:y/:name/:id\",\n component: ZonesComponent,\n },\n // { path: \"zone/m/:planversionid/:x/:y\", component: ZonesComponent },\n { path: \"zone/m/:x/:y\", component: ZonesComponent },\n { path: \"zone/n/:x/:y/:type\", component: ZonesComponent },\n { path: \"zone/n/:type\", component: ZonesComponent },\n { path: \"consultation\", component: HearingComponent }, // Show all current hearings\n { path: \"consultation/hist\", component: HearingComponent }, // Show all hearings\n { path: \"consultation/print\", component: HearingComponent }, // Show all hearings\n { path: \"consultation/:planversionid\", component: HearingComponent }, // Show a hearing\n\n { path: \"consultation/:planversionid/hist\", component: HearingComponent }, // Show all hearings\n {\n path: \"consultation/answer/:planversionid/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/hist\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/create/:zoneid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/show\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid\",\n component: HearingComponent,\n },\n {\n path: \"consultation/answer/:planversionid/:answerid/page/:pageNum\",\n component: HearingComponent,\n },\n { path: \"hist\", component: HistoryComponent },\n { path: \"hist/:id\", component: HistoryComponent },\n { path: \"search\", component: SearchComponent },\n { path: \"search/:tekst\", component: SearchComponent },\n { path: \"service-layers\", component: ServiceLayersComponent},\n ],\n },\n { path: \"en/news\", component: NewsComponent },\n { path: \"en/news/:shortName\", component: ArticleComponent },\n { path: \"\", redirectTo: \"da/page/info\", pathMatch: \"full\" },\n];\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n RouterModule.forRoot(routes, { enableTracing: false }),\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {\n content: any;\n menuItems: any;\n prefixedDa: any;\n currentLanguage: string = null;\n private _errorUrlPath: string = \"\";\n dynamicArray = new Array();\n contentString: void;\n\n constructor(\n private contentService: ContentService,\n private languageService: LanguageService,\n private router: Router\n ) {\n // Route not loaded yet\n this.router.errorHandler = (error: any) => {\n let first = error.message.indexOf(\"'\");\n if (first > -1) {\n let firstpartUrl = error.message.substring(first + 1);\n let lastindex = firstpartUrl.indexOf(\"'\");\n if (lastindex > -1) {\n this._errorUrlPath = firstpartUrl.substring(0, lastindex);\n }\n }\n };\n\n if (!this.contentService.getContent()) {\n this.contentService.onContentEventLoaded().subscribe((any) => {\n this.setupRoute();\n });\n this.contentService.loadPublichedContent();\n } else {\n this.setupRoute();\n }\n\n }\n\n setupRoute() {\n this.currentLanguage = this.languageService.prepareLanguage();\n this.content = this.contentService.getContent();\n this.content.prefixes.forEach((element) => {\n // Create header menu dynamic (News are special)\n if (element.prefix === this.currentLanguage + \"/topmenu\") {\n element.elements.forEach((item) => {\n if (\n item.link1 !== \"/\" + this.currentLanguage + \"/\" &&\n item.link1 !== \"/\" + this.currentLanguage + \"/news\"\n ) {\n //console.log(\"topmenuPath: \"+item.link1.substring(1));//.slice(0, -1));\n routes.push({\n path: item.link1.substring(1),\n\n component: ArticleComponent,\n });\n }\n });\n }\n\n // Create cms pages dynamically\n if (\n element.prefix !== this.currentLanguage + \"/topmenu\" &&\n element.prefix !== this.currentLanguage &&\n element.prefix !== this.currentLanguage + \"/news\"\n ) {\n\n element.articles.forEach((article) => {\n routes.push({\n path: element.prefix + \"/:shortName\",\n\n component: ArticleComponent,\n });\n });\n }\n });\n\n this.router.resetConfig(routes);\n if (this._errorUrlPath != \"\") {\n this.router.navigate([this._errorUrlPath]);\n this._errorUrlPath = \"\";\n }\n }\n}\n","export default \":focus {\\n outline: 1px solid;\\n}\\n\\n.main-container {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n /* height: 100%; */\\n position: relative;\\n}\\n\\n.portal-navbar {\\n border-bottom: 1px solid #cccccc;\\n z-index: 5;\\n -webkit-transform: translateZ(1px);\\n cursor: pointer;\\n}\\n\\n.portal-navbar .container {\\n margin: 0;\\n max-width: 100%;\\n}\\n\\n.portal-toplogo {\\n height: 30px;\\n}\\n\\n.nav-link {\\n color: #233c65 !important;\\n font-size: 14px !important;\\n cursor: pointer;\\n}\\n\\n.active {\\n font-weight: bold;\\n}\\n\\n.share {\\n font-size: 14px;\\n}\\n\\n.content-container {\\n -webkit-box-flex: 1;\\n flex: 1;\\n overflow-x: hidden;\\n}\\n\\n.logo img {\\n width: 12rem;\\n}\\n\\n.modal-center {\\n text-align: center;\\n}\\n\\n.cookie-bar {\\n position: fixed;\\n z-index: 20000000000;\\n background-color: #233c65;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n color: white;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n padding: 2rem 4rem;\\n -webkit-box-align: center;\\n align-items: center;\\n}\\n\\n.cookie-bar .cookie-text {\\n -webkit-box-flex: 1;\\n flex: 1;\\n}\\n\\n.previewheader {\\n background-color: yellow;\\n color: black;\\n border: 1px solid black;\\n padding-left: 5px;\\n padding-right: 5px;\\n margin-right: 5px;\\n font-weight: bold;\\n}\\n\\n@media only screen and (min-device-width: 375px) and (max-device-width: 667px) {\\n .portal-navbar {\\n padding: 3% !important;\\n }\\n\\n div.main-container {\\n -webkit-box-orient: vertical !important;\\n -webkit-box-direction: normal !important;\\n flex-direction: column !important;\\n position: relative !important;\\n }\\n\\n body, html {\\n height: 0% !important;\\n }\\n\\n nav.portal-navbar navbar navbar-expand-md navbar-expand-sm navbar-light bg-white {\\n height: 0% !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL1VJL3B1YmxpYy11aS9zcmMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxrQkFBQTtBQ0ZGOztBRE1BO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtVQUFBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQ0hGOztBRE9BO0VBQ0UsZ0NBQUE7RUFDQSxVQUFBO0VBQ0Esa0NBQUE7RUFDQSxlQUFBO0FDSkY7O0FES0U7RUFDRSxTQUFBO0VBQ0EsZUFBQTtBQ0hKOztBRFFBO0VBQ0UsWUFBQTtBQ0xGOztBRFFBO0VBQ0UseUJBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7QUNMRjs7QURTQTtFQUNFLGlCQUFBO0FDTkY7O0FEU0E7RUFDRSxlQUFBO0FDTkY7O0FEU0E7RUFDRSxtQkFBQTtVQUFBLE9BQUE7RUFDQSxrQkFBQTtBQ05GOztBRFVFO0VBQ0UsWUFBQTtBQ1BKOztBRFdBO0VBQ0Usa0JBQUE7QUNSRjs7QURXQTtFQUNDLGVBQUE7RUFDQyxvQkFBQTtFQUNBLHlCRWhFYztFRmlFZCxTQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtVQUFBLG1CQUFBO0FDUkY7O0FEU0U7RUFDRSxtQkFBQTtVQUFBLE9BQUE7QUNQSjs7QURXQTtFQUNFLHdCQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7QUNSRjs7QURXQTtFQUlFO0lBQ0csc0JBQUE7RUNYSDs7RURjQTtJQUNBLHVDQUFBO0lBQ0Esd0NBQUE7SUFDQSxpQ0FBQTtJQUNBLDZCQUFBO0VDWEE7O0VEY0E7SUFDRSxxQkFBQTtFQ1hGOztFRGNBO0lBQ0UscUJBQUE7RUNYRjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy5zY3NzXCI7XG5cbi8vTm8gYmx1ZSBib3JkZXIgZm9yIG5vd1xuOmZvY3VzIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkO1xufVxuXG5cbi5tYWluLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIGhlaWdodDogMTAwJTsgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi5wb3J0YWwtbmF2YmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gIHotaW5kZXg6IDU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAuY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cblxuLnBvcnRhbC10b3Bsb2dvIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ubmF2LWxpbmsge1xuICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxufVxuXG4uYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5zaGFyZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4ubG9nbyB7XG4gIGltZyB7XG4gICAgd2lkdGg6IDEycmVtO1xuICB9XG59XG5cbi5tb2RhbC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb29raWUtYmFyIHtcbiBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDIwMDAwMDAwMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiAycmVtIDRyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5jb29raWUtdGV4dCB7XG4gICAgZmxleDogMTtcbiAgfVxufVxuXG4ucHJldmlld2hlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IGJsYWNrO1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW5cbmFuZCAobWluLWRldmljZS13aWR0aCA6IDM3NXB4KVxuYW5kIChtYXgtZGV2aWNlLXdpZHRoIDogNjY3cHgpIHtcblxuICAucG9ydGFsLW5hdmJhciB7XG4gICAgIHBhZGRpbmc6IDMlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBkaXYubWFpbi1jb250YWluZXIge1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBib2R5LCBodG1sIHtcbiAgICBoZWlnaHQ6IDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBuYXYucG9ydGFsLW5hdmJhciBuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZXhwYW5kLXNtIG5hdmJhci1saWdodCBiZy13aGl0ZXtcbiAgICBoZWlnaHQ6IDAlICFpbXBvcnRhbnQ7XG4gIH1cblxufVxuXG4iLCI6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQ7XG59XG5cbi5tYWluLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIGhlaWdodDogMTAwJTsgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucG9ydGFsLW5hdmJhciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjY2NjO1xuICB6LWluZGV4OiA1O1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigxcHgpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucG9ydGFsLW5hdmJhciAuY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5wb3J0YWwtdG9wbG9nbyB7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm5hdi1saW5rIHtcbiAgY29sb3I6ICMyMzNjNjUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFjdGl2ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc2hhcmUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5jb250ZW50LWNvbnRhaW5lciB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLmxvZ28gaW1nIHtcbiAgd2lkdGg6IDEycmVtO1xufVxuXG4ubW9kYWwtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29va2llLWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMjAwMDAwMDAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzNjNjU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcGFkZGluZzogMnJlbSA0cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNvb2tpZS1iYXIgLmNvb2tpZS10ZXh0IHtcbiAgZmxleDogMTtcbn1cblxuLnByZXZpZXdoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiBibGFjaztcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogMzc1cHgpIGFuZCAobWF4LWRldmljZS13aWR0aDogNjY3cHgpIHtcbiAgLnBvcnRhbC1uYXZiYXIge1xuICAgIHBhZGRpbmc6IDMlICFpbXBvcnRhbnQ7XG4gIH1cblxuICBkaXYubWFpbi1jb250YWluZXIge1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHksIGh0bWwge1xuICAgIGhlaWdodDogMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIG5hdi5wb3J0YWwtbmF2YmFyIG5hdmJhciBuYXZiYXItZXhwYW5kLW1kIG5hdmJhci1leHBhbmQtc20gbmF2YmFyLWxpZ2h0IGJnLXdoaXRlIHtcbiAgICBoZWlnaHQ6IDAlICFpbXBvcnRhbnQ7XG4gIH1cbn0iLCIvLyBDb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiAjMjMzYzY1O1xuJG9yYW5nZTogI2ZmODUwMDtcbiRyZWQ6ICNjYzY2Nzc7XG4kZ3JlZW46ICM0NGFiOTk7XG4kbGlnaHQtYmx1ZTogIzM5YThlMDtcbiR5ZWxsb3c6ICNmYWIzMGM7XG4kcHVycGxlOiAjYWE0NDk5O1xuJHB1cnBsZS1maWxsOiByZ2JhKCRwdXJwbGUsIDAuNSk7XG5cbiRwcmltYXJ5LXRleHQ6ICMzMzMzMzM7XG4kaGVscC10ZXh0OiAjNjY2NjY2O1xuJGRpc2JhbGVkLWxpbmstdGV4dDogIzk5OTk5OTtcblxuJHByaW1hcnktZ3JleS1iZzogI2Y2ZjZmNjtcblxuLy8gQm9yZGVyc1xuJHByaW1hcnktZ3JleS1ib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuJG9yYW5nZS1ib3JkZXI6IDJweCBzb2xpZCAkb3JhbmdlO1xuJHJlZC1ib3JkZXI6IDJweCBkYXNoZWQgJHJlZDtcbiRwdXJwbGUtYm9yZGVyOiAycHggc29saWQgJHB1cnBsZTtcbiJdfQ== */\"","import { Component, OnInit } from \"@angular/core\";\nimport { ModalService } from \"./_modal\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { ContentService } from \"./services/content.service\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { PreviewService } from \"./services/preview.service\";\nimport { PrintService } from \"./services/print.service\";\nimport { LanguageService } from \"./services/language.service\";\nimport { transformWithOptions } from \"ol/format/Feature\";\n\n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n styleUrls: [\"./app.component.scss\"],\n})\nexport class AppComponent implements OnInit {\n title = \"public-ui\";\n cookiebarIsShown: boolean = true;\n cookieConsent: string;\n acceptCookiesValue: string;\n content: any;\n prefixedDa: any;\n popUpText: any;\n popUpLogo: any;\n popUpButton: any;\n path: string;\n collapsed: boolean = false;\n activePath: string;\n currentLocationHost: any;\n currentLang: string = null;\nfoods:any = [\n { value: 'steak-0', viewValue: 'Steak', img: 'https://www.akberiqbal.com/favicon-32x32.png' },\n { value: 'pizza-1', viewValue: 'Pizza', img: 'https://www.akberiqbal.com/favicon-16x16.png' },\n { value: 'tacos-2', viewValue: 'Tacos', img: 'https://www.akberiqbal.com/favicon-96x96.png' }\n ];\n constructor(\n private languageService: LanguageService,\n private modalService: ModalService,\n private cookieService: CookieService,\n private contentService: ContentService,\n private previewService: PreviewService,\n private router: Router,\n private activatedRoute: ActivatedRoute\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {\n /*if (this.cookieService.get(\"consentConditions\") !== \"Consent given\") {\n setTimeout(() => {\n this.openModal(\"custom-modal-1\");\n }, 1000);\n }\n if (this.cookieService.get(\"acceptCookies\") === \"Cookies is accepted\") {\n this.cookiebarIsShown = true;*/\n this.router.events.subscribe((url: any) => {\n this.path = this.router.url.substring(1);\n this.setActivetab();\n });\n\n if (!this.contentService.currentContent) {\n this.contentService.onContentEventLoaded().subscribe((any) => {\n this.setup();\n });\n\n //this.contentService.loadPublichedContent();\n } else {\n this.setup();\n }\n\n if (!this.previewService.isPrintPreview()) {\n setTimeout(()=>{\n let isLoaded = this.activatedRoute.snapshot.queryParams.isLoaded;\n if(isLoaded == 'true'){\n this.router.navigate([], {\n queryParams: {\n 'isLoaded': null,\n },\n queryParamsHandling: 'merge'\n })\n }else if(isLoaded == 'false'){\n this.router.navigate([], {\n queryParams: {\n 'isLoaded': null,\n },\n queryParamsHandling: 'merge'\n })\n setTimeout(() => {\n this.openModal(\"custom-modal-1\");\n }, 1000);\n }else{\n setTimeout(() => {\n let currentUrlParts = document.URL.split('/');\n let referrerUrlParts = document.referrer.split('/');\n let skipPopup = false;\n if(currentUrlParts.length >= 3 && referrerUrlParts.length >= 3){\n let isSameHost = (currentUrlParts[2] == referrerUrlParts[2]);\n let isSameLanguage = (currentUrlParts[3] == referrerUrlParts[3]);\n skipPopup = (isSameHost && isSameLanguage);\n }\n if(!skipPopup){\n setTimeout(() => {\n this.openModal(\"custom-modal-1\");\n }, 1000);\n }\n },500)\n }\n })\n }\n\n /*\n this.contentService.getPublishedContent().subscribe(data => {\n this.contentService.currentContent = data;\n this.content = this.contentService.getContent();\n //console.log(this.content);\n this.content.prefixes.forEach(element => {\n if (element.prefix === \"da/topmenu\") {\n this.prefixedDa = element.elements;\n }\n });\n });*/\n }\n\n setup() {\n this.content = this.contentService.getContent();\n this.content.prefixes.forEach((element) => {\n /* console.log(JSON.stringify(element.prefix)) */ if (\n element.prefix ===\n this.currentLang + \"/topmenu\"\n ) {\n this.prefixedDa = element.elements;\n }\n if (element.prefix == this.currentLang) {\n element.elements.forEach((elementItem) => {\n if (elementItem.shortName == \"load_popup_text\") {\n this.popUpText = elementItem;\n } else if (elementItem.shortName == \"load_popup_logo\") {\n this.popUpLogo = elementItem;\n } else if (elementItem.shortName == \"load_popup_button\") {\n this.popUpButton = elementItem;\n }\n });\n }\n });\n if (this.previewService.isPrintPreview()) {\n this.navigate({\n link1: \"/\" + this.currentLang + \"/page/consultation/print\",\n });\n }\n this.setActivetab();\n }\n\n setActivetab() {\n let pathDetails: any = window.location.pathname.split(\"/\");\n if (this.path.includes(\"page\")) {\n this.activePath = \"/\" + this.currentLang + \"/\";\n } else {\n this.activePath = \"/\" + this.currentLang + \"/\" + pathDetails[2];\n }\n }\n\n navigate(item) {\n this.router.navigate([item.link1]);\n setTimeout(() => {\n this.path = this.router.url.substring(1);\n this.setActivetab();\n }, 0);\n }\n\n consentModal() {\n //this.cookieService.set(\"consentConditions\", \"Consent given\", 30, \"/\");\n //this.cookieConsent = this.cookieService.get(\"Test\");\n this.closeModal(\"custom-modal-1\");\n }\n\n openModal(id: string) {\n this.modalService.open(id);\n }\n\n closeModal(id: string) {\n this.modalService.close(id);\n }\n\n acceptCookies() {\n this.cookieService.set(\"acceptCookies\", \"Cookies is accepted\", 30, \"/\");\n this.acceptCookiesValue = this.cookieService.get(\"acceptCookies\");\n this.cookiebarIsShown = false;\n }\n\n isPreviewMode(): boolean {\n return this.previewService.isPreviewMode();\n }\n\n isPrintPreview(): boolean {\n return this.previewService.isPrintPreview();\n }\n\n getPreviewModeText(): string {\n return this.previewService.getPreviewModeText();\n }\n\n getAltText(prefix, shortName) {\n return this.contentService.getAltTextByShortName(prefix, shortName);\n }\n\n getcurrentRoutePath() {\n // this.currentLocationHost = window.location.host;\n if (this.router.url.includes(\"/\" + this.currentLang + \"/page/\")) {\n this.router.navigate([\"/\" + this.currentLang],{queryParams: {isLoaded:true}});\n setTimeout(() => {\n window.location.reload();\n }, 500);\n } else {\n this.router.navigate([\"/\" + this.currentLang]);\n }\n }\n}\n","import { BrowserModule } from \"@angular/platform-browser\";\nimport { NgModule } from \"@angular/core\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { ModalModule as SecondModal } from \"./_modal\";\nimport { ModalModule } from 'ngx-bootstrap';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { CommonModule } from '@angular/common';\nimport { ToastrModule } from 'ngx-toastr';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport {NgbDateParserFormatter, NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\nimport { RouteReuseStrategy } from '@angular/router';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\n\nimport { AppComponent } from \"./app.component\";\nimport { MapComponent } from \"./map/map.component\";\nimport { SearchComponent } from \"./search/search.component\";\nimport { AppRoutingModule } from \"./app-routing.module\";\nimport { NewsComponent } from \"./news/news.component\";\n\nimport { EnvironmentService } from \"./services/environment.service\";\nimport { PlandataService } from \"./services/plandata.service\";\nimport { PreviewService } from \"./services/preview.service\";\nimport { MapService } from \"./services/map.service\";\nimport { RoutingService } from \"../app/services/routing.service\";\nimport { ConsultationdataService } from \"../app/services/consultationdata.service\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { DateService} from \"./services/date.service\";\nimport { ShareLinkComponent } from './share-link/share-link.component';\nimport { LayerSwitcherComponent } from './layer-switcher/layer-switcher.component';\nimport { ChangMarkingSwitcherComponent } from \"./change-marking-switcher/change-marking-switcher.component\";\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { HistoryComponent } from './history/history.component';\nimport { registerLocaleData } from \"@angular/common\";\nimport localeDa from \"@angular/common/locales/da\";\nimport localeDaExtra from \"@angular/common/locales/extra/da\";\nimport { HearingComponent } from './hearing/hearing.component';\nimport { ContentService } from './services/content.service';\nimport { PrintService } from './services/print.service';\nimport { ArticleComponent } from './article/article.component';\nimport { PhoneNumberValidatorDirective } from './validators/phone-number-validator.directive';\nimport { InfoComponent } from './info/info.component';\nimport { ZonesComponent } from './zones/zones.component';\nimport { RouteReuseService } from './services/routereuse.service';\nimport {NgbDateCustomParserFormatter} from \"./date/NgbDateCustomParserFormatter\";\nimport {LanguageModule} from './language/language.module';\nimport {CKEditorModule} from \"@ckeditor/ckeditor5-angular\";\nimport {ServiceLayersComponent} from \"./service-layers/service-layers.component\";\nimport { AngularSplitModule } from 'angular-split';\nregisterLocaleData(localeDa, \"da\", localeDaExtra);\n\n@NgModule({\n declarations: [\n AppComponent,\n MapComponent,\n SearchComponent,\n NewsComponent,\n ServiceLayersComponent,\n ShareLinkComponent,\n LayerSwitcherComponent,\n SidebarComponent,\n HistoryComponent,\n HearingComponent,\n ArticleComponent,\n InfoComponent,\n ZonesComponent,\n PhoneNumberValidatorDirective,\n ChangMarkingSwitcherComponent,\n ],\n imports: [\n NgbModule,\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n SecondModal,\n ModalModule.forRoot(),\n ClipboardModule,\n CommonModule,\n BrowserAnimationsModule,\n ToastrModule.forRoot(),\n InfiniteScrollModule,\n FormsModule,\n ReactiveFormsModule,\n LanguageModule,\n TooltipModule.forRoot(),\n NgSelectModule,\n CKEditorModule,\n AngularSplitModule\n ],\n entryComponents: [ArticleComponent],\n providers: [\n EnvironmentService,\n PlandataService,\n ConsultationdataService,\n MapService,\n CookieService,\n ContentService,\n PrintService,\n PreviewService,\n RoutingService,\n DateService,\n {\n provide: RouteReuseStrategy,\n useClass: RouteReuseService\n },\n { provide: NgbDateParserFormatter,\n useFactory: () => { return new NgbDateCustomParserFormatter(\"DD/MM-YYYY\") }\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","export default \".content-menu-item {\\n cursor: pointer;\\n}\\n\\n#row {\\n width: 100vw;\\n}\\n\\n.content-container {\\n min-width: 100%;\\n padding-right: 1rem;\\n padding-left: 0px;\\n}\\n\\n.content-sidebar-right {\\n min-width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .content-sidebar-left {\\n display: none;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9hcnRpY2xlL2FydGljbGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxlQUFBO0FDQ0o7O0FER0E7RUFDSSxZQUFBO0FDQUo7O0FER0E7RUFDSSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksZUFBQTtBQ0FKOztBREdBO0VBRUk7SUFDSSxhQUFBO0VDRE47QUFDRiIsImZpbGUiOiJzcmMvYXBwL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250ZW50LW1lbnUtaXRlbSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG59XG5cbiNyb3d7XG4gICAgd2lkdGg6IDEwMHZ3O1xufVxuXG4uY29udGVudC1jb250YWluZXJ7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwcHhcbn1cblxuLmNvbnRlbnQtc2lkZWJhci1yaWdodHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpe1xuXG4gICAgLmNvbnRlbnQtc2lkZWJhci1sZWZ0e1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICB9XG5cbiIsIi5jb250ZW50LW1lbnUtaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3JvdyB7XG4gIHdpZHRoOiAxMDB2dztcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cblxuLmNvbnRlbnQtc2lkZWJhci1yaWdodCB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY29udGVudC1zaWRlYmFyLWxlZnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit, HostListener } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { ContentService } from \"../services/content.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport { last, timeout } from \"rxjs/operators\";\nimport { Subject } from \"rxjs\";\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: \"app-article\",\n templateUrl: \"./article.component.html\",\n styleUrls: [\"./article.component.scss\"],\n})\nexport class ArticleComponent implements OnInit {\n\n @HostListener(\"click\", ['$event'])\n onClick(event: MouseEvent) {\n // If no anchor tag, then don't do anything.\n if (event.target instanceof HTMLAnchorElement === false) {\n return;\n }\n // Prevent page from reloading, stay on the current page\n event.preventDefault();\n let target = event.target;\n // Navigate to the path in the link\n if(target.pathname.indexOf('/da/') == 0 || target.pathname.indexOf('/en/') == 0){\n if(target.target == '_blank'){\n window.open(target.pathname, \"_blank\");\n }else{\n // let params = null;\n // if(target.pathname.indexOf('/'+this.currentLang+'/') == -1){\n // params = {queryParams: {isLoaded:false}};\n // console.log(target.pathname)\n // this.router.navigate([target.pathname +\"/\"],params);\n // setTimeout(() => {\n // window.location.reload();\n // }, 500);\n // }else{\n this.router.navigate([target.pathname]);\n // }\n }\n }else{\n let newPath = target.pathname;\n if(newPath.startsWith(\"/\")){\n newPath = target.href;\n }\n window.open(newPath, \"_blank\");\n }\n }\n \n path: string;\n content: any;\n article: any;\n elements: any;\n articles: any;\n backButton: any;\n currentArticle: any;\n routeParams: any;\n isNews: boolean = false;\n currentLang: string = null;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private contentService: ContentService,\n private languageService: LanguageService,\n private sanitizer: DomSanitizer\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {\n this.route.params.subscribe((routeParams) => {\n this.routeParams = routeParams.shortName;\n });\n this.path = this.router.url.substring(1);\n if (!this.contentService.getContent()) {\n this.contentService.onContentEventLoaded().subscribe((any) => {\n this.setup();\n });\n this.contentService.loadPublichedContent();\n } else {\n this.setup();\n }\n }\n\n private setup() {\n this.content = this.contentService.getContent();\n this.content.prefixes.forEach((element) => {\n // Setting articles\n if (\n this.path.includes(element.prefix) &&\n element.prefix !== this.currentLang\n ) {\n this.articles = element.articles;\n // Setting current article\n this.articles.forEach((article) => {\n if (this.path.endsWith(article.shortName)) {\n this.currentArticle = article;\n }\n });\n }\n\n // Setting leftmenu\n let pathStart = this.path.split(\"/\");\n let prefixStart = element.prefix.split(\"/\");\n if (\n pathStart[1] === prefixStart[1] &&\n prefixStart[0] === this.currentLang &&\n element.prefix !== this.currentLang + \"/news\"\n ) {\n //console.log(\"DATA::\" + JSON.stringify(element.elements));\n this.elements = element.elements;\n }\n\n // Checking if article is a newsarticle\n if (element.prefix === this.currentLang + \"/news\") {\n element.articles.forEach((element) => {\n if (element === this.currentArticle) {\n this.isNews = true;\n }\n });\n element.elements.forEach((element) => {\n if (element.shortName == \"newslist_backlink\")\n this.backButton = element;\n });\n }\n });\n }\n\n displayArticle(element) {\n // Navigate to new article with new route\n this.router.navigateByUrl(element.link1);\n // Timeout to catch the new routerParams\n setTimeout(() => {\n let path = this.router.url.substring(1);\n this.articles.forEach((article) => {\n if (article.shortName === this.routeParams) {\n //console.log(JSON.stringify(article));\n this.currentArticle = article; //Setting currentArticle acording to new route\n }\n });\n }, 0);\n }\n\n sanitize(str: string) {\n return this.sanitizer.bypassSecurityTrustHtml(str);\n }\n\n goBack() {\n this.router.navigateByUrl(\"/\" + this.currentLang + \"/news\");\n }\n}\n","export default \".change-marking-switcher {\\n position: absolute;\\n top: 1rem;\\n left: 0;\\n right: 164px;\\n z-index: 20;\\n width: 286px;\\n padding: 8px 24px;\\n background: white;\\n margin: 0 auto;\\n border: 1px solid lightgrey;\\n border-radius: 4px;\\n}\\n\\n.active {\\n font-size: 11px;\\n font-weight: bold;\\n cursor: pointer;\\n padding-left: 4px;\\n color: black !important;\\n}\\n\\n.inactive {\\n font-size: 11px;\\n font-weight: normal;\\n cursor: pointer;\\n padding-left: 4px;\\n color: black !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvY2hhbmdlLW1hcmtpbmctc3dpdGNoZXIvY2hhbmdlLW1hcmtpbmctc3dpdGNoZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NoYW5nZS1tYXJraW5nLXN3aXRjaGVyL2NoYW5nZS1tYXJraW5nLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9jaGFuZ2UtbWFya2luZy1zd2l0Y2hlci9jaGFuZ2UtbWFya2luZy1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jaGFuZ2UtbWFya2luZy1zd2l0Y2hlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICBsZWZ0OiAwO1xuICByaWdodDogMTY0cHg7XG4gIHotaW5kZXg6IDIwO1xuICB3aWR0aDogMjg2cHg7XG4gIHBhZGRpbmc6IDhweCAyNHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uYWN0aXZlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG59XG5cbi5pbmFjdGl2ZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG59XG4iLCIuY2hhbmdlLW1hcmtpbmctc3dpdGNoZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMXJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDE2NHB4O1xuICB6LWluZGV4OiAyMDtcbiAgd2lkdGg6IDI4NnB4O1xuICBwYWRkaW5nOiA4cHggMjRweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLmFjdGl2ZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuXG4uaW5hY3RpdmUge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Subscription } from \"rxjs\";\nimport { ContentService } from \"../services/content.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataService } from \"../services/plandata.service\";\n\n@Component({\n selector: \"app-change-marking-switcher\",\n templateUrl: \"./change-marking-switcher.component.html\",\n styleUrls: [\"./change-marking-switcher.component.scss\"],\n})\nexport class ChangMarkingSwitcherComponent implements OnInit, OnDestroy {\n showChangeMarkings: boolean = false;\n changeMarkingLayers: any[] = [];\n currentLang: string = null;\n mapContent: any;\n contentString: any;\n mapPrefix = \"/plan/map\";\n\n isLayerAvailable = {\n removed: false,\n changed: false,\n };\n\n private subscriptions: Subscription[] = new Array();\n\n constructor(\n private mapService: MapService,\n private planDataService: PlandataService,\n private languageService: LanguageService,\n private sanitizer: DomSanitizer,\n private contentService: ContentService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {\n this.subscriptions.push(\n this.planDataService\n .onLayerConfigEventChanged()\n .subscribe((layerConfig) => {\n const changeLayers = layerConfig.layers.filter(\n (l) => l.name == \"changeMarking\"\n )[0];\n if (changeLayers != null) {\n this.changeMarkingLayers = changeLayers.subtypes;\n\n setTimeout(() => {\n this.isLayerAvailable[\"removed\"] = false;\n this.isLayerAvailable[\"changed\"] = false;\n\n if (this.planDataService.showLegendForConsultation()) {\n this.planDataService.currentConsultationLayers.forEach((l) => {\n if (l.name == \"removed\" || l.name == \"changed\") {\n this.isLayerAvailable[l.name] = true;\n }\n });\n } else {\n this.planDataService.currentPublishedLayers.forEach((l) => {\n if (l.name == \"removed\" || l.name == \"changed\") {\n this.isLayerAvailable[l.name] = true;\n }\n });\n this.planDataService.currentConsultationLayers.forEach((l) => {\n if (l.name == \"removed\" || l.name == \"changed\") {\n this.isLayerAvailable[l.name] = true;\n }\n });\n }\n\n this.onChangeMarkingToggle();\n }, 300);\n }\n })\n );\n }\n\n onChangeMarkingToggle() {\n this.showChangeMarkings = true; //!this.showChangeMarkings;\n this.mapService.setChangeMarkingLayersVisibility(\n \"removed\",\n this.showChangeMarkings\n );\n this.mapService.setChangeMarkingLayersVisibility(\n \"changed\",\n this.showChangeMarkings\n );\n\n if (this.changeMarkingLayers) {\n this.changeMarkingLayers.forEach((layer) => {\n layer.active = this.showChangeMarkings;\n // this.handlingActiveLayerType(layer);\n // this.mapService.highlightZoneType(layer.type, layer.active);\n });\n }\n }\n\n sanitize(url: string) {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n\n toggleLayer(layer: any) {\n layer.active = !layer.active;\n this.mapService.setChangeMarkingLayersVisibility(layer.type, layer.active);\n // this.handlingActiveLayerType(layer);\n // this.mapService.highlightZoneType(layer.type, layer.active);\n }\n\n getText(prefix: string, shortName: string) {\n this.mapContent = this.contentService.getContentByPrefix(\n this.currentLang + \"/plan/map\"\n );\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n}\n","import {NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';\nimport {Injectable} from '@angular/core';\nimport moment from 'moment/moment';\n\n@Injectable()\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n\n constructor(private dateFormat: string) {\n super();\n };\n\n format(date: NgbDateStruct): string {\n if (date === null) {\n return '';\n }\n let d = moment({ year: date.year,\n month: date.month - 1,\n date: date.day });\n return d.isValid() ? d.format(this.dateFormat) : '';\n }\n\n parse(value: string): NgbDateStruct {\n if (!value) {\n return null;\n }\n let d = moment(value, this.dateFormat);\n return d.isValid() ? { year: d.year(),\n month: d.month() + 1,\n day: d.date() } : null;\n }\n}\n","export default \".hearing-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n background: white;\\n}\\n\\n.search-hearings-container {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n}\\n\\n.has-search {\\n position: relative;\\n width: 50%;\\n}\\n\\n.has-search .form-control {\\n padding-right: 2.375em;\\n}\\n\\n.has-search .form-control-feedback {\\n position: absolute;\\n z-index: 2;\\n display: block;\\n width: 2.375em;\\n height: 2.375em;\\n line-height: 2.375em;\\n text-align: center;\\n cursor: pointer;\\n color: #aaa;\\n right: 0;\\n}\\n\\n.hearings-header {\\n margin: 2em 0 1em;\\n}\\n\\n.drawtoolguidebox1 h4 {\\n color: #233c65;\\n font-size: 85%;\\n}\\n\\n.drawtoolguidebox1 {\\n color: #212529;\\n font-size: 85%;\\n}\\n\\n.hearing-facts-container {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n margin: 1em 0;\\n}\\n\\n.hearing-facts-container .hearing-fact-titles {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n}\\n\\n.hearing-facts-container .hearing-fact-titles-item {\\n margin-bottom: 0.3em;\\n margin-right: 2em !important;\\n}\\n\\n.hearing-facts-container .hearing-fact-texts {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n margin-bottom: 1em;\\n}\\n\\n.hearing-facts-container .hearing-fact-texts-item {\\n font-weight: bold;\\n color: #233c65;\\n margin-bottom: 0.3em;\\n}\\n\\n.see-more-less {\\n cursor: pointer;\\n margin: 0.5em 0 1em;\\n}\\n\\n.document-container {\\n margin-bottom: 2em;\\n}\\n\\n.hearing-answers-container {\\n margin: 2em 0;\\n}\\n\\n.two-input {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n}\\n\\n.two-input .zip {\\n width: 30%;\\n margin-right: 1rem;\\n}\\n\\n.two-input .city {\\n -webkit-box-flex: 1;\\n flex: 1;\\n}\\n\\n.hearing-display {\\n cursor: pointer;\\n}\\n\\n.option-feedback {\\n color: red;\\n font-size: 0.75em;\\n}\\n\\n.accept-input {\\n display: inline-block;\\n margin-right: 5px;\\n}\\n\\n.accept-text {\\n display: inline;\\n}\\n\\n::ng-deep ngb-pagination ul > li.active > a {\\n background-color: #233c65 !important;\\n border-color: #233c65 !important;\\n}\\n\\n.confirmation-element {\\n word-break: break-word;\\n}\\n\\n.highlight-zone {\\n outline-style: solid;\\n outline-width: 2px;\\n outline-color: #bb4ae8;\\n border-color: transparent;\\n}\\n\\n.print-overlay {\\n position: absolute;\\n left: 0;\\n right: 0;\\n width: 100%;\\n height: 100px;\\n}\\n\\n#layoutHearing {\\n color: #40648b;\\n font-size: 17px;\\n font-weight: bold;\\n line-height: 180%;\\n}\\n\\n.goBack {\\n color: #064c98;\\n font-size: 17px;\\n font-weight: bolder;\\n margin-top: 13%;\\n}\\n\\n.side-table td,\\n.side-table th {\\n border: none;\\n padding: 0.1rem;\\n}\\n\\n.button-link {\\n text-decoration: none !important;\\n color: #233c65 !important;\\n cursor: pointer;\\n}\\n\\n.button-link:hover {\\n color: #0056b3 !important;\\n text-decoration: underline !important;\\n}\\n\\n.goto-consultation-list-link {\\n text-decoration: none !important;\\n color: #007bff !important;\\n cursor: pointer;\\n}\\n\\n.goto-consultation-list-link:hover {\\n color: #0056b3 !important;\\n text-decoration: underline !important;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .hearing-container {\\n width: calc(100vw - 2.5em);\\n }\\n\\n .main-btn {\\n font-size: 96% !important;\\n padding: inherit !important;\\n }\\n\\n .hide-on-mobile {\\n display: none !important;\\n }\\n}\\n\\n/* Mobile */\\n\\n/* Extra small devices (phones, 600px and down) */\\n\\n@media only screen and (max-width: 600px) {\\n .display-only-on-mobile {\\n display: block !important;\\n }\\n}\\n\\n/* Small devices (portrait tablets and large phones, 600px and up) */\\n\\n@media only screen and (min-width: 600px) {\\n .display-only-on-mobile {\\n display: block !important;\\n }\\n}\\n\\n/* Medium devices (landscape tablets, 768px and up) */\\n\\n@media only screen and (min-width: 768px) {\\n .display-only-on-mobile {\\n display: block !important;\\n }\\n}\\n\\n/* Large devices (laptops/desktops, 992px and up) */\\n\\n@media only screen and (min-width: 992px) {\\n .hide-on-bigger-screen {\\n display: none !important;\\n }\\n}\\n\\n/* Extra large devices (large laptops and desktops, 1200px and up) */\\n\\n@media only screen and (min-width: 1200px) {\\n .hide-on-bigger-screen {\\n display: none !important;\\n }\\n}\\n\\n@media only screen and (max-width: 1125px) {\\n .main-btn {\\n font-size: 96% !important;\\n padding: inherit !important;\\n }\\n}\\n\\n@media only screen and (max-width: 955px) {\\n .main-btn {\\n font-size: 78% !important;\\n padding: inherit !important;\\n }\\n}\\n\\n.haa:hover {\\n background: #cecece;\\n}\\n\\n.textMargin {\\n margin-top: 5% !important;\\n width: 300px !important;\\n}\\n\\n.make-bold {\\n color: #233c65;\\n font-weight: bold;\\n}\\n\\n:host ::ng-deep .ck-editor__editable_inline {\\n display: block;\\n width: 100%;\\n height: calc(5.5em + 0.75rem + 2px);\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n -webkit-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvaGVhcmluZy9oZWFyaW5nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9oZWFyaW5nL2hlYXJpbmcuY29tcG9uZW50LnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL1VJL3B1YmxpYy11aS9zcmMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDREY7O0FESUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0FDREY7O0FESUE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QUNERjs7QURJQTtFQUNFLHNCQUFBO0FDREY7O0FESUE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBRUEsZUFBQTtFQUNBLFdBQUE7RUFDQSxRQUFBO0FDRkY7O0FES0E7RUFDRSxpQkFBQTtBQ0ZGOztBREtBO0VBQ0UsY0FBQTtFQUNBLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7RUFDQSxjQUFBO0FDRkY7O0FETUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsYUFBQTtBQ0hGOztBRElFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtVQUFBLHNCQUFBO0FDRko7O0FESUk7RUFDRSxvQkFBQTtFQUNBLDRCQUFBO0FDRk47O0FES0U7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw0QkFBQTtFQUFBLDZCQUFBO1VBQUEsc0JBQUE7RUFDQSxrQkFBQTtBQ0hKOztBRElJO0VBQ0UsaUJBQUE7RUFDQSxjRXpFVTtFRjBFVixvQkFBQTtBQ0ZOOztBRE9BO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0FDSkY7O0FET0E7RUFDRSxrQkFBQTtBQ0pGOztBRE9BO0VBQ0UsYUFBQTtBQ0pGOztBRE9BO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0FDSkY7O0FES0U7RUFDRSxVQUFBO0VBQ0Esa0JBQUE7QUNISjs7QURLRTtFQUNFLG1CQUFBO1VBQUEsT0FBQTtBQ0hKOztBRE9BO0VBQ0UsZUFBQTtBQ0pGOztBRE9BO0VBQ0UsVUFBQTtFQUNBLGlCQUFBO0FDSkY7O0FET0E7RUFDRSxxQkFBQTtFQUNBLGlCQUFBO0FDSkY7O0FET0E7RUFDRSxlQUFBO0FDSkY7O0FET0E7RUFDRSxvQ0FBQTtFQUNBLGdDQUFBO0FDSkY7O0FET0E7RUFDRSxzQkFBQTtBQ0pGOztBRE9BO0VBQ0Usb0JBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7QUNKRjs7QURPQTtFQUNFLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtBQ0pGOztBRE9BO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0FDSkY7O0FET0E7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtBQ0pGOztBRE9BOztFQUVFLFlBQUE7RUFDQSxlQUFBO0FDSkY7O0FET0E7RUFDRSxnQ0FBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtBQ0pGOztBRE9BO0VBQ0kseUJBQUE7RUFDQSxxQ0FBQTtBQ0pKOztBRE9BO0VBQ0UsZ0NBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7QUNKRjs7QURPQTtFQUNJLHlCQUFBO0VBQ0EscUNBQUE7QUNKSjs7QURPQTtFQUNFO0lBQ0UsMEJBQUE7RUNKRjs7RURPQTtJQUNFLHlCQUFBO0lBQ0EsMkJBQUE7RUNKRjs7RURPQTtJQUNFLHdCQUFBO0VDSkY7QUFDRjs7QURPQSxXQUFBOztBQUNBLGlEQUFBOztBQUNBO0VBQ0U7SUFDRSx5QkFBQTtFQ0xGO0FBQ0Y7O0FEUUEsb0VBQUE7O0FBQ0E7RUFDRTtJQUNFLHlCQUFBO0VDTkY7QUFDRjs7QURTQSxxREFBQTs7QUFDQTtFQUNFO0lBQ0UseUJBQUE7RUNQRjtBQUNGOztBRFVBLG1EQUFBOztBQUNBO0VBQ0U7SUFDRSx3QkFBQTtFQ1JGO0FBQ0Y7O0FEV0Esb0VBQUE7O0FBQ0E7RUFDRTtJQUNFLHdCQUFBO0VDVEY7QUFDRjs7QURZQTtFQUNFO0lBQ0UseUJBQUE7SUFDQSwyQkFBQTtFQ1ZGO0FBQ0Y7O0FEYUE7RUFDRTtJQUNFLHlCQUFBO0lBQ0EsMkJBQUE7RUNYRjtBQUNGOztBRGNBO0VBQ0UsbUJBQUE7QUNaRjs7QURlQTtFQUNFLHlCQUFBO0VBQ0EsdUJBQUE7QUNaRjs7QURlQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtBQ1pGOztBRGVBO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxtQ0FBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxnRkFBQTtFQUNBLHdFQUFBO0FDWkYiLCJmaWxlIjoic3JjL2FwcC9oZWFyaW5nL2hlYXJpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vdmFyaWFibGVzLnNjc3NcIjtcblxuLmhlYXJpbmctY29udGFpbmVyIHtcbiAgcGFkZGluZzogM2VtIDRlbSAzZW0gMi41ZW07XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4uc2VhcmNoLWhlYXJpbmdzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmhhcy1zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5oYXMtc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjM3NWVtO1xufVxuXG4uaGFzLXNlYXJjaCAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIuMzc1ZW07XG4gIGhlaWdodDogMi4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLy9wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2FhYTtcbiAgcmlnaHQ6IDA7XG59XG5cbi5oZWFyaW5ncy1oZWFkZXIge1xuICBtYXJnaW46IDJlbSAwIDFlbTtcbn1cblxuLmRyYXd0b29sZ3VpZGVib3gxIGg0IHtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxuXG4uZHJhd3Rvb2xndWlkZWJveDEge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5cblxuLmhlYXJpbmctZmFjdHMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDFlbSAwO1xuICAuaGVhcmluZy1mYWN0LXRpdGxlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi1pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmhlYXJpbmctZmFjdC10ZXh0cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAmLWl0ZW0ge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbiAgICB9XG4gIH1cbn1cblxuLnNlZS1tb3JlLWxlc3Mge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMC41ZW0gMCAxZW07XG59XG5cbi5kb2N1bWVudC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5oZWFyaW5nLWFuc3dlcnMtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAyZW0gMDtcbn1cblxuLnR3by1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC56aXAge1xuICAgIHdpZHRoOiAzMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG4gIC5jaXR5IHtcbiAgICBmbGV4OiAxO1xuICB9XG59XG5cbi5oZWFyaW5nLWRpc3BsYXkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vcHRpb24tZmVlZGJhY2sge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cblxuLmFjY2VwdC1pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5hY2NlcHQtdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuOjpuZy1kZWVwIG5nYi1wYWdpbmF0aW9uIHVsID4gbGkuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzNjNjUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjMzYzY1ICFpbXBvcnRhbnQ7XG59XG5cbi5jb25maXJtYXRpb24tZWxlbWVudCB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5oaWdobGlnaHQtem9uZSB7XG4gIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICBvdXRsaW5lLXdpZHRoOiAycHg7XG4gIG91dGxpbmUtY29sb3I6ICNiYjRhZTg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5wcmludC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwcHg7XG59XG5cbiNsYXlvdXRIZWFyaW5nIHtcbiAgY29sb3I6ICM0MDY0OGI7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxODAlO1xufVxuXG4uZ29CYWNrIHtcbiAgY29sb3I6ICMwNjRjOTg7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgbWFyZ2luLXRvcDogMTMlO1xufVxuXG4uc2lkZS10YWJsZSB0ZCxcbi5zaWRlLXRhYmxlIHRoIHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjFyZW07XG59XG5cbi5idXR0b24tbGlua3tcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjMzYzY1ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbi1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwNTZiMyAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5nb3RvLWNvbnN1bHRhdGlvbi1saXN0LWxpbmt7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5nb3RvLWNvbnN1bHRhdGlvbi1saXN0LWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMDA1NmIzICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhcmluZy1jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMi41ZW0pO1xuICB9XG5cbiAgLm1haW4tYnRue1xuICAgIGZvbnQtc2l6ZTogOTYlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhpZGUtb24tbW9iaWxle1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbi8qIEV4dHJhIHNtYWxsIGRldmljZXMgKHBob25lcywgNjAwcHggYW5kIGRvd24pICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5kaXNwbGF5LW9ubHktb24tbW9iaWxle1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogU21hbGwgZGV2aWNlcyAocG9ydHJhaXQgdGFibGV0cyBhbmQgbGFyZ2UgcGhvbmVzLCA2MDBweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5kaXNwbGF5LW9ubHktb24tbW9iaWxle1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTWVkaXVtIGRldmljZXMgKGxhbmRzY2FwZSB0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kaXNwbGF5LW9ubHktb24tbW9iaWxle1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTGFyZ2UgZGV2aWNlcyAobGFwdG9wcy9kZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaGlkZS1vbi1iaWdnZXItc2NyZWVue1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBFeHRyYSBsYXJnZSBkZXZpY2VzIChsYXJnZSBsYXB0b3BzIGFuZCBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oaWRlLW9uLWJpZ2dlci1zY3JlZW57XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEyNXB4KSB7XG4gIC5tYWluLWJ0bntcbiAgICBmb250LXNpemU6IDk2JSAhaW1wb3J0YW50OztcbiAgICBwYWRkaW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU1cHgpIHtcbiAgLm1haW4tYnRue1xuICAgIGZvbnQtc2l6ZTogNzglICFpbXBvcnRhbnQ7O1xuICAgIHBhZGRpbmc6IGluaGVyaXQgIWltcG9ydGFudDs7XG4gIH1cbn1cblxuLmhhYTpob3ZlcntcbiAgYmFja2dyb3VuZDogI2NlY2VjZTtcbn1cblxuLnRleHRNYXJnaW57XG4gIG1hcmdpbi10b3A6IDUlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzMDBweCAhaW1wb3J0YW50O1xufVxuXG4ubWFrZS1ib2xke1xuICBjb2xvcjogIzIzM2M2NTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbjpob3N0IDo6bmctZGVlcCAuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyg1LjVlbSArIDAuNzVyZW0gKyAycHgpO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0O1xufVxuIiwiLmhlYXJpbmctY29udGFpbmVyIHtcbiAgcGFkZGluZzogM2VtIDRlbSAzZW0gMi41ZW07XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4uc2VhcmNoLWhlYXJpbmdzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmhhcy1zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5oYXMtc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjM3NWVtO1xufVxuXG4uaGFzLXNlYXJjaCAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIuMzc1ZW07XG4gIGhlaWdodDogMi4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2FhYTtcbiAgcmlnaHQ6IDA7XG59XG5cbi5oZWFyaW5ncy1oZWFkZXIge1xuICBtYXJnaW46IDJlbSAwIDFlbTtcbn1cblxuLmRyYXd0b29sZ3VpZGVib3gxIGg0IHtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxuXG4uZHJhd3Rvb2xndWlkZWJveDEge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5cbi5oZWFyaW5nLWZhY3RzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAxZW0gMDtcbn1cbi5oZWFyaW5nLWZhY3RzLWNvbnRhaW5lciAuaGVhcmluZy1mYWN0LXRpdGxlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uaGVhcmluZy1mYWN0cy1jb250YWluZXIgLmhlYXJpbmctZmFjdC10aXRsZXMtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICBtYXJnaW4tcmlnaHQ6IDJlbSAhaW1wb3J0YW50O1xufVxuLmhlYXJpbmctZmFjdHMtY29udGFpbmVyIC5oZWFyaW5nLWZhY3QtdGV4dHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4uaGVhcmluZy1mYWN0cy1jb250YWluZXIgLmhlYXJpbmctZmFjdC10ZXh0cy1pdGVtIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMjMzYzY1O1xuICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbn1cblxuLnNlZS1tb3JlLWxlc3Mge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMC41ZW0gMCAxZW07XG59XG5cbi5kb2N1bWVudC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5oZWFyaW5nLWFuc3dlcnMtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAyZW0gMDtcbn1cblxuLnR3by1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4udHdvLWlucHV0IC56aXAge1xuICB3aWR0aDogMzAlO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG4udHdvLWlucHV0IC5jaXR5IHtcbiAgZmxleDogMTtcbn1cblxuLmhlYXJpbmctZGlzcGxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm9wdGlvbi1mZWVkYmFjayB7XG4gIGNvbG9yOiByZWQ7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuXG4uYWNjZXB0LWlucHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmFjY2VwdC10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG46Om5nLWRlZXAgbmdiLXBhZ2luYXRpb24gdWwgPiBsaS5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzM2M2NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyMzNjNjUgIWltcG9ydGFudDtcbn1cblxuLmNvbmZpcm1hdGlvbi1lbGVtZW50IHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmhpZ2hsaWdodC16b25lIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1jb2xvcjogI2JiNGFlODtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnByaW50LW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cblxuI2xheW91dEhlYXJpbmcge1xuICBjb2xvcjogIzQwNjQ4YjtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE4MCU7XG59XG5cbi5nb0JhY2sge1xuICBjb2xvcjogIzA2NGM5ODtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogYm9sZGVyO1xuICBtYXJnaW4tdG9wOiAxMyU7XG59XG5cbi5zaWRlLXRhYmxlIHRkLFxuLnNpZGUtdGFibGUgdGgge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMXJlbTtcbn1cblxuLmJ1dHRvbi1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjMzYzY1ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbi1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMwMDU2YjMgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuLmdvdG8tY29uc3VsdGF0aW9uLWxpc3QtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5nb3RvLWNvbnN1bHRhdGlvbi1saXN0LWxpbms6aG92ZXIge1xuICBjb2xvcjogIzAwNTZiMyAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oZWFyaW5nLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyLjVlbSk7XG4gIH1cblxuICAubWFpbi1idG4ge1xuICAgIGZvbnQtc2l6ZTogOTYlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhpZGUtb24tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIE1vYmlsZSAqL1xuLyogRXh0cmEgc21hbGwgZGV2aWNlcyAocGhvbmVzLCA2MDBweCBhbmQgZG93bikgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmRpc3BsYXktb25seS1vbi1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFNtYWxsIGRldmljZXMgKHBvcnRyYWl0IHRhYmxldHMgYW5kIGxhcmdlIHBob25lcywgNjAwcHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAuZGlzcGxheS1vbmx5LW9uLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTWVkaXVtIGRldmljZXMgKGxhbmRzY2FwZSB0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kaXNwbGF5LW9ubHktb24tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBkZXZpY2VzIChsYXB0b3BzL2Rlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5oaWRlLW9uLWJpZ2dlci1zY3JlZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogRXh0cmEgbGFyZ2UgZGV2aWNlcyAobGFyZ2UgbGFwdG9wcyBhbmQgZGVza3RvcHMsIDEyMDBweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGlkZS1vbi1iaWdnZXItc2NyZWVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEyNXB4KSB7XG4gIC5tYWluLWJ0biB7XG4gICAgZm9udC1zaXplOiA5NiUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU1cHgpIHtcbiAgLm1haW4tYnRuIHtcbiAgICBmb250LXNpemU6IDc4JSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgfVxufVxuLmhhYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNjZWNlY2U7XG59XG5cbi50ZXh0TWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogNSUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYWtlLWJvbGQge1xuICBjb2xvcjogIzIzM2M2NTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbjpob3N0IDo6bmctZGVlcCAuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyg1LjVlbSArIDAuNzVyZW0gKyAycHgpO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2VkNGRhO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufSIsIi8vIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMyMzNjNjU7XG4kb3JhbmdlOiAjZmY4NTAwO1xuJHJlZDogI2NjNjY3NztcbiRncmVlbjogIzQ0YWI5OTtcbiRsaWdodC1ibHVlOiAjMzlhOGUwO1xuJHllbGxvdzogI2ZhYjMwYztcbiRwdXJwbGU6ICNhYTQ0OTk7XG4kcHVycGxlLWZpbGw6IHJnYmEoJHB1cnBsZSwgMC41KTtcblxuJHByaW1hcnktdGV4dDogIzMzMzMzMztcbiRoZWxwLXRleHQ6ICM2NjY2NjY7XG4kZGlzYmFsZWQtbGluay10ZXh0OiAjOTk5OTk5O1xuXG4kcHJpbWFyeS1ncmV5LWJnOiAjZjZmNmY2O1xuXG4vLyBCb3JkZXJzXG4kcHJpbWFyeS1ncmV5LWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4kb3JhbmdlLWJvcmRlcjogMnB4IHNvbGlkICRvcmFuZ2U7XG4kcmVkLWJvcmRlcjogMnB4IGRhc2hlZCAkcmVkO1xuJHB1cnBsZS1ib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlO1xuIl19 */\"","import {\n Component,\n OnInit,\n OnDestroy,\n ElementRef,\n ViewChild,\n TemplateRef\n} from \"@angular/core\";\nimport { NgForm } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { ConsultationResponse } from \"../models/consultationresponse\";\nimport { ConsultationdataService } from \"../services/consultationdata.service\";\nimport { Consultation } from \"../models/consultation\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { RoutingService } from \"../services/routing.service\";\nimport { MapService } from \"../services/map.service\";\nimport { ZoneFeature } from \"../plandataDefinition/zoneFeature\";\nimport { ZoneInHoering } from \"../models/zoneinhoering\";\nimport { ContentService } from \"../services/content.service\";\nimport { EnvironmentService } from \"../services/environment.service\";\nimport { PrintService } from \"../services/print.service\";\nimport { DateService } from \"../services/date.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport * as _ from 'lodash';\nimport * as InlineEditor from '@ckeditor/ckeditor5-build-inline';\nimport { Location } from '@angular/common'\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport {DomSanitizer} from \"@angular/platform-browser\";\n//import { ConsoleReporter } from \"jasmine\";\n\n\n@Component({\n selector: \"app-hearing\",\n templateUrl: \"./hearing.component.html\",\n styleUrls: [\"./hearing.component.scss\"],\n queries: {\n tabsContentRef: new ViewChild(\"tabsContentRef\", { static: false }),\n },\n})\nexport class HearingComponent implements OnInit, OnDestroy {\n showAllHearings = false;\n showHearing = false;\n showHearingAnswers = false;\n hearingAnswer = false;\n zonesInHearings = new Array();\n isSubmitted = false;\n rdtype = \"\";\n zoneLayers:any = [];\n isHavplan:boolean = false;\n isTillag:boolean = false;\n\n typeOptions = new Array<{id:string,value:string}>();\n selectedTypeValue:string = 'Privatperson';\n\n consultationResponse: ConsultationResponse;\n\n allConsultations: Consultation[];\n\n allConsultationResponse: ConsultationResponse[];\n allConsultationResponseMap: Map;\n allConsultationResponsesCurrentPage: number = 0;\n allConsultationResponsesCurrentPageLoaded: boolean = false;\n allConsultationResponsesPageSize: number = 10;\n allConsultationResponsesTotalPages: number;\n allConsultationResponsesTotalElements: number;\n allConsultationResponsesIsLastPage: boolean;\n\n showHearingAnswerSingle: boolean;\n max: boolean = true;\n hearingConfirmation = false;\n file: any;\n files : any[] = [];\n public tabsContentRef!: ElementRef;\n selectedConsultation: Consultation;\n selectedConsultationResponse: ConsultationResponse;\n showOnlyCurrentConsultations: boolean = false;\n acceptCondition: boolean = false;\n content: any;\n hearingContent: void;\n consultationContent: any;\n consultationResponseContent: any;\n contentString: void;\n consultationPrefix = \"/plan/consultation\";\n consultationResponsePrefix = \"/plan/consultation/response\";\n selectZoneActive: boolean = false;\n selectVersionZoneActive: boolean = false;\n selectPlanAsAnswerNotZone: boolean = false;\n selectedZone: any =[];\n selectedZoneLayer:any = [];\n consultationNoteUrl: string = \"\";\n hearingAnswerAttachmentUrl: string = \"\";\n showPrintOverlay: boolean = false;\n hoveredFeatureZones: ZoneFeature[] = new Array();\n selectedBoxFeatureRefId: string = \"\";\n\n searchTerm: string;\n confirmation: any;\n private subscriptions: Subscription[] = new Array();\n\n showSelectOnMapAlert: boolean = false;\n showDrawGuide: boolean = false;\n currentLang: string = null;\n\n isAttachmentInvalid: boolean = false;\n isAttachmentTooBig: boolean = false;\n isAttachmentFilenameTooBig: boolean = false;\n isAttachmentUnsafe: boolean = false;\n isOtherErrorWhenSubmitting: boolean = false;\n getHtmlTexts:string;\n isDropdownChanged:boolean = false;\n\n modalRef: BsModalRef;\n isConfirmed:boolean = false;\n confirmationModalData:any = null;\n\n public Editor = InlineEditor;\n ckeditorConfig = {\n toolbar: ['heading', '|', 'bold', 'italic', 'Strike', 'link', 'numberedList', 'bulletedList','|', 'undo', 'redo'],\n heading:{\n options:[\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading2', view: 'h3', title: 'Heading 1', class: 'ck-heading_heading3' },\n { model: 'heading3', view: 'h4', title: 'Heading 2', class: 'ck-heading_heading4' }\n ]\n },\n link: {\n addTargetToExternalLinks: true\n },\n mediaEmbed: {\n previewsInData: true\n }\n };\n\n constructor(\n private consultationdataService: ConsultationdataService,\n private languageService: LanguageService,\n private plandataService: PlandataService,\n private mapService: MapService,\n private routeService: RoutingService,\n private router: Router,\n private contentService: ContentService,\n private environmentService: EnvironmentService,\n private route: ActivatedRoute,\n private printService: PrintService,\n private _modalService: BsModalService,\n private dateService: DateService,\n public sanitizer: DomSanitizer,\n private location: Location\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n\n this.typeOptions.push({'id': 'Privatperson' ,'value' : 'Privatperson'});\n this.typeOptions.push({'id': 'Virksomhed' ,'value' : 'Virksomhed'});\n this.typeOptions.push({'id': 'Kommunal myndighed' ,'value' : 'Kommunal myndighed'});\n this.typeOptions.push({'id': 'Statslig myndighed' ,'value' : 'Statslig myndighed'});\n this.typeOptions.push({'id': 'Organisation' ,'value' : 'Organisation'});\n this.typeOptions.push({'id': 'Forening' ,'value' : 'Forening'});\n this.typeOptions.push({'id': 'Region' ,'value' : 'Region'});\n\n }\n\n ngOnDestroy() {\n this.plandataService.setRegularPlanVersionTimeLine();\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n private initSetup() {\n // console.log(\"INIT::\"+this.showOnlyCurrentConsultations);\n this.mapService.selectEnabled = true;\n this.mapService.deactivateDrawingTool(true);\n this.getHtmlTexts = this.currentLang+this.consultationResponsePrefix;\n\n this.initLayerSwithcer();\n\n this.subscriptions.push(\n this.route.params.subscribe((params) => {\n // Find type\n let planversionID: string = null;\n let answerID: string = null;\n let timeLineData = this.plandataService.getTimeline();\n if (this.route.routeConfig.path.indexOf(\"print\") > -1) {\n this.showPrintOverlay = true;\n this.showAllHearings = false;\n this.printService.printMaps(timeLineData);\n return;\n } else {\n this.showAllHearings = true;\n }\n let me = this;\n this.subscriptions.push(\n this.mapService.onFeatureHover().subscribe((zoneFeatures) => {\n me.hoveredFeatureZones = zoneFeatures;\n })\n );\n\n if (this.route.routeConfig.path.indexOf(\"hist\") > -1) {\n this.showOnlyCurrentConsultations = false;\n } else{\n this.showOnlyCurrentConsultations = true;\n }\n\n this.allConsultations = this.plandataService.getConsultations(\n !this.showOnlyCurrentConsultations\n );\n\n if (params[\"planversionid\"]) {\n planversionID = params[\"planversionid\"];\n this.selectedConsultation = this.allConsultations.find(\n (c) => c.planversionId === planversionID\n );\n this.setZonesInHearing();\n this.checkPlanType();\n }\n if (params[\"answerid\"]) {\n answerID = params[\"answerid\"];\n }\n if (params[\"pageNum\"]) {\n this.allConsultationResponsesCurrentPage = params[\"pageNum\"];\n }\n\n if (this.route.routeConfig.path.indexOf(\"answer\") > -1) {\n if (this.route.routeConfig.path.indexOf(\"show\") > -1) {\n /* this.setConfirmation(); */\n this.showConfirmation();\n return;\n }\n\n if (this.route.routeConfig.path.indexOf(\"create\") > -1) {\n this.selectedConsultation = this.allConsultations.find(\n (c) => c.planversionId === planversionID\n );\n\n if (this.selectedConsultation) {\n if (this.selectedConsultation.historic) {\n this.changePage(\"consultation\");\n }\n this.mapService.clearSelectedFeatures(\"All\");\n this.mapService.selectEnabled = false;\n let param_zoneId = \"\";\n if (params[\"zoneid\"]) {\n param_zoneId = params[\"zoneid\"];\n }\n this.makeHearingAnswer(param_zoneId);\n }\n this.checkPlanType();\n return;\n }\n if (answerID != null) {\n this.selectedConsultation = this.allConsultations.find(\n (c) => c.planversionId === planversionID\n );\n if (params[\"searchTerm\"]) {\n this.getConsultationResponseDetailInSearch(answerID, params[\"searchTerm\"]);\n } else {\n this.getConsultationResponseDetail(answerID);\n }\n this.checkPlanType();\n return;\n }\n\n if (planversionID != null) {\n this.selectedConsultation = this.allConsultations.find(\n (c) => c.planversionId === planversionID\n );\n if (this.selectedConsultation) {\n this.displayHearingAnswers();\n }\n this.checkPlanType();\n }\n } else {\n if (planversionID != null) {\n this.displayHearing(planversionID);\n } else {\n this.displayAllHearings();\n }\n }\n })\n );\n }\n\n initLayerSwithcer() {\n // this.subscriptions.push(\n // this.plandataService.onLayerConfigEventChanged().subscribe((any) => {\n // console.log(\"===><==\")\n // this.setLayers(any);\n // })\n // );\n // this.setLayers(this.plandataService.currentPlandata);\n let layerConfig = this.plandataService.currentLayerConfig;\n if(layerConfig){\n this.setLayers(layerConfig);\n }else{\n setTimeout(()=>{\n this.initLayerSwithcer();\n },1000)\n }\n }\n\n setLayers(layerConfig: any){\n let showLegendConsultation = this.plandataService.showLegendForConsultation();\n let showLegendPostConsultation = this.plandataService.showLegendForPostConsultation();\n // let currentTimeLineIndex = this.plandataService.currentTimeLineIndex;\n // let currentTimelineData = this.plandataService.getTimelineByIndex();\n this.checkPlanType();\n this.zoneLayers = [];\n if (layerConfig && layerConfig.layers) {\n let removeLayerList = [\"At\",\"H\",\"He\"]\n for (let i = 0; i < layerConfig.layers.length; i++) {\n if (\n (!showLegendConsultation && layerConfig.layers[i].name == \"consultation\") ||\n (!showLegendPostConsultation && layerConfig.layers[i].name == \"consultationEnd\")\n ) {\n\n continue;\n }\n if(layerConfig.layers[i]){\n if(layerConfig.layers[i].subtypes && layerConfig.layers[i].subtypes.length > 0){\n let list = [];\n for(let obj of layerConfig.layers[i].subtypes){\n if(obj.type && (removeLayerList.indexOf(obj.type) == -1)){\n list.push(obj);\n }\n }\n if(list.length > 0){\n this.zoneLayers = this.zoneLayers.concat(list);\n }\n }else{\n this.zoneLayers.push(layerConfig.layers[i]);\n }\n }\n }\n }\n }\n\n ngOnInit() {\n const me = this;\n if (!this.mapService.isMapLoaded()) {\n this.subscriptions.push(\n this.mapService.onMapReady().subscribe((status) => {\n me.initSetup();\n })\n );\n } else {\n me.initSetup();\n }\n }\n\n/* setConfirmation() {\n this.confirmation = this.getCMSElement(\n this.currentLang + this.consultationResponsePrefix,\n \"responseconfirm_text\"\n );\n } */\n\n changePage(subpath: string, ignoreHistoricParam: boolean = false) {\n if (!this.isTermEmpty() && this.showHearingAnswers) {\n subpath += \"/search/\"+this.searchTerm;\n }\n if (!ignoreHistoricParam && !this.showOnlyCurrentConsultations) {\n subpath += \"/hist\";\n }\n let path = this.route.parent.routeConfig.path + \"/\" + subpath;\n this.router.navigate([path]);\n }\n\n getLink(subpath: string){\n if (!this.showOnlyCurrentConsultations) {\n subpath += \"/hist\";\n }\n let path = this.route.parent.routeConfig.path + \"/\" + subpath;\n return path;\n }\n\n getText(prefix: string, shortName: string) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getZoneByIndex(index){\n if(this.zonesInHearings && this.zonesInHearings[index]){\n return this.zonesInHearings[index]['refId']+\" - \"+this.getTitlePrefixZoneId(this.zonesInHearings[index])\n }else{\n return \"\";\n }\n }\n\n getZoneLayerByIndex(index){\n if(this.zoneLayers && this.zoneLayers[index]){\n return this.zoneLayers[index]['layerSwitcherDisplayName'][this.currentLang];\n }else{\n return \"\";\n }\n }\n\n public getTitlePrefixZoneId(zone: any): string {\n return this.plandataService.getTitlePrefixByZoneId(zone.refId, zone.type[0], zone.planInfo.planversionId, zone.planInfo.status, this.currentLang);\n }\n\n public getTitlePrefixZoneIdForName(zone: any): string {\n return this.plandataService.getTitlePrefixByZoneId(zone.refId, zone.zoneType[0], zone.planInfo.planversionId, zone.planInfo.status, this.currentLang);\n }\n\n getHTML(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(prefix, shortName);\n }\n\n getCMSElement(prefix: string, shortName: string): object {\n return this.contentService.getCmsElementByShortName(prefix, shortName);\n }\n\n setDialogConfirmation(form: NgForm){\n this.isConfirmed = true;\n this.confirmationModalData = _.cloneDeep(form.value)\n this.submitForm(form, null);\n }\n\n submitForm(form: NgForm,template: TemplateRef) {\n\n if (this.selectZoneActive) {\n\n let geometry = [];\n let refId = [];\n let zoneType = [];\n for(let index of this.selectedZone){\n // geometry.push(this.zonesInHearings[index].geometry); // Not needed we need to sent it as blank so\n refId.push(this.zonesInHearings[index].refId);\n zoneType.push(JSON.stringify(this.zonesInHearings[index].type));\n }\n this.setGeometry(geometry);\n this.consultationResponse.refId = refId.join(',');\n this.consultationResponse.zoneType = \"\"; //zoneType.join(',');\n }\n\n if(this.selectVersionZoneActive){\n let zoneType = [];\n for(let index of this.selectedZoneLayer){\n zoneType.push(this.zoneLayers[index].type);\n }\n this.setGeometry([]);\n this.consultationResponse.refId = \"\";\n this.consultationResponse.zoneType = zoneType.join(',');\n }\n\n\n this.isSubmitted = true;\n if (\n !form.valid ||\n (!this.selectPlanAsAnswerNotZone && !this.consultationResponse.geometry)\n ) {\n return false;\n }\n\n if(this.isConfirmed){\n if(!this.confirmationModalData){\n this.isConfirmed = false;\n }else{\n for(let key of Object.keys(form.value)){\n if(!_.isEqual(this.confirmationModalData[key],form.value[key])){\n this.isConfirmed = false;\n break;\n }\n }\n }\n }\n\n if(!this.isConfirmed){\n this.modalRef = this._modalService.show(template, {\n class: \"modal-lg modal-xlc\",\n backdrop: true,\n ignoreBackdropClick: true\n });\n return;\n }\n\n const filesToSend = [];\n if (this.files) {\n this.files.forEach(file => {\n if (!file.name || !file.name.endsWith(\".pdf\")) {\n this.isAttachmentInvalid = true;\n this.isAttachmentTooBig = false;\n this.isAttachmentFilenameTooBig = false;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n return false;\n }\n if(file.name.length > 32){\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = false;\n this.isAttachmentFilenameTooBig = true;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n return false;\n }\n //Default size of file is bytes so we calculate it to KB and then MB(5MB only allow to upload)\n if(file.size/1024/1024 > 5){\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = true;\n this.isAttachmentFilenameTooBig = false;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n return false\n }\n filesToSend.push(file);\n })\n }\n\n console.log(`@@@ SENDING ${filesToSend.length} files`)\n\n let that = this;\n\n that.isAttachmentInvalid = false;\n that.isAttachmentTooBig = false;\n that.isAttachmentFilenameTooBig = false;\n that.isAttachmentUnsafe = false;\n that.isOtherErrorWhenSubmitting = false;\n\n this.subscriptions.push(\n this.consultationdataService\n .addConsultationResponce(this.consultationResponse, filesToSend)\n .subscribe(\n (data) => {\n this.mapService.deactivateDrawingTool();\n if (data.httpStatus === 200 && data.status === 'SUCCESS') {\n this.sendHearingAnswer();\n return;\n }\n\n if (data.status === 'FAILURE' && data.content.localizedMessage === 'report.validation.illegal.attachmenttype') {\n that.isAttachmentInvalid = true;\n }\n\n if (data.status === 'FAILURE' && data.content.localizedMessage === 'report.validation.illegal.attachmentsize') {\n that.isAttachmentTooBig = true;\n }\n\n if (data.status === 'FAILURE' && data.content.localizedMessage === 'report.validation.illegal.attachmentunsafe') {\n that.isAttachmentUnsafe = true;\n }\n\n },\n (err) => {\n if (err.status === 413) {\n that.isAttachmentTooBig = true;\n return;\n }\n if (err.status === 400) {\n that.isOtherErrorWhenSubmitting = true;\n return;\n }\n console.log(\"HTTP Error\", err);\n }\n )\n );\n }\n\n // report file addition to editor\n onFileUpload(event: any) {\n this.confirmationModalData = null;\n const elem = event.target;\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = false;\n this.isAttachmentFilenameTooBig = false;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n // only allow one upload pr attachment\n\n if (elem.files.length > 10) {\n this.isOtherErrorWhenSubmitting = true;\n return;\n }\n\n this.files = [];\n\n for (let file of elem.files) {\n\n if(file.name.length > 32){\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = false;\n this.isAttachmentFilenameTooBig = true;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n continue;\n }\n //Default size of file is bytes so we calculate it to KB and then MB\n if(file.size/1024/1024 > 5){\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = true;\n this.isAttachmentFilenameTooBig = false;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n continue;\n }\n\n this.files.push(file);\n };\n\n }\n\n seeAllZones() {\n this.max = false;\n }\n\n hideAllZones() {\n this.max = true;\n }\n\n displayAllHearings() {\n this.showAllHearings = true;\n this.showHearing = false;\n this.showHearingAnswers = false;\n this.hearingAnswer = false;\n this.hearingConfirmation = false;\n this.showHearingAnswers = false;\n this.showHearingAnswerSingle = false;\n this.scrollTabContentToTop();\n }\n\n private setZonesInHearing() {\n this.mapService.clearSelectedFeatures(\"SELECT\");\n const zones: ZoneFeature[] = this.mapService.getZoneFeaturesForConsultation(\n this.selectedConsultation.planversionId,\n true\n );\n this.zonesInHearings = new Array();\n zones\n .filter((zone) => zone.layerName !== \"changed\")\n .map((zone) => {\n let zoneInHearing = new ZoneInHoering();\n zoneInHearing.planversionId = zone.planInfo.planversionId;\n zoneInHearing.title = this.plandataService.getNameForZoneType(zone);\n zoneInHearing.layerName = zone.layerName;\n zoneInHearing.refId = zone.refId;\n zoneInHearing.type = zone.zoneType;\n zoneInHearing.planInfo = zone.planInfo;\n zoneInHearing.geometry = zone.geometry;\n this.zonesInHearings.push(zoneInHearing);\n });\n }\n\n createNewHearingAnswer(planversionId: string, zoneId: string) {\n this.changePage(\n \"consultation/answer/\" + this.selectedConsultation.planversionId + \"/create/\"+zoneId\n );\n }\n\n displayHearing(planversionId: string) {\n this.selectedConsultation = this.allConsultations.find(\n (c) => c.planversionId === planversionId\n );\n if (this.selectedConsultation.consultationNoteUUID) {\n this.consultationNoteUrl =\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"file?fileId=\" +\n this.selectedConsultation.consultationNoteUUID;\n } else {\n this.consultationNoteUrl = \"\";\n }\n this.setZonesInHearing();\n this.checkPlanType();\n this.showAllHearings = false;\n this.showHearing = true;\n this.hearingConfirmation = false;\n this.showHearingAnswers = false;\n this.hearingAnswer = false;\n this.scrollTabContentToTop();\n }\n\n private getConsultationResponseDetail(answerID: string) {\n this.subscriptions.push(\n this.consultationdataService\n .getConsultationResponses(\n this.selectedConsultation.planversionId,\n this.allConsultationResponsesCurrentPage - 1,\n this.allConsultationResponsesPageSize\n )\n .subscribe(\n (data) => {\n this.allConsultationResponse = data.data;\n this.allConsultationResponseMap = data.data.reduce(\n (map, obj) => (map.set(obj.consultationresponseid, obj), map),\n new Map()\n );\n\n this.allConsultationResponsesTotalPages = data.totalPages;\n this.allConsultationResponsesTotalElements = data.totalElements;\n this.allConsultationResponsesIsLastPage = data.last;\n this.allConsultationResponsesCurrentPageLoaded = true;\n this.displayHearingAnswerSingle(answerID);\n },\n (err) => {\n console.log(\"HTTP Error\", err);\n }\n )\n );\n }\n\n private getConsultationResponseDetailInSearch(answerID: string, searchTerm: string) {\n this.searchTerm = searchTerm;\n this.searchHearingAnswers(false, answerID);\n }\n\n private getConsultationResponsesByPlanversion() {\n this.subscriptions.push(\n this.consultationdataService\n .getConsultationResponses(\n this.selectedConsultation.planversionId,\n this.allConsultationResponsesCurrentPage - 1,\n this.allConsultationResponsesPageSize\n )\n .subscribe(\n (data) => {\n this.allConsultationResponse = data.data;\n this.allConsultationResponseMap = data.data.reduce(\n (map, obj) => (map.set(obj.consultationresponseid, obj), map),\n new Map()\n );\n\n this.allConsultationResponsesTotalPages = data.totalPages;\n this.allConsultationResponsesTotalElements = data.totalElements;\n this.allConsultationResponsesIsLastPage = data.last;\n this.allConsultationResponsesCurrentPageLoaded = true;\n },\n (err) => {\n console.log(\"HTTP Error\", err);\n }\n )\n );\n }\n\n getAltText(prefix, shortName) {\n return this.contentService.getAltTextByShortName(this.currentLang + prefix, shortName);\n }\n\n displayHearingAnswers() {\n this.showAllHearings = false;\n this.showHearing = false;\n this.showHearingAnswers = true;\n this.hearingAnswer = false;\n this.allConsultationResponsesCurrentPageLoaded = false;\n this.getConsultationResponsesByPlanversion();\n this.scrollTabContentToTop();\n }\n\n displayHearingAnswerSingle(consultationresponseId: string) {\n this.showAllHearings = false;\n this.showHearing = false;\n this.showHearingAnswers = false;\n this.hearingAnswer = false;\n this.showHearingAnswerSingle = true;\n this.selectedConsultationResponse = this.allConsultationResponseMap.get(\n consultationresponseId\n );\n\n let timeLineData = this.plandataService.getTimeline();\n this.plandataService.setConsultationTimeLine(this.selectedConsultationResponse, timeLineData);\n if (\n this.selectedConsultationResponse.geometry &&\n JSON.stringify(this.selectedConsultationResponse.geometry) != \"{}\"\n ) {\n this.mapService.showHearingAnswerGeometry(\n this.selectedConsultationResponse.geometry\n );\n }\n\n if (\n this.selectedConsultationResponse.consultationresponse_attachment &&\n this.selectedConsultationResponse.consultationresponse_attachment.length >\n 0\n ) {\n this.hearingAnswerAttachmentUrl =\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"consultation/response/file/?fileId=\" +\n this.selectedConsultationResponse.consultationresponse_attachment[0].id;\n } else {\n this.hearingAnswerAttachmentUrl = \"\";\n }\n this.scrollTabContentToTop();\n }\n\n makeHearingAnswer(zoneId: string) {\n //console.log(\"ZONEID: \"+zoneId);\n this.showAllHearings = false;\n this.showHearing = false;\n this.hearingConfirmation = false;\n this.showHearingAnswers = false;\n this.hearingAnswer = true;\n this.acceptCondition = false;\n if(zoneId) {\n for(let i = 0; i < this.zonesInHearings.length; i ++) {\n if(zoneId == this.zonesInHearings[i].refId) {\n this.rdtype = \"selectZone\";\n this.selectedZone = [i];\n this.selectedZoneLayer = [];\n this.selectZoneActive = true;\n this.selectPlanAsAnswerNotZone = false;\n this.selectVersionZoneActive = false;\n this.showDrawGuide = false;\n this.mapService.selectEnabled = true;\n this.mapService.deactivateDrawingTool();\n this.setCustomFeatureClickCallback();\n this.setZonesInHearing();\n this.mapService.showSelectedHearingGeometry(\n this.zonesInHearings[this.selectedZone[0]].geometry\n );\n }\n }\n }\n this.consultationResponse = {\n type: \"Privatperson\",\n isPrivate: \"false\",\n address: \"\",\n name: \"\",\n city: \"\",\n consultationresponseid: \"1\",\n email: \"\",\n geometry: null,\n consultation_description: \"\",\n othercontact: \"\",\n planversionID: this.selectedConsultation\n ? this.selectedConsultation.planversionId\n : \"\",\n postalcode: \"\",\n category: \"tillaeg\",\n valid_from: null,\n currentDateTime: null,\n refId: zoneId,\n zoneType: \"\",\n consultationresponse_attachment: null,\n content: null,\n httpStatus: null,\n status: null,\n planVersionZoneName: null\n };\n this.scrollTabContentToTop();\n }\n\n sendHearingAnswer() {\n this.changePage(\n \"consultation/answer/\" + this.selectedConsultation.planversionId + \"/show\", true\n );\n }\n\n showConfirmation() {\n this.showAllHearings = false;\n this.showHearing = false;\n this.showHearingAnswers = false;\n this.hearingAnswer = false;\n this.hearingConfirmation = true;\n this.scrollTabContentToTop();\n }\n\n private scrollTabContentToTop(): void {\n if (this.tabsContentRef) {\n this.tabsContentRef.nativeElement.scrollTop = 0;\n }\n }\n\n onHistoryConsultationsChange(): void {\n this.showOnlyCurrentConsultations = !this.showOnlyCurrentConsultations;\n this.changePage(\"consultation\");\n }\n\n showDate(date: string): string {\n return this.dateService.formatDateOnly(date);\n }\n\n setGeometry(geojson: any): void {\n this.consultationResponse.geometry = geojson;\n }\n\n draw() {\n this.showDrawGuide = true;\n this.selectZoneActive = false;\n this.selectVersionZoneActive = false;\n this.mapService.setCustomFeatureClickCallback(null, null);\n this.mapService.selectEnabled = false;\n this.mapService.clearSelectedFeatures(\"CONSULTATIONRESPONSEZONE\");\n this.mapService.activeDrawingTool([\"POINT\", \"POLYLINE\", \"POLYGON\"]);\n this.setGeometry(null);\n const me = this;\n this.mapService.setGeometryDrawingCallback(function (geojson) {\n me.setGeometry(JSON.parse(geojson));\n });\n }\n\n selectAnswerPlan() {\n this.mapService.selectEnabled = true;\n this.mapService.setCustomFeatureClickCallback(null, null);\n this.mapService.clearSelectedFeatures(\"CONSULTATIONRESPONSEZONE\");\n this.mapService.deactivateDrawingTool();\n this.selectZoneActive = false;\n this.selectVersionZoneActive = false;\n this.selectPlanAsAnswerNotZone = true;\n this.showDrawGuide = false;\n this.setGeometry([]);\n }\n\n selectAnswerZone() {\n this.mapService.clearSelectedFeatures(\"All\");\n this.mapService.selectEnabled = true;\n this.selectZoneActive = !this.selectZoneActive;\n this.selectVersionZoneActive = false;\n this.selectPlanAsAnswerNotZone = false;\n this.showDrawGuide = false;\n this.mapService.deactivateDrawingTool();\n this.setGeometry(null);\n\n this.consultationResponse.refId = null;\n this.consultationResponse.planVersionZoneName = null;\n this.setCustomFeatureClickCallback();\n\n this.selectedZone = [];\n this.setZonesInHearing();\n\n // this.mapService.showSelectedHearingGeometry(\n // this.zonesInHearings[this.selectedZone].geometry\n // );\n }\n\n setCustomFeatureClickCallback(){\n let me = this;\n this.mapService.setCustomFeatureClickCallback(function (\n selectedZoneFeatures: ZoneFeature[]\n ) {\n if (selectedZoneFeatures == null || selectedZoneFeatures.length == 0) {\n return;\n }\n\n let zoneFeatures: ZoneFeature[] = selectedZoneFeatures.filter(\n (f) =>\n f.planInfo.planversionId === me.selectedConsultation.planversionId &&\n f.planInfo.status === \"consultation\" &&\n f.layerName != \"changed\"\n );\n\n // if (zoneFeatures.length === 0) {\n // me.showSelectOnMapAlert = true;\n // me.setGeometry(null);\n // setTimeout(() => {\n // me.showSelectOnMapAlert = false;\n // }, 3000);\n // return;\n // }\n\n if (zoneFeatures.length > 1) {\n zoneFeatures = zoneFeatures.slice(0, 1);\n }\n\n if (zoneFeatures.length == 1) {\n // me.setGeometry(zoneFeatures[0].geometry);\n // me.consultationResponse.refId = zoneFeatures[0].refId;\n // me.consultationResponse.zoneType = JSON.stringify(\n // zoneFeatures[0].zoneType\n // );\n // me.consultationResponse.planVersionZoneName = me.getTitlePrefixZoneIdForName(zoneFeatures[0])\n\n let index = -1;\n for(let i=0; i < me.zonesInHearings.length; i++){\n if(\n zoneFeatures[0].layerName != \"changed\" &&\n zoneFeatures[0].refId == me.zonesInHearings[i].refId &&\n zoneFeatures[0].layerName == me.zonesInHearings[i].layerName &&\n _.isEqual(zoneFeatures[0].geometry, me.zonesInHearings[i].geometry)){\n index = i;\n break;\n }\n }\n\n if(index != -1){\n me.isDropdownChanged = true;\n\n if(me.selectedZone.indexOf(index) >= 0){\n\n let removeIndx = me.selectedZone.indexOf(index);\n me.selectedZone.splice(removeIndx,1)\n me.setGeometry(null);\n me.mapService.hearingAnswerDisplayLayer.getSource().clear();\n\n if(me.selectedZone.length > 0){\n me.setGeometry([]);\n }else{\n me.setGeometry(null);\n }\n for(let index of me.selectedZone){\n me.mapService.showSelectedHearingGeometry(\n me.zonesInHearings[index].geometry\n );\n }\n setTimeout(()=>{\n me.isDropdownChanged = false;\n })\n return;\n }else{\n me.selectedZone.push(index);\n me.mapService.showSelectedHearingGeometry(\n me.zonesInHearings[index].geometry\n );\n if(me.selectedZone.length > 0){\n me.setGeometry([]);\n }else{\n me.setGeometry(null);\n }\n setTimeout(()=>{\n me.isDropdownChanged = false;\n })\n return;\n }\n }\n /* console.log(\"===>\"+me.getTitlePrefixZoneId(zoneFeatures[0])) */\n return;\n }\n\n // const modalRef = me.modalService.open(ZonesComponent);\n // modalRef.componentInstance.isAutonomousModeOn = true;\n // modalRef.componentInstance.autonomousSelectedFeatureCallback = (\n // feature: ZoneFeature\n // ) => {\n // me.setGeometry(feature.geometry);\n // me.consultationResponse.refId = feature.refId;\n // me.consultationResponse.zoneType = JSON.stringify(feature.zoneType);\n // modalRef.dismiss();\n // };\n },\n this.selectedConsultation.planversionId);\n }\n\n selectAnswerZoneChange() {\n this.showDrawGuide = false;\n // this.mapService.setCustomFeatureClickCallback(null, null);\n\n this.mapService.hearingAnswerDisplayLayer.getSource().clear();\n if(this.selectedZone.length > 0){\n this.setGeometry([]);\n }else{\n this.setGeometry(null);\n }\n for(let index of this.selectedZone){\n this.mapService.showSelectedHearingGeometry(\n this.zonesInHearings[index].geometry\n );\n }\n // this.mapService.showSelectedHearingGeometry(\n // this.zonesInHearings[this.selectedZone].geometry\n // );\n }\n\n selectVersionZone(){\n this.mapService.clearSelectedFeatures(\"All\");\n this.mapService.selectEnabled = false;\n this.selectZoneActive = false;\n this.selectVersionZoneActive = !this.selectVersionZoneActive;\n this.selectPlanAsAnswerNotZone = false;\n this.showDrawGuide = false;\n this.mapService.deactivateDrawingTool();\n this.setGeometry(null);\n\n this.consultationResponse.refId = null;\n this.consultationResponse.planVersionZoneName = null;\n this.mapService.setCustomFeatureClickCallback(null,null);\n this.selectedZone = [];\n this.selectedZoneLayer = [];\n this.setZonesInHearing();\n }\n\n selectVersionZoneChange() {\n this.showDrawGuide = false;\n // this.mapService.setCustomFeatureClickCallback(null, null);\n if(this.selectedZoneLayer.length > 0){\n this.setGeometry([]);\n }else{\n this.setGeometry(null);\n }\n this.mapService.hearingAnswerDisplayLayer.getSource().clear();\n\n }\n\n selectTypeChange(event){\n if(event && event.target && event.target.value){\n if(event.target.value != this.selectedTypeValue){\n this.consultationResponse.isPrivate = \"false\";\n }\n for(let obj of this.typeOptions){\n if(obj.id == event.target.value){\n this.selectedTypeValue = obj.value;\n }\n }\n }\n }\n\n getConsultationStatusText(): string {\n if (this.selectedConsultation) {\n return this.getText(\n this.consultationPrefix,\n this.selectedConsultation.statusInfo.cmstext\n );\n }\n return \"\";\n }\n\n checkPlanType(){\n let planStatus = this.getConsultationStatusText();\n if(planStatus.indexOf('Havplan') >=0 || planStatus.indexOf('Ocean Plan') >=0){\n this.isHavplan = true;\n }else if(planStatus.indexOf('Tillæg') >=0 || planStatus.indexOf('Add-on') >=0){\n this.isTillag = true;\n }else{\n this.isHavplan = false;\n this.isTillag = false;\n }\n }\n\n onAcceptCondition(): void {\n this.confirmationModalData = null;\n this.acceptCondition = !this.acceptCondition;\n }\n\n searchHearingAnswers(isTermChanged: boolean = true, answerID: any = null) {\n if (isTermChanged) {\n this.allConsultationResponsesCurrentPage = 1;\n }\n\n if (this.isTermEmpty()) {\n this.displayHearingAnswers();\n return;\n }\n\n this.showAllHearings = false;\n this.showHearing = false;\n this.showHearingAnswers = true;\n this.hearingAnswer = false;\n\n this.allConsultationResponsesCurrentPageLoaded = false;\n this.subscriptions.push(\n this.consultationdataService\n .getConsultationResponsesBySearch(\n this.selectedConsultation.planversionId,\n this.searchTerm,\n this.allConsultationResponsesCurrentPage - 1,\n this.allConsultationResponsesPageSize\n )\n .subscribe(\n (data) => {\n this.allConsultationResponse = data.data;\n this.allConsultationResponseMap = data.data.reduce(\n (map, obj) => (map.set(obj.consultationresponseid, obj), map),\n new Map()\n );\n\n this.allConsultationResponsesTotalPages = data.totalPages;\n this.allConsultationResponsesTotalElements = data.totalElements;\n this.allConsultationResponsesIsLastPage = data.last;\n this.allConsultationResponsesCurrentPageLoaded = true;\n if (answerID)\n this.displayHearingAnswerSingle(answerID);\n },\n (err) => {\n console.log(\"HTTP Error\", err);\n }\n )\n );\n\n this.scrollTabContentToTop();\n }\n\n isTermEmpty = () => {\n return !this.searchTerm;\n };\n\n clearSearch = () => {\n this.allConsultationResponsesCurrentPage = 1;\n this.searchTerm = \"\";\n this.displayHearingAnswers();\n };\n\n onConsultationResponsesPageChange = () => {\n this.allConsultationResponsesCurrentPageLoaded = false;\n\n if (this.isTermEmpty()) {\n this.displayHearingAnswers();\n } else {\n this.searchHearingAnswers(false);\n }\n };\n\n get printedReportsPercentage() {\n return this.printService.printedReportsPercentage;\n }\n get printFinished() {\n return this.printService.printFinished;\n }\n\n public displayZoneInhearing(zonefeature: ZoneInHoering) {\n this.mapService.resetFeatureStyle(\n zonefeature.layerName,\n zonefeature.refId,\n zonefeature.planInfo.styleType\n );\n let path =\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zonefeature.planversionId +\n \"/\" +\n zonefeature.layerName +\n \"/\" +\n zonefeature.refId\n +\n \"?consultation=1\"\n ;\n this.routeService.changeRoutePath(path);\n }\n\n public setZoneStyle(zonefeature: ZoneInHoering, highlight: boolean) {\n if (highlight) {\n this.selectedBoxFeatureRefId = zonefeature.refId;\n this.mapService.setFeatureStyle(\n zonefeature.layerName,\n zonefeature.refId,\n zonefeature.planInfo.styleType,\n \"highlight\"\n );\n } else {\n if (this.selectedBoxFeatureRefId == zonefeature.refId) {\n this.selectedBoxFeatureRefId = \"\";\n }\n this.mapService.resetFeatureStyle(\n zonefeature.layerName,\n zonefeature.refId,\n zonefeature.planInfo.styleType\n );\n }\n }\n\n featureInMapHovered(refId: string) {\n if (this.hoveredFeatureZones.find((f) => f.refId === refId)) {\n return true;\n } else if (this.selectedBoxFeatureRefId == refId) {\n return true;\n } else {\n return false;\n }\n }\n\n getSetData(event){\n this.consultationResponse.isPrivate = (this.consultationResponse.isPrivate == \"true\" ? \"false\" : \"true\" );\n }\n\n getZoneRefIds(){\n if(this.selectedConsultationResponse && this.selectedConsultationResponse.refId){\n let RefIdList = this.selectedConsultationResponse.refId.split(',');\n if(RefIdList && RefIdList.length >= 0){\n return RefIdList;\n }\n }\n return [];\n }\n\n getDrawingData(){\n if(this.selectedConsultationResponse && this.selectedConsultationResponse.geometry && this.selectedConsultationResponse.geometry['type'] ){\n return true;\n }\n }\n\n getZoneRefNameById(id){\n for(let zone of this.zonesInHearings){\n if(zone && zone.refId == id){\n return this.getTitlePrefixZoneId(zone);\n }\n }\n }\n\n getZoneRefNameByIndexList(){\n let refIdList = [];\n for(let index of this.selectedZone){\n refIdList.push(this.zonesInHearings[index].refId);\n }\n return refIdList.join(', ');\n }\n\n getZoneLayerIds(){\n if(this.selectedConsultationResponse && this.selectedConsultationResponse.zoneType){\n let zoneIdList = this.selectedConsultationResponse.zoneType.split(',');\n if(zoneIdList && zoneIdList.length >= 0){\n return zoneIdList;\n }\n }\n return [];\n }\n\n getZoneLayerNameById(id){\n for(let zone of this.zoneLayers){\n if(zone && zone.type == id){\n return zone['layerSwitcherDisplayName'][this.currentLang];\n }\n }\n }\n\n getZoneLayerNameByIndexList(){\n let layerName = [];\n for(let index of this.selectedZoneLayer){\n layerName.push(this.zoneLayers[index].type)\n }\n return layerName.join(', ');\n }\n\n onResultHover = (zoneId: any) => {\n for(let zone of this.zonesInHearings){\n if(zone && zone.refId == zoneId){\n this.mapService.showSelectedHearingGeometry(zone.geometry);\n return;\n }\n }\n this.mapService.clearSelectedFeatures(\"MAPSEARCH\");\n };\n\n zoomOnZone(zoneId) {\n // console.log(\"ZoneId\"+zoneId)\n for(let zone of this.zonesInHearings){\n if(zone && zone.refId == zoneId){\n\n let temp:any = zone;\n this.mapService.flyToFeaturesByZoneTypesArr([temp]);\n }\n }\n }\n\n goBack() {\n this.location.back();\n }\n\n /* resetForm(form: NgForm){\n form.resetForm();\n this.consultationResponse = {\n type: \"Privatperson\",\n isPrivate: \"false\",\n address: \"\",\n name: \"\",\n city: \"\",\n consultationresponseid: \"1\",\n email: \"\",\n geometry: null,\n consultation_description: \"\",\n othercontact: \"\",\n planversionID: this.selectedConsultation\n ? this.selectedConsultation.planversionId\n : \"\",\n postalcode: \"\",\n category: \"tillaeg\",\n valid_from: null,\n refId: null,\n zoneType: \"\",\n consultationresponse_attachment: null,\n content: null,\n httpStatus: null,\n status: null,\n planVersionZoneName: null\n };\n this.selectZoneActive = false;\n this.selectVersionZoneActive = false;\n this.showDrawGuide = false;\n this.selectPlanAsAnswerNotZone= false;\n this.acceptCondition = false;\n this.isAttachmentInvalid = false;\n this.isAttachmentTooBig = false;\n this.isAttachmentFilenameTooBig = false;\n this.isAttachmentUnsafe = false;\n this.isOtherErrorWhenSubmitting = false;\n this.file = null;\n this.isSubmitted = false;\n this.selectedTypeValue = 'Privatperson';\n this.selectedZoneLayer = [];\n this.selectedZone = [];\n this.selectAnswerZoneChange()\n } */\n}\n","export default \".history-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n}\\n\\n.datepicker {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-align: center;\\n align-items: center;\\n}\\n\\n.datepicker-btn {\\n padding: 0.5rem;\\n}\\n\\n.tidslinjeMargin {\\n margin-top: 5%;\\n}\\n\\n/* .ngb-carousel-margin {\\n margin: 0px !important;\\n} */\\n\\n.prevIndxChecker {\\n align-self: center;\\n padding-left: 25px;\\n padding-right: 0px;\\n}\\n\\n.timeChecker {\\n padding-left: 0px;\\n padding-right: 0px;\\n}\\n\\nnextIndxChecker {\\n align-self: center !important;\\n padding-left: 0px !important;\\n}\\n\\n.hist-facts-container {\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n margin: 2em 0;\\n}\\n\\n.hist-facts-container .hist-fact-titles {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n}\\n\\n.hist-facts-container .hist-fact-titles-item {\\n font-weight: bold;\\n margin-bottom: 0.4em;\\n margin-right: 10px;\\n}\\n\\n.hist-facts-container .hist-fact-texts {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n /* margin-bottom: 1em; */\\n}\\n\\n.hist-facts-container .hist-fact-texts-item {\\n color: #233c65;\\n margin-bottom: 0.4em;\\n}\\n\\n.prevMargin {\\n align-self: center;\\n padding-left: 25px;\\n padding-right: 0px;\\n}\\n\\n.midMargin {\\n padding-left: 0px;\\n padding-right: 0px;\\n}\\n\\n.nextMargin {\\n align-self: center;\\n padding-left: 0px;\\n}\\n\\n.steps {\\n width: 100%;\\n font-size: 10px;\\n list-style: none;\\n padding: 0;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: reverse;\\n flex-direction: row-reverse;\\n}\\n\\n.steps li {\\n -webkit-box-flex: 1;\\n flex: 1;\\n position: relative;\\n padding-bottom: 12px;\\n color: #233c65;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n\\n.steps li .dot {\\n position: absolute;\\n bottom: 1px;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n border: 2px solid currentColor;\\n background-color: currentColor;\\n z-index: 1;\\n}\\n\\n.steps li .line {\\n position: absolute;\\n height: 8px;\\n width: 1px;\\n left: 50%;\\n top: 2px;\\n background-color: currentColor;\\n}\\n\\n.steps li .steps li:nth-child(odd) .line {\\n top: -16px !important;\\n}\\n\\n.steps li .title {\\n text-align: center;\\n}\\n\\n.steps li:before, .steps li:after {\\n content: \\\"\\\";\\n position: absolute;\\n box-sizing: border-box;\\n height: 2px;\\n background-color: #233c65;\\n bottom: 5px;\\n}\\n\\n.steps li:before {\\n left: 0;\\n right: calc(50%);\\n}\\n\\n.steps li:after {\\n right: 0;\\n left: calc(50%);\\n}\\n\\n.steps li.active .title {\\n font-weight: bold;\\n}\\n\\n.steps li.active .dot {\\n border: 2px solid #233c65;\\n background-color: white;\\n width: 15px;\\n height: 15px;\\n bottom: -1px;\\n -webkit-transform: translateX(-45%);\\n transform: translateX(-45%);\\n}\\n\\n.steps li.clickable {\\n cursor: pointer;\\n}\\n\\n.steps li.disabled {\\n color: lightgrey;\\n}\\n\\n.steps li.disabled:before, .steps li.disabled:after {\\n background-color: lightgrey;\\n}\\n\\n.steps li.max:after {\\n background-color: lightgrey;\\n}\\n\\n.side-table td,\\n.side-table th {\\n border: none;\\n padding: 0.2rem;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .history-container {\\n width: calc(100vw - 2.5em);\\n }\\n}\\n\\n/* @media only screen and (max-width: 930px){\\n\\n .side-table{\\n margin-left: -5px;\\n\\n }\\n}\\n\\n@media only screen and (max-width: 910px){\\n .side-table{\\n display: none;\\n }\\n} */\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL1VJL3B1YmxpYy11aS9zcmMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ0RGOztBREdBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0VBQ0EseUJBQUE7VUFBQSxtQkFBQTtBQ0FGOztBRENFO0VBQ0UsZUFBQTtBQ0NKOztBREVBO0VBQ0EsY0FBQTtBQ0NBOztBRENBOztHQUFBOztBQUlBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSw2QkFBQTtFQUNBLDRCQUFBO0FDQ0Y7O0FERUE7RUFDRSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsYUFBQTtBQ0NGOztBREFFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtVQUFBLHNCQUFBO0FDRUo7O0FEREk7RUFDRSxpQkFBQTtFQUNDLG9CQUFBO0VBQ0Qsa0JBQUE7QUNHTjs7QURBRTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDRCQUFBO0VBQUEsNkJBQUE7VUFBQSxzQkFBQTtFQUNBLHdCQUFBO0FDRUo7O0FEREk7RUFDRSxjRXhEVTtFRnlEVixvQkFBQTtBQ0dOOztBREVBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDhCQUFBO0VBQUEsOEJBQUE7VUFBQSwyQkFBQTtBQ0NGOztBRENFO0VBQ0UsbUJBQUE7VUFBQSxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLGNFMUZZO0VGMkZaLG1CQUFBO0VBQ0EsZUFBQTtBQ0NKOztBRENJO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLG1DQUFBO1VBQUEsMkJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsOEJBQUE7RUFDQSw4QkFBQTtFQUNBLFVBQUE7QUNDTjs7QURFSTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLDhCQUFBO0FDQU47O0FER0k7RUFDRSxxQkFBQTtBQ0ROOztBRElJO0VBQ0Usa0JBQUE7QUNGTjs7QURLSTtFQUVFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLHlCRWxJVTtFRm1JVixXQUFBO0FDSk47O0FET0k7RUFDRSxPQUFBO0VBQ0EsZ0JBQUE7QUNMTjs7QURRSTtFQUNFLFFBQUE7RUFDQSxlQUFBO0FDTk47O0FEVU07RUFDRSxpQkFBQTtBQ1JSOztBRFVNO0VBQ0UseUJBQUE7RUFDQSx1QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLG1DQUFBO1VBQUEsMkJBQUE7QUNSUjs7QURZSTtFQUNFLGVBQUE7QUNWTjs7QURhSTtFQUNFLGdCQUFBO0FDWE47O0FEYU07RUFFRSwyQkFBQTtBQ1pSOztBRGdCSTtFQUNFLDJCQUFBO0FDZE47O0FEbUJBOztFQUVFLFlBQUE7RUFDQSxlQUFBO0FDaEJGOztBRG1CQTtFQUNFO0lBQ0UsMEJBQUE7RUNoQkY7QUFDRjs7QURtQkE7Ozs7Ozs7Ozs7OztHQUFBIiwiZmlsZSI6InNyYy9hcHAvaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uL3ZhcmlhYmxlcy5zY3NzXCI7XG5cbi5oaXN0b3J5LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRhdGVwaWNrZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAmLWJ0biB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICB9XG59XG4udGlkc2xpbmplTWFyZ2lue1xubWFyZ2luLXRvcDogNSU7XG59XG4vKiAubmdiLWNhcm91c2VsLW1hcmdpbiB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59ICovXG5cbi5wcmV2SW5keENoZWNrZXJ7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG5cbi50aW1lQ2hlY2tlcntcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cblxubmV4dEluZHhDaGVja2Vye1xuICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLmhpc3QtZmFjdHMtY29udGFpbmVyIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDJlbSAwO1xuICAuaGlzdC1mYWN0LXRpdGxlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICYtaXRlbSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICBtYXJnaW4tYm90dG9tOiAwLjRlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG4gIH1cbiAgLmhpc3QtZmFjdC10ZXh0cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIG1hcmdpbi1ib3R0b206IDFlbTsgKi9cbiAgICAmLWl0ZW0ge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC40ZW07XG4gICAgfVxuICB9XG59XG5cbi5wcmV2TWFyZ2lue1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubWlkTWFyZ2lue1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubmV4dE1hcmdpbntcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cblxuLnN0ZXBzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gIGxpIHtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuZG90IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAubGluZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAuc3RlcHMgbGk6bnRoLWNoaWxkKG9kZCkgLmxpbmUge1xuICAgICAgdG9wOiAtMTZweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGNhbGMoNTAlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogY2FsYyg1MCUpO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgLmRvdCB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jbGlja2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgY29sb3I6IGxpZ2h0Z3JleTtcblxuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF4OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcbiAgICB9XG4gIH1cbn1cblxuLnNpZGUtdGFibGUgdGQsXG4uc2lkZS10YWJsZSB0aCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMC4ycmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oaXN0b3J5LWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyLjVlbSk7XG4gIH1cbn1cblxuLyogQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MzBweCl7XG5cbiAgLnNpZGUtdGFibGV7XG4gICBtYXJnaW4tbGVmdDogLTVweDtcblxuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTEwcHgpe1xuIC5zaWRlLXRhYmxle1xuICAgZGlzcGxheTogbm9uZTtcbiAgfVxufSAqL1xuIiwiLmhpc3RvcnktY29udGFpbmVyIHtcbiAgcGFkZGluZzogM2VtIDRlbSAzZW0gMi41ZW07XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kYXRlcGlja2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5kYXRlcGlja2VyLWJ0biB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cblxuLnRpZHNsaW5qZU1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDUlO1xufVxuXG4vKiAubmdiLWNhcm91c2VsLW1hcmdpbiB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59ICovXG4ucHJldkluZHhDaGVja2VyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cblxuLnRpbWVDaGVja2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cblxubmV4dEluZHhDaGVja2VyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5oaXN0LWZhY3RzLWNvbnRhaW5lciB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAyZW0gMDtcbn1cbi5oaXN0LWZhY3RzLWNvbnRhaW5lciAuaGlzdC1mYWN0LXRpdGxlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uaGlzdC1mYWN0cy1jb250YWluZXIgLmhpc3QtZmFjdC10aXRsZXMtaXRlbSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAwLjRlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmhpc3QtZmFjdHMtY29udGFpbmVyIC5oaXN0LWZhY3QtdGV4dHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBtYXJnaW4tYm90dG9tOiAxZW07ICovXG59XG4uaGlzdC1mYWN0cy1jb250YWluZXIgLmhpc3QtZmFjdC10ZXh0cy1pdGVtIHtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIG1hcmdpbi1ib3R0b206IDAuNGVtO1xufVxuXG4ucHJldk1hcmdpbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG5cbi5taWRNYXJnaW4ge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubmV4dE1hcmdpbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG59XG5cbi5zdGVwcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbi5zdGVwcyBsaSB7XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIGNvbG9yOiAjMjMzYzY1O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3RlcHMgbGkgLmRvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgei1pbmRleDogMTtcbn1cbi5zdGVwcyBsaSAubGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4cHg7XG4gIHdpZHRoOiAxcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGVwcyBsaSAuc3RlcHMgbGk6bnRoLWNoaWxkKG9kZCkgLmxpbmUge1xuICB0b3A6IC0xNnB4ICFpbXBvcnRhbnQ7XG59XG4uc3RlcHMgbGkgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN0ZXBzIGxpOmJlZm9yZSwgLnN0ZXBzIGxpOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzM2M2NTtcbiAgYm90dG9tOiA1cHg7XG59XG4uc3RlcHMgbGk6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGNhbGMoNTAlKTtcbn1cbi5zdGVwcyBsaTphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBjYWxjKDUwJSk7XG59XG4uc3RlcHMgbGkuYWN0aXZlIC50aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnN0ZXBzIGxpLmFjdGl2ZSAuZG90IHtcbiAgYm9yZGVyOiAycHggc29saWQgIzIzM2M2NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvdHRvbTogLTFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NSUpO1xufVxuLnN0ZXBzIGxpLmNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zdGVwcyBsaS5kaXNhYmxlZCB7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG4uc3RlcHMgbGkuZGlzYWJsZWQ6YmVmb3JlLCAuc3RlcHMgbGkuZGlzYWJsZWQ6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XG59XG4uc3RlcHMgbGkubWF4OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xufVxuXG4uc2lkZS10YWJsZSB0ZCxcbi5zaWRlLXRhYmxlIHRoIHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhpc3RvcnktY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIDIuNWVtKTtcbiAgfVxufVxuLyogQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MzBweCl7XG5cbiAgLnNpZGUtdGFibGV7XG4gICBtYXJnaW4tbGVmdDogLTVweDtcblxuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTEwcHgpe1xuIC5zaWRlLXRhYmxle1xuICAgZGlzcGxheTogbm9uZTtcbiAgfVxufSAqLyIsIi8vIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMyMzNjNjU7XG4kb3JhbmdlOiAjZmY4NTAwO1xuJHJlZDogI2NjNjY3NztcbiRncmVlbjogIzQ0YWI5OTtcbiRsaWdodC1ibHVlOiAjMzlhOGUwO1xuJHllbGxvdzogI2ZhYjMwYztcbiRwdXJwbGU6ICNhYTQ0OTk7XG4kcHVycGxlLWZpbGw6IHJnYmEoJHB1cnBsZSwgMC41KTtcblxuJHByaW1hcnktdGV4dDogIzMzMzMzMztcbiRoZWxwLXRleHQ6ICM2NjY2NjY7XG4kZGlzYmFsZWQtbGluay10ZXh0OiAjOTk5OTk5O1xuXG4kcHJpbWFyeS1ncmV5LWJnOiAjZjZmNmY2O1xuXG4vLyBCb3JkZXJzXG4kcHJpbWFyeS1ncmV5LWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4kb3JhbmdlLWJvcmRlcjogMnB4IHNvbGlkICRvcmFuZ2U7XG4kcmVkLWJvcmRlcjogMnB4IGRhc2hlZCAkcmVkO1xuJHB1cnBsZS1ib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlO1xuIl19 */\"","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewChecked,\n} from \"@angular/core\";\nimport {\n NgbDate,\n NgbCarousel,\n NgbDatepickerI18n,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { Subscription } from \"rxjs\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { ContentService } from \"../services/content.service\";\nimport { RoutingService } from \"../services/routing.service\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataTimeLineInfo } from \"../models/plandatatimelineinfo\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { DateService } from \"../services/date.service\";\nimport { I18n, CustomDatepickerI18n } from \"./i18Date.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport moment from \"moment/moment\";\n\n@Component({\n selector: \"app-history\",\n templateUrl: \"./history.component.html\",\n styleUrls: [\"./history.component.scss\"],\n providers: [\n I18n,\n { provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n },\n ],\n})\nexport class HistoryComponent implements OnInit, AfterViewChecked, OnDestroy {\n timeLine: any;\n selected_date: NgbDate = new NgbDate(1789, 7, 14);\n historyPrefix = \"/plan/history\";\n contentString: any;\n firstSlideValue: string;\n lastSlideValue: string;\n endValue: string;\n startValue: string;\n _chosenDate = -1;\n private subscriptions: Subscription[] = new Array();\n private _mapIndex = new Array();\n plandataTimeLineInfo: PlandataTimeLineInfo = new PlandataTimeLineInfo();\n //for history line time slider\n nextIndx: number = 0;\n prevIndx: number = 8;\n currentLang: string = null;\n\n @ViewChild(\"mycarousel\", { static: true }) carousel: NgbCarousel;\n constructor(\n private planService: PlandataService,\n private languageService: LanguageService,\n private mapService: MapService,\n private cdr: ChangeDetectorRef,\n private contentService: ContentService,\n private route: ActivatedRoute,\n private routingService: RoutingService,\n public dateService: DateService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnInit() {\n let me = this;\n if (!this.mapService.isMapLoaded()) {\n this.mapService.onMapReady().subscribe((status) => {\n me.mapService.deactivateDrawingTool(true);\n me.mapService.selectEnabled = true;\n me.setupHistList();\n });\n } else {\n me.mapService.deactivateDrawingTool(true);\n me.mapService.selectEnabled = true;\n this.setupHistList();\n }\n }\n\n private setupHistList() {\n\n this.timeLine = this.planService.getTimeline().reverse();\n\n this._mapIndex = new Array();\n for (let i = 0; i < this.timeLine.length; i++) {\n this._mapIndex.push(i);\n }\n this._mapIndex = this._mapIndex.reverse();\n\n this.startValue = \"0\";\n const first = Math.ceil(this.timeLine.length / 8);\n const second = first - 1;\n const third = second * 8;\n this.endValue = third.toString();\n\n let current = this.dateService.currentDate();\n this.selected_date = new NgbDate(\n current.year(),\n current.month() + 1,\n current.date()\n );\n\n this.subscriptions.push(\n this.route.params.subscribe((params) => {\n if (params[\"id\"] > -1) {\n let timeIndex = Number(params[\"id\"]);\n let index = this.findIndex(timeIndex);\n if (this._chosenDate != index) {\n this.loadPlanversionData(index);\n this.plandataTimeLineInfo = this.planService.getPlandataTimeLineInfo(\n timeIndex\n );\n }\n } else {\n this.changePath(\n this.findIndex(this.planService.currentTimeLineIndex)\n );\n }\n })\n );\n }\n\n select(selectedDate: any) {\n let newDate = new Date(\n selectedDate.year,\n selectedDate.month - 1,\n selectedDate.day\n );\n let timeLineIndex = this.getTimeIndex(newDate);\n this.changePath(timeLineIndex);\n }\n\n getText(prefix: string, shortName: string) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n private getTimeIndex(newDate: Date) {\n let tempTime = this.timeLine.slice().reverse();\n for (let n = 0; n < tempTime.length; n++) {\n if (\n new Date(new Date(tempTime[n].start).setUTCHours(0, 0, 0, 0)) <= newDate\n ) {\n if (tempTime.length == 1) {\n return n;\n }\n let nextIndex = n + 1;\n if (nextIndex < tempTime.length) {\n if (\n new Date(\n new Date(tempTime[nextIndex].start).setUTCHours(0, 0, 0, 0)\n ) >= newDate\n ) {\n return n;\n }\n if (n == tempTime.length - 1) {\n return n;\n }\n }\n }\n }\n return tempTime.length - 1;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n showDate(index: number) {\n let timeLineIndex = this.findIndex(index);\n this.changePath(timeLineIndex);\n }\n\n private showPlanversionData(timeLineIndex: number) {\n // planversion title\n // planversion type\n // høring\n // ikraft trådt\n }\n\n private loadPlanversionData(sliderindex: number) {\n this._chosenDate = sliderindex;\n let index = this.findIndex(sliderindex);\n this.mapService.setMapLoaded(false);\n this.planService.setPlanVersionFromHistorik(index);\n }\n\n private findIndex(index: number) {\n return this._mapIndex[index];\n }\n\n private changePath(timeIndex: number) {\n let urlPath = this.route.parent.routeConfig.path + \"/hist/\" + timeIndex;\n this.routingService.changeRoutePath(urlPath);\n }\n //slider\n public prevItem() {\n this.prevIndx = this.prevIndx + 1;\n this.nextIndx = this.nextIndx + 1;\n }\n\n public nextItem() {\n this.prevIndx = this.prevIndx - 1;\n this.nextIndx = this.nextIndx - 1;\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport { NgbDateStruct,NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\n\nconst I18N_VALUES = {\n 'da': {\n weekdays: ['man', 'tir', 'ons', 'tor', 'fre', 'lør', 'søn'],\n months: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n }\n};\n\n@Injectable()\nexport class I18n {\n language = 'da';\n}\n\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n","export default \".info-container, .order-container, .search-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n}\\n\\n.getting-started {\\n padding-left: 0.5em;\\n}\\n\\n.getting-started-step {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 0.75em;\\n}\\n\\n.getting-started-step .step-img {\\n width: 2em;\\n max-width: 24px;\\n max-height: 24px;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n margin-right: 4px;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .info-container {\\n width: calc(100vw - 2.5em);\\n }\\n}\\n\\n.goto-consultation-list-link {\\n text-decoration: none !important;\\n color: #007bff !important;\\n cursor: pointer;\\n}\\n\\n.goto-consultation-list-link :hover {\\n color: #0056b3;\\n text-decoration: underline;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvaW5mby9pbmZvLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9pbmZvL2luZm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ0RGOztBRElBO0VBQ0UsbUJBQUE7QUNERjs7QURFRTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDhCQUFBO0VBQUEsNkJBQUE7VUFBQSxtQkFBQTtFQUNBLHFCQUFBO0FDQUo7O0FEQ0k7RUFDRSxVQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0Esd0JBQUE7VUFBQSx1QkFBQTtFQUNBLGlCQUFBO0FDQ047O0FESUE7RUFFRTtJQUNFLDBCQUFBO0VDRkY7QUFDRjs7QURNQTtFQUNFLGdDQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBO0FDSkY7O0FETUU7RUFDRSxjQUFBO0VBQ0EsMEJBQUE7QUNKSiIsImZpbGUiOiJzcmMvYXBwL2luZm8vaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi8uLi92YXJpYWJsZXMuc2Nzc1wiO1xuXG4uaW5mby1jb250YWluZXIsIC5vcmRlci1jb250YWluZXIsIC5zZWFyY2gtY29udGFpbmVyIHtcbiAgcGFkZGluZzogM2VtIDRlbSAzZW0gMi41ZW07XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5nZXR0aW5nLXN0YXJ0ZWQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAmLXN0ZXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XG4gICAgLnN0ZXAtaW1nIHtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgICBtYXgtd2lkdGg6IDI0cHg7XG4gICAgICBtYXgtaGVpZ2h0OiAyNHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpe1xuXG4gIC5pbmZvLWNvbnRhaW5lcntcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIDIuNWVtKTtcbiAgfVxuXG59XG5cbi5nb3RvLWNvbnN1bHRhdGlvbi1saXN0LWxpbmt7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwNTZiMztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuIiwiLmluZm8tY29udGFpbmVyLCAub3JkZXItY29udGFpbmVyLCAuc2VhcmNoLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZ2V0dGluZy1zdGFydGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbn1cbi5nZXR0aW5nLXN0YXJ0ZWQtc3RlcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbn1cbi5nZXR0aW5nLXN0YXJ0ZWQtc3RlcCAuc3RlcC1pbWcge1xuICB3aWR0aDogMmVtO1xuICBtYXgtd2lkdGg6IDI0cHg7XG4gIG1heC1oZWlnaHQ6IDI0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5mby1jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMi41ZW0pO1xuICB9XG59XG4uZ290by1jb25zdWx0YXRpb24tbGlzdC1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA3YmZmICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5nb3RvLWNvbnN1bHRhdGlvbi1saXN0LWxpbmsgOmhvdmVyIHtcbiAgY29sb3I6ICMwMDU2YjM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufSJdfQ== */\"","import {\n Component, EventEmitter,\n OnInit, Output,\n} from \"@angular/core\";\nimport { ContentService } from \"../services/content.service\";\nimport { MapService } from \"../services/map.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { PlandataService } from \"../services/plandata.service\";\n\n@Component({\n selector: \"app-info\",\n templateUrl: \"./info.component.html\",\n styleUrls: [\"./info.component.scss\"],\n})\nexport class InfoComponent implements OnInit {\n\n @Output() notifyPageChange: EventEmitter = new EventEmitter();\n\n infoPrefix = \"/plan/info\";\n tabsPrefix = \"/plan/tabs\";\n contentString: any;\n infoContent: any;\n tabsContent: any;\n currentLang: string = null;\n planversionId:string;\n\n innerWidth: any;\n\n showGoToAnsweringButton: boolean = false;\n\n constructor(\n private contentService: ContentService,\n private languageService: LanguageService,\n private mapService: MapService,\n private router: Router,\n private route: ActivatedRoute,\n private planService: PlandataService\n\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {\n this.innerWidth = window.innerWidth;\n\n let me = this;\n if (!this.mapService.isMapLoaded()) {\n this.mapService.onMapReady().subscribe((status) => {\n me.mapService.deactivateDrawingTool(true);\n me.mapService.selectEnabled = true;\n\n const allActiveConsultations = this.planService.getConsultations(false);\n this.showGoToAnsweringButton = allActiveConsultations && allActiveConsultations.length > 0;\n if (this.showGoToAnsweringButton) {\n this.planversionId = allActiveConsultations[0].planversionId;\n }\n });\n } else {\n me.mapService.deactivateDrawingTool(true);\n me.mapService.selectEnabled = true;\n }\n\n this.planService.currentSeaPlandata$.subscribe(value => {\n if(value && value.consultationVersions[0] && value.consultationVersions[0].planversionId){\n this.planversionId = value.consultationVersions[0].planversionId;\n }\n });\n\n this.route.params.subscribe((params) => {\n if (!this.mapService.isMapLoaded()) {\n return;\n }\n const allActiveConsultations = this.planService.getConsultations(false);\n this.showGoToAnsweringButton = allActiveConsultations && allActiveConsultations.length > 0;\n if (this.showGoToAnsweringButton) {\n this.planversionId = allActiveConsultations[0].planversionId;\n }\n });\n\n }\n\n getText(prefix, shortName) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getHTML(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(prefix, shortName);\n }\n\n // changePage(subpath: string) {\n // let path = this.route.parent.routeConfig.path + \"/\" + subpath;\n // console.log(\"path 1::\",this.route.parent.routeConfig.path);//da/page\n //\n // console.log(\"path 2::\",path);//da/page/consultation/answer/undefined\n // this.router.navigate([path]);\n // }\n\n changePage(page: string) {\n let newPage = this.setActiveTab(page);\n let parentpath = this.route.parent.routeConfig.path; //this.route.routeConfig.path;\n if(newPage == \"zone\") {\n let zoneFeatures = this.mapService.getSelectedFeature();\n let coordinates = this.mapService.clickedCoordinates;\n let timeLineIdx = this.planService.currentTimeLineIndex;\n if(zoneFeatures.length == 1) {\n let zone = zoneFeatures[0];\n if(coordinates && coordinates.length > 1) {\n newPage = newPage+\"/s/\"+zone.planInfo.planversionId+\"/\"+coordinates[0] +\"/\"+coordinates[1]+\"/\"+zone.layerName+\"/\"+zone.refId+\"?timeLineIdx=\"+timeLineIdx;\n }else {\n newPage = newPage+\"/s/\"+zone.planInfo.planversionId+\"/\"+zone.layerName+\"/\"+zone.refId+\"?timeLineIdx=\"+timeLineIdx;\n }\n\n }else if (zoneFeatures.length > 1) {\n if(coordinates && coordinates.length > 1) {\n newPage = newPage+\"/m/\"+coordinates[0] +\"/\"+coordinates[1]+\"?timeLineIdx=\"+timeLineIdx;\n }\n }\n }\n\n if(newPage == \"consultation\") {\n if(this.planService.isHistoryMap()) {\n newPage +=\"/hist\";\n }\n\n }\n\n let path = parentpath+\"/\" + newPage;\n this.router.navigateByUrl(path);\n }\n\n setActiveTab(pageUrlParts: string) : string {\n let page: string = this.getPageName(pageUrlParts);\n switch (page) {\n case \"hist\":\n page += \"/\" + this.planService.currentTimeLineIndex;\n break;\n }\n\n if (this.innerWidth <= 767) {\n this.notifyPageChange.emit(page);\n }\n\n return page;\n }\n\n getPageName(pageUrlParts){\n let page: string = \"\";\n if(pageUrlParts.indexOf(\",\")){\n let parts = pageUrlParts.split(\",\");\n if(parts.length > 0) {\n page = parts[0];\n }\n }else {\n page = pageUrlParts;\n }\n return page;\n }\n}\n","export default \".dropdown-menu {\\n min-width: 5rem !important;\\n}\\n\\n.dropdown-item {\\n padding: 0.25rem 1.3rem !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvbGFuZ3VhZ2UvbGFuZ3VhZ2UuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2xhbmd1YWdlL2xhbmd1YWdlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksMEJBQUE7QUNDSjs7QURFQTtFQUNJLGtDQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9sYW5ndWFnZS9sYW5ndWFnZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kcm9wZG93bi1tZW51e1xuICAgIG1pbi13aWR0aDogNXJlbSAhaW1wb3J0YW50O1xufVxuXG4uZHJvcGRvd24taXRlbXtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDEuM3JlbSAhaW1wb3J0YW50O1xufSIsIi5kcm9wZG93bi1tZW51IHtcbiAgbWluLXdpZHRoOiA1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5kcm9wZG93bi1pdGVtIHtcbiAgcGFkZGluZzogMC4yNXJlbSAxLjNyZW0gIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { LanguageService } from \"./../services/language.service\";\nimport { PreviewService } from \"./../services/preview.service\";\n\nexport interface Food {\n value: string;\n viewValue: string;\n img: string;\n}\n\n@Component({\n selector: \"app-language\",\n templateUrl: \"./language.component.html\",\n styleUrls: [\"./language.component.scss\"],\n})\nexport class LanguageComponent implements OnInit {\n languages: any = [\n { name: \"DAN\", icon: \"dk\" },\n { name: \"ENG\", icon: \"gb\" },\n ];\n selectedLanguage: any = null;\n\n constructor(\n private router: Router,\n private languageService: LanguageService,\n private previewService: PreviewService\n ) {\n let selectedLang = this.languageService.getLanguage();\n if (!selectedLang) {\n this.languageService.prepareLanguage();\n } else {\n if (selectedLang == \"da\") {\n this.selectedLanguage = { name: \"DAN\", icon: \"dk\" };\n } else if (selectedLang == \"en\") {\n this.selectedLanguage = { name: \"ENG\", icon: \"gb\" };\n }\n }\n }\n\n ngOnInit() {\n }\n\n langChange(language: any) {\n if (language && language.name) {\n if (language.name == \"DAN\") {\n this.selectedLanguage = language;\n this.loadPath(\"da\");\n } else if (language.name == \"ENG\") {\n this.selectedLanguage = language;\n this.loadPath(\"en\");\n }\n }\n }\n\n loadPath(to) {\n let previewParam = this.previewService.getQuerystringParamName();\n let previewParamValue = this.previewService.getQuerystringParamValue();\n this.router.navigate([\"/\" + to], { queryParams: { isLoaded: false,[previewParam]: previewParamValue } });\n this.previewService.getContentPreviewID\n this.languageService.setLanguage(to);\n setTimeout(() => {\n window.location.reload();\n }, 500);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from \"@angular/router\";\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\n\nimport { LanguageComponent } from './language.component';\n\n@NgModule({\n declarations: [\n LanguageComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n RouterModule,\n NgbModule\n ],\n exports:[LanguageComponent]\n})\nexport class LanguageModule {}","export default \".legend {\\n position: absolute;\\n top: 1rem;\\n right: 1rem;\\n z-index: 2;\\n background: white;\\n padding: 0.5rem;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n font-size: 12px;\\n}\\n.legend .legend-header {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n color: #233c65;\\n font-weight: bold;\\n}\\n.legend .legend-header .info-icon {\\n padding: 0 1px;\\n}\\n.legend .legend-header .arrow {\\n cursor: pointer;\\n}\\n.legend .legend-body .info-text {\\n color: #666666;\\n}\\n.legend .legend-body .layer-container-header {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-align: center;\\n align-items: center;\\n}\\n.legend .legend-body .layer-container-header .type-icon {\\n padding-right: 3px;\\n}\\n.legend .legend-body .layer-container-body {\\n font-size: 10px;\\n padding-left: 1rem;\\n}\\n.legend .legend-body .layer-container-body .layer {\\n cursor: pointer;\\n margin-bottom: 0.2rem;\\n}\\n.legend .legend-body .layer-container-body .layer.active {\\n /*font-weight: bold;*/\\n text-shadow: 1px 0px 0px black;\\n}\\n.legend .legend-body .depths-button {\\n cursor: pointer;\\n}\\n.legend .layer-pointer {\\n cursor: pointer;\\n margin-bottom: 0.2rem;\\n}\\n.legend .layer-pointer.active {\\n /*font-weight: bold;*/\\n text-shadow: 1px 0px 0px black;\\n}\\n.legend #layer-box {\\n display: inherit;\\n}\\n.reset-zones {\\n /* cursor: pointer; */\\n font-weight: normal;\\n color: \\\"#233c65\\\";\\n margin: 4px !important;\\n}\\n.reset-zones-active {\\n cursor: pointer;\\n color: \\\"#666\\\";\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvbGF5ZXItc3dpdGNoZXIvbGF5ZXItc3dpdGNoZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2xheWVyLXN3aXRjaGVyL2xheWVyLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9VSS9wdWJsaWMtdWkvc3JjL3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw0QkFBQTtFQUFBLDZCQUFBO1VBQUEsc0JBQUE7RUFDQSwrQkFBQTtFQUNBLGVBQUE7QUNBRjtBRENFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsOEJBQUE7RUFBQSw2QkFBQTtVQUFBLG1CQUFBO0VBQ0EseUJBQUE7VUFBQSw4QkFBQTtFQUNBLGNFZlk7RUZnQlosaUJBQUE7QUNDSjtBREFJO0VBQ0UsY0FBQTtBQ0VOO0FEQUk7RUFDRSxlQUFBO0FDRU47QURFSTtFQUNFLGNFaEJNO0FEZ0JaO0FESUk7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLG1CQUFBO0FDRk47QURHTTtFQUNFLGtCQUFBO0FDRFI7QURLSTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtBQ0hOO0FESU07RUFDRSxlQUFBO0VBQ0EscUJBQUE7QUNGUjtBREdRO0VBQ0UscUJBQUE7RUFDQSw4QkFBQTtBQ0RWO0FES0k7RUFDRSxlQUFBO0FDSE47QURNRTtFQUNFLGVBQUE7RUFDQSxxQkFBQTtBQ0pKO0FES0k7RUFDRSxxQkFBQTtFQUNBLDhCQUFBO0FDSE47QURNRTtFQUNFLGdCQUFBO0FDSko7QURRQTtFQUNFLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0FDTEY7QURPQTtFQUNFLGVBQUE7RUFDQSxhQUFBO0FDSkYiLCJmaWxlIjoic3JjL2FwcC9sYXllci1zd2l0Y2hlci9sYXllci1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi8uLi92YXJpYWJsZXMuc2Nzc1wiO1xuLmxlZ2VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICByaWdodDogMXJlbTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICAubGVnZW5kLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLmluZm8taWNvbiB7XG4gICAgICBwYWRkaW5nOiAwIDFweDtcbiAgICB9XG4gICAgLmFycm93IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbiAgLmxlZ2VuZC1ib2R5IHtcbiAgICAuaW5mby10ZXh0IHtcbiAgICAgIGNvbG9yOiAkaGVscC10ZXh0O1xuICAgIH1cblxuXG4gICAgLmxheWVyLWNvbnRhaW5lci1oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgLnR5cGUtaWNvbiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubGF5ZXItY29udGFpbmVyLWJvZHkge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjByZW07XG4gICAgICAubGF5ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIC8qZm9udC13ZWlnaHQ6IGJvbGQ7Ki9cbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDBweCAwcHggYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmRlcHRocy1idXR0b24ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuICAubGF5ZXItcG9pbnRlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAvKmZvbnQtd2VpZ2h0OiBib2xkOyovXG4gICAgICB0ZXh0LXNoYWRvdzogMXB4IDBweCAwcHggYmxhY2s7XG4gICAgfVxuICB9XG4gICNsYXllci1ib3h7XG4gICAgZGlzcGxheTppbmhlcml0XG4gIH1cbn1cblxuLnJlc2V0LXpvbmVzIHtcbiAgLyogY3Vyc29yOiBwb2ludGVyOyAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJyMyMzNjNjUnO1xuICBtYXJnaW46IDRweCAhaW1wb3J0YW50O1xufVxuLnJlc2V0LXpvbmVzLWFjdGl2ZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICcjNjY2Jztcbn1cblxuIiwiLmxlZ2VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICByaWdodDogMXJlbTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmxlZ2VuZCAubGVnZW5kLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmxlZ2VuZCAubGVnZW5kLWhlYWRlciAuaW5mby1pY29uIHtcbiAgcGFkZGluZzogMCAxcHg7XG59XG4ubGVnZW5kIC5sZWdlbmQtaGVhZGVyIC5hcnJvdyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5sZWdlbmQgLmxlZ2VuZC1ib2R5IC5pbmZvLXRleHQge1xuICBjb2xvcjogIzY2NjY2Njtcbn1cbi5sZWdlbmQgLmxlZ2VuZC1ib2R5IC5sYXllci1jb250YWluZXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5sZWdlbmQgLmxlZ2VuZC1ib2R5IC5sYXllci1jb250YWluZXItaGVhZGVyIC50eXBlLWljb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG59XG4ubGVnZW5kIC5sZWdlbmQtYm9keSAubGF5ZXItY29udGFpbmVyLWJvZHkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi5sZWdlbmQgLmxlZ2VuZC1ib2R5IC5sYXllci1jb250YWluZXItYm9keSAubGF5ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbn1cbi5sZWdlbmQgLmxlZ2VuZC1ib2R5IC5sYXllci1jb250YWluZXItYm9keSAubGF5ZXIuYWN0aXZlIHtcbiAgLypmb250LXdlaWdodDogYm9sZDsqL1xuICB0ZXh0LXNoYWRvdzogMXB4IDBweCAwcHggYmxhY2s7XG59XG4ubGVnZW5kIC5sZWdlbmQtYm9keSAuZGVwdGhzLWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5sZWdlbmQgLmxheWVyLXBvaW50ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbn1cbi5sZWdlbmQgLmxheWVyLXBvaW50ZXIuYWN0aXZlIHtcbiAgLypmb250LXdlaWdodDogYm9sZDsqL1xuICB0ZXh0LXNoYWRvdzogMXB4IDBweCAwcHggYmxhY2s7XG59XG4ubGVnZW5kICNsYXllci1ib3gge1xuICBkaXNwbGF5OiBpbmhlcml0O1xufVxuXG4ucmVzZXQtem9uZXMge1xuICAvKiBjdXJzb3I6IHBvaW50ZXI7ICovXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBcIiMyMzNjNjVcIjtcbiAgbWFyZ2luOiA0cHggIWltcG9ydGFudDtcbn1cblxuLnJlc2V0LXpvbmVzLWFjdGl2ZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IFwiIzY2NlwiO1xufSIsIi8vIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMyMzNjNjU7XG4kb3JhbmdlOiAjZmY4NTAwO1xuJHJlZDogI2NjNjY3NztcbiRncmVlbjogIzQ0YWI5OTtcbiRsaWdodC1ibHVlOiAjMzlhOGUwO1xuJHllbGxvdzogI2ZhYjMwYztcbiRwdXJwbGU6ICNhYTQ0OTk7XG4kcHVycGxlLWZpbGw6IHJnYmEoJHB1cnBsZSwgMC41KTtcblxuJHByaW1hcnktdGV4dDogIzMzMzMzMztcbiRoZWxwLXRleHQ6ICM2NjY2NjY7XG4kZGlzYmFsZWQtbGluay10ZXh0OiAjOTk5OTk5O1xuXG4kcHJpbWFyeS1ncmV5LWJnOiAjZjZmNmY2O1xuXG4vLyBCb3JkZXJzXG4kcHJpbWFyeS1ncmV5LWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4kb3JhbmdlLWJvcmRlcjogMnB4IHNvbGlkICRvcmFuZ2U7XG4kcmVkLWJvcmRlcjogMnB4IGRhc2hlZCAkcmVkO1xuJHB1cnBsZS1ib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlO1xuIl19 */\"","import {\n Component,\n OnInit,\n OnDestroy,\n Input,\n HostListener,\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MapService } from \"../services/map.service\";\nimport { ZoneFeature } from \"../plandataDefinition/zoneFeature\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { ContentService } from \"../services/content.service\";\nimport { LanguageService } from \"../services/language.service\";\n\n@Component({\n selector: \"app-layer-switcher\",\n templateUrl: \"./layer-switcher.component.html\",\n styleUrls: [\"./layer-switcher.component.scss\"],\n})\nexport class LayerSwitcherComponent implements OnInit, OnDestroy {\n @Input() _zoneLayers: any[];\n arrayDiffer: any;\n selectedZones: ZoneFeature[];\n status: boolean = false;\n depthLayersIsOpen: boolean = false;\n legendIsOpen: boolean = true;\n zonesIsReset: boolean = false;\n mapContent: any;\n mapPrefix = \"/plan/map\";\n contentString: any;\n innerWidth: number;\n currentLang: string = null;\n isChangeMarkingsEnabled: boolean = false;\n\n private subscriptions: Subscription[] = new Array();\n private _zoneLayersActive: String[] = new Array();\n constructor(\n private mapService: MapService,\n private languageService: LanguageService,\n private planDataService: PlandataService,\n private sanitizer: DomSanitizer,\n private contentService: ContentService,\n private route: ActivatedRoute\n ) {\n this.currentLang = this.languageService.prepareLanguage() || \"de\";\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n private initSetup() {\n this.initLayerSwithcer();\n\n this.subscriptions.push(\n this.route.params.subscribe((params) => {\n if (this.route.snapshot.queryParams) {\n if (this.route.snapshot.queryParams.activeTypes != null) {\n let listTypes = this.route.snapshot.queryParams.activeTypes.split(\n \",\"\n );\n this.setLayersActive(listTypes);\n }\n }\n })\n );\n\n this.innerWidth = window.innerWidth;\n if (this.innerWidth <= 768) {\n this.legendIsOpen = false;\n }\n }\n\n ngOnInit() {\n let me = this;\n if (!this.mapService.isMapLoaded()) {\n this.subscriptions.push(\n this.mapService.onMapReady().subscribe((status) => {\n me.initSetup();\n })\n );\n } else {\n me.initSetup();\n }\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event: any) {\n this.innerWidth = window.innerWidth;\n if (this.innerWidth <= 768) {\n this.legendIsOpen = false;\n } else {\n this.legendIsOpen = true;\n }\n }\n\n initLayerSwithcer() {\n\n this.subscriptions.push(\n this.mapService.changeMarkingsSubject.subscribe((isEnabled) => {\n this.isChangeMarkingsEnabled = isEnabled;\n })\n );\n\n this.subscriptions.push(\n this.planDataService.onLayerConfigEventChanged().subscribe((any) => {\n this.setLayers(any);\n })\n );\n // console.log(\"??GETTING THE LAYER DATA?? \"+JSON.stringify(this.planDataService.currentLayerConfig, null, 3));\n this.setLayers(this.planDataService.currentLayerConfig);\n }\n\n private setLayers(layerConfig: any) {\n\n let showLegendConsultation = this.planDataService.showLegendForConsultation();\n let showLegendPostConsultation = this.planDataService.showLegendForPostConsultation();\n this._zoneLayers = [];\n // console.log(JSON.stringify(layerConfig))\n if (layerConfig && layerConfig.layers) {\n let removeLayerList = [\"Udviklingszone til kommercielle tanganlæg (At)\",\"Development zone for commercial seaweed farms (At)\"]\n for (let i = 0; i < layerConfig.layers.length; i++) {\n //console.log(layerConfig.layers[i])\n if (\n (!showLegendConsultation && layerConfig.layers[i].name == \"consultation\") ||\n (!showLegendPostConsultation && layerConfig.layers[i].name == \"consultationEnd\")\n ) {\n\n continue;\n }\n if(layerConfig.layers[i] && layerConfig.layers[i].subtypes && layerConfig.layers[i].subtypes.length > 0){\n let list = [];\n for(let obj of layerConfig.layers[i].subtypes){\n if(obj.displayName && ((removeLayerList.indexOf(obj.displayName.da) == -1) || (removeLayerList.indexOf(obj.displayName.en) == -1))){\n // console.log(\"Remove\")\n list.push(obj);\n }\n }\n layerConfig.layers[i].subtypes = list;\n }\n this._zoneLayers.push(layerConfig.layers[i]);\n }\n }\n }\n\n getText(prefix: string, shortName: string) {\n this.mapContent = this.contentService.getContentByPrefix(\n this.currentLang + \"/plan/map\"\n );\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n sanitize(url: string) {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n\n private handlingActiveLayerType(layer: any) {\n if (layer.active) {\n if (this._zoneLayersActive.indexOf(layer.type) == -1) {\n this._zoneLayersActive.push(layer.type);\n this.mapService.zoneLayersActive = this._zoneLayersActive;\n }\n } else {\n let index = this._zoneLayersActive.indexOf(layer.type);\n if (index > -1) {\n this._zoneLayersActive.splice(index, 1);\n this.mapService.zoneLayersActive = this._zoneLayersActive;\n }\n }\n }\n\n private setLayersActive(list: String[]) {\n this.zonesIsReset = true;\n for (let n = 0; n < list.length; n++) {\n for (let i = 0; i < this._zoneLayers.length; i++) {\n if (this._zoneLayers[i].type == \"zones\") {\n for (let j = 0; j < this._zoneLayers[i].subtypes.length; j++) {\n if (\n list[n] == \"zones\" ||\n list[n] == this._zoneLayers[i].subtypes[j].type\n ) {\n this._zoneLayers[i].subtypes[j].active = true;\n this.handlingActiveLayerType(this._zoneLayers[i].subtypes[j]);\n this.mapService.highlightZoneType(\n this._zoneLayers[i].subtypes[j].type,\n true\n );\n }\n }\n }\n if (this._zoneLayers[i].type == list[n]) {\n this._zoneLayers[i].active = true;\n this.handlingActiveLayerType(this._zoneLayers[i]);\n this.mapService.highlightZoneType(this._zoneLayers[i].type, true);\n }\n }\n }\n }\n\n toggleLayer(layer: any) {\n layer.active = !layer.active;\n this.handlingActiveLayerType(layer);\n\n for (let i = 0; i < this._zoneLayers.length; i++) {\n if (this._zoneLayers[i].type == \"changesSuggestions\" || this._zoneLayers[i].type == \"changeMarking\") {\n this._zoneLayers[i].active = true;\n this.handlingActiveLayerType(this._zoneLayers[i]);\n this.mapService.highlightZoneType(this._zoneLayers[i].type, true);\n\n for (let j = 0; j < this._zoneLayers[i].subtypes.length; j++) {\n this._zoneLayers[i].subtypes[j].active = true;\n this.handlingActiveLayerType(this._zoneLayers[i].subtypes[j]);\n }\n }\n }\n\n if (layer.type == \"zones\" || layer.type == \"changesSuggestions\" || layer.type == \"changeMarking\") {\n for (let i = 0; i < this._zoneLayers.length; i++) {\n if (this._zoneLayers[i].type == layer.type || this._zoneLayers[i].type == \"changesSuggestions\" || this._zoneLayers[i].type == \"changeMarking\") {\n for (let j = 0; j < this._zoneLayers[i].subtypes.length; j++) {\n this._zoneLayers[i].subtypes[j].active = layer.active;\n this.handlingActiveLayerType(this._zoneLayers[i].subtypes[j]);\n }\n }\n }\n }\n\n this.mapService.highlightZoneType(layer.type, layer.active);\n\n for (var i = 0; i < this._zoneLayers.length; i++) {\n if (this._zoneLayers[i].active) {\n this.zonesIsReset = true;\n return;\n }\n if (this._zoneLayers[i].subtypes) {\n for (var n = 0; n < this._zoneLayers[i].subtypes.length; n++) {\n if (this._zoneLayers[i].subtypes[n].active) {\n this.zonesIsReset = true;\n return;\n }\n }\n }\n }\n this._zoneLayersActive = new Array();\n this.mapService.resetAllHighlightZoneTyoe();\n this.zonesIsReset = false;\n }\n\n resetZones() {\n this.zonesIsReset = false;\n\n if (this._zoneLayers) {\n for (var i = 0; i < this._zoneLayers.length; i++) {\n this._zoneLayers[i].active = false;\n if (this._zoneLayers[i] && this._zoneLayers[i].subtypes) {\n for (var n = 0; n < this._zoneLayers[i].subtypes.length; n++) {\n this._zoneLayers[i].subtypes[n].active = false;\n }\n }\n }\n this._zoneLayers = this._zoneLayers.slice(0);\n }\n\n this._zoneLayersActive = new Array();\n this.mapService.resetAllHighlightZoneTyoe();\n\n this.selectedZones = this.mapService.getSelectedFeature();\n if (this.selectedZones) {\n this.selectedZones.forEach((zone) => {\n this.selectedZoneStyle(\n zone.layerName,\n zone.planInfo.styleType,\n zone.refId\n );\n });\n }\n }\n\n selectedZoneStyle(layerName: string, styleType: string, refId: string) {\n this.mapService.setFeatureStyle(layerName, refId, styleType, \"selected\");\n }\n}\n","import { ContentService } from \"./../../services/content.service\";\nimport { LanguageService } from \"./../../services/language.service\";\nimport Control, { Options } from \"ol/control/Control\";\nimport { Vector as VectorLayer } from \"ol/layer\";\nimport Feature from \"ol/Feature\";\nimport Map from \"ol/Map\";\n\nexport default class DrawingTool extends Control {\n private _mapCompoent: any;\n private _options: any;\n private _hiddenClassName: any;\n element: any;\n private _toolTypes: any;\n private _interActions: any;\n private _editVectorLayer: VectorLayer;\n private _map: Map;\n private _active: boolean;\n private currentLang: string = null;\n private contentService: any;\n content: any;\n mapPrefix = \"/plan/map\";\n\n constructor(\n opt_options,\n contentService: ContentService,\n languageService: LanguageService\n ) {\n super({ element: document.createElement(\"div\") });\n this.currentLang = languageService.prepareLanguage();\n this.contentService = contentService;\n this._options = (opt_options as any) || {};\n this._interActions = this._options.interActions;\n this._editVectorLayer = this._options.editVectorLayer;\n this._mapCompoent = this._options.mapComponent;\n this._hiddenClassName = \"hidden-drawing-control\";\n this.element.className = \"drawing-control hidden-drawing-control\";\n\n this._toolTypes = {};\n const navigationBtn = document.createElement(\"div\");\n navigationBtn.setAttribute(\"title\", this.getText(this.mapPrefix,'map_drawtool_arrow'));\n navigationBtn.className = \"drawing-btn\";\n const navigationI = document.createElement(\"img\");\n navigationI.src = \"assets/cursor.svg\";\n navigationI.alt = \"Naviger\";\n navigationBtn.appendChild(navigationI);\n this.element.appendChild(navigationBtn);\n this._toolTypes[\"navigation\"] = navigationBtn;\n\n const pointBtn = document.createElement(\"div\");\n pointBtn.setAttribute(\"title\", this.getText(this.mapPrefix,'map_drawtool_dot'));\n pointBtn.className = \"drawing-btn draw-point-btn\";\n const pointI = document.createElement(\"img\");\n pointI.src = \"assets/dot.svg\";\n pointI.alt = \"Tegn punkt\";\n pointBtn.appendChild(pointI);\n this.element.appendChild(pointBtn);\n this._toolTypes[\"drawPoint\"] = pointBtn;\n\n const lineBtn = document.createElement(\"div\");\n lineBtn.setAttribute(\"title\", this.getText(this.mapPrefix,'map_drawtool_hyphen'));\n lineBtn.className = \"drawing-btn draw-line-btn\";\n const lineI = document.createElement(\"img\");\n lineI.src = \"assets/line.svg\";\n lineI.alt = \"Tegn linje\";\n lineBtn.appendChild(lineI);\n this.element.appendChild(lineBtn);\n this._toolTypes[\"drawLine\"] = lineBtn;\n\n const polygonBtn = document.createElement(\"div\");\n polygonBtn.setAttribute(\"title\", this.getText(this.mapPrefix,'map_drawtool_flat'));\n polygonBtn.className = \"drawing-btn draw-polygon-btn\";\n const polygonI = document.createElement(\"img\");\n polygonI.src = \"assets/shape.svg\";\n polygonI.alt = \"Tegn flade\";\n polygonBtn.appendChild(polygonI);\n this.element.appendChild(polygonBtn);\n this._toolTypes[\"drawPolygon\"] = polygonBtn;\n\n const deleteBtn = document.createElement(\"div\");\n deleteBtn.setAttribute(\"title\", this.getText(this.mapPrefix,'map_drawtool_click_to_delete'));\n deleteBtn.className = \"drawing-btn draw-delete-btn\";\n const trashI = document.createElement(\"img\");\n trashI.src = \"assets/delete.svg\";\n trashI.alt = \"Slet\";\n deleteBtn.appendChild(trashI);\n this.element.appendChild(deleteBtn);\n this._toolTypes[\"delete\"] = deleteBtn;\n\n deleteBtn.addEventListener(\"click\", this.deleteFeature.bind(this));\n navigationBtn.addEventListener(\n \"click\",\n this.setInterActions.bind(this, \"\", [\"navigation\"]),\n false\n );\n pointBtn.addEventListener(\n \"click\",\n this.setInterActions.bind(this, \"POINT\", [\"drawPoint\"]),\n false\n );\n lineBtn.addEventListener(\n \"click\",\n this.setInterActions.bind(this, \"LINE\", [\"drawLine\"]),\n false\n );\n polygonBtn.addEventListener(\n \"click\",\n this.setInterActions.bind(this, \"POLYGON\", [\"drawPolygon\"]),\n false\n );\n }\n\n deleteFeature() {\n this._editVectorLayer.getSource().clear();\n }\n\n checkGeometryTypeChange(drawingType: string): boolean {\n const features = this._editVectorLayer\n .getSource()\n .getFeatures() as Feature[];\n let activeType: string;\n for (const key in features) {\n if (key) {\n const type = features[key].getGeometry().getType() as string;\n if (type.toUpperCase().indexOf(\"POINT\") > -1) {\n activeType = \"POINT\";\n }\n if (type.toUpperCase().indexOf(\"LINE\") > -1) {\n activeType = \"LINE\";\n }\n if (type.toUpperCase().indexOf(\"POLYGON\") > -1) {\n activeType = \"POLYGON\";\n }\n }\n }\n if (activeType && drawingType !== activeType) {\n return true;\n }\n return false;\n }\n\n changeDrawingType(tools: string[]) {\n this._editVectorLayer.getSource().clear();\n this._editVectorLayer.setVisible(true);\n this.setActiveTools(tools);\n }\n\n setInterActions(drawingType: string, tools: string[]): void {\n this.setActiveTools(tools);\n this._editVectorLayer.setVisible(true);\n if (\n drawingType !== \"\" &&\n this.checkGeometryTypeChange(drawingType) &&\n this._editVectorLayer.getSource().getFeatures().length > 0\n ) {\n console.log(\"Changing tool\");\n //this._mapCompoent.showConfirmBox(tools);\n return;\n }\n }\n\n private setActiveTools(tools: string[]) {\n for (const key in this._interActions) {\n if (tools.indexOf(key) > -1) {\n this._interActions[key].setActive(true);\n } else {\n this._interActions[key].setActive(false);\n }\n }\n if (this._interActions[\"select\"]) {\n this._interActions[\"select\"].getFeatures().clear();\n }\n for (const key in this._toolTypes) {\n if (key) {\n if (tools.findIndex((p) => p === key) > -1) {\n this._toolTypes[key].className =\n this._toolTypes[key].className + \" drawing-btn-active\";\n } else {\n this._toolTypes[key].className = this._toolTypes[\n key\n ].className.replace(\" drawing-btn-active\", \"\");\n }\n }\n }\n }\n\n setMap(map) {\n super.setMap(map);\n this._map = map;\n }\n\n setTypes(types: string[]): void {\n for (const key in this._toolTypes) {\n if (key) {\n if (\n key !== \"navigation\" &&\n key !== \"delete\" &&\n this._toolTypes[key].className.indexOf(\"hidden-drawing-control\") < 0\n ) {\n this._toolTypes[key].className =\n this._toolTypes[key].className + \" hidden-drawing-control\";\n }\n }\n }\n\n for (const index in types) {\n if (index) {\n switch (types[index].toLocaleUpperCase()) {\n case \"POINT\":\n this._toolTypes[\"drawPoint\"].className = this._toolTypes[\n \"drawPoint\"\n ].className.replace(\" hidden-drawing-control\", \"\");\n break;\n case \"POLYLINE\":\n this._toolTypes[\"drawLine\"].className = this._toolTypes[\n \"drawLine\"\n ].className.replace(\" hidden-drawing-control\", \"\");\n break;\n case \"POLYGON\":\n this._toolTypes[\"drawPolygon\"].className = this._toolTypes[\n \"drawPolygon\"\n ].className.replace(\" hidden-drawing-control\", \"\");\n break;\n default:\n break;\n }\n }\n }\n }\n\n isDrawActive(): boolean {\n return this._active;\n }\n\n private disableDrawInteractions() {\n for (const key in this._interActions) {\n if (key) {\n this._interActions[key].setActive(false);\n }\n }\n }\n\n setVisble(display: boolean) {\n this._active = display;\n if (!display && !this.element.classList.contains(this._hiddenClassName)) {\n this.element.classList.add(this._hiddenClassName);\n this.disableDrawInteractions();\n } else {\n if (display && this.element.classList.contains(this._hiddenClassName)) {\n this.element.classList.remove(this._hiddenClassName);\n }\n }\n }\n\n getText(prefix: string, shortName: string) {\n return (this.content = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n}\n","export default \".side-bar-container {\\n padding: 0 !important;\\n position: relative;\\n}\\n\\n.map {\\n width: 100vw;\\n border-left: 1px solid #cccccc;\\n}\\n\\n.map-maincontainer {\\n height: calc(100vh - 60px) !important;\\n width: calc(100vw + 3.2em) !important;\\n}\\n\\n.as-split-gutter {\\n margin-left: -64px;\\n z-index: 99999;\\n}\\n\\n.map-container {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.layers-button {\\n position: absolute;\\n margin: 0.5rem 3px 0;\\n background: white;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n color: #666;\\n border-radius: 49%;\\n font-weight: 400;\\n bottom: 90px;\\n right: 8px;\\n z-index: 1;\\n width: 31.35px;\\n height: 31.35px;\\n cursor: pointer;\\n display: block;\\n text-align: center;\\n}\\n\\n.layers-button img {\\n width: 60%;\\n}\\n\\n.layers-message {\\n bottom: 35px;\\n left: 10px;\\n position: absolute;\\n border-radius: 3px;\\n background: white;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n color: #666;\\n font-weight: 400;\\n z-index: 1;\\n display: block;\\n}\\n\\n.layers-message img {\\n width: 60%;\\n}\\n\\n.layers-message label {\\n margin-bottom: 0;\\n padding-left: 5px;\\n padding-right: 5px;\\n color: black;\\n font-size: 17px;\\n}\\n\\n.square {\\n background-color: #fff;\\n margin-left: 4px;\\n margin-top: -2px;\\n border: 0.5px solid;\\n margin-bottom: 5px;\\n}\\n\\n.square-size {\\n width: 15px;\\n height: 15px;\\n}\\n\\n.modal-center {\\n text-align: center;\\n}\\n\\n.modal-body {\\n /* background-color: whitesmoke; */\\n width: -webkit-max-content !important;\\n width: -moz-max-content !important;\\n width: max-content !important;\\n position: relative;\\n -webkit-box-flex: 1;\\n flex: 11 auto;\\n padding: 1.5rem;\\n}\\n\\n.modal-dialog {\\n padding: 1rem !important;\\n}\\n\\n#metadatIcon {\\n width: 15px;\\n height: 15px;\\n margin-top: -2px;\\n cursor: pointer;\\n}\\n\\n@media screen and (max-width: 800px) {\\n #s-screen {\\n width: 122px;\\n margin-right: 74%;\\n }\\n}\\n\\n.toggle-area-button {\\n position: absolute;\\n z-index: 1000;\\n height: 24px;\\n margin-top: max(calc(50vh - 72px), 300px);\\n font-size: 13px;\\n font-weight: 100;\\n border: 1px solid darkgrey;\\n border-radius: 0px 10% 10% 0px;\\n border-left: 0px;\\n background: white;\\n}\\n\\n.toggle-area-button:focus {\\n outline: none;\\n}\\n\\n.hidden {\\n display: none;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .map-maincontainer {\\n height: calc(100vh - 60px) !important;\\n width: calc(100vw) !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvbWFwL21hcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFwL21hcC5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy92YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFLHFCQUFBO0VBQ0Esa0JBQUE7QUNERjs7QURJQTtFQUNFLFlBQUE7RUFDQSw4QkVRb0I7QURUdEI7O0FESUE7RUFDRSxxQ0FBQTtFQUNBLHFDQUFBO0FDREY7O0FES0E7RUFDRSxrQkFBQTtFQUNBLGNBQUE7QUNGRjs7QURLQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNGRjs7QURLQTtFQUNFLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLCtCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNGRjs7QURHRTtFQUNFLFVBQUE7QUNESjs7QURLQTtFQUNFLFlBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsK0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtBQ0ZGOztBREdFO0VBQ0UsVUFBQTtBQ0RKOztBREtBO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNGRjs7QURLQTtFQUNFLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUNGRjs7QURLQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FDRkY7O0FES0E7RUFDRSxrQkFBQTtBQ0ZGOztBREtBO0VBQ0Usa0NBQUE7RUFDQSxxQ0FBQTtFQUFBLGtDQUFBO0VBQUEsNkJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7QUNGRjs7QURLQTtFQUNFLHdCQUFBO0FDRkY7O0FES0E7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0ZGOztBRE1BO0VBQ0U7SUFDRSxZQUFBO0lBQ0EsaUJBQUE7RUNIRjtBQUNGOztBRE1BO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLHlDQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsMEJBQUE7RUFDQSw4QkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNKRjs7QURPQTtFQUVFLGFBQUE7QUNMRjs7QURRQTtFQUNFLGFBQUE7QUNMRjs7QURRQTtFQUNFO0lBQ0UscUNBQUE7SUFDQSw2QkFBQTtFQ0xGO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9tYXAvbWFwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uL3ZhcmlhYmxlcy5zY3NzXCI7XG5cbi5zaWRlLWJhci1jb250YWluZXIge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hcCB7XG4gIHdpZHRoOiAxMDB2dztcbiAgYm9yZGVyLWxlZnQ6ICRwcmltYXJ5LWdyZXktYm9yZGVyO1xufVxuXG4ubWFwLW1haW5jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KSAhaW1wb3J0YW50O1xuICB3aWR0aDogY2FsYygxMDB2dyArIDMuMmVtKSAhaW1wb3J0YW50O1xufVxuXG5cbi5hcy1zcGxpdC1ndXR0ZXIge1xuICBtYXJnaW4tbGVmdDogLTY0cHg7XG4gIHotaW5kZXg6IDk5OTk5O1xufVxuXG4ubWFwLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmxheWVycy1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMC41cmVtIDNweCAwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci1yYWRpdXM6IDQ5JTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm90dG9tOiA5MHB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMzEuMzVweDtcbiAgaGVpZ2h0OiAzMS4zNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGltZyB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxufVxuXG4ubGF5ZXJzLW1lc3NhZ2Uge1xuICBib3R0b206IDM1cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBpbWcge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbn1cblxuLmxheWVycy1tZXNzYWdlIGxhYmVse1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLnNxdWFyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGJvcmRlcjogMC41cHggc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnNxdWFyZS1zaXple1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuXG4ubW9kYWwtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubW9kYWwtYm9keXtcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgZmxleDogMTEgYXV0bztcbiAgcGFkZGluZzogMS41cmVtO1xufVxuXG4ubW9kYWwtZGlhbG9nIHtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4jbWV0YWRhdEljb257XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAjcy1zY3JlZW57XG4gICAgd2lkdGg6IDEyMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNzQlO1xuICB9XG59XG5cbi50b2dnbGUtYXJlYS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luLXRvcDogbWF4KGNhbGMoNTB2aCAtIDcycHgpLCAzMDBweCk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgZGFya2dyZXk7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAxMCUgMTAlIDBweDtcbiAgYm9yZGVyLWxlZnQ6IDBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50b2dnbGUtYXJlYS1idXR0b246Zm9jdXMge1xuICAvL2JvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1hcC1tYWluY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3KSAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuXG4iLCIuc2lkZS1iYXItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXAge1xuICB3aWR0aDogMTAwdnc7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLm1hcC1tYWluY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCkgIWltcG9ydGFudDtcbiAgd2lkdGg6IGNhbGMoMTAwdncgKyAzLjJlbSkgIWltcG9ydGFudDtcbn1cblxuLmFzLXNwbGl0LWd1dHRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtNjRweDtcbiAgei1pbmRleDogOTk5OTk7XG59XG5cbi5tYXAtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubGF5ZXJzLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwLjVyZW0gM3B4IDA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDAgNHB4IDBweCAjYjFiMWIxO1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXJhZGl1czogNDklO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3R0b206IDkwcHg7XG4gIHJpZ2h0OiA4cHg7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAzMS4zNXB4O1xuICBoZWlnaHQ6IDMxLjM1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sYXllcnMtYnV0dG9uIGltZyB7XG4gIHdpZHRoOiA2MCU7XG59XG5cbi5sYXllcnMtbWVzc2FnZSB7XG4gIGJvdHRvbTogMzVweDtcbiAgbGVmdDogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDAgNHB4IDBweCAjYjFiMWIxO1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubGF5ZXJzLW1lc3NhZ2UgaW1nIHtcbiAgd2lkdGg6IDYwJTtcbn1cblxuLmxheWVycy1tZXNzYWdlIGxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXNpemU6IDE3cHg7XG59XG5cbi5zcXVhcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xuICBib3JkZXI6IDAuNXB4IHNvbGlkO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5zcXVhcmUtc2l6ZSB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5tb2RhbC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tb2RhbC1ib2R5IHtcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgZmxleDogMTEgYXV0bztcbiAgcGFkZGluZzogMS41cmVtO1xufVxuXG4ubW9kYWwtZGlhbG9nIHtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4jbWV0YWRhdEljb24ge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gICNzLXNjcmVlbiB7XG4gICAgd2lkdGg6IDEyMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNzQlO1xuICB9XG59XG4udG9nZ2xlLWFyZWEtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbi10b3A6IG1heChjYWxjKDUwdmggLSA3MnB4KSwgMzAwcHgpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtncmV5O1xuICBib3JkZXItcmFkaXVzOiAwcHggMTAlIDEwJSAwcHg7XG4gIGJvcmRlci1sZWZ0OiAwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udG9nZ2xlLWFyZWEtYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1hcC1tYWluY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3KSAhaW1wb3J0YW50O1xuICB9XG59IiwiLy8gQ29sb3JzXG4kcHJpbWFyeS1jb2xvcjogIzIzM2M2NTtcbiRvcmFuZ2U6ICNmZjg1MDA7XG4kcmVkOiAjY2M2Njc3O1xuJGdyZWVuOiAjNDRhYjk5O1xuJGxpZ2h0LWJsdWU6ICMzOWE4ZTA7XG4keWVsbG93OiAjZmFiMzBjO1xuJHB1cnBsZTogI2FhNDQ5OTtcbiRwdXJwbGUtZmlsbDogcmdiYSgkcHVycGxlLCAwLjUpO1xuXG4kcHJpbWFyeS10ZXh0OiAjMzMzMzMzO1xuJGhlbHAtdGV4dDogIzY2NjY2NjtcbiRkaXNiYWxlZC1saW5rLXRleHQ6ICM5OTk5OTk7XG5cbiRwcmltYXJ5LWdyZXktYmc6ICNmNmY2ZjY7XG5cbi8vIEJvcmRlcnNcbiRwcmltYXJ5LWdyZXktYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiRvcmFuZ2UtYm9yZGVyOiAycHggc29saWQgJG9yYW5nZTtcbiRyZWQtYm9yZGVyOiAycHggZGFzaGVkICRyZWQ7XG4kcHVycGxlLWJvcmRlcjogMnB4IHNvbGlkICRwdXJwbGU7XG4iXX0= */\"","import { Component, OnDestroy, OnInit, TemplateRef } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport Feature from \"ol/Feature\";\nimport Map from \"ol/Map\";\nimport View from \"ol/View\";\nimport {\n defaults as DefaultControls,\n MousePosition,\n ScaleLine,\n} from \"ol/control\";\nimport { format } from \"ol/coordinate\";\nimport { Image as ImageLayer, Tile as TileLayer } from \"ol/layer\";\nimport VectorLayer from \"ol/layer/Vector\";\nimport \"ol/ol.css\";\nimport { transform } from 'ol/proj';\nimport Projection from \"ol/proj/Projection\";\nimport { TileWMS, Vector as VectorSource, WMTS as WMTSSource } from \"ol/source\";\nimport ImageWMS from \"ol/source/ImageWMS\";\nimport WMTSTileGrid from \"ol/tilegrid/WMTS\";\nimport proj4 from \"proj4\";\nimport { Subscription } from \"rxjs\";\nimport { MapSettings } from \"../models/mapsettings\";\nimport { TimePlanversionEvent } from \"../models/timeplanversionevent\";\nimport { EnvironmentService } from \"../services/environment.service\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataService } from \"../services/plandata.service\";\n\nimport { PreviewService } from \"../services/preview.service\";\n//import {METERS_PER_UNIT} from 'ol/proj/units';\nimport GMLFormat2 from 'ol/format/GML2';\nimport GMLFormat3 from 'ol/format/GML3';\nimport WFSFormat from 'ol/format/WFS';\nimport { Stroke, Style } from 'ol/style';\nimport { ContentService } from \"../services/content.service\";\nimport { LanguageService } from \"../services/language.service\";\n\nimport moment from \"moment\";\nimport * as OlCoordinate from 'ol/coordinate';\nimport * as OlExtent from 'ol/extent';\nimport { Subject } from 'rxjs';\nimport { MapHelper } from './util/mapHelper';\n\n\n@Component({\n selector: \"app-map\",\n templateUrl: \"./map.component.html\",\n styleUrls: [\"./map.component.scss\"],\n})\nexport class MapComponent implements OnInit, OnDestroy {\n vectorLayer: VectorLayer;\n mapContent: any;\n // mapPrefix = \"da/plan/map\";\n contentString: void;\n mapDefinitionPrefix = \"/mapdefinition\";\n private map: Map;\n private view: View;\n mapDisplay = \"block\";\n private _baseLayers = new Array();\n private _zoneLayers = new Array();\n private backgroundLayer: TileLayer;\n private _sfsOverlayers: TileLayer[] = new Array();\n private _modelOverlayers: any = {};\n private _zoneLayersLoaded = 0;\n //private kftoken: String = \"d12107f70a3ee93153f313c7c502169a\";\n private historicLayerBackground;\n private _layersLoed = false;\n private _mapsettings: MapSettings;\n private _tileGrid: WMTSTileGrid[] = new Array();\n private _defaultTileGrid: WMTSTileGrid;\n\n modalRef: BsModalRef;\n\n private subscriptions: Subscription[] = new Array();\n currentLang: string = null;\n _mapDefinition: any = null;\n displayItem: any = null;\n checkedMapDefinition:number = 0;\n templates:any = null;\n private ngUnsubscribe: Subject = new Subject();\n\n isServiceLayersOn: boolean = false;\n\n leftAreaWidth = 35;\n rightAreaWidth = 65;\n isLeftAreaCollapsed = false;\n\n isMobileView = window.matchMedia(\"only screen and (max-width: 767px)\").matches;\n isMapPositionInitialized = false;\n\n //Prepare internal 'WMS layers' url based on \"layer\" and \"style\" parameter configuration in admin ui\n urlHost: string = window.location.origin;\n urlPart1: string = this.urlHost+\"/geoserver/servicelayer/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&FORMAT=image%2Fpng&TRANSPARENT=true&LAYER=servicelayer%3A\";\n /* urlPart1: string = \"http://localhost:8080/geoserver/servicelayer/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&FORMAT=image%2Fpng&TRANSPARENT=true&LAYER=servicelayer%3A\"; */\n urlPart2: string = \"&STYLE=servicelayer%3A\";\n urlPart3: string = \"&exceptions=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A7791&WIDTH=18&HEIGHT=18\";\n\n constructor(\n private _modalService: BsModalService,\n private planService: PlandataService,\n private mapService: MapService,\n private environmentService: EnvironmentService,\n private route: ActivatedRoute,\n private router:Router,\n private previewService: PreviewService,\n private languageService: LanguageService,\n private contentService: ContentService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnInit() {\n this.subscriptions.push(\n this.planService.getCurrentDateTime().subscribe((currentDateTime) => {\n this.planService.currentDateTime = new Date(currentDateTime.toString());\n this.subscriptions.push(\n this.planService.getPlandata().subscribe((data) => {\n\n // filter out 'cancellation event' that happened at the same time the other consultation started\n // @ts-ignore\n data.timeline = this.filterOutUnnecessaryCancellationEvent(data.timeline);\n this.planService.currentSeaPlandata = data;\n\n if (this.route.snapshot.queryParams.timeLineIdx) {\n this.planService.setPlanVersionFromHistorik(\n this.route.snapshot.queryParams.timeLineIdx\n );\n } else {\n this.planService.setPlanVersionFromCurrentDateTime();\n }\n\n // Set version before\n this._mapsettings = this.planService.getMapBaseSettings();\n this.createTileGrids();\n this.initMap();\n\n // Get eventfor change layers\n this.subscriptions.push(\n this.planService.onLayersEventChanged().subscribe((any) => {\n this._mapsettings = this.planService.getMapBaseSettings();\n this.createTileGrids();\n this.reloadBaseLayers();\n this.reloadLayers();\n this._zoneLayersLoaded = this._zoneLayers.length;\n this._layersLoed = false;\n for (let i = 0; i < this._zoneLayers.length; i++) {\n this._zoneLayers[i]\n .getSource()\n .on(\"change\", this.layerLoaded.bind(this));\n }\n // console.log(\"start\");\n })\n );\n })\n );\n })\n );\n if(this.mapService.isMapLoaded()){\n this.displayItem = this.planService.mapDefinition\n }else{\n this.subscriptions.push(\n this.planService.getMapDefinition().subscribe((mapDefinition) => {\n let mapDefinitionTemp = mapDefinition;\n //Getting specific data within mapdefination api call\n if (\n mapDefinitionTemp &&\n mapDefinitionTemp.mapDefinition &&\n mapDefinitionTemp.mapDefinition.layerGroups &&\n mapDefinitionTemp.mapDefinition.layerGroups.length > 0\n ) {\n this._mapDefinition = mapDefinitionTemp.mapDefinition.layerGroups;\n\n let mapDefinitionLength = this._mapDefinition.length;\n\n this.displayItem = {};\n for (let i = 0; i < mapDefinitionLength; i++) {\n if(!this.displayItem[this._mapDefinition[i].orderColumn]){\n this.displayItem[this._mapDefinition[i].orderColumn] = [];\n }\n this.displayItem[this._mapDefinition[i].orderColumn].push(this._mapDefinition[i]);\n }\n\n this.planService.mapDefinition = this.displayItem;\n }\n })\n );\n }\n\n this.subscriptions.push(\n this.mapService.serviceLayersModeSubject.subscribe((isServiceLayerOn) => {\n this.isServiceLayersOn = isServiceLayerOn;\n })\n );\n\n this.subscriptions.push(\n this.mapService.onFeatureSeleted().subscribe((selectedZoneFeature) => {\n if (this.isLeftAreaCollapsed && selectedZoneFeature && selectedZoneFeature.length > 0) {\n this.expandLeftPanel();\n }\n })\n );\n\n if (!this.isMapPositionInitialized) {\n\n if (this.isMobileView) {\n\n const mapNode = document.getElementById(\"map\");\n const mapContainerMobile = document.getElementById(\"map-maincontainer-mobile\");\n const mapContainerDesktop = document.getElementById(\"map-maincontainer-desktop\");\n mapContainerDesktop.removeChild(mapNode);\n mapContainerMobile.appendChild(mapNode);\n\n\n const sidebarNode = document.getElementById(\"sidebar\");\n const leftColumnDesktop = document.getElementById(\"left-column\");\n const mapContainerMobileWrapper = document.getElementById(\"map-maincontainer-mobile-wrapper\");\n leftColumnDesktop.removeChild(sidebarNode);\n mapContainerMobileWrapper.insertBefore(sidebarNode, mapContainerMobileWrapper.firstChild);\n\n this.isMobileView = true;\n // this.mapDisplay = \"none\";\n }\n else {\n // this.mapDisplay = \"block\";\n this.isMobileView = false;\n }\n\n this.isMapPositionInitialized = true;\n }\n\n }\n\n keys() {\n return this.displayItem ? Object.keys(this.displayItem) : [];\n }\n\n\n getText(prefix: string, shortName: string) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getHTML(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n leavingMap(): void {\n this.mapService.clearHoveredFeatures();\n }\n\n onPageChange(currentPage: string) {\n if (currentPage != \"showMap\" && !this.previewService.isPrintPreview()) {\n this.mapDisplay = \"none\";\n } else if (currentPage == \"showMap\" || this.previewService.isPrintPreview()) {\n this.mapDisplay = \"block\";\n }\n }\n\n onResize(event) {\n\n\n if (this.isMobileView && event.target.innerWidth > 767) {\n\n const mapNode = document.getElementById(\"map\");\n const mapContainerMobile = document.getElementById(\"map-maincontainer-mobile\");\n const mapContainerDesktop = document.getElementById(\"map-maincontainer-desktop\");\n\n mapContainerMobile.removeChild(mapNode);\n mapContainerDesktop.appendChild(mapNode);\n\n const sidebarNode = document.getElementById(\"sidebar\");\n const leftColumnDesktop = document.getElementById(\"left-column\");\n const mapContainerMobileWrapper = document.getElementById(\"map-maincontainer-mobile-wrapper\");\n mapContainerMobileWrapper.removeChild(sidebarNode);\n leftColumnDesktop.appendChild(sidebarNode);\n\n this.mapDisplay = \"block\";\n\n this.isMobileView = false;\n return;\n }\n\n if (!this.isMobileView && event.target.innerWidth <= 767) {\n\n const mapNode = document.getElementById(\"map\");\n const mapContainerMobile = document.getElementById(\"map-maincontainer-mobile\");\n const mapContainerDesktop = document.getElementById(\"map-maincontainer-desktop\");\n\n mapContainerDesktop.removeChild(mapNode);\n mapContainerMobile.appendChild(mapNode);\n\n const sidebarNode = document.getElementById(\"sidebar\");\n const leftColumnDesktop = document.getElementById(\"left-column\");\n const mapContainerMobileWrapper = document.getElementById(\"map-maincontainer-mobile-wrapper\");\n leftColumnDesktop.removeChild(sidebarNode);\n mapContainerMobileWrapper.insertBefore(sidebarNode, mapContainerMobileWrapper.firstChild);\n\n // this.mapDisplay = \"none\";\n\n this.isMobileView = true;\n return;\n }\n\n }\n\n private reloadBaseLayers(): void {\n for (let i = 0; i < this._sfsOverlayers.length; i++) {\n this.map.removeLayer(this._sfsOverlayers[i]);\n }\n let oldBaseLayer = this.backgroundLayer;\n let newBaseLayer = this.createBackGroundLayer();\n console.log(this.backgroundLayer.getProperties().source.layer_ !== oldBaseLayer.getProperties().source.layer_);\n if(newBaseLayer.getProperties().source.layer_ !== oldBaseLayer.getProperties().source.layer_){\n this.backgroundLayer = newBaseLayer;\n this.map.removeLayer(oldBaseLayer);\n this.map.addLayer(this.backgroundLayer);\n }\n\n this.createOverLayers();\n }\n\n private reloadLayers(): void {\n // TODO load reload backmaps if new\n for (let i = 0; i < this._zoneLayers.length; i++) {\n this.map.removeLayer(this._zoneLayers[i]);\n }\n\n this.createZoneLayers();\n for (let i = 0; i < this._zoneLayers.length; i++) {\n this.map.addLayer(this._zoneLayers[i]);\n }\n\n this.mapService.setChangeMarkingLayersVisibility(\"removed\", true);\n this.mapService.setChangeMarkingLayersVisibility(\"changed\", true);\n }\n\n private getToken(tokenValueOrKey: string): string {\n if (this._mapsettings.settings[tokenValueOrKey]) {\n return this._mapsettings.settings[tokenValueOrKey];\n }\n return tokenValueOrKey;\n }\n\n private createTileLayerWMS(config: any): TileLayer {\n // console.log(config.name);\n let tileLayer = new TileLayer({\n opacity: config.opacity ? config.opacity : 1.0,\n visible: true,\n zIndex: config.zindex != undefined ? config.zindex : 0,\n source: new TileWMS({\n url: config.url,\n params: config.params,\n crossOrigin: \"aonymous\",\n }),\n });\n return tileLayer;\n }\n\n private createTileLayerWMTS(config: any): TileLayer {\n let token = \"\";\n let url = config.url;\n let delim = config.url.indexOf(\"?\") == -1 ? \"?\" : \"&\";\n if (config.token && config.token.value) {\n token = this.getToken(config.token.value);\n url += delim + config.token.key + \"=\" + token;\n delim = \"&\";\n }\n if (config.servicename) {\n url += delim + \"servicename=\" + config.servicename;\n delim = \"&\";\n }\n let tileLayer = new TileLayer({\n opacity: config.opacity ? config.opacity : 1.0,\n visible: true,\n zIndex: config.zindex != undefined ? config.zindex : 0,\n source: new WMTSSource({\n url: url,\n layer: config.layer,\n matrixSet: config.matrixSet,\n format: config.format,\n tileGrid: this.getTileGrid(config.tileGrid),\n style: config.styles,\n crossOrigin: \"aonymous\",\n }),\n });\n return tileLayer;\n }\n\n private createBackGroundLayer(): TileLayer {\n for (let i = 0; i < this._mapsettings.backgroundlayers.length; i++) {\n if (this._mapsettings.backgroundlayers[i].visible) {\n switch (this._mapsettings.backgroundlayers[i].type) {\n case \"wms\":\n return this.createTileLayerWMS(\n this._mapsettings.backgroundlayers[i]\n );\n case \"wmts\":\n return this.createTileLayerWMTS(\n this._mapsettings.backgroundlayers[i]\n );\n default:\n break;\n }\n }\n }\n return null;\n }\n\n private createOverLayers(): void {\n for (let i = 0; i < this._mapsettings.overlayers.length; i++) {\n // console.log(this._mapsettings.overlayers[i].visible);\n if (this._mapsettings.overlayers[i].visible) {\n let tileLayer = null;\n switch (this._mapsettings.overlayers[i].type) {\n case \"wms\":\n tileLayer = this.createTileLayerWMS(\n this._mapsettings.overlayers[i]\n );\n break;\n case \"wmts\":\n tileLayer = this.createTileLayerWMTS(\n this._mapsettings.overlayers[i]\n );\n break;\n default:\n break;\n }\n if (tileLayer != null) {\n this._sfsOverlayers.push(tileLayer);\n }\n }\n }\n }\n\n private createZoneLayers() {\n let publishedSeePlanLayers = this.planService.currentPublishedLayers;\n let consultationSeePlanLayers = this.planService.currentConsultationLayers;\n this._zoneLayers = new Array();\n // add publiched layers\n for (let i = 0; i < publishedSeePlanLayers.length; i++) {\n let url =\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"geodata?fileId=\" +\n publishedSeePlanLayers[i].uuid;\n let zIndex = this.planService.findLayerZIndex(\n publishedSeePlanLayers[i].name\n );\n console.log(publishedSeePlanLayers[i].name +\" : \"+zIndex+\" : \"+url);\n this._zoneLayers.push(\n this.mapService.createGeoJSONLayer(\n url,\n publishedSeePlanLayers[i],\n this.mapService.styleChanges.bind(\n this.mapService,\n publishedSeePlanLayers[i].styleType\n ),\n zIndex\n )\n );\n }\n // add consultation\n for (let i = 0; i < consultationSeePlanLayers.length; i++) {\n let url =\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"geodata?fileId=\" +\n consultationSeePlanLayers[i].uuid;\n let zIndex = this.planService.findLayerZIndex(\n consultationSeePlanLayers[i].name\n );\n\n this._zoneLayers.push(\n this.mapService.createGeoJSONLayer(\n url,\n consultationSeePlanLayers[i],\n this.mapService.styleChanges.bind(\n this.mapService,\n consultationSeePlanLayers[i].styleType\n ),\n zIndex\n )\n );\n }\n }\n\n private getTileGrid(index: number) {\n if (this._tileGrid[index]) {\n return this._tileGrid[index];\n }\n return this._defaultTileGrid;\n }\n\n private createTileGrids() {\n this._tileGrid = new Array();\n for (let i = 0; i < this._mapsettings.settings.tilegrids.length; i++) {\n this._tileGrid.push(\n new WMTSTileGrid({\n extent: this._mapsettings.settings.tilegrids[i].extent,\n resolutions: this._mapsettings.settings.tilegrids[i].resolutions,\n matrixIds: this._mapsettings.settings.tilegrids[i].matrixIds,\n })\n );\n }\n }\n\n private initMap() {\n\n console.log(\"INIT MAP\");\n\n proj4.defs(\n \"EPSG:25832\",\n \"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs\"\n );\n var projection = new Projection({\n code: \"EPSG:25832\",\n units: \"m\",\n extent: [120000, 5661139.2, 1378291.2, 6500000],\n getPointResolution: function (r) {\n return r;\n },\n });\n\n this._defaultTileGrid = new WMTSTileGrid({\n extent: [120000, 5661139.2, 1378291.2, 6500000],\n resolutions: [\n 1638.4,\n 819.2,\n 409.6,\n 204.8,\n 102.4,\n 51.2,\n 25.6,\n 12.8,\n 6.4,\n 3.2,\n 1.6,\n 0.8,\n 0.4,\n 0.2,\n ],\n matrixIds: [\n \"L00\",\n \"L01\",\n \"L02\",\n \"L03\",\n \"L04\",\n \"L05\",\n \"L06\",\n \"L07\",\n \"L08\",\n \"L09\",\n \"L10\",\n \"L11\",\n \"L12\",\n \"L13\",\n ],\n });\n\n let zoomParam: number = this._mapsettings.settings.zoom;\n let xCordinate: number = this._mapsettings.settings.center[0];\n let yCordinate: number = this._mapsettings.settings.center[1];\n\n if (this.route.snapshot.queryParams) {\n if (this.route.snapshot.queryParams.zoom != null) {\n zoomParam = Number(this.route.snapshot.queryParams.zoom);\n }\n if (this.route.snapshot.queryParams.x != null) {\n xCordinate = Number(this.route.snapshot.queryParams.x);\n }\n if (this.route.snapshot.queryParams.y != null) {\n yCordinate = Number(this.route.snapshot.queryParams.y);\n }\n }\n\n this.view = new View({\n center: [xCordinate, yCordinate],\n projection: projection,\n zoom: zoomParam,\n extent: [119500, 5961139.2, 998291.2, 6500000],\n minResolution: this._mapsettings.settings.minResolution, // 2.800005600011201\n });\n\n this.backgroundLayer = this.createBackGroundLayer();\n this.createOverLayers();\n\n var imageLoadFunctionDa = function (image, src) {\n var isIE = /msie\\s|trident\\/|old\\//i.test(window.navigator.userAgent);\n //image.getImage().src = \"/assets/historisk-4096-2048-da\" + (isIE ? '.png': '.svg');\n image.getImage().src =\n \"/assets/historic_watermark_da\" + (isIE ? \".png\" : \".svg\");\n };\n\n var imageLoadFunctionEn = function (image, src) {\n var isIE = /msie\\s|trident\\/|old\\//i.test(window.navigator.userAgent);\n //image.getImage().src = \"/assets/historisk-4096-2048-en\" + (isIE ? '.png': '.svg');\n image.getImage().src =\n \"/assets/historic_watermark_en\" + (isIE ? \".png\" : \".svg\");\n };\n\n this.historicLayerBackground = new ImageLayer({\n visible: this.planService.isHistoryMap(),\n //visible: false,\n zIndex: 10000,\n source: new ImageWMS({\n url: \"\",\n imageLoadFunction:\n this.currentLang == \"en\" ? imageLoadFunctionEn : imageLoadFunctionDa,\n params: { LAYERS: \"watermark\" },\n projection: projection,\n }),\n });\n\n this._baseLayers.push(this.backgroundLayer);\n\n this.createZoneLayers();\n\n this.map = new Map({\n layers: this._baseLayers,\n target: \"map\",\n view: this.view,\n\n controls: DefaultControls().extend([\n new ScaleLine({\n minWidth: 100,\n }),\n new MousePosition({\n coordinateFormat: function (coord) {\n var coordX = Number(coord[0]).toFixed(0);\n var coordY = Number(coord[1]).toFixed(0);\n\n var lon_lat = transform(coord, 'EPSG:25832', 'EPSG:4326');\n var lat = Number(lon_lat[1]).toFixed(5);\n var lon = Number(lon_lat[0]).toFixed(5);\n\n lat = lat.toString().replace('.', ',');\n lon = lon.toString().replace('.', ',');\n\n if(me.currentLang == \"da\"){\n me.templates = coordX + \"\\xa0\\xa0\" + coordY + \"\\xa0\" + me.getText(me.mapDefinitionPrefix, \"coord_map_hover_da\") + \"\\xa0\\xa0\\xa0\\xa0\" +lat + \"\\xa0\\xa0\" +lon +\n \"\\xa0\\xa0\" + me.getText(me.mapDefinitionPrefix, \"lat_long_map_hover_da\");\n }\n\n if(me.currentLang == \"en\"){\n me.templates = coordX + \"\\xa0\\xa0\" + coordY + \"\\xa0\" + me.getText(me.mapDefinitionPrefix, \"coord_map_hover_en\")+ \"\\xa0\\xa0\\xa0\\xa0\" +lat + \"\\xa0\\xa0\" +lon +\n \"\\xa0\\xa0\" + me.getText(me.mapDefinitionPrefix, \"lat_long_map_hover_en\");\n }\n\n return format(coord, me.templates, 2);\n },\n projection: \"EPSG:25832\",\n }),\n ]),\n });\n\n console.log(\"@@ MAP CREATED\");\n\n this.map.addLayer(this.historicLayerBackground);\n\n for (let i = 0; i < this._sfsOverlayers.length; i++) {\n this.map.addLayer(this._sfsOverlayers[i]);\n }\n\n this.addModelLayers();\n\n for (let i = 0; i < this._zoneLayers.length; i++) {\n this.map.addLayer(this._zoneLayers[i]);\n }\n console.log(\"@@ LAYERS ADDED\");\n this.mapService.setMap(this.map);\n console.log(\"@@ setMap()\");\n\n this.mapService.setChangeMarkingLayersVisibility(\"changed\",false);\n this.mapService.setChangeMarkingLayersVisibility(\"removed\",false);\n\n\n\n let me = this;\n this.subscriptions.push(\n this.planService\n .onTimePlanversionChanged()\n .subscribe((event: TimePlanversionEvent) => {\n if (event.historicPlan) {\n me.historicLayerBackground.setVisible(true);\n } else {\n me.historicLayerBackground.setVisible(false);\n }\n })\n );\n\n this.mapService.mainRoutePath = this.route.routeConfig.path;\n this.mapService.createInternalVectorLayers();\n this.mapService.createInteractions();\n this.mapService.clearSelectedFeatures(\"SELECT\");\n\n /*\n this.subscriptions.push(\n this.mapService.onSelectFeaturesSelected().subscribe(() => {\n //this.mapService.clearMarkerFeature();\n })\n );*/\n\n this.mapService.setNewHearingAnswerCallback(function (feature: Feature) {\n // me.mapService.hearingAnswerDisplayLayer.getSource().clear();\n\n me.mapService.interActions[\"select\"].getFeatures().clear();\n /*if(!feature) {\n me.mapService.clearMarkerFeature();\n }*/\n\n if (feature) {\n me.mapService.hearingAnswerDisplayLayer.getSource().addFeature(feature);\n }\n });\n\n // map click and hover events\n this.map.on(\"click\", this.mapService.clickMapHandler.bind(this.mapService));\n this.map.on(\"pointermove\", this.mapService.onHover.bind(this.mapService));\n\n // Event for zoneLayers loaded\n this._zoneLayersLoaded = this._zoneLayers.length;\n for (let i = 0; i < this._zoneLayers.length; i++) {\n this._zoneLayers[i].getSource().on(\"change\", this.layerLoaded.bind(this));\n }\n\n console.log(\"@@@@ zoneLayersLoaded = \" + this._zoneLayersLoaded);\n\n if (this._zoneLayersLoaded == 0 || this._zoneLayersLoaded <= 2) {\n this.mapService.setMapIsReady();\n }\n\n if (this.previewService.isPrintPreview()) {\n this.mapDisplay = \"block\";\n }\n\n // @ts-ignore\n const resizeObserver = new ResizeObserver((entries) => {\n const splitHandler = document.getElementsByClassName(\"as-split-gutter-icon\")[0];\n if (!splitHandler) return;\n const splitHandlerRect = splitHandler.getBoundingClientRect();\n if (this.isLeftAreaCollapsed) {\n document.getElementById(\"toggle-area-button\").style.left = \"calc(\" + (splitHandlerRect.right + \"px\") + \" + 3.2em)\";\n document.getElementById(\"sidebar-tabs-group\").style.left = \"calc(\" + (splitHandlerRect.left + \"px\") + \" + 11px)\";\n } else {\n document.getElementById(\"toggle-area-button\").style.left = splitHandlerRect.right + \"px\";\n document.getElementById(\"sidebar-tabs-group\").style.left = \"calc(\" + (splitHandlerRect.left + \"px\") + \" + 11px)\";\n }\n this.map.updateSize();\n });\n\n resizeObserver.observe(document.querySelector(\"#map\"));\n }\n //-----Add WMS/WFS layer in a MAP----------------\n addModelLayers(){\n for(let item of this.keys()){\n for(let mainLayer of this.displayItem[item]){\n for(let modelOverlayer of mainLayer.overlayLayers){\n if(modelOverlayer && modelOverlayer['checked'] && modelOverlayer['defaultType'] === 'WMS' && ((modelOverlayer['internalLayerName'] && modelOverlayer['stilartName'] && modelOverlayer['layerSource'] === 'INTERNAL')\n || (modelOverlayer['externalWmsUrl'] && modelOverlayer['layerSource'] === 'EXTERNAL'))){\n if(modelOverlayer['checked']){\n this.checkedMapDefinition = this.checkedMapDefinition + 1;\n }\n let includeWmsLayerInMap = this.getWmsModelOverlay(modelOverlayer,modelOverlayer['layerSource']);\n this._modelOverlayers[modelOverlayer.name] = includeWmsLayerInMap\n this.map.addLayer(includeWmsLayerInMap);\n }else if(modelOverlayer && modelOverlayer['checked'] && modelOverlayer['defaultType'] === 'WFS' && modelOverlayer['externalWfsUrl']){\n if(modelOverlayer['checked']){\n this.checkedMapDefinition = this.checkedMapDefinition + 1;\n }\n //Add WFS layer code\n this.createWFSOverLayer(modelOverlayer)\n }\n }\n }\n }\n }\n\n removeModelLayer(modelOverlayerName){\n let isFoundRecord:boolean = false;\n if(this._modelOverlayers && this._modelOverlayers[modelOverlayerName]){\n // console.log(\"Found And Remove::\")\n this.map.removeLayer(this._modelOverlayers[modelOverlayerName]);\n delete this._modelOverlayers[modelOverlayerName];\n }\n }\n\n checkUncheckModelOverlay(event,modelOverlayer){\n event.preventDefault();\n /* console.log(JSON.stringify(modelOverlayer)) */\n modelOverlayer['checked'] = !modelOverlayer['checked']\n\n if(modelOverlayer['checked']){\n this.checkedMapDefinition = this.checkedMapDefinition + 1;\n }else{\n this.checkedMapDefinition = this.checkedMapDefinition - 1;\n }\n\n if(modelOverlayer && modelOverlayer['defaultType'] === 'WMS'){\n if(modelOverlayer['checked'] && ((modelOverlayer['internalLayerName'] && modelOverlayer['stilartName'] && modelOverlayer['layerSource'] === 'INTERNAL')\n || (modelOverlayer['externalWmsUrl'] && modelOverlayer['layerSource'] === 'EXTERNAL'))){\n let includeWmsLayerInMap = this.getWmsModelOverlay(modelOverlayer,modelOverlayer['layerSource']);\n this._modelOverlayers[modelOverlayer.name] = includeWmsLayerInMap\n this.map.addLayer(includeWmsLayerInMap);\n }else{\n this.removeModelLayer(modelOverlayer['name']);\n }\n }else if(modelOverlayer && modelOverlayer['defaultType'] === 'WFS'){\n if(modelOverlayer['checked'] && modelOverlayer['externalWfsUrl']){\n //Add WFS layer code\n this.createWFSOverLayer(modelOverlayer)\n }else{\n //Remove WFS layer code\n this.removeModelLayer(modelOverlayer['name'])\n }\n }\n // this.createWFSOverLayer({'externalWfsUrl':\"https://arealinformation.miljoeportal.dk/gis/services/DAIdb/MapServer/WFSServer?request=GetFeature&service=WFS&outputFormat=GML3&version=1.1.0&typeName=dmp:HABITAT_OMR&title=HABITAT_OMR\"});\n //console.log(\"CHECKED/ UNCHECKED/\")\n }\n\n getWmsModelOverlay(wmsModelOverlayer,layerSource){\n let url = null;\n let params = {};\n let opacity = 0.75;\n\n if(layerSource === 'INTERNAL'){\n url = this.urlHost+'/geoserver/servicelayer/wms';\n /* url = 'http://localhost:8080/geoserver/servicelayer/wms'; */\n params = {\n 'LAYERS':'servicelayer:' + wmsModelOverlayer['internalLayerName'], //layer\n 'STYLES':'servicelayer:' + wmsModelOverlayer['stilartName'], //Style\n 'FORMAT': \"image/png\"\n }\n }else if(layerSource === 'EXTERNAL'){\n url = wmsModelOverlayer['externalWmsUrl'];\n params = {\n 'FORMAT': \"image/png\",\n 'crossOrigin': \"anonymous\"\n }\n }else{\n return null;\n }\n\n //Overwrite the params by doing the configurion within options field\n if(wmsModelOverlayer['layerProps'] && typeof wmsModelOverlayer['layerProps'] === 'object' && wmsModelOverlayer['layerProps'] !== null){\n opacity = wmsModelOverlayer['layerProps']['opacity'] ? wmsModelOverlayer['layerProps']['opacity'] : opacity;\n if(wmsModelOverlayer['layerProps']['params']){\n this.overWriteParams(params,wmsModelOverlayer['layerProps']['params'])\n console.log(JSON.stringify(params))\n }\n }\n\n let includeWmsLayerInMap = new TileLayer({\n 'opacity': opacity,\n 'source': new TileWMS({\n 'url': url,\n 'params':params\n })\n\n })\n return includeWmsLayerInMap;\n }\n\n\n // getWfsModelOverlay(wfsModelOverlayer,layerSource){\n // let layer = new VectorLayer({\n // source: new VectorSource({\n // // format: new GeoJSON(),\n // format: new WFSFormat({ gmlFormat: new GMLFormat3() }),\n // url: function (extent) {\n // return (\n // /* 'https://arealinformation.miljoeportal.dk/gis/services/DAIdb/MapServer/WFSServer?request=GetFeature&service=WFS&version=1.1.0&typeName=dmp:NATUR_VILDT_RESERVAT&outputFormat=GML3' */\n // 'https://arealinformation.miljoeportal.dk/gis/services/DAIdb/MapServer/WFSServer?request=GetFeature&service=WFS&outputFormat=GML3&version=1.1.0&typeName=dmp:HABITAT_OMR&title=dmp:INDSATSPLANNER'\n // );\n // },\n // strategy: bboxStrategy,\n // })\n // });\n\n // this.map.addLayer(layer);\n // this.createWFSOverLayer(wfsModelOverlayer)\n\n // }\n\n createWFSOverLayer(overlay): void {\n /* console.log(\"Crete WFS overlay\") */\n const props = overlay.layerProps as any;\n let layerParams: any = {};\n layerParams = MapHelper.getCustomProps(props, layerParams);\n //console.log(JSON.stringify(layerParams))\n layerParams = MapHelper.getParams(overlay.externalWfsUrl, layerParams);\n //console.log(JSON.stringify(layerParams))\n const urlparts = overlay.externalWfsUrl.split('?');\n\n if (urlparts && urlparts.length > 1) {\n overlay.externalWfsUrl = urlparts[0] + '?';\n }\n for (const key in layerParams) {\n if (key) {\n overlay.externalWfsUrl += key + '=' + layerParams[key] + '&';\n }\n }\n\n const loadingStrategy = function(extent, resolution) {\n if(this.resolution && this.resolution != resolution){\n this.loadedExtentsRtree_.clear();\n }\n return [extent];\n };\n\n const thisme = this;\n const vectorSource = new VectorSource({\n format: new WFSFormat({ gmlFormat: new GMLFormat2() }),\n loader: function (extent, resolution, projection) {\n // this.resolution = resolution;\n /* console.log(overlay.externalWfsUrl) */\n // console.log(thisme.mapService.currentMapEPSG.toLowerCase())\n let url = new URL(overlay.externalWfsUrl + '&srsName=epsg:25832');\n /* console.log(url) */\n let params =url.searchParams;\n\n if(params && params.get(\"filter\") && extent && extent.length ==4 ) {\n const oParser = new DOMParser();\n let oDOM = oParser.parseFromString(decodeURIComponent(params.get(\"filter\")), \"application/xml\");\n let bbox = oDOM.getElementsByTagName(\"BBOX\");\n if(bbox && bbox.length>0) {\n let lowerCorner = bbox[0].getElementsByTagName(\"lowerCorner\");\n if(lowerCorner && lowerCorner.length>0) {\n lowerCorner[0].innerHTML = OlCoordinate.format(OlExtent.getBottomLeft(extent), '{x} {y}', 3);\n }\n let upperCorner = bbox[0].getElementsByTagName(\"upperCorner\");\n if(upperCorner && upperCorner.length>0) {\n upperCorner[0].innerHTML = OlCoordinate.format(OlExtent.getTopRight(extent), '{x} {y}', 3);\n }\n bbox[0].setAttribute(\"srsName\",'epsg:25832');\n }\n var oSerializer = new XMLSerializer();\n var sXML = oSerializer.serializeToString(oDOM);\n\n params.delete(\"filter\");\n\n url = new URL(url.toString() + '&filter=' + encodeURIComponent(sXML));\n\n } else if(extent && extent.length ==4) {\n url = new URL(url.toString() + '&bbox=' + extent.join(','));\n }\n\n /* console.log(\"==>\"+url.href) */\n thisme.mapService.callByProxy(url.href).subscribe(response => {\n if(params.get(\"version\") && params.get(\"version\").indexOf(\"1.0.0\") > -1) {\n vectorSource.addFeatures(new WFSFormat({gmlFormat: new GMLFormat2() }).readFeatures(response.body));\n }else {\n vectorSource.addFeatures(new WFSFormat({gmlFormat: new GMLFormat3() }).readFeatures(response.body));\n }\n });\n },\n strategy: loadingStrategy,\n // projection: OlProj.get(\"EPSG:25832\")\n });\n\n let stroke = {};\n if(overlay.layerProps && overlay.layerProps.stroke ){\n stroke = overlay.layerProps.stroke;\n }\n const vector = new VectorLayer({\n source: vectorSource,\n style: new Style({\n stroke: new Stroke(stroke),\n })\n });\n\n this._modelOverlayers[overlay.name] = vector;\n this.map.addLayer(vector);\n }\n\n overWriteParams(params,source){\n for(let key of Object.keys(source)){\n /* console.log(key) */\n if(typeof source[key] === 'object' && source[key] !== null){\n if(!params[key.toUpperCase()]){\n params[key.toUpperCase()] = {};\n }\n this.overWriteParams(params[key.toUpperCase()],source[key])\n }else{\n params[key.toUpperCase()] = source[key];\n }\n }\n }\n\n private layerLoaded(evt: any) {\n if (evt.target.loading) {\n this._zoneLayersLoaded -= 1;\n }\n if ((this._zoneLayersLoaded == 0 ||\n (this._zoneLayersLoaded == 2 && !this.mapService.showChangeMarkingLayers[\"removed\"] && !this.mapService.showChangeMarkingLayers[\"changed\"])) &&\n !this._layersLoed) {\n this._layersLoed = true;\n this.mapService.setMapIsReady();\n }\n }\n\n openDialogForMappingData(template: TemplateRef) {\n this.modalRef = this._modalService.show(template, {\n class: \"modal-xl modal-xlc\",\n backdrop: true,\n ignoreBackdropClick: true\n });\n }\n\n // openUrl(data: any) {\n //console.log(\"Redirect to:\"+('/'+this.currentLang+'/'+this.getText(this.mapDefinitionPrefix, \"service_layer_deep_link\")+'/#'+data.name));\n //this.modalRef.hide();\n // this.router.navigate(['/'+this.currentLang+'/deeplink/'+this.getText(this.mapDefinitionPrefix, \"service_layer_deep_link\")],{fragment: data.name});\n // let url = '/'+this.currentLang+'/servicelayer/'+this.getText(this.mapDefinitionPrefix, \"service_layer_deep_link\") + \"#\"+data.name;\n // window.open(url,'_blank')\n //}\n openLinkField(url){\n window.open(url,'_blank')\n }\n\n confirm(): void {\n this.modalRef.hide();\n }\n\n private filterOutUnnecessaryCancellationEvent(timeLine: any[]) {\n const startedEventList = [];\n\n for (let i = 0; i < timeLine.length; i++) {\n const event = timeLine[i];\n if (event.timelineType == \"SUPPLEMENT_CONSULTATION_START\" || event.timelineType == \"PLAN_CONSULTATION_START\") {\n const startDate = moment(event.start);\n startDate.set({second:0,millisecond:0});\n startedEventList.push(startDate);\n }\n }\n\n return timeLine.filter(event => {\n if (event.timelineType == \"CANCELLATION\") {\n const cancelEventDate = moment(event.start);\n cancelEventDate.set({second:0,millisecond:0});\n\n const found = startedEventList.find((startEvent) => {\n return startEvent.isSame(cancelEventDate);\n });\n\n if (!found) {\n return true;\n }\n return false;\n }\n return true;\n })\n }\n\n collapseLeftPanel() {\n this.leftAreaWidth = 0;\n this.rightAreaWidth = 100;\n this.isLeftAreaCollapsed = true;\n }\n\n expandLeftPanel() {\n this.leftAreaWidth = 35.00;\n this.rightAreaWidth = 65.00;\n this.isLeftAreaCollapsed = false;\n }\n\n}\n\n\n","export class MapHelper {\n constructor() {}\n\n static getCustomProps(props: any, params: any): any {\n if (props && props.parameters) {\n for (const key in props.parameters) {\n if (key) {\n params[key] = props.parameters[key];\n }\n }\n }\n if (props && props.params) {\n for (const key in props.params) {\n if (key) {\n params[key] = props.params[key];\n }\n }\n }\n return params;\n }\n\n static getParams(url: string, params: any): any {\n if (url) {\n const values = url.split(\"?\");\n if (values && values.length > 1) {\n const pairs = values[1].split(\"&\");\n for (const pair in pairs) {\n if (pair) {\n const vals = pairs[pair].split(\"=\");\n if (vals && vals.length > 1) {\n params[vals[0]] = vals[1];\n }\n }\n }\n }\n }\n return params;\n }\n\n static layerSort(firstItem: any, secondItem: any) {\n if (firstItem.sort < secondItem.sort) {\n return -1;\n }\n if (firstItem.sort > secondItem.sort) {\n return 1;\n }\n return 0;\n }\n\n static addTokenToParams(token: string, params: any): any {\n let values = token.split(\"&\");\n if (values && values.length > 1) {\n for (const key in values) {\n if (key) {\n const vals = values[key].split(\"=\");\n if (vals && vals.length > 1) {\n params[vals[0]] = vals[1];\n }\n }\n }\n } else {\n values = token.split(\"=\");\n if (values && values.length > 1) {\n params[values[0]] = values[1];\n }\n }\n return params;\n }\n}\n","import { Style, Fill, Text, Stroke } from \"ol/style\";\nimport CircleStyle from \"ol/style/Circle\";\nimport Feature from \"ol/Feature\";\n\nvar canvas = document.createElement('canvas');\nvar context = canvas.getContext('2d');\n\nexport class VectorStyle {\n private _styleConfig: any = null;\n constructor() {\n }\n\n set setStyleConfig(styleConfig: any) {\n this._styleConfig = styleConfig;\n }\n\n private createStyleFromConfig(styleType: string, layerName: string, feature: any, resolution: any) : Style {\n\n if(this._styleConfig) {\n let styles = this._styleConfig;\n //console.log(\"Brefore: \"+layerName +\" : \"+styleType);\n for (const key in styles) {\n if (key && styles[key].styleType.toLowerCase() === styleType.toLowerCase() &&\n styles[key].layerName.toLowerCase() == layerName.toLowerCase()) {\n \n const newStyle = new Style({});\n if (styles[key].fillProps) {\n newStyle.setFill(new Fill(styles[key].fillProps));\n }\n if (styles[key].strokeProps) {\n newStyle.setStroke(new Stroke(styles[key].strokeProps));\n }\n if (styles[key].cirkelProps) {\n const cirkelProps = JSON.parse(JSON.stringify(styles[key].cirkelProps)) as any;\n if (cirkelProps['fill']) {\n cirkelProps['fill'] = new Fill(cirkelProps['fill'].fillProps);\n } \n const circleTempStyle = new CircleStyle(cirkelProps);\n newStyle.setImage(circleTempStyle);\n }\n if(styles[key].text) {\n newStyle.setText(this.createTextStyle(feature, resolution, styles[key].text));\n }\n return newStyle;\n }\n }\n }\n return null;\n }\n\n\n public getStyleByType(\n styleStrType: string,\n feature: Feature,\n resolution: any\n ): Style {\n \n let elements = styleStrType.split(\"_\");\n let layerName = \"\";\n let styleType = \"\";\n if(elements.length == 1) {\n switch (elements[0].toLowerCase()) {\n case \"highlight\":\n case \"show\":\n case \"edit\":\n case \"selected\":\n styleType = elements[0];\n \n break;\n default: \n styleType = \"active\";\n layerName = elements[0];\n break;\n }\n }else if (elements.length == 2) {\n styleType = \"hide\";\n layerName = elements[0];\n }else if (elements.length == 3) {\n styleType = \"hide\";\n layerName = elements[0]+\"_\"+elements[1];\n }\n\n let featureStyle: Style;\n \n featureStyle = this.createStyleFromConfig(styleType, layerName, feature, resolution);\n return featureStyle;\n }\n\n private stringDivider(str: any, width: any, spaceReplacer: any) {\n if (str.length > width) {\n var p = width;\n while (p > 0 && str[p] != \" \" && str[p] != \"-\") {\n p--;\n }\n if (p > 0) {\n var left;\n if (str.substring(p, p + 1) == \"-\") {\n left = str.substring(0, p + 1);\n } else {\n left = str.substring(0, p);\n }\n var right = str.substring(p + 1);\n return (\n left + spaceReplacer + this.stringDivider(right, width, spaceReplacer)\n );\n }\n }\n return str;\n }\n\n private getTextFromFeature(feature: Feature, resolution: any, options: any) {\n var type = options.text;\n var maxResolution = 400;\n var text = \"\";\n if (feature.get(\"forkortels\")) {\n text = feature.get(\"forkortels\");\n } else if (feature.get(\"kode_dsl\")) {\n text = feature.get(\"kode_dsl\");\n }else if (feature.get(\"type\")) {\n text = feature.get(\"type\");\n }\n/*\n if (resolution > maxResolution) {\n text = \"\";\n } else */if (type == \"hide\") {\n text = \"\";\n } else if (type == \"shorten\") {\n //text = text.trunc(12);\n } else if (\n type == \"wrap\" &&\n (!options.placement || options.placement != \"line\")\n ) {\n text = this.stringDivider(text, 16, \"\\n\");\n }\n return text;\n }\n\n private createTextStyle(feature: any, resolution: any, options: any) {\n var align = options.align;\n var baseline = options.baseline;\n var size = options.size;\n var offsetX = parseInt(options.offsetX, 10);\n var offsetY = parseInt(options.offsetY, 10);\n var weight = options.weight;\n var font = weight + \" \" + size + \" \" + options.font;\n var fillColor = options.color;\n var outlineColor = options.outline;\n var outlineWidth = parseInt(options.outlineWidth, 10);\n\n return new Text({\n textAlign: align == \"\" ? undefined : align,\n textBaseline: baseline,\n font: font,\n text: this.getTextFromFeature(feature, resolution, options),\n fill: new Fill({ color: fillColor }),\n stroke: new Stroke({ color: outlineColor, width: outlineWidth }),\n offsetX: offsetX,\n offsetY: offsetY,\n placement: \"point\",\n maxAngle: 0.7853981633974483,\n overflow: false,\n rotation: 0\n });\n }\n}\n","export class MapSettings {\n settings: any;\n backgroundlayers: any[];\n overlayers: any[]\n}","export class PlandataTimeLineInfo {\n plantitle: string = \"\";\n plantitle_en: string = \"\";\n plantype: string = \"\";\n planConsultationStart: string = \"\";\n planConsultationEnd: string = \"\";\n planApprovedeffEctiveDate: string = \"\";\n planCancelDate: string = \"\";\n}\n","\nexport class RouteInfo {\n routeelement: string;\n routepath: string;\n routedata: any;\n}\n","export class StatusInfo {\n cmstext: string = \"\";\n status: string = \"\";\n}","import { StatusInfo } from \"./statusinfo\";\nexport class Timeline {\n effectiveDate: string = \"\";\n statusInfo: StatusInfo; \n }\n ","export class TimePlanversionEvent {\n timeLineIndex: number;\n historicPlan: boolean;\n}","import { PlanInfo } from \"../plandataDefinition/planInfo\";\nexport class ZoneInHoering {\n planversionId: string;\n refId: string;\n layerName: string;\n planInfo: PlanInfo;\n type: string;\n title: any;\n geometry: JSON;\n}\n","export default \".news-component .news-item-container {\\n -ms-flex: 1;\\n cursor: pointer;\\n}\\n.news-component .news-img-container {\\n border: 1px solid #eee;\\n background: #eee;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: end;\\n justify-content: center;\\n -webkit-box-align: center;\\n align-items: center;\\n width: 180px;\\n height: 150px;\\n}\\n.news-component .news-img {\\n max-width: 180px;\\n max-height: 150px;\\n}\\n.news-component .news-info {\\n justify-content: space-around;\\n max-width: 100%;\\n}\\n.news-component .news-info .news-date {\\n font-size: 13px;\\n}\\n.news-component .news-info .news-title {\\n font-weight: bold;\\n}\\n.manage-top {\\n padding-top: 6rem;\\n}\\n.checkbox-invalid {\\n outline: 2px solid red;\\n}\\n.invalid-text {\\n color: red !important;\\n}\\ninvalid-text a {\\n color: red !important;\\n}\\n.btn-success-subs {\\n border-radius: 0 !important;\\n background: #233c65;\\n color: white;\\n cursor: pointer;\\n width: 30%;\\n height: 35px;\\n font-size: 18px;\\n}\\n@media only screen and (max-width: 600px) {\\n .content-container {\\n padding: 5px;\\n min-width: 100%;\\n }\\n\\n .content-sidebar-left {\\n display: none;\\n }\\n\\n .content-sidebar-right {\\n display: none;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvbmV3cy9uZXdzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9uZXdzL25ld3MuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUU7RUFDRSxXQUFBO0VBQ0EsZUFBQTtBQ0RKO0FER0U7RUFDRSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBO0VBQ0EscUJBQUE7RUFDQSx1QkFBQTtFQUNBLHlCQUFBO1VBQUEsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtBQ0RKO0FES0U7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDSEo7QURNRTtFQUNFLDZCQUFBO0VBQ0EsZUFBQTtBQ0pKO0FES0k7RUFDRSxlQUFBO0FDSE47QURLSTtFQUNFLGlCQUFBO0FDSE47QURRQTtFQUNFLGlCQUFBO0FDTEY7QURRQTtFQUNFLHNCQUFBO0FDTEY7QURRQTtFQUNFLHFCQUFBO0FDTEY7QURRQTtFQUNFLHFCQUFBO0FDTEY7QURRQTtFQUNFLDJCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQ0xGO0FEUUE7RUFFRTtJQUNFLFlBQUE7SUFDQSxlQUFBO0VDTkY7O0VEU0E7SUFDRSxhQUFBO0VDTkY7O0VEU0E7SUFDRSxhQUFBO0VDTkY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL25ld3MvbmV3cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uZXdzLWNvbXBvbmVudCB7XG5cbiAgLm5ld3MtaXRlbS1jb250YWluZXIge1xuICAgIC1tcy1mbGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAubmV3cy1pbWctY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgIFxuICB9XG5cbiAgLm5ld3MtaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE4MHB4O1xuICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICB9XG5cbiAgLm5ld3MtaW5mbyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC5uZXdzLWRhdGUge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgICAubmV3cy10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cbn1cblxuLm1hbmFnZS10b3B7XG4gIHBhZGRpbmctdG9wOiA2cmVtO1xufVxuXG4uY2hlY2tib3gtaW52YWxpZCB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCByZWQ7XG59XG5cbi5pbnZhbGlkLXRleHR7XG4gIGNvbG9yOnJlZCAhaW1wb3J0YW50O1xufVxuXG5pbnZhbGlkLXRleHQgIGF7XG4gIGNvbG9yOnJlZCAhaW1wb3J0YW50O1xufVxuXG4uYnRuLXN1Y2Nlc3Mtc3Vic3tcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiAjMjMzYzY1O1xuICBjb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpe1xuICBcbiAgLmNvbnRlbnQtY29udGFpbmVye1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxuICAuY29udGVudC1zaWRlYmFyLWxlZnR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5jb250ZW50LXNpZGViYXItcmlnaHR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG59XG4iLCIubmV3cy1jb21wb25lbnQgLm5ld3MtaXRlbS1jb250YWluZXIge1xuICAtbXMtZmxleDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm5ld3MtY29tcG9uZW50IC5uZXdzLWltZy1jb250YWluZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDE4MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xufVxuLm5ld3MtY29tcG9uZW50IC5uZXdzLWltZyB7XG4gIG1heC13aWR0aDogMTgwcHg7XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xufVxuLm5ld3MtY29tcG9uZW50IC5uZXdzLWluZm8ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLm5ld3MtY29tcG9uZW50IC5uZXdzLWluZm8gLm5ld3MtZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5uZXdzLWNvbXBvbmVudCAubmV3cy1pbmZvIC5uZXdzLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5tYW5hZ2UtdG9wIHtcbiAgcGFkZGluZy10b3A6IDZyZW07XG59XG5cbi5jaGVja2JveC1pbnZhbGlkIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJlZDtcbn1cblxuLmludmFsaWQtdGV4dCB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuaW52YWxpZC10ZXh0IGEge1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tc3VjY2Vzcy1zdWJzIHtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiAjMjMzYzY1O1xuICBjb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNvbnRlbnQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmNvbnRlbnQtc2lkZWJhci1sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNvbnRlbnQtc2lkZWJhci1yaWdodCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufSJdfQ== */\"","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ToastrService } from \"ngx-toastr\";\n\nimport { ContentService } from \"../services/content.service\";\nimport { DateService } from \"../services/date.service\";\nimport { LanguageService } from \"../services/language.service\";\n\n@Component({\n selector: \"app-news\",\n templateUrl: \"./news.component.html\",\n styleUrls: [\"./news.component.scss\"],\n})\nexport class NewsComponent implements OnInit {\n content: any;\n title: any;\n prefixedDa: any;\n subscriptionPrefix = \"/subscriptionform\";\n currentLang: string = null;\n subscriberForm: FormGroup;\n subSubmitted:boolean = false;\n unSubSubmitted:boolean = false;\n\n constructor(\n private contentService: ContentService,\n private languageService: LanguageService,\n private router: Router,\n private formBuilder: FormBuilder,\n public dateService: DateService,\n private _toastr: ToastrService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {\n this.subscriberForm = this.formBuilder.group({\n email:['',[Validators.required, Validators.email,Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$')]],\n isTermsAccepted:[false]\n });\n\n if (!this.contentService.getContent()) {\n this.contentService.onContentEventLoaded().subscribe((any) => {\n this.setup();\n });\n this.contentService.loadPublichedContent();\n } else {\n this.setup();\n }\n }\n\n get f(){\n return this.subscriberForm.controls\n }\n\n setup() {\n this.content = this.contentService.getContent();\n this.content.prefixes.forEach((element) => {\n if (element.prefix === this.currentLang+\"/news\") {\n this.prefixedDa = element.articles;\n element.elements.forEach((element) => {\n if (element.shortName == \"newslist_title\") {\n this.title = element.text1;\n }\n });\n }\n });\n this.prefixedDa.sort((val1, val2) => {\n return val2.createdAt > val1.createdAt ? 1 : -1;\n });\n }\n\n onSelect(article) {\n // console.log(article.shortName);\n this.router.navigateByUrl(this.currentLang+\"/news/\" + article.shortName);\n }\n/* -----SUBSCRIBE---------- */\n subscribe(){\n this.subSubmitted = true;\n this.unSubSubmitted = false;\n let data = this.subscriberForm.value;\n if(this.subscriberForm.invalid || !data.isTermsAccepted){\n return;\n }\n \n let subscriberObj = {\n email : data.email\n }\n\n this.contentService.subscribe(subscriberObj).subscribe(res=>{\n this._toastr.success( this.getText(this.subscriptionPrefix, \"subscription_successfull_msg\"));\n },err=>{\n\n this._toastr.error(this.getText(this.subscriptionPrefix, \"subscription_unsuccessfull_msg\"));\n })\n }\n/* -----UN-SUBSCRIBE---------- */\n unSubscribe(){\n this.unSubSubmitted = true;\n this.subSubmitted = false; \n let data = this.subscriberForm.value;\n if(this.subscriberForm.invalid){\n return;\n }\n let subscriberObj = {\n email : data.email\n }\n\n this.contentService.unSubscribe(subscriberObj).subscribe(res=>{\n this._toastr.success( this.getText(this.subscriptionPrefix, \"subscription_unsubscribe_success_msg\"));\n },err=>{\n this._toastr.error(this.getText(this.subscriptionPrefix, \"subscription_unsubscribe_fail_msg\"));\n })\n }\n\n getText(prefix: string, shortName: string) {\n return (this.content = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getBodyText(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(this.currentLang + prefix, shortName);\n }\n\n}\n","export class PlanInfo {\n planversionId: string;\n planversionName: string;\n planversionName_en:string;\n planversionType: string;\n title: string;\n descriptionTexts: any;\n consultationStart: string;\n consultationEnd: string;\n effectiveDate: string;\n status: string;\n historic: boolean;\n styleType: string;\n name: string;\n type?: string;\n}\n","import { PlanInfo } from \"./planInfo\";\nexport class ZoneFeature {\n refId: string;\n zoneType: string =\"\";\n forkortels: string;\n layerName: string;\n planInfo: PlanInfo;\n geometry: JSON;\n}\n","export default \".search-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n}\\n\\n.search-header {\\n margin: 2em 0 1em;\\n}\\n\\n.draw-header {\\n margin: 2em 0 1em;\\n}\\n\\n#draw-button {\\n background-color: #233c65;\\n}\\n\\n.search-hearings-container {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-pack: justify;\\n justify-content: space-between;\\n}\\n\\n.has-search {\\n position: relative;\\n width: 100%;\\n /* min-width: 450px;*/\\n}\\n\\n.has-search .form-control {\\n padding-right: 2.375em;\\n}\\n\\n.has-search .form-control-feedback {\\n position: absolute;\\n z-index: 2;\\n display: block;\\n width: 2.375em;\\n height: 2.375em;\\n line-height: 2.375em;\\n text-align: center;\\n color: #aaa;\\n right: 0;\\n}\\n\\n#ngb-typeahead-0 {\\n margin-top: 48px;\\n}\\n\\n.has-search .dropdown-item {\\n border-bottom: 1px solid #cecece;\\n color: #233c65;\\n white-space: normal;\\n}\\n\\n.has-search .dropdown-item:hover {\\n background-color: #cecece;\\n cursor: pointer;\\n}\\n\\n.search-result-tabs {\\n border-bottom: 0px solid #cecece;\\n display: inline-block;\\n}\\n\\n.search-result-tabs > .btn {\\n color: #233c65;\\n}\\n\\n.active {\\n font-weight: 700 !important;\\n color: green;\\n}\\n\\n.search-mode-tabs {\\n border-bottom: 0px solid #cecece;\\n display: inline-block;\\n margin-bottom: 4px;\\n}\\n\\n.search-mode-tabs > .btn {\\n color: #233c65;\\n}\\n\\n.drawtoolguidebox h4 {\\n color: #233c65;\\n}\\n\\n.drawtoolguidebox {\\n color: #212529;\\n}\\n\\n.no-search-results-wrapper {\\n width: 100%;\\n text-align: center;\\n color: grey;\\n}\\n\\n.textOverlap {\\n word-wrap: break-word;\\n word-spacing: 15% !important;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .search-container {\\n width: calc(100vw - 2.5em);\\n }\\n\\n #hide-in-mobile {\\n display: none !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDBCQUFBO0VBQ0EsMEJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNFLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFFQSxXQUFBO0VBQ0EsUUFBQTtBQ0FGOztBREdBO0VBQ0UsZ0JBQUE7QUNBRjs7QURHQTtFQUNFLGdDQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0FDQUY7O0FER0E7RUFDRSx5QkFBQTtFQUNBLGVBQUE7QUNBRjs7QURHQTtFQUNFLGdDQUFBO0VBQ0EscUJBQUE7QUNBRjs7QURHQTtFQUNFLGNBQUE7QUNBRjs7QURHQTtFQUNFLDJCQUFBO0VBQ0EsWUFBQTtBQ0FGOztBREdBO0VBQ0UsZ0NBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0FDQUY7O0FER0E7RUFDRSxjQUFBO0FDQUY7O0FER0E7RUFDRSxjQUFBO0FDQUY7O0FER0E7RUFDRSxjQUFBO0FDQUY7O0FESUE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0FDREY7O0FESUE7RUFDRSxxQkFBQTtFQUNBLDRCQUFBO0FDREY7O0FESUE7RUFDRTtJQUNFLDBCQUFBO0VDREY7O0VER0E7SUFDRSx3QkFBQTtFQ0FGO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNlYXJjaC1jb250YWluZXIge1xuICBwYWRkaW5nOiAzZW0gNGVtIDNlbSAyLjVlbTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNlYXJjaC1oZWFkZXIge1xuICBtYXJnaW46IDJlbSAwIDFlbTtcbn1cblxuLmRyYXctaGVhZGVyIHtcbiAgbWFyZ2luOiAyZW0gMCAxZW07XG59XG5cbiNkcmF3LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzNjNjU7XG59XG5cbi5zZWFyY2gtaGVhcmluZ3MtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uaGFzLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8qIG1pbi13aWR0aDogNDUwcHg7Ki9cbn1cblxuLmhhcy1zZWFyY2ggLmZvcm0tY29udHJvbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuMzc1ZW07XG59XG5cbi5oYXMtc2VhcmNoIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMi4zNzVlbTtcbiAgaGVpZ2h0OiAyLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvL3BvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogI2FhYTtcbiAgcmlnaHQ6IDA7XG59XG5cbiNuZ2ItdHlwZWFoZWFkLTAge1xuICBtYXJnaW4tdG9wOiA0OHB4O1xufVxuXG4uaGFzLXNlYXJjaCAuZHJvcGRvd24taXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2VjZWNlO1xuICBjb2xvcjogIzIzM2M2NTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmhhcy1zZWFyY2ggLmRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2VjZWNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWFyY2gtcmVzdWx0LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAwcHggc29saWQgI2NlY2VjZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2VhcmNoLXJlc3VsdC10YWJzID4gLmJ0biB7XG4gIGNvbG9yOiAjMjMzYzY1O1xufVxuXG4uYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogZ3JlZW47XG59XG5cbi5zZWFyY2gtbW9kZS10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkICNjZWNlY2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uc2VhcmNoLW1vZGUtdGFicyA+IC5idG4ge1xuICBjb2xvcjogIzIzM2M2NTtcbn1cblxuLmRyYXd0b29sZ3VpZGVib3ggaDQge1xuICBjb2xvcjogIzIzM2M2NTtcbn1cblxuLmRyYXd0b29sZ3VpZGVib3gge1xuICBjb2xvcjogIzIxMjUyOTtcbn1cblxuXG4ubm8tc2VhcmNoLXJlc3VsdHMtd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiBncmV5O1xufVxuXG4udGV4dE92ZXJsYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtc3BhY2luZzogMTUlICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNlYXJjaC1jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMi41ZW0pO1xuICB9XG4gICNoaWRlLWluLW1vYmlsZXtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi5zZWFyY2gtY29udGFpbmVyIHtcbiAgcGFkZGluZzogM2VtIDRlbSAzZW0gMi41ZW07XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWFyY2gtaGVhZGVyIHtcbiAgbWFyZ2luOiAyZW0gMCAxZW07XG59XG5cbi5kcmF3LWhlYWRlciB7XG4gIG1hcmdpbjogMmVtIDAgMWVtO1xufVxuXG4jZHJhdy1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzYzY1O1xufVxuXG4uc2VhcmNoLWhlYXJpbmdzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmhhcy1zZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBtaW4td2lkdGg6IDQ1MHB4OyovXG59XG5cbi5oYXMtc2VhcmNoIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjM3NWVtO1xufVxuXG4uaGFzLXNlYXJjaCAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIuMzc1ZW07XG4gIGhlaWdodDogMi4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzc1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNhYWE7XG4gIHJpZ2h0OiAwO1xufVxuXG4jbmdiLXR5cGVhaGVhZC0wIHtcbiAgbWFyZ2luLXRvcDogNDhweDtcbn1cblxuLmhhcy1zZWFyY2ggLmRyb3Bkb3duLWl0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NlY2VjZTtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5oYXMtc2VhcmNoIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NlY2VjZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc2VhcmNoLXJlc3VsdC10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkICNjZWNlY2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnNlYXJjaC1yZXN1bHQtdGFicyA+IC5idG4ge1xuICBjb2xvcjogIzIzM2M2NTtcbn1cblxuLmFjdGl2ZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgY29sb3I6IGdyZWVuO1xufVxuXG4uc2VhcmNoLW1vZGUtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCAjY2VjZWNlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnNlYXJjaC1tb2RlLXRhYnMgPiAuYnRuIHtcbiAgY29sb3I6ICMyMzNjNjU7XG59XG5cbi5kcmF3dG9vbGd1aWRlYm94IGg0IHtcbiAgY29sb3I6ICMyMzNjNjU7XG59XG5cbi5kcmF3dG9vbGd1aWRlYm94IHtcbiAgY29sb3I6ICMyMTI1Mjk7XG59XG5cbi5uby1zZWFyY2gtcmVzdWx0cy13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IGdyZXk7XG59XG5cbi50ZXh0T3ZlcmxhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1zcGFjaW5nOiAxNSUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2VhcmNoLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyLjVlbSk7XG4gIH1cblxuICAjaGlkZS1pbi1tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufSJdfQ== */\"","import {Component, ElementRef, OnInit, ViewChild, ViewEncapsulation} from \"@angular/core\";\nimport {ActivatedRoute} from \"@angular/router\";\nimport {PlandataService} from \"../services/plandata.service\";\nimport {MapService} from \"../services/map.service\";\nimport {RoutingService} from \"../services/routing.service\";\nimport GeoJSON from \"ol/format/GeoJSON\";\nimport Feature from \"ol/Feature\";\nimport { transform } from 'ol/proj';\nimport {ZoneFeature} from \"../plandataDefinition/zoneFeature\";\nimport {ContentService} from \"../services/content.service\";\nimport {Subject, Subscription} from \"rxjs\";\nimport MultiPoint from \"ol/geom/MultiPoint\";\nimport MultiLineString from \"ol/geom/MultiLineString\";\nimport MultiPolygon from \"ol/geom/MultiPolygon\";\nimport {DateService} from \"../services/date.service\";\nimport Geometry from \"ol/geom/Geometry\";\nimport intersect from \"@turf/intersect\";\nimport lineintersect from \"@turf/line-intersect\";\nimport {LanguageService} from \"../services/language.service\";\nimport {debounceTime, distinctUntilChanged} from 'rxjs/operators';\nimport GeometryType from \"ol/geom/GeometryType\";\n\nconst regExpGeoPoint: RegExp = /^(\\d*(\\,?\\d*)?) (\\d*(\\,?\\d*)?)$/;\nconst regExpLatLongPoint: RegExp = /^(\\d*(\\.?\\d*)?) (\\d*(\\.?\\d*)?)$/;\nconst regExpLatLongPointDotComma: RegExp = /^(\\d*(\\.?\\d*)?) (\\d*(\\,?\\d*)?)$/;\nconst regExpLatLongPointCommaDot: RegExp = /^(\\d*(\\,?\\d*)?) (\\d*(\\.?\\d*)?)$/;\n\n@Component({\n selector: \"app-search\",\n templateUrl: \"./search.component.html\",\n styleUrls: [\"./search.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SearchComponent implements OnInit {\n private subscriptions: Subscription[] = new Array();\n\n\n\n searchPrefix = \"/plan/search\";\n // tabsPrefix = \"da/plan/tabs\";\n searchResultType: any = 0;\n searchMode: number = 0;\n isSearchResultVisible: boolean;\n isDrawToolVisible = false;\n term: string;\n results: any;\n content: any;\n searchDa: any;\n title: any;\n textSearch: any;\n drawText: any;\n drawButton: any;\n isHistoric = false;\n currentLang: string = null;\n searchTypeGeo:string = '1';\n\n searchInput : Subject = new Subject();\n\n constructor(\n private planService: PlandataService,\n private languageService: LanguageService,\n private mapService: MapService,\n private route: ActivatedRoute,\n private routeService: RoutingService,\n private contentService: ContentService,\n public dateService: DateService,\n private activatedRoute: ActivatedRoute\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n this.isSearchResultVisible = false;\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnInit() {\n this.results = [];\n this.isSearchResultVisible = false;\n let me = this;\n\n if (!this.mapService.isMapLoaded()) {\n this.mapService.onMapReady().subscribe((status) => {\n me.mapService.clearSelectedFeatures(\"ALL\");\n me.mapService.selectEnabled = false;\n this.checkSearchTerm();\n });\n } else {\n me.mapService.clearSelectedFeatures(\"ALL\");\n me.mapService.selectEnabled = false;\n this.checkSearchTerm();\n }\n\n this.isHistoric = this.planService.isHistoryMap();\n\n this.searchInput.pipe(debounceTime(300),distinctUntilChanged()).subscribe(value =>{\n this.search();\n });\n\n this.subscriptions.push(\n this.mapService.changeMarkingsSubject.subscribe((isEnabled) => {\n this.search();\n })\n );\n\n }\n\n searchInputValueChanged(event){\n this.searchInput.next(event);\n }\n\n checkSearchTerm() {\n if (this.route.snapshot.queryParamMap.get(\"coordinates\")) {\n this.term = this.route.snapshot.queryParamMap.get(\"coordinates\");\n this.searchMode = 1;\n this.searchWithGeoPoint();\n }\n if (this.route.snapshot.queryParamMap.get(\"text\")) {\n this.term = this.route.snapshot.queryParamMap.get(\"text\");\n this.searchMode = 0;\n this.searchWithTextTerm();\n }\n if(this.mapService.searchMode > 0){\n this.searchMode = this.mapService.searchMode;\n }\n if(this.mapService.searchText){\n this.term = this.mapService.searchText;\n this.search();\n }\n }\n\n getText(prefix: string, shortName: string) {\n return (this.content = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n onClick() {\n if (!this.isDrawToolVisible) {\n this.activateDrawOnMapToolbox();\n this.isDrawToolVisible = true;\n } else {\n this.deactivateDrawOnMapToolbox();\n this.isDrawToolVisible = false;\n }\n }\n\n search = () => {\n if (this.searchMode != 1) {\n this.mapService.clearSelectedFeatures(\"ALL\");\n }\n\n if (!this.term || this.term.trim().length === 0) {\n this.clear();\n return;\n }\n\n this.mapService.searchMode = this.searchMode;\n this.mapService.searchText = this.term;\n if (this.searchMode == 1) {\n if(this.searchTypeGeo == '1'){\n this.searchWithGeoLatLonPoint();\n }else if(this.searchTypeGeo == '2'){\n this.searchWithGeoPoint();\n }\n } else {\n this.searchWithTextTerm();\n }\n\n this.loadSearchResultList();\n };\n\n onSearchTypeChange = () => {\n this.clear();\n\n if (this.searchMode == 2) {\n this.activateDrawOnMapToolbox();\n this.isDrawToolVisible = true;\n } else {\n this.deactivateDrawOnMapToolbox();\n this.isDrawToolVisible = false;\n }\n };\n\n getHTML(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n clear = () => {\n this.term = \"\";\n this.results = {};\n this.isSearchResultVisible = false;\n this.mapService.searchText = null;\n this.mapService.clearSelectedFeatures(\"ALL\");\n };\n\n isTermEmpty = () => {\n return !this.term;\n };\n\n onResultHover = (zone: any) => {\n if (zone) {\n this.mapService.showSelectedHearingGeometry(zone.geometry);\n } else {\n this.mapService.clearSelectedFeatures(\"MAPSEARCH\");\n }\n };\n\n goToZoneDetails = (zone: any) => {\n this.mapService.clearSelectedFeatures(\"ALL\");\n this.deactivateDrawOnMapToolbox();\n let timeLineIdx = this.planService.currentTimeLineIndex;\n let path =\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zone.planInfo.planversionId +\n \"/\" +\n zone.layerName +\n \"/\" +\n zone.refId +\n \"?timeLineIdx=\" +\n timeLineIdx;\n this.routeService.changeRoutePath(path);\n };\n\n private searchWithTextTerm() {\n this.results = this.filterPlanVersion(this.term.toLowerCase());\n this.isSearchResultVisible = true;\n this.mapService.setTerm(this.searchMode + \"-\" + this.term);\n }\n\n private searchWithGeoPoint() {\n this.mapService.clearSelectedFeatures(\"ALL\");\n\n if (!this.term) {\n this.results = [];\n this.isSearchResultVisible = false;\n return;\n }\n\n let coordinates = this.extractGeoPointFrom(this.term.trim());\n if (coordinates && coordinates.length == 2) {\n this.mapService.addIconMarker(coordinates);\n let geoTerm = {\n type: \"MultiPoint\",\n coordinates: [[coordinates[0], coordinates[1]]],\n };\n this.geoFilterPlanVersion(geoTerm);\n this.mapService.setTerm(this.searchMode + \"-\" + this.term);\n this.loadSearchResultList();\n } else {\n this.results = [];\n this.isSearchResultVisible = true;\n }\n }\n\n private searchWithGeoLatLonPoint(){\n this.mapService.clearSelectedFeatures(\"ALL\");\n if (!this.term) {\n this.results = [];\n this.isSearchResultVisible = false;\n return;\n }\n\n let coordinates = this.extractLatLongPointFrom(this.term.trim());\n\n if(!coordinates || (coordinates && coordinates.length < 2)){\n return;\n }\n var lon_lat = transform(coordinates,'EPSG:4326', 'EPSG:25832');\n coordinates = lon_lat;\n if (coordinates && coordinates.length == 2) {\n this.mapService.addIconMarker(coordinates);\n let geoTerm = {\n type: \"MultiPoint\",\n coordinates: [[coordinates[0], coordinates[1]]],\n };\n this.geoFilterPlanVersion(geoTerm);\n this.mapService.setTerm(this.searchMode + \"-\" + this.term);\n } else {\n this.results = [];\n this.isSearchResultVisible = true;\n }\n }\n\n private filterPlanVersion = (term: string) => {\n\n // zones from approved\n const approvedPlanVersions = this.planService.currentPublishedLayers\n ///.filter((layer) => Object.keys(DefaultLayerTypeEnum).indexOf(layer.name) >= 0)\n .filter(this.nonSearchableLayer)\n .map((layer) => {\n return {\n planversionId: layer.planversionId,\n status: layer.status,\n layerName: layer.name,\n consultationStart: layer.consultationStart,\n consultationEnd: layer.consultationEnd,\n };\n });\n\n\n // zones from approved\n const consultationPlanVersions = this.planService.currentConsultationLayers\n //.filter((layer) => Object.keys(DefaultLayerTypeEnum).indexOf(layer.name) >= 0)\n .filter(this.nonSearchableLayer)\n .map((layer) => {\n return {\n planversionId: layer.planversionId,\n status: layer.status,\n layerName: layer.name,\n consultationStart: layer.consultationStart,\n consultationEnd: layer.consultationEnd,\n };\n });\n\n\n let results = {\n approved: this.filterZoneFromPlanversions(\n approvedPlanVersions,\n term.toLowerCase()\n ),\n consultations: this.filterZoneFromPlanversions(\n consultationPlanVersions,\n term.toLowerCase()\n ),\n };\n\n return results;\n };\n\n private filterZoneFromPlanversions = (planVersions: any[], term: string) => {\n if (!planVersions) {\n return [];\n }\n\n let results = [];\n planVersions.forEach((planVersion) => {\n const planVersionId = planVersion.planversionId;\n let zones = this.mapService.getZoneFeaturesAllForByLayer(\n planVersion.layerName,\n planVersionId\n );\n if (!zones) {\n return;\n }\n\n let a = 0;\n zones\n .filter(this.nonSearchableLayer)\n .forEach((z) => {\n a++;\n if (this.filterZone(z, planVersionId, term)) {\n results.push({\n ...z,\n title: this.getZoneTitle(z),\n consultationStart: planVersion.consultationStart,\n consultationEnd: planVersion.consultationEnd,\n });\n }\n });\n });\n\n return results;\n };\n\n private filterZone = (zone: any, planVersionId: string, term: string) => {\n\n console.log(\"zone to filter: \" + JSON.stringify(zone, null, 3));\n\n let zonesFoundByLawTextFilter = this.filterByLawText(zone, planVersionId, term);\n let zonesFoundByZoneTypeFilter = this.filterByZoneType(zone, term);\n let zonesFoundByZoneNameFilter = this.filterByZoneName(zone, term);\n let zonesFoundByZoneRefIdFilter = this.filterByZoneRefId(zone, term)\n return (\n zonesFoundByLawTextFilter ||\n zonesFoundByZoneTypeFilter ||\n zonesFoundByZoneNameFilter ||\n zonesFoundByZoneRefIdFilter\n );\n };\n\n private filterByLawText = (\n zone: any,\n planVersionId: string,\n term: string\n ) => {\n const zoneLawText = this.planService.getLawstextByZoneId(\n zone.refId,\n planVersionId,\n zone.planInfo.status,\n this.currentLang\n );\n if (this.containsTerm(zoneLawText, term)) {\n return true;\n }\n\n if (!zone.zoneType || zone.zoneType.length == 0) {\n return false;\n }\n\n for (let i = 0; i < zone.zoneType.length; i++) {\n let zoneTypeLawText = this.planService.getLawstextByZoneType(\n zone.zoneType[i],\n planVersionId,\n zone.planInfo.status,\n this.currentLang\n );\n if (this.containsTerm(zoneTypeLawText, term)) {\n return true;\n }\n }\n\n return false;\n };\n\n private filterByZoneType = (zone: any, term: string) => {\n if (!zone.zoneType) {\n return false;\n }\n\n for (let i = 0; i < zone.zoneType.length; i++) {\n if (this.containsTerm(zone.zoneType[i], term)) {\n return true;\n }\n }\n\n return false;\n };\n\n private filterByZoneName = (zone: any, term: string) => {\n const name = this.getZoneTitle(zone);\n return this.containsTerm(name, term);\n };\n\n private filterByZoneRefId = (zone: any, term: string) => {\n return this.containsTerm(zone.refId, term);\n };\n\n private containsTerm = (text0: any, term: string) => {\n let text = text0 instanceof String ? text0 : text0 + \"\";\n return text && text.toLowerCase().indexOf(term) > -1;\n };\n\n getZoneTitle(zone: any) {\n return [this.planService.getNameForZoneType(zone)];\n }\n\n private activateDrawOnMapToolbox() {\n this.mapService.clearSelectedFeatures(\"ALL\");\n this.mapService.activeDrawingTool([\"POINT\", \"POLYLINE\", \"POLYGON\"]);\n const me = this;\n this.mapService.setGeometryDrawingCallback(function (drawnGeoJson) {\n me.geoFilterPlanVersion(drawnGeoJson);\n me.loadSearchResultList();\n });\n }\n\n private deactivateDrawOnMapToolbox() {\n this.mapService.deactivateDrawingTool(false);\n this.mapService.setGeometryDrawingCallback(() => {});\n this.term = \"\";\n this.isSearchResultVisible = false;\n }\n\n private geoFilterPlanVersion = (geojsonTerm) => {\n if (geojsonTerm === \"{}\") {\n //Do nothing\n return;\n }\n\n // zones from approved\n const approvedPlanVersions = this.planService.currentPublishedLayers\n //.filter((layer) => Object.keys(DefaultLayerTypeEnum).indexOf(layer.name) >= 0)\n .map((layer) => {\n return {\n planversionId: layer.planversionId,\n status: layer.status,\n layerName: layer.name,\n consultationStart: layer.consultationStart,\n consultationEnd: layer.consultationEnd,\n };\n });\n\n // zones from approved\n const consultationPlanVersions = this.planService.currentConsultationLayers\n //.filter((layer) => Object.keys(DefaultLayerTypeEnum).indexOf(layer.name) >= 0)\n .map((layer) => {\n return {\n planversionId: layer.planversionId,\n status: layer.status,\n layerName: layer.name,\n consultationStart: layer.consultationStart,\n consultationEnd: layer.consultationEnd,\n };\n });\n\n this.results = {\n approved: this.searchZonesInPlanVersionsThatIntersectWith(\n approvedPlanVersions,\n geojsonTerm\n ),\n consultations: this.searchZonesInPlanVersionsThatIntersectWith(\n consultationPlanVersions,\n geojsonTerm\n ),\n };\n\n this.isSearchResultVisible = true;\n };\n\n private searchZonesInPlanVersionsThatIntersectWith(\n planVersions: any[],\n geojsonTerm: string\n ): any[] {\n const termFeature: Feature = new GeoJSON().readFeature(geojsonTerm);\n const termGeo: Geometry = termFeature.getGeometry();\n let type = termGeo.getType();\n switch (type) {\n case \"MultiPoint\":\n var multiPoint = termGeo;\n if (multiPoint && multiPoint.getPoints().length > 0) {\n return this.searchByPoint(\n planVersions,\n multiPoint.getPoint(0).getCoordinates()\n );\n }\n break;\n case \"MultiLineString\":\n var multiLineString = termGeo;\n if (multiLineString && multiLineString.getLineStrings().length > 0) {\n return this.searchByLine(planVersions, multiLineString);\n }\n break;\n case \"MultiPolygon\":\n var multiPolygon = termGeo;\n if (multiPolygon && multiPolygon.getPolygons().length > 0) {\n return this.searchByArea(planVersions, multiPolygon);\n }\n break;\n default:\n return [];\n }\n }\n\n private searchByPoint(planVersions: any, coordinats: any[]): any[] {\n let foundZones = [];\n planVersions\n .filter(this.nonSearchableLayer)\n .forEach((planVersion) => {\n console.log(\"analyzing planVersion: \" + JSON.stringify(planVersion, null, 3));\n let planVersionZones: ZoneFeature[] = this.mapService.getZoneFeaturesAllForByLayer(\n planVersion.layerName,\n planVersion.planversionId\n );\n for (let i = 0; i < planVersionZones.length; i++) {\n let zoneFeature: Feature = new GeoJSON().readFeature(\n planVersionZones[i].geometry\n );\n if (\n zoneFeature.getGeometry().containsXY(coordinats[0], coordinats[1])\n ) {\n foundZones.push({\n ...planVersionZones[i],\n title: this.getZoneTitle(\n planVersionZones[i]\n ),\n });\n }\n }\n });\n return foundZones;\n }\n\n private searchByLine(planVersions: any, line: MultiLineString) {\n let foundZones = [];\n let compareGeom: Geometry = this.mapService.transformatToFromProjection(\n line,\n \"EPSG:25832\",\n \"EPSG:4326\"\n );\n let compareMultiLineString: MultiLineString = compareGeom;\n let fetureCompare1 = new Feature({\n geometry: compareMultiLineString.getLineString(0),\n name: \"firstPolygon\",\n });\n var geoJsonMultiLinestring1 = new GeoJSON().writeFeatureObject(\n fetureCompare1\n );\n planVersions\n .filter(this.nonSearchableLayer)\n .forEach((planVersion) => {\n let planVersionZones: ZoneFeature[] = this.mapService.getZoneFeaturesAllForByLayer(\n planVersion.layerName,\n planVersion.planversionId\n );\n for (let i = 0; i < planVersionZones.length; i++) {\n let zoneFeature: Feature = new GeoJSON().readFeature(\n planVersionZones[i].geometry\n );\n let comparePolygon2: MultiPolygon = (\n this.mapService.transformatToFromProjection(\n zoneFeature.getGeometry(),\n \"EPSG:25832\",\n \"EPSG:4326\"\n )\n );\n\n let featureCompare2;\n if (comparePolygon2.getType() === GeometryType.MULTI_POLYGON) {\n featureCompare2 = new Feature({\n geometry: comparePolygon2.getPolygon(0),\n name: \"secondPolygon\",\n });\n } else if (comparePolygon2.getType() === GeometryType.POLYGON) {\n featureCompare2 = new Feature({\n geometry: comparePolygon2,\n name: \"secondPolygon\",\n });\n }\n\n var poly2 = new GeoJSON().writeFeatureObject(featureCompare2);\n var resultLines = lineintersect(geoJsonMultiLinestring1, poly2);\n if (resultLines.features.length > 0) {\n foundZones.push({\n ...planVersionZones[i],\n title: this.getZoneTitle(\n planVersionZones[i]\n ),\n });\n }\n }\n });\n return foundZones;\n }\n\n private searchByArea(planVersions: any, area: MultiPolygon): any[] {\n let foundZones = [];\n let compareGeom: Geometry = this.mapService.transformatToFromProjection(\n area,\n \"EPSG:25832\",\n \"EPSG:4326\"\n );\n let comparePolygon: MultiPolygon = compareGeom;\n let fetureCompare1 = new Feature({\n geometry: comparePolygon.getPolygon(0),\n name: \"firstPolygon\",\n });\n var geoJsonPolygon1 = new GeoJSON().writeFeatureObject(fetureCompare1);\n planVersions\n .filter(this.nonSearchableLayer)\n .forEach((planVersion) => {\n let planVersionZones: ZoneFeature[] = this.mapService.getZoneFeaturesAllForByLayer(\n planVersion.layerName,\n planVersion.planversionId\n );\n for (let i = 0; i < planVersionZones.length; i++) {\n let zoneFeature: Feature = new GeoJSON().readFeature(\n planVersionZones[i].geometry\n );\n let comparePolygon2: MultiPolygon = (\n this.mapService.transformatToFromProjection(\n zoneFeature.getGeometry(),\n \"EPSG:25832\",\n \"EPSG:4326\"\n )\n );\n\n let featureCompare2;\n if (comparePolygon2.getType() === GeometryType.MULTI_POLYGON) {\n featureCompare2 = new Feature({\n geometry: comparePolygon2.getPolygon(0),\n name: \"secondPolygon\",\n });\n } else if (comparePolygon2.getType() === GeometryType.POLYGON) {\n featureCompare2 = new Feature({\n geometry: comparePolygon2,\n name: \"secondPolygon\",\n });\n }\n\n var poly2 = new GeoJSON().writeFeatureObject(featureCompare2);\n try {\n if (\n intersect(geoJsonPolygon1, poly2) ||\n intersect(poly2, geoJsonPolygon1)\n ) {\n foundZones.push({\n ...planVersionZones[i],\n title: this.getZoneTitle(\n planVersionZones[i]\n ),\n });\n }\n } catch (e) {console.log(e); console.log(\"for zone =\"+JSON.stringify( planVersionZones[i]));}\n }\n });\n return foundZones;\n }\n\n private extractGeoPointFrom(term: string) {\n let coordinates = regExpGeoPoint.exec(term);\n if (coordinates) {\n return [\n parseFloat(coordinates[1].replace(\",\", \".\")),\n parseFloat(coordinates[3].replace(\",\", \".\")),\n ];\n }\n return null;\n }\n\n private extractLatLongPointFrom(term: string) {\n let coordinates = regExpGeoPoint.exec(term) || regExpLatLongPoint.exec(term) || regExpLatLongPointDotComma.exec(term) || regExpLatLongPointCommaDot.exec(term);\n if (coordinates) {\n return [\n this.getFornatedLatLong(coordinates[3]),\n this.getFornatedLatLong(coordinates[1]),\n ];\n }\n return null;\n }\n\n getFornatedLatLong(value){\n if(value.indexOf('.') > 0){\n return parseFloat(value);\n }else{\n return parseFloat(value.replace(\",\", \".\"))\n }\n }\n\n // infinite scroll handling\n currentSearchResult: any = [];\n sum: number;\n throttle: number = 100;\n scrollDistance: number = 2;\n @ViewChild(\"searchResultContainer\", {read: ElementRef, static: false}) searchResultContainerRef: ElementRef\n\n loadSearchResultList() {\n this.currentSearchResult= [];\n this.sum = 60;\n this.addItems(0, this.sum);\n if (this.searchResultContainerRef && this.searchResultContainerRef.nativeElement && this.searchResultContainerRef.nativeElement.scrollTop) {\n this.searchResultContainerRef.nativeElement.scrollTop = 0;\n }\n }\n\n onScrollDown() {\n const startIndex = this.sum;\n this.sum += 20;\n this.addItems(startIndex, this.sum);\n }\n\n addItems(startIndex: number, endIndex: number) {\n if (this.results != null && this.results != null) {\n let i = startIndex;\n\n let idxA = 0;\n if (this.results.approved && (this.searchResultType === 0 || this.searchResultType === 1))\n idxA = this.results.approved.length\n let idxB = idxA;\n if (this.results.consultations && (this.searchResultType === 0 || this.searchResultType === 2))\n idxB += this.results.consultations.length;\n\n while (i < endIndex) {\n if (i < idxA) {\n let result = this.results.approved[i];\n this.currentSearchResult.push(result);\n }\n else if (i < idxB) {\n let j = i - idxA\n let result = this.results.consultations[j];\n this.currentSearchResult.push(result);\n }\n else {\n i = endIndex;\n }\n i++;\n }\n }\n }\n\n\n onSearchResultTypeChange = () => {\n this.loadSearchResultList();\n };\n\n nonSearchableLayer = (layer) => {\n return layer.layerName != \"removed\" && layer.layerName != \"changed\";\n }\n\n}\n","export default \".service-layers-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n position: relative;\\n overflow-x: visible !important;\\n}\\n\\n.layers-button {\\n position: absolute;\\n margin: 0.5rem 3px 0;\\n background: white;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n color: #666;\\n border-radius: 49%;\\n font-weight: 400;\\n bottom: 90px;\\n right: 8px;\\n z-index: 1;\\n width: 31.35px;\\n height: 31.35px;\\n cursor: pointer;\\n display: block;\\n text-align: center;\\n}\\n\\n.layers-button img {\\n width: 60%;\\n}\\n\\n.layers-message {\\n bottom: 35px;\\n left: 10px;\\n position: absolute;\\n border-radius: 3px;\\n background: white;\\n box-shadow: 0 0 4px 0px #b1b1b1;\\n color: #666;\\n font-weight: 400;\\n z-index: 1;\\n display: block;\\n}\\n\\n.layers-message img {\\n width: 60%;\\n}\\n\\n.layers-message label {\\n margin-bottom: 0;\\n padding-left: 5px;\\n padding-right: 5px;\\n color: black;\\n font-size: 17px;\\n}\\n\\n.square {\\n background-color: #fff;\\n margin-left: 4px;\\n margin-top: -2px;\\n border: 0.5px solid;\\n margin-bottom: 5px;\\n}\\n\\n.square-size {\\n width: 15px;\\n height: 15px;\\n margin-left: 17px;\\n}\\n\\nimg.square-size.square {\\n margin-left: 4px;\\n}\\n\\n#metadatIcon {\\n width: 15px;\\n height: 15px;\\n margin-top: -2px;\\n cursor: pointer;\\n}\\n\\n.header {\\n color: #233c65;\\n font-size: 18px;\\n font-weight: 700;\\n}\\n\\n.group-label {\\n color: #233c65;\\n font-size: 14px;\\n font-weight: 700;\\n cursor: pointer;\\n}\\n\\n.intro {\\n word-wrap: break-word;\\n font-size: 1rem !important;\\n margin: 16px 0px !important;\\n max-height: 45vh;\\n overflow-y: auto;\\n}\\n\\n@media screen and (max-width: 800px) {\\n #s-screen {\\n width: 122px;\\n margin-right: 74%;\\n }\\n}\\n\\n.service-legends-wapper {\\n overflow-y: auto;\\n height: 100%;\\n padding-bottom: 10rem;\\n -ms-overflow-style: none;\\n /* IE and Edge */\\n scrollbar-width: none;\\n /* Firefox */\\n}\\n\\n.service-legends-wapper::-webkit-scrollbar {\\n display: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvc2VydmljZS1sYXllcnMvc2VydmljZS1sYXllcnMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NlcnZpY2UtbGF5ZXJzL3NlcnZpY2UtbGF5ZXJzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsMEJBQUE7RUFDQSwwQkFBQTtFQUVBLGtCQUFBO0VBQ0EsOEJBQUE7QUNGRjs7QURLQTtFQUNFLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLCtCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNGRjs7QURJRTtFQUNFLFVBQUE7QUNGSjs7QURNQTtFQUNFLFlBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsK0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtBQ0hGOztBREtFO0VBQ0UsVUFBQTtBQ0hKOztBRE9BO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNKRjs7QURPQTtFQUNFLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUNKRjs7QURPQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNKRjs7QURPQTtFQUNFLGdCQUFBO0FDSkY7O0FEUUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0xGOztBRFFBO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0xGOztBRFFBO0VBQ0UsY0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNMRjs7QURRQTtFQUNFLHFCQUFBO0VBQ0EsMEJBQUE7RUFDQSwyQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNMRjs7QURRQTtFQUNFO0lBQ0UsWUFBQTtJQUNBLGlCQUFBO0VDTEY7QUFDRjs7QURRQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBRUEsd0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtBQ1BGOztBRFVBO0VBQ0UsYUFBQTtBQ1BGIiwiZmlsZSI6InNyYy9hcHAvc2VydmljZS1sYXllcnMvc2VydmljZS1sYXllcnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vdmFyaWFibGVzLnNjc3NcIjtcblxuLnNlcnZpY2UtbGF5ZXJzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgLy8gb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5sYXllcnMtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDAuNXJlbSAzcHggMDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCA0cHggMHB4ICNiMWIxYjE7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItcmFkaXVzOiA0OSU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJvdHRvbTogOTBweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDMxLjM1cHg7XG4gIGhlaWdodDogMzEuMzVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxufVxuXG4ubGF5ZXJzLW1lc3NhZ2Uge1xuICBib3R0b206IDM1cHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDRweCAwcHggI2IxYjFiMTtcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxufVxuXG4ubGF5ZXJzLW1lc3NhZ2UgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLnNxdWFyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGJvcmRlcjogMC41cHggc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnNxdWFyZS1zaXplIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDE3cHg7XG59XG5cbmltZy5zcXVhcmUtc2l6ZS5zcXVhcmUge1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG5cbiNtZXRhZGF0SWNvbiB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhlYWRlciB7XG4gIGNvbG9yOiAjMjMzYzY1O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5ncm91cC1sYWJlbCB7XG4gIGNvbG9yOiAjMjMzYzY1O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmludHJvIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxNnB4IDBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA0NXZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAjcy1zY3JlZW4ge1xuICAgIHdpZHRoOiAxMjJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDc0JTtcbiAgfVxufVxuXG4uc2VydmljZS1sZWdlbmRzLXdhcHBlciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDEwcmVtO1xuXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgLyogSUUgYW5kIEVkZ2UgKi9cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAvKiBGaXJlZm94ICovXG59XG5cbi5zZXJ2aWNlLWxlZ2VuZHMtd2FwcGVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59IiwiLnNlcnZpY2UtbGF5ZXJzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5sYXllcnMtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDAuNXJlbSAzcHggMDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCA0cHggMHB4ICNiMWIxYjE7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItcmFkaXVzOiA0OSU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJvdHRvbTogOTBweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDMxLjM1cHg7XG4gIGhlaWdodDogMzEuMzVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmxheWVycy1idXR0b24gaW1nIHtcbiAgd2lkdGg6IDYwJTtcbn1cblxuLmxheWVycy1tZXNzYWdlIHtcbiAgYm90dG9tOiAzNXB4O1xuICBsZWZ0OiAxMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCA0cHggMHB4ICNiMWIxYjE7XG4gIGNvbG9yOiAjNjY2O1xuICBmb250LXdlaWdodDogNDAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5sYXllcnMtbWVzc2FnZSBpbWcge1xuICB3aWR0aDogNjAlO1xufVxuXG4ubGF5ZXJzLW1lc3NhZ2UgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLnNxdWFyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGJvcmRlcjogMC41cHggc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnNxdWFyZS1zaXplIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDE3cHg7XG59XG5cbmltZy5zcXVhcmUtc2l6ZS5zcXVhcmUge1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4jbWV0YWRhdEljb24ge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5oZWFkZXIge1xuICBjb2xvcjogIzIzM2M2NTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uZ3JvdXAtbGFiZWwge1xuICBjb2xvcjogIzIzM2M2NTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pbnRybyB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMTZweCAwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogNDV2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgI3Mtc2NyZWVuIHtcbiAgICB3aWR0aDogMTIycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA3NCU7XG4gIH1cbn1cbi5zZXJ2aWNlLWxlZ2VuZHMtd2FwcGVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgLyogSUUgYW5kIEVkZ2UgKi9cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAvKiBGaXJlZm94ICovXG59XG5cbi5zZXJ2aWNlLWxlZ2VuZHMtd2FwcGVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59Il19 */\"","import { Component, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport * as OlCoordinate from \"ol/coordinate\";\nimport * as OlExtent from \"ol/extent\";\nimport GMLFormat2 from \"ol/format/GML2\";\nimport GMLFormat3 from \"ol/format/GML3\";\nimport WFSFormat from \"ol/format/WFS\";\nimport { Tile as TileLayer } from \"ol/layer\";\nimport VectorLayer from \"ol/layer/Vector\";\nimport { TileWMS, Vector as VectorSource } from \"ol/source\";\nimport { Stroke, Style } from \"ol/style\";\nimport { Subscription } from \"rxjs\";\nimport { MapHelper } from \"../map/util/mapHelper\";\nimport { ContentService } from \"../services/content.service\";\nimport { DateService } from \"../services/date.service\";\nimport { LanguageService } from \"../services/language.service\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { RoutingService } from \"../services/routing.service\";\n\nconst regExpGeoPoint: RegExp = /^(\\d*(\\,?\\d*)?) (\\d*(\\,?\\d*)?)$/;\nconst regExpLatLongPoint: RegExp = /^(\\d*(\\.?\\d*)?) (\\d*(\\.?\\d*)?)$/;\nconst regExpLatLongPointDotComma: RegExp = /^(\\d*(\\.?\\d*)?) (\\d*(\\,?\\d*)?)$/;\nconst regExpLatLongPointCommaDot: RegExp = /^(\\d*(\\,?\\d*)?) (\\d*(\\.?\\d*)?)$/;\n\n@Component({\n selector: \"app-service-layers\",\n templateUrl: \"./service-layers.component.html\",\n styleUrls: [\"./service-layers.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ServiceLayersComponent implements OnInit {\n private subscriptions: Subscription[] = new Array();\n\n private _modelOverlayers: any = {};\n _mapDefinition: any = null;\n\n displayItem: any = null;\n currentLang: string = null;\n\n checkedMapDefinition:number = 0;\n\n layersGroupVisible = {};\n\n //Prepare internal 'WMS layers' url based on \"layer\" and \"style\" parameter configuration in admin ui\n urlHost: string = window.location.origin;\n urlPart1: string = this.urlHost+\"/geoserver/servicelayer/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&FORMAT=image%2Fpng&TRANSPARENT=true&LAYER=servicelayer%3A\";\n /* urlPart1: string = \"http://localhost:8080/geoserver/servicelayer/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&FORMAT=image%2Fpng&TRANSPARENT=true&LAYER=servicelayer%3A\"; */\n urlPart2: string = \"&STYLE=servicelayer%3A\";\n urlPart3: string = \"&exceptions=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A7791&WIDTH=18&HEIGHT=18\";\n\n constructor(\n private planService: PlandataService,\n private languageService: LanguageService,\n private mapService: MapService,\n private route: ActivatedRoute,\n private routeService: RoutingService,\n private contentService: ContentService,\n public dateService: DateService,\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnDestroy() {\n }\n\n ngOnInit() {\n if(this.mapService.isMapLoaded()){\n this.displayItem = this.planService.mapDefinition\n }else{\n this.subscriptions.push(\n this.planService.getMapDefinition().subscribe((mapDefinition) => {\n let mapDefinitionTemp = mapDefinition;\n //Getting specific data within mapdefination api call\n if (\n mapDefinitionTemp &&\n mapDefinitionTemp.mapDefinition &&\n mapDefinitionTemp.mapDefinition.layerGroups &&\n mapDefinitionTemp.mapDefinition.layerGroups.length > 0\n ) {\n this._mapDefinition = mapDefinitionTemp.mapDefinition.layerGroups;\n\n let mapDefinitionLength = this._mapDefinition.length;\n\n this.displayItem = {};\n for (let i = 0; i < mapDefinitionLength; i++) {\n if(!this.displayItem[this._mapDefinition[i].orderColumn]){\n this.displayItem[this._mapDefinition[i].orderColumn] = [];\n }\n this.displayItem[this._mapDefinition[i].orderColumn].push(this._mapDefinition[i]);\n }\n\n this.planService.mapDefinition = this.displayItem;\n }\n })\n );\n }\n }\n\n getHTML(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n keys() {\n return this.displayItem ? Object.keys(this.displayItem) : [];\n }\n\n layersGroupToggle(groupName) {\n if (this.layersGroupVisible[groupName]) {\n delete this.layersGroupVisible[groupName];\n } else {\n this.layersGroupVisible[groupName] = true;\n }\n }\n\n checkUncheckModelOverlay(event,modelOverlayer){\n event.preventDefault();\n /* console.log(JSON.stringify(modelOverlayer)) */\n modelOverlayer['checked'] = !modelOverlayer['checked']\n\n if(modelOverlayer['checked']){\n this.checkedMapDefinition = this.checkedMapDefinition + 1;\n this.setServiceLayerIsOn(true);\n }else{\n this.checkedMapDefinition = this.checkedMapDefinition - 1;\n if (this.checkedMapDefinition == 0) {\n this.setServiceLayerIsOn(false);\n }\n }\n\n if(modelOverlayer && modelOverlayer['defaultType'] === 'WMS'){\n if(modelOverlayer['checked'] && ((modelOverlayer['internalLayerName'] && modelOverlayer['stilartName'] && modelOverlayer['layerSource'] === 'INTERNAL')\n || (modelOverlayer['externalWmsUrl'] && modelOverlayer['layerSource'] === 'EXTERNAL'))){\n let includeWmsLayerInMap = this.getWmsModelOverlay(modelOverlayer,modelOverlayer['layerSource']);\n this._modelOverlayers[modelOverlayer.name] = includeWmsLayerInMap\n this.mapService.getMap().addLayer(includeWmsLayerInMap);\n }else{\n this.removeModelLayer(modelOverlayer['name']);\n }\n }else if(modelOverlayer && modelOverlayer['defaultType'] === 'WFS'){\n if(modelOverlayer['checked'] && modelOverlayer['externalWfsUrl']){\n //Add WFS layer code\n this.createWFSOverLayer(modelOverlayer);\n }else{\n //Remove WFS layer code\n this.removeModelLayer(modelOverlayer['name'])\n }\n }\n // this.createWFSOverLayer({'externalWfsUrl':\"https://arealinformation.miljoeportal.dk/gis/services/DAIdb/MapServer/WFSServer?request=GetFeature&service=WFS&outputFormat=GML3&version=1.1.0&typeName=dmp:HABITAT_OMR&title=HABITAT_OMR\"});\n //console.log(\"CHECKED/ UNCHECKED/\")\n }\n\n openLinkField(url){\n window.open(url,'_blank')\n }\n\n getWmsModelOverlay(wmsModelOverlayer,layerSource){\n let url = null;\n let params = {};\n let opacity = 0.75;\n\n if(layerSource === 'INTERNAL'){\n url = this.urlHost+'/geoserver/servicelayer/wms';\n /* url = 'http://localhost:8080/geoserver/servicelayer/wms'; */\n params = {\n 'LAYERS':'servicelayer:' + wmsModelOverlayer['internalLayerName'], //layer\n 'STYLES':'servicelayer:' + wmsModelOverlayer['stilartName'], //Style\n 'FORMAT': \"image/png\"\n }\n }else if(layerSource === 'EXTERNAL'){\n url = wmsModelOverlayer['externalWmsUrl'];\n params = {\n 'FORMAT': \"image/png\",\n 'crossOrigin': \"anonymous\"\n }\n }else{\n return null;\n }\n\n //Overwrite the params by doing the configurion within options field\n if(wmsModelOverlayer['layerProps'] && typeof wmsModelOverlayer['layerProps'] === 'object' && wmsModelOverlayer['layerProps'] !== null){\n opacity = wmsModelOverlayer['layerProps']['opacity'] ? wmsModelOverlayer['layerProps']['opacity'] : opacity;\n if(wmsModelOverlayer['layerProps']['params']){\n this.overWriteParams(params,wmsModelOverlayer['layerProps']['params'])\n }\n }\n\n let includeWmsLayerInMap = new TileLayer({\n 'opacity': opacity,\n 'source': new TileWMS({\n 'url': url,\n 'params':params\n })\n\n })\n return includeWmsLayerInMap;\n }\n\n createWFSOverLayer(overlay): void {\n /* console.log(\"Crete WFS overlay\") */\n const props = overlay.layerProps as any;\n let layerParams: any = {};\n layerParams = MapHelper.getCustomProps(props, layerParams);\n //console.log(JSON.stringify(layerParams))\n layerParams = MapHelper.getParams(overlay.externalWfsUrl, layerParams);\n //console.log(JSON.stringify(layerParams))\n const urlparts = overlay.externalWfsUrl.split('?');\n\n if (urlparts && urlparts.length > 1) {\n overlay.externalWfsUrl = urlparts[0] + '?';\n }\n for (const key in layerParams) {\n if (key) {\n overlay.externalWfsUrl += key + '=' + layerParams[key] + '&';\n }\n }\n\n const loadingStrategy = function(extent, resolution) {\n if(this.resolution && this.resolution != resolution){\n this.loadedExtentsRtree_.clear();\n }\n return [extent];\n };\n\n const thisme = this;\n const vectorSource = new VectorSource({\n format: new WFSFormat({ gmlFormat: new GMLFormat2() }),\n loader: function (extent, resolution, projection) {\n // this.resolution = resolution;\n /* console.log(overlay.externalWfsUrl) */\n // console.log(thisme.mapService.currentMapEPSG.toLowerCase())\n let url = new URL(overlay.externalWfsUrl + '&srsName=epsg:25832');\n /* console.log(url) */\n let params =url.searchParams;\n\n if(params && params.get(\"filter\") && extent && extent.length ==4 ) {\n const oParser = new DOMParser();\n let oDOM = oParser.parseFromString(decodeURIComponent(params.get(\"filter\")), \"application/xml\");\n let bbox = oDOM.getElementsByTagName(\"BBOX\");\n if(bbox && bbox.length>0) {\n let lowerCorner = bbox[0].getElementsByTagName(\"lowerCorner\");\n if(lowerCorner && lowerCorner.length>0) {\n lowerCorner[0].innerHTML = OlCoordinate.format(OlExtent.getBottomLeft(extent), '{x} {y}', 3);\n }\n let upperCorner = bbox[0].getElementsByTagName(\"upperCorner\");\n if(upperCorner && upperCorner.length>0) {\n upperCorner[0].innerHTML = OlCoordinate.format(OlExtent.getTopRight(extent), '{x} {y}', 3);\n }\n bbox[0].setAttribute(\"srsName\",'epsg:25832');\n }\n var oSerializer = new XMLSerializer();\n var sXML = oSerializer.serializeToString(oDOM);\n\n params.delete(\"filter\");\n\n url = new URL(url.toString() + '&filter=' + encodeURIComponent(sXML));\n\n } else if(extent && extent.length ==4) {\n url = new URL(url.toString() + '&bbox=' + extent.join(','));\n }\n\n /* console.log(\"==>\"+url.href) */\n thisme.mapService.callByProxy(url.href).subscribe(response => {\n if(params.get(\"version\") && params.get(\"version\").indexOf(\"1.0.0\") > -1) {\n vectorSource.addFeatures(new WFSFormat({gmlFormat: new GMLFormat2() }).readFeatures(response.body));\n }else {\n vectorSource.addFeatures(new WFSFormat({gmlFormat: new GMLFormat3() }).readFeatures(response.body));\n }\n });\n },\n strategy: loadingStrategy,\n // projection: OlProj.get(\"EPSG:25832\")\n });\n\n let stroke = {};\n if(overlay.layerProps && overlay.layerProps.stroke ){\n stroke = overlay.layerProps.stroke;\n }\n const vector = new VectorLayer({\n source: vectorSource,\n style: new Style({\n stroke: new Stroke(stroke),\n })\n });\n\n this._modelOverlayers[overlay.name] = vector;\n //@ts-ignore\n this.mapService.getMap().addLayer(vector);\n }\n\n overWriteParams(params,source){\n for(let key of Object.keys(source)){\n /* console.log(key) */\n if(typeof source[key] === 'object' && source[key] !== null){\n if(!params[key.toUpperCase()]){\n params[key.toUpperCase()] = {};\n }\n this.overWriteParams(params[key.toUpperCase()],source[key])\n }else{\n params[key.toUpperCase()] = source[key];\n }\n }\n }\n\n removeModelLayer(modelOverlayerName){\n let isFoundRecord:boolean = false;\n if(this._modelOverlayers && this._modelOverlayers[modelOverlayerName]){\n // console.log(\"Found And Remove::\")\n this.mapService.getMap().removeLayer(this._modelOverlayers[modelOverlayerName]);\n delete this._modelOverlayers[modelOverlayerName];\n }\n }\n\n private setServiceLayerIsOn(isOn: boolean) {\n this.mapService.setServiceLayerIsOn(isOn);\n this.mapService.getMap().getLayers().forEach(layer => layer.getSource().changed());\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\nimport {EnvironmentService} from \"./environment.service\";\nimport {ConsultationResponse} from \"../models/consultationresponse\";\nimport {Observable} from \"rxjs\";\nimport {catchError, tap} from \"rxjs/operators\";\nimport {HttpParams} from \"../../../node_modules/@angular/common/http\";\nimport {ConsultationResponsePageableList} from \"../models/consultationresponsepageablelist\";\n\nconst httpOptions = {\n headers: new HttpHeaders({\n // 'Content-Type': 'application/json',\n 'Authorization': 'my-auth-token'\n })\n};\n\n@Injectable()\nexport class ConsultationdataService {\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService\n ) {}\n\n addConsultationResponce (consultationResponse: ConsultationResponse, files: Blob[]): Observable {\n\n const formData: FormData = new FormData();\n\n for (const file in files) {\n if (file) {\n formData.append('files', files[file]);\n }\n }\n\n formData.append('consultationResponse', new Blob([JSON.stringify(consultationResponse)], { type: 'application/json; charset=UTF-8' }));\n\n return this.http.post(this.environmentService.getEnvironment().serviceurl_portalcache + \"consultation/response/create\", formData, httpOptions)\n .pipe(\n tap((data: any) => {\n // console.log(data);\n }),\n catchError((err) => {\n throw err;\n })\n );\n }\n\n public getConsultationResponses(planversionid: string, page: number, pageSize: number): Observable {\n const params = new HttpParams()\n .set('planversionid', planversionid)\n .set(\"page\", page.toString())\n .set(\"size\", pageSize.toString());\n\n return this.http.get(\n this.environmentService.getEnvironment().serviceurl_portalcache + \"consultation/response/published/get/all\",\n { params })\n .pipe(\n tap((data: ConsultationResponsePageableList) => {\n return data;\n }),\n catchError((err) => {\n throw 'Error in source. Details: ' + JSON.stringify(err);\n })\n );\n }\n\n public getConsultationResponsesBySearch(planversionid: string, term: string, page: number, pageSize: number): Observable {\n const params = new HttpParams()\n .set('planversionid', planversionid)\n .set(\"term\", term)\n .set(\"page\", page.toString())\n .set(\"size\", pageSize.toString());\n\n return this.http.get(\n this.environmentService.getEnvironment().serviceurl_portalcache + \"consultation/response/published/search\",\n { params })\n .pipe(\n tap((data: ConsultationResponsePageableList) => {\n // console.log(\"ConsultationResponse search result: \" + JSON.stringify(data, null, 3));\n return data;\n }),\n catchError((err) => {\n throw 'Error in source. Details: ' + JSON.stringify(err);\n })\n );\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { EnvironmentService } from \"./environment.service\";\nimport { PreviewService } from \"./preview.service\";\nimport { Subject, Observable } from \"rxjs\";\n\n@Injectable()\nexport class ContentService {\n\n private _content: any;\n private _prefixedElement: any;\n private _contentLoaded = new Subject();\n\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService,\n private previewService: PreviewService\n ) {}\n \n public loadPublichedContent() {\n if(!this._content) {\n //console.log(\"call content service\");\n this.getPublishedContent().subscribe(data => {\n this.currentContent = data; \n //console.log(\"send content loadevent\");\n this._contentLoaded.next();\n });\n }\n }\n\n onContentEventLoaded(): Observable {\n return this._contentLoaded.asObservable();\n }\n\n public getPublishedContent(): Observable { \n let contentServiceEndpoint = \"\";\n let contentPreviewID = this.previewService.getContentPreviewID();\n if (contentPreviewID != null) {\n contentServiceEndpoint = this.environmentService.getEnvironment().serviceurl_protectedportalcache + \"preview_content/\" + contentPreviewID;\n }else {\n contentServiceEndpoint = this.environmentService.getEnvironment().serviceurl_portalcache + \"published_content\";\n }\n return this.http.get(contentServiceEndpoint, { params: {} });\n }\n\n set currentContent(data: any) {\n this._content = data;\n }\n\n public getContent() {\n return this._content;\n }\n\n public getContentByPrefix(prefix: string) {\n if(this._content) {\n let contentItems = this._content.prefixes;\n for (let i = 0; contentItems && i < contentItems.length; i++) {\n if (contentItems[i].prefix === prefix) {\n return contentItems[i].elements;\n }\n }\n }\n return [];\n }\n\n public getTextByShortName(prefix: string, shortName: string) {\n if(this._content) {\n let contentItems = this._content.prefixes;\n for (let i = 0; contentItems && i < contentItems.length; i++) {\n if (contentItems[i].prefix === prefix) {\n let itemsChildren = contentItems[i].elements;\n for (let c = 0; itemsChildren && c < itemsChildren.length; c++) {\n if (itemsChildren[c].shortName === shortName) {\n return itemsChildren[c].text1;\n }\n }\n }\n }\n //console.log(\"NO_CMS: \"+shortName+ \" : \"+prefix);\n } \n return \"\";\n }\n\n public getHTMLByShortName(prefix: string, shortName: string) {\n if(this._content) {\n let contentItems = this._content.prefixes;\n for (let i = 0; contentItems && i < contentItems.length; i++) {\n if (contentItems[i].prefix === prefix) {\n let itemsChildren = contentItems[i].elements;\n for (let c = 0; itemsChildren && c < itemsChildren.length; c++) {\n if (itemsChildren[c].shortName === shortName) {\n return itemsChildren[c].text2;\n }\n }\n }\n }\n } \n return \"\";\n }\n\n public getAltTextByShortName(prefix: string, shortName: string) {\n if(this._content) {\n let contentItems = this._content.prefixes;\n for (let i = 0; contentItems && i < contentItems.length; i++) {\n if (contentItems[i].prefix === prefix) {\n let itemsChildren = contentItems[i].elements;\n for (let c = 0; itemsChildren && c < itemsChildren.length; c++) {\n if (itemsChildren[c].shortName === shortName) {\n return itemsChildren[c].link2;\n }\n }\n }\n }\n } \n return \"\";\n }\n\n public getCmsElementByShortName(prefix: string, shortName: string): object {\n if(this._content) {\n let contentItems = this._content.prefixes;\n for (let i = 0; contentItems && i < contentItems.length; i++) {\n if (contentItems[i].prefix === prefix) {\n let itemsChildren = contentItems[i].elements;\n for (let c = 0; itemsChildren && c < itemsChildren.length; c++) {\n if (itemsChildren[c].shortName === shortName) {\n return itemsChildren[c];\n }\n }\n }\n }\n //console.log(\"NO_CMS: \"+shortName+ \" : \"+prefix);\n }\n \n return {};\n }\n/* -----SUBSCRIPTION FROM SURVICE CALLS--------------- */\n subscribe(subscriberObj:any){\n return this.http.post(this.environmentService.getEnvironment().serviceurl_portalcache +\"newsletter/subscribe\", subscriberObj);\n }\n\n unSubscribe(subscriberObj:any){\n return this.http.post(this.environmentService.getEnvironment().serviceurl_portalcache +\"newsletter/unsubscribe/\"+subscriberObj.email, null);\n }\n\n}\n","import {Injectable} from '@angular/core';\n\nimport * as moment from 'moment-timezone';\n\nconst DATE_FORMAT : string = \"DD/MM-YYYY HH:mm\";\nconst DATA_ONLY_FORMAT : string = \"DD/MM-YYYY\";\nconst DEFAULT_TZ : string = \"europe/copenhagen\";\n\n@Injectable()\nexport class DateService {\n\n\n format(date: any) {\n // console.log(\"formatDate: \" + date);\n return moment(date).tz(DEFAULT_TZ).format(DATE_FORMAT);\n }\n\n formatDateOnly(date: any) {\n // console.log(\"formatDateOnly: \" + date);\n return moment(date).tz(DEFAULT_TZ).format(DATA_ONLY_FORMAT);\n }\n\n isDatetimesBefore(dateTimeBefore: Date, compareDateTime: Date) : boolean{\n console.log(\"formatDate: \" + dateTimeBefore +\" : \"+compareDateTime);\n if(moment(dateTimeBefore).tz(DEFAULT_TZ) < moment(compareDateTime).tz(DEFAULT_TZ)) {\n return true;\n }\n return false;\n } \n\n currentDateInUtc() {\n return moment().utc();\n }\n\n currentDate() {\n return moment().tz(DEFAULT_TZ);\n }\n\n\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class EnvironmentService {\n constructor(){\n\n }\n\n getEnvironment() {\n return {\n serviceurl_portalcache: '/portalcache/api/v1/',\n serviceurl_protectedportalcache: '/protectedportalcache/api/v1/',\n serviceurl_content: '/content/api/latest/',\n serviceurl_mapping: '/mapping/api/latest/',\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Subject, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class LanguageService {\n private _lang: string = null;\n // private _changeLang = new Subject();\n\n constructor() {}\n\n setLanguage(lang) {\n this._lang = lang;\n // this._changeLang.next(lang);\n }\n\n getLanguage() {\n if (!this._lang) {\n this.prepareLanguage();\n }\n return this._lang;\n }\n\n prepareLanguage() {\n if (this._lang) {\n return this._lang;\n } else {\n let origin = window.location.href;\n if (origin.indexOf(\"/da/\") != -1) {\n this.setLanguage(\"da\")\n } else if (origin.indexOf(\"/en/\") != -1) {\n this.setLanguage(\"en\")\n }else{\n //Set default language if not founded from URL.\n this.setLanguage(\"da\")\n }\n return this._lang;\n }\n }\n\n // onLanguageChange(): Observable {\n // return this._changeLang.asObservable();\n // }\n}\n","import { Injectable } from \"@angular/core\";\nimport GeoJSON from \"ol/format/GeoJSON\";\nimport { Vector as VectorLayer } from \"ol/layer\";\nimport { Vector as VectorSource } from \"ol/source\";\nimport Feature from \"ol/Feature\";\nimport LayerGroup from \"ol/layer/Group\";\nimport { Extent } from \"ol/extent\";\nimport { containsExtent } from \"ol/extent\";\nimport { Style } from \"ol/style\";\nimport MultiPoint from \"ol/geom/MultiPoint\";\nimport MultiLineString from \"ol/geom/MultiLineString\";\nimport MultiPolygon from \"ol/geom/MultiPolygon\";\nimport Polygon from \"ol/geom/Polygon\";\nimport Point from \"ol/geom/Point\";\nimport LineString from \"ol/geom/LineString\";\nimport { Observable, Subject } from \"rxjs\";\nimport Icon from \"ol/style/Icon\";\nimport IconAnchorUnits from \"ol/style/IconAnchorUnits\";\nimport GeometryCollection from \"ol/geom/GeometryCollection\";\nimport { buffer } from \"ol/extent\";\nimport { Collection } from \"ol\";\nimport Select from \"ol/interaction/Select\";\nimport DrawInteraction from \"ol/interaction/Draw\";\nimport GeometryType from \"ol/geom/GeometryType\";\nimport { PlandataService } from \"./plandata.service\";\nimport { RoutingService } from \"../services/routing.service\";\nimport DrawingTool from \"../map/drawingtools/drawingtool\";\nimport { VectorStyle } from \"../map/vectorstyle/vector-style\";\nimport { ZoneFeature } from \"../plandataDefinition/zoneFeature\";\nimport { PlanInfo } from \"../plandataDefinition/planInfo\";\nimport { Mutex } from \"async-mutex\";\nimport { register } from \"ol/proj/proj4\";\nimport { asArray } from \"ol/color\";\nimport proj4 from \"proj4\";\nimport Geometry from \"ol/geom/Geometry\";\nimport { ContentService } from './content.service';\nimport { LanguageService } from \"./language.service\";\n\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { EnvironmentService } from './environment.service';\n\n@Injectable()\nexport class MapService {\n private _map: any = null;\n private _selectedfeatures: ZoneFeature[] = new Array();\n private _hoveredfeatures: ZoneFeature[] = new Array();\n private _vectorStyle: VectorStyle;\n private _zonesActive = new Array();\n private _drawingTool: DrawingTool;\n private _selectedEditFeatures = new Subject();\n private _selectedSelectFeatures = new Subject();\n private _selectedSelectZoneFeatures = new Subject();\n private _selectedHoverZoneFeatures = new Subject();\n private _geometryCallback: any;\n private _newHearingAnswerCallback: any;\n private _layerConfig: any;\n private _selectEnabled: boolean = true;\n private _mapReady = new Subject();\n private _clickedCoordinates = new Array();\n private _interActions = null;\n private _zoneLayersActive: String[] = new Array();\n private _markerVectorLayer: VectorLayer = null;\n private _editVectorLayer: VectorLayer = null;\n private _hearingAnswerDisplayLayer: VectorLayer = null;\n private _editfeatures: Collection = null;\n private _editSource: VectorSource = null;\n private _featureOverlay: VectorLayer = null;\n private _mapIsLoad: boolean = false;\n private _mapSearchTerm: string = \"\";\n\n private _customFeatureClickCallback: any;\n private _activeConsultationPlanversionId: string = null;\n\n private _flyTofitOptions: object = { duration: 1000 };\n private _mainRoutePath: string = \"\";\n private _searchText: string;\n private _searchMode: number;\n\n private serviceLayerIsOn = false;\n\n public changeMarkingsSubject = new Subject();\n public showChangeMarkingLayers = {\n \"changed\" : false,\n \"removed\" : false,\n }\n\n public serviceLayersModeSubject = new Subject();\n\n constructor(\n private planDataService: PlandataService,\n private contentService: ContentService,\n private languageService: LanguageService,\n private routeService: RoutingService,\n private http: HttpClient,\n private environmentService: EnvironmentService\n ) {\n this._vectorStyle = new VectorStyle();\n this.planDataService.onLayerConfigEventChanged().subscribe((any) => {\n this._layerConfig = this.planDataService.currentLayerConfig;\n if (this._layerConfig && this._layerConfig.styles) {\n this._vectorStyle.setStyleConfig = this.planDataService.currentLayerConfig.styles;\n }\n });\n proj4.defs(\n \"EPSG:25832\",\n \"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs\"\n );\n register(proj4);\n }\n\n public createInternalVectorLayers() {\n let vectorSource = new VectorSource({\n format: new GeoJSON(),\n features: new Collection(),\n });\n this._markerVectorLayer = new VectorLayer({\n source: vectorSource,\n zIndex: 1054,\n });\n\n this._editfeatures = new Collection();\n this._editfeatures.on(\"add\", this.addDrawFeature.bind(this));\n this._editfeatures.on(\"remove\", this.removeDrawFeature.bind(this));\n this._editSource = new VectorSource({\n format: new GeoJSON(),\n features: this._editfeatures,\n });\n this._editVectorLayer = new VectorLayer({\n visible: false,\n source: this._editSource,\n style: this.styleChanges.bind(this, \"EDIT\"),\n zIndex: 1003,\n });\n\n this._hearingAnswerDisplayLayer = new VectorLayer({\n source: new VectorSource({\n features: new Collection(),\n format: new GeoJSON(),\n }),\n style: this.styleChanges.bind(this, \"selected\"),\n zIndex: 1002,\n });\n\n this._map.addLayer(this._editVectorLayer);\n this._map.addLayer(this._hearingAnswerDisplayLayer);\n this._map.addLayer(this._markerVectorLayer);\n }\n\n public createInteractions() {\n this._interActions = {};\n this._interActions[\"select\"] = new Select({\n multi: true,\n style: this.styleChanges.bind(this, \"selected\"),\n });\n this._interActions[\"select\"].setActive(true);\n\n this._interActions[\"drawLine\"] = new DrawInteraction({\n features: this._editfeatures,\n type: GeometryType.LINE_STRING,\n });\n this._interActions[\"drawPoint\"] = new DrawInteraction({\n features: this._editfeatures,\n type: GeometryType.POINT,\n });\n this._interActions[\"drawPolygon\"] = new DrawInteraction({\n features: this._editfeatures,\n type: GeometryType.POLYGON,\n });\n\n this._interActions[\"drawPoint\"].setActive(false);\n this._interActions[\"drawLine\"].setActive(false);\n this._interActions[\"drawPolygon\"].setActive(false);\n this._interActions[\"drawPoint\"].on(\n \"drawstart\",\n this.clearEditFeatures.bind(this)\n );\n this._interActions[\"drawLine\"].on(\n \"drawstart\",\n this.clearEditFeatures.bind(this)\n );\n this._interActions[\"drawPolygon\"].on(\n \"drawstart\",\n this.clearEditFeatures.bind(this)\n );\n for (const key in this._interActions) {\n if (key) {\n this._map.addInteraction(this._interActions[key]);\n }\n }\n\n this._drawingTool = new DrawingTool({\n interActions: this._interActions,\n editVectorLayer: this._editVectorLayer,\n mapComponent: this,\n },this.contentService,this.languageService);\n this._drawingTool.setVisble(true);\n this._drawingTool.setVisble(false);\n this._map.addControl(this._drawingTool);\n }\n\n set mainRoutePath(path: string) {\n this._mainRoutePath = path;\n }\n\n onMapReady(): Observable {\n return this._mapReady.asObservable();\n }\n\n onFeatureSeleted(): Observable {\n return this._selectedSelectZoneFeatures.asObservable();\n }\n\n onFeatureHover(): Observable {\n return this._selectedHoverZoneFeatures.asObservable();\n }\n\n public isMapLoaded(): boolean {\n return this._mapIsLoad;\n }\n\n public setMapLoaded(mapIsLoad: boolean) {\n this._mapIsLoad = mapIsLoad;\n }\n\n public setMapIsReady() {\n console.log(\"map is ready!\");\n this._featureOverlay = new VectorLayer({\n source: new VectorSource(),\n map: this._map,\n zIndex: 1005,\n style: this.styleChanges.bind(this, \"highlight\"),\n });\n this._mapIsLoad = true;\n this._mapReady.next();\n }\n\n set zoneLayersActive(list: String[]) {\n this._zoneLayersActive = list;\n }\n\n get hearingAnswerDisplayLayer(): VectorLayer {\n return this._hearingAnswerDisplayLayer;\n }\n\n get zoneLayersActive(): String[] {\n return this._zoneLayersActive;\n }\n\n set selectEnabled(enable: boolean) {\n this._selectEnabled = enable;\n }\n\n get selectEnabled(): boolean {\n return this._selectEnabled;\n }\n\n set interActions(nterActions: any) {\n if (this._interActions == null) {\n this._interActions = nterActions;\n }\n }\n\n get interActions(): any {\n return this._interActions;\n }\n\n onHover(event: any) {\n if (!this.selectEnabled || this._featureOverlay == null) {\n return;\n }\n this._hoveredfeatures = [];\n this._selectedHoverZoneFeatures.next(this._hoveredfeatures);\n this._featureOverlay.getSource().clear();\n let me = this;\n let found = false;\n this._map.forEachFeatureAtPixel(event.pixel, function (\n feature: any,\n layer: any\n ) {\n if (layer !== null) {\n let layerProps = layer.getProperties();\n if (layerProps.enableFeatureInfo) {\n if (me.isCreateAnswerMode()) {\n if (\n me._activeConsultationPlanversionId !=\n layerProps.layerInfo.planversionId ||\n layerProps.layerInfo.status !== \"consultation\"\n )\n return;\n }\n found = true;\n me._featureOverlay.getSource().addFeature(feature);\n let zonefeature = new ZoneFeature();\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n\n me._hoveredfeatures.push(zonefeature);\n me._selectedHoverZoneFeatures.next(me._hoveredfeatures);\n return;\n }\n }\n });\n this._map.getTargetElement().style.cursor = found ? \"pointer\" : \"\";\n }\n\n private isCreateAnswerMode(): boolean {\n if (\n this._customFeatureClickCallback &&\n this.canCustomFeatureClickBeUsed()\n ) {\n return true;\n }\n return false;\n }\n\n clickMapHandler(evt: any) {\n if (!this.selectEnabled) {\n return;\n }\n\n let listFeatures: ZoneFeature[] = new Array();\n let features: any[] = new Array();\n this.interActions[\"select\"].getFeatures().clear();\n this.clearMarkerFeature();\n let me = this;\n this._map.forEachFeatureAtPixel(evt.pixel, function (\n feature: any,\n layer: any\n ) {\n if (layer !== null) {\n let layerProps = layer.getProperties();\n if (layerProps.enableFeatureInfo) {\n let zonefeature = new ZoneFeature();\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n if (me.isCreateAnswerMode()) {\n if (\n me._activeConsultationPlanversionId !=\n layerProps.layerInfo.planversionId ||\n layerProps.layerInfo.status !== \"consultation\"\n )\n return;\n }\n listFeatures.push(zonefeature);\n features.push(feature);\n }\n }\n });\n\n //this._activeConsultationPlanversionId\n for (let i = 0; features && i < features.length; i++) {\n this.interActions[\"select\"].getFeatures().push(features[i]);\n }\n\n this.clickedCoordinates = evt.coordinate;\n let coordinates = this.clickedCoordinates;\n\n this.featuresSelected(listFeatures);\n\n let timeLineIdx = this.planDataService.currentTimeLineIndex;\n\n if (this.isCreateAnswerMode()) {\n this._customFeatureClickCallback(listFeatures);\n return;\n }\n\n if (listFeatures.length == 1) {\n this.routeService.changeRoutePath(\n this._mainRoutePath +\n \"/zone/s/\" +\n listFeatures[0].planInfo.planversionId +\n \"/\" +\n coordinates[0] +\n \"/\" +\n coordinates[1] +\n \"/\" +\n listFeatures[0].layerName +\n \"/\" +\n listFeatures[0].refId +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n } else {\n this.routeService.changeRoutePath(\n this._mainRoutePath +\n \"/zone/m/\" +\n coordinates[0] +\n \"/\" +\n coordinates[1] +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n this._hearingAnswerDisplayLayer.getSource().clear();\n }\n\n set clickedCoordinates(coordinates: any[]) {\n if (coordinates && coordinates.length == 2) {\n coordinates[0] = this.roundNumber(coordinates[0]);\n coordinates[1] = this.roundNumber(coordinates[1]);\n }\n this._clickedCoordinates = coordinates;\n }\n\n get clickedCoordinates(): any[] {\n return this._clickedCoordinates;\n }\n\n private roundNumber(value: number) {\n return Math.round(value * 100) / 100;\n }\n\n public setMap(map: any) {\n this._map = map;\n }\n\n set setDrawingTool(drawingTool: DrawingTool) {\n this._drawingTool = drawingTool;\n }\n\n get getDrawingTool(): DrawingTool {\n return this._drawingTool;\n }\n\n get isDrawingToolActive(): boolean {\n return this._drawingTool.isDrawActive();\n }\n\n set searchMode(num){\n this._searchMode = num;\n }\n\n get searchMode(){\n return this._searchMode;\n }\n\n set searchText(text){\n this._searchText = text;\n }\n\n get searchText(){\n return this._searchText;\n }\n\n public createGeoJSONLayer(\n layerUrl: string,\n layerInfo: any,\n style: any,\n zIndex: number\n ) {\n let layer = new VectorLayer({\n source: new VectorSource({\n format: new GeoJSON(),\n url: layerUrl,\n }),\n style: style,\n zIndex: zIndex,\n });\n layer.set(\"layerInfo\", layerInfo);\n layer.set(\"enableFeatureInfo\", true);\n return layer;\n }\n\n public setFeatureStyle(\n layerName: string,\n feature_id: string,\n styleType: string,\n featureStyle: string\n ) {\n let layer = this.getLayerByName(layerName, styleType);\n if (layer) {\n layer\n .getSource()\n .forEachFeature(\n this.setStyleForFeatureById.bind(this, feature_id, featureStyle)\n );\n } else {\n console.log(\"layer not found\" + layerName);\n }\n }\n\n public resetFeatureStyle(\n layerName: string,\n feature_id: string,\n styleType: string\n ) {\n let layer = this.getLayerByName(layerName, styleType);\n if (layer) {\n layer.getSource().forEachFeature(function (feature: any) {\n if (feature.get(\"refID\") === feature_id) {\n feature.setStyle(null);\n }\n });\n } else {\n console.log(\"layer not found\" + layerName);\n }\n }\n\n public getMapCenter(): any {\n let coordinates = this._map.getView().getCenter();\n if (coordinates && coordinates.length == 2) {\n coordinates[0] = this.roundNumber(coordinates[0]);\n coordinates[1] = this.roundNumber(coordinates[1]);\n }\n return coordinates;\n }\n\n public getMapZoomLevel(): any {\n let zoomLevel = this._map.getView().getZoom();\n return this.roundNumber(zoomLevel);\n }\n\n public highlightZoneType(zoneType: string, enableHighlight: boolean) {\n // Find all layers withlayername and with style\n let me = this;\n this._map.getLayers().forEach(function (layer: any) {\n if (layer.get(\"layerInfo\")) {\n if (zoneType == \"zones\" || zoneType == \"changesSuggestions\" || zoneType == \"changeMarking\") {\n let zones = [];\n for (let n = 0; n < me._layerConfig.layers.length; n++) {\n for (\n let i = 0;\n (me._layerConfig.layers[n].type == zoneType) &&\n me._layerConfig.layers[n].subtypes &&\n i < me._layerConfig.layers[n].subtypes.length;\n i++\n ) {\n zones.push(me._layerConfig.layers[n].subtypes[i].type);\n }\n }\n\n if (enableHighlight) {\n for (let i = 0; i < zones.length; i++) {\n if (me._zonesActive.indexOf(zones[i]) == -1) {\n me._zonesActive.push(zones[i]);\n }\n }\n } else {\n for (let i = 0; i < zones.length; i++) {\n if (me._zonesActive.indexOf(zones[i]) != -1) {\n me._zonesActive.splice(me._zonesActive.indexOf(zones[i]), 1);\n }\n }\n }\n } else {\n if (enableHighlight) {\n if (me._zonesActive.indexOf(zoneType) == -1) {\n me._zonesActive.push(zoneType);\n }\n } else {\n if (me._zonesActive.indexOf(zoneType) != -1) {\n me._zonesActive.splice(me._zonesActive.indexOf(zoneType), 1);\n }\n }\n }\n layer\n .getSource()\n .forEachFeature(\n me.setStyleForLayerhighlightFeatures.bind(\n me,\n layer,\n zoneType,\n layer.get(\"layerInfo\")\n )\n );\n }\n });\n }\n\n private setStyleForLayerhighlightFeatures(\n layer: any,\n zoneType: string,\n layerInfo: any,\n feature: Feature\n ) {\n let styleType = \"\";\n let featyre_zoneTyoe = new Array();\n\n if (feature.get(\"type\")) {\n let list = feature.get(\"type\").split(\",\");\n for (var i = 0; i < list.length; i++) {\n featyre_zoneTyoe.push(list[i].trim());\n }\n }\n\n let isActive = false;\n for (var i = 0; i < featyre_zoneTyoe.length; i++) {\n if (this._zonesActive.indexOf(featyre_zoneTyoe[i]) !== -1) {\n isActive = true;\n break;\n }\n }\n\n if (\n layerInfo.styleType == \"consultation\" ||\n layerInfo.styleType == \"consultation_hide\"\n ) {\n if (this._zonesActive.indexOf(\"H\") > -1) {\n isActive = true;\n } else {\n isActive = false;\n }\n }\n\n if (\n layerInfo.styleType == \"consultationend\" ||\n layerInfo.styleType == \"consultationend_hide\"\n ) {\n if (this._zonesActive.indexOf(\"He\") > -1) {\n isActive = true;\n } else {\n isActive = false;\n }\n }\n\n if (layerInfo.styleType == \"changed\") {\n if (this._zonesActive.indexOf(\"changed\") > -1) {\n isActive = true;\n } else {\n isActive = false;\n }\n }\n\n if (layerInfo.styleType == \"removed\") {\n if (this._zonesActive.indexOf(\"removed\") > -1) {\n isActive = true;\n } else {\n isActive = false;\n }\n }\n\n if (isActive) {\n styleType = layer.get(\"layerInfo\").styleType;\n } else {\n styleType = layer.get(\"layerInfo\").styleType + \"_hide\";\n }\n if (this.isFeatureSelected(feature)) {\n styleType = \"selected\";\n }\n\n feature.setStyle(this.styleChanges.bind(this, styleType));\n }\n\n public resetAllHighlightZoneTyoe() {\n // Find all layers withlayername and with style\n this._zoneLayersActive = new Array();\n\n this._zonesActive = new Array();\n let me = this;\n this._map.getLayers().forEach(function (layer: any) {\n if (layer.get(\"layerInfo\")) {\n let styleType = layer.get(\"layerInfo\").styleType;\n layer\n .getSource()\n .forEachFeature(me.setStyleForLayerFeatures.bind(me, styleType));\n }\n });\n }\n\n public styleChanges(\n styleType: string,\n feature: Feature,\n resolution: any\n ): any {\n let style = this._vectorStyle.getStyleByType(styleType, feature, resolution);\n\n if (this.serviceLayerIsOn) {\n let newFillColor = asArray(style.getFill().getColor().toString()).slice();\n newFillColor[3] *= 0.75;\n style.getFill().setColor(newFillColor);\n\n let newStrokeColor = asArray(style.getStroke().getColor().toString()).slice();\n newStrokeColor[3] *= 0.45;\n style.getStroke().setColor(newStrokeColor);\n }\n\n return style;\n }\n\n public getFeaturesByCooordinat(coordinates: number[]): ZoneFeature[] {\n let listFeatures: ZoneFeature[] = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (layer.get(\"layerInfo\")) {\n layer.getSource().forEachFeature(function (feature: any) {\n let polygonGeometry = feature.getGeometry();\n if (polygonGeometry.intersectsCoordinate(coordinates)) {\n let zonefeature = new ZoneFeature();\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n let layerProps = layer.getProperties();\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n listFeatures.push(zonefeature);\n }\n });\n }\n });\n return listFeatures;\n }\n\n public setFeature(coordinates: number[]) {\n this.interActions[\"select\"].getFeatures().clear();\n let listFeatures: ZoneFeature[] = new Array();\n let features: any[] = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (layer.get(\"layerInfo\") && layer.getProperties().layerInfo.name != \"changed\") {\n layer.getSource().forEachFeature(function (feature: any) {\n let polygonGeometry = feature.getGeometry();\n if (polygonGeometry.intersectsCoordinate(coordinates)) {\n let zonefeature = new ZoneFeature();\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n let layerProps = layer.getProperties();\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n listFeatures.push(zonefeature);\n features.push(feature);\n }\n });\n }\n });\n for (let n = 0; n < features.length; n++) {\n this.addToSelected(features[n]);\n }\n\n this.featuresSelected(listFeatures);\n }\n\n private isFeatureSelected(feature: Feature) {\n let features = this._selectedfeatures;\n for (let i = 0; features && i < features.length; i++) {\n if (\n feature.get(\"refID\") &&\n features[i].refId &&\n feature.get(\"refID\") == features[i].refId\n ) {\n return true;\n }\n }\n return false;\n }\n\n public getSelectedFeature(): ZoneFeature[] {\n return this._selectedfeatures;\n }\n\n public removeSelectedFeatures(zoneFeature: ZoneFeature): void {\n this.interActions[\"select\"].getFeatures().clear();\n let me = this;\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").planversionId ==\n zoneFeature.planInfo.planversionId &&\n layer.get(\"layerInfo\").name == zoneFeature.layerName\n ) {\n layer.getSource().forEachFeature(function (feature: any) {\n if (feature.get(\"refID\") == zoneFeature.refId) {\n let zonefeature = new ZoneFeature();\n zonefeature.refId = feature.get(\"refID\");\n if (feature.get(\"type\")) {\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n } else {\n zonefeature.zoneType = \"\";\n }\n let layerProps = layer.getProperties();\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n me.interActions[\"select\"].getFeatures().push(feature);\n me.featuresSelected([zonefeature]);\n return;\n }\n });\n }\n });\n }\n\n public featuresSelected(selectedFeatures: ZoneFeature[]) {\n this._selectedSelectZoneFeatures.next(selectedFeatures);\n this._selectedfeatures = selectedFeatures;\n }\n\n public getZoneFeaturesForConsultation(\n planversionId: string,\n zoomTo: boolean\n ): ZoneFeature[] {\n let zones = new Array();\n let features = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").status == \"consultation\" &&\n layer.get(\"layerInfo\").planversionId == planversionId\n ) {\n let layerProps = layer.getProperties();\n layer.getSource().forEachFeature(function (feature: any) {\n let zonefeature = new ZoneFeature();\n zonefeature.planInfo = new PlanInfo();\n zonefeature.planInfo.planversionId = planversionId;\n zonefeature.planInfo.status = layerProps.layerInfo.status;\n zonefeature.refId = feature.get(\"refID\");\n if (feature.get(\"type\")) {\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n }\n zonefeature.planInfo.styleType = layerProps.layerInfo.styleType;\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n zones.push(zonefeature);\n features.push(feature);\n });\n }\n });\n if (zoomTo) {\n this.flyToFeatures(features, 10000);\n }\n return zones;\n }\n\n public getZoneFeaturesAllForPlanversion(\n planversionId: string\n ): ZoneFeature[] {\n let zones = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").planversionId == planversionId &&\n layer.get(\"layerInfo\").name == \"zones\"\n ) {\n let layerProps = layer.getProperties();\n layer.getSource().forEachFeature(function (feature: any) {\n let zonefeature = new ZoneFeature();\n zonefeature.planInfo = new PlanInfo();\n zonefeature.planInfo.planversionId = planversionId;\n zonefeature.planInfo.status = layerProps.layerInfo.status;\n zonefeature.refId = feature.get(\"refID\");\n if (feature.get(\"type\")) {\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n } else {\n zonefeature.zoneType = \"\";\n }\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n zones.push(zonefeature);\n });\n }\n });\n return zones;\n }\n\n public getZoneFeaturesAllForByLayer(\n layerName: string,\n planversionId: string\n ): ZoneFeature[] {\n let zones = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").planversionId == planversionId &&\n layer.get(\"layerInfo\").name == layerName\n ) {\n let layerProps = layer.getProperties();\n layer.getSource().forEachFeature(function (feature: any) {\n let zonefeature = new ZoneFeature();\n zonefeature.planInfo = new PlanInfo();\n zonefeature.planInfo.planversionId = planversionId;\n zonefeature.planInfo.status = layerProps.layerInfo.status;\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n zones.push(zonefeature);\n });\n }\n });\n return zones;\n }\n\n public addIconMarker(coordinate: number[]) {\n if (coordinate.length > 0) {\n this.clearMarkerFeature();\n let iconFeature = new Feature({\n geometry: new Point(coordinate),\n });\n let iconStyle = new Style({\n image: new Icon({\n anchor: [0.5, 35],\n anchorXUnits: IconAnchorUnits.FRACTION,\n anchorYUnits: IconAnchorUnits.PIXELS,\n src: \"./assets/marker_ikon.png\",\n }),\n });\n iconFeature.setStyle(iconStyle);\n this._markerVectorLayer.getSource().addFeature(iconFeature);\n }\n }\n\n clearMarkerFeature(): void {\n if (this._markerVectorLayer.getSource().getFeatures().length > 0) {\n this._markerVectorLayer.getSource().clear();\n }\n }\n\n private addToSelected(feature: any) {\n let features = this.interActions[\"select\"].getFeatures();\n let found = false;\n for (let i = 0; features && i < features.getLength(); i++) {\n if (\n feature &&\n feature.get(\"refID\") == features.getArray()[i].get(\"refID\")\n ) {\n found = true;\n break;\n }\n }\n if (!found) {\n this.featuresSelected(this._interActions[\"select\"].getFeatures());\n this._interActions[\"select\"].getFeatures().push(feature);\n }\n }\n\n public findZoneFeatures(layerName: string, refID: string): ZoneFeature[] {\n let zonefeature: ZoneFeature = null;\n let zones = new Array();\n this._map.getLayers().forEach(function (layer: any) {\n if (layer.get(\"layerInfo\") && layer.get(\"layerInfo\").name.toLowerCase() == layerName.toLowerCase()) {\n let layerProps = layer.getProperties();\n layer.getSource().forEachFeature(function (feature: any) {\n if (feature && feature.get(\"refID\") == refID) {\n zonefeature = new ZoneFeature();\n zonefeature.planInfo = new PlanInfo();\n zonefeature.planInfo.planversionId = layer.get(\n \"layerInfo\"\n ).planversionId;\n zonefeature.planInfo.status = layerProps.layerInfo.status;\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n zones.push(zonefeature);\n }\n });\n }\n });\n return zones;\n }\n\n public findZoneFeature(\n planversionId: string,\n layerName: string,\n refID: string\n ): ZoneFeature {\n let zonefeature: ZoneFeature = null;\n let foundFeature: any = null;\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").planversionId == planversionId &&\n layer.get(\"layerInfo\").name.toLowerCase() == layerName.toLowerCase()\n ) {\n let layerProps = layer.getProperties();\n layer.getSource().forEachFeature(function (feature: any) {\n if (feature && feature.get(\"refID\") == refID) {\n foundFeature = feature;\n zonefeature = new ZoneFeature();\n zonefeature.planInfo = new PlanInfo();\n zonefeature.planInfo.planversionId = planversionId;\n zonefeature.planInfo.status = layerProps.layerInfo.status;\n zonefeature.refId = feature.get(\"refID\");\n zonefeature.zoneType = feature.get(\"type\").split(\",\");\n zonefeature.layerName = layerProps.layerInfo.name;\n zonefeature.planInfo = layerProps.layerInfo;\n zonefeature.geometry = JSON.parse(\n new GeoJSON().writeGeometry(feature.getGeometry())\n );\n return zonefeature;\n }\n });\n }\n });\n if (foundFeature) {\n this.addToSelected(foundFeature);\n }\n\n return zonefeature;\n }\n\n private setStyleForFeatureById(\n feature_id: number,\n featureStyle: string,\n feature: Feature\n ) {\n if (feature.get(\"refID\") === feature_id) {\n feature.setStyle(this.styleChanges.bind(this, featureStyle));\n }\n }\n\n private setStyleForLayerFeatures(styleName: string, feature: Feature) {\n feature.setStyle(this.styleChanges.bind(this, styleName));\n }\n\n private getLayerByName(layerName: string, styleType: string) {\n let chosenLayer;\n this._map.getLayers().forEach(function (layer: any) {\n if (\n layer.get(\"layerInfo\") &&\n layer.get(\"layerInfo\").name === layerName &&\n layer.get(\"layerInfo\").styleType === styleType\n ) {\n chosenLayer = layer;\n }\n });\n return chosenLayer;\n }\n\n setCustomFeatureClickCallback(cb: any, planversionId: string) {\n this._activeConsultationPlanversionId = planversionId;\n this._customFeatureClickCallback = cb;\n }\n\n canCustomFeatureClickBeUsed() {\n const allowedPage: RegExp = /^\\/da\\/page\\/consultation\\/answer\\/[a-z0-9\\-]+\\/create/g;\n let checkedCurrent = allowedPage.test(this.routeService.currentPath);\n return checkedCurrent;\n }\n\n setGeometryDrawingCallback(cb: any): any {\n this._geometryCallback = cb;\n }\n\n onEditFeaturesSelected(): Observable {\n return this._selectedEditFeatures.asObservable();\n }\n\n onSelectFeaturesSelected(): Observable {\n return this._selectedSelectFeatures.asObservable();\n }\n\n clearHoveredFeatures(): void {\n if (this._featureOverlay != null) {\n this._featureOverlay.getSource().clear();\n }\n }\n\n clearSelectedFeatures(type: string) {\n switch (type.toUpperCase()) {\n case \"EDIT\":\n this.clearEditFeatures();\n break;\n case \"SELECT\":\n this.interActions[\"select\"].getFeatures().clear();\n this._selectedSelectFeatures.next();\n break;\n case \"CONSULTATIONRESPONSEZONE\":\n this.hearingAnswerDisplayLayer.getSource().clear();\n this._newHearingAnswerCallback(null);\n break;\n case \"MAPSEARCH\":\n this.hearingAnswerDisplayLayer.getSource().clear();\n this.interActions[\"select\"].getFeatures().clear();\n this._selectedSelectFeatures.next();\n this._newHearingAnswerCallback(null);\n this._mapSearchTerm = \"\";\n break;\n case \"ALL\":\n this.hearingAnswerDisplayLayer.getSource().clear();\n this.interActions[\"select\"].getFeatures().clear();\n this.clearEditFeatures();\n this._selectedEditFeatures.next();\n this._selectedSelectFeatures.next();\n this._newHearingAnswerCallback(null);\n this.clearMarkerFeature();\n this._mapSearchTerm = \"\";\n break;\n default:\n console.log(\"UNKNOWN clearSelectedFeatures type\");\n break;\n }\n }\n\n activeDrawingTool(geometriTypes: string[]): void {\n this.clearSelectedFeatures(\"SELECT\");\n this._drawingTool.setTypes(geometriTypes);\n this._drawingTool.changeDrawingType([]);\n this._drawingTool.setVisble(true);\n }\n\n deactivateDrawingTool(clearSelectedFeature: boolean = true): void {\n if (clearSelectedFeature) {\n this.clearSelectedFeatures(\"EDIT\");\n }\n this._drawingTool.setVisble(false);\n }\n\n setDrawingToolsVisible(isVisible: boolean) {\n this._drawingTool.setVisble(isVisible);\n }\n\n updateEditedFeatures(features: Feature[]): void {\n const type =\n features && features.length > 0\n ? (features[0].getGeometry().getType() as string)\n : \"UNDEFINDED\";\n switch (type.toUpperCase()) {\n case \"POINT\":\n case \"MULTIPOINT\":\n this.createMultiPointGeojson(features);\n break;\n case \"LINESTRING\":\n case \"MULTILINESTRING\":\n this.createMultiLineStringGeojson(features);\n break;\n case \"POLYGON\":\n case \"MULTIPOLYGON\":\n this.createMultiPolygonGeojson(features);\n break;\n default:\n this._geometryCallback(\"{}\");\n break;\n }\n }\n\n private createMultiPointGeojson(features: Feature[]): void {\n const mPoint = new MultiPoint([]);\n for (const index in features) {\n if (index) {\n const type = features[index].getGeometry().getType() as string;\n if (type.toUpperCase().indexOf(\"POINT\") > -1) {\n if (type.toUpperCase().indexOf(\"MULTIPOINT\") > -1) {\n const points = ((\n features[index].getGeometry()\n )).getPoints();\n for (const indexPoint in points) {\n if (indexPoint) {\n mPoint.appendPoint(points[indexPoint]);\n }\n }\n } else {\n mPoint.appendPoint(features[index].getGeometry());\n }\n }\n }\n }\n const geojson =\n mPoint.getPoints().length > 0\n ? new GeoJSON().writeGeometry(mPoint)\n : \"{}\";\n this._geometryCallback(geojson);\n }\n\n private createMultiLineStringGeojson(features: Feature[]): void {\n const mLine = new MultiLineString([]);\n for (const index in features) {\n if (index) {\n const type = features[index].getGeometry().getType() as string;\n if (type.toUpperCase().indexOf(\"LINE\") > -1) {\n if (type.toUpperCase().indexOf(\"MULTILINE\") > -1) {\n const lines = ((\n features[index].getGeometry()\n )).getLineStrings();\n for (const indexLine in lines) {\n if (indexLine) {\n mLine.appendLineString(lines[indexLine]);\n }\n }\n } else {\n mLine.appendLineString(features[index].getGeometry());\n }\n }\n }\n }\n const geojson =\n mLine.getLineStrings().length > 0\n ? new GeoJSON().writeGeometry(mLine)\n : \"{}\";\n this._geometryCallback(geojson);\n }\n\n private createMultiPolygonGeojson(features: Feature[]): void {\n const mPolygon = new MultiPolygon([]);\n for (const index in features) {\n if (index) {\n const type = features[index].getGeometry().getType() as string;\n if (type.toUpperCase().indexOf(\"POLYGON\") > -1) {\n if (type.toUpperCase().indexOf(\"MULTIPOLYGON\") > -1) {\n const polygons = ((\n features[index].getGeometry()\n )).getPolygons();\n for (const indexPolygon in polygons) {\n if (index) {\n mPolygon.appendPolygon(polygons[index]);\n }\n }\n } else {\n mPolygon.appendPolygon(features[index].getGeometry());\n }\n }\n }\n }\n const geojson =\n mPolygon.getPolygons().length > 0\n ? new GeoJSON().writeGeometry(mPolygon)\n : \"{}\";\n this._geometryCallback(geojson);\n }\n\n async showHearingAnswerGeometry(geojson: any) {\n if(!geojson || JSON.stringify(geojson) == \"{}\" || JSON.stringify(geojson) == \"[]\"){\n return;\n }\n if(geojson.length > 0){\n for(let geo of geojson){\n const feature = new Feature({\n geometry: new GeoJSON().readGeometry(geo),\n });\n this.hearingAnswerDisplayLayer.getSource().clear();\n let extent = feature.getGeometry().getExtent();\n let bufferExtented = buffer(extent, 2000); // Buffer 1500 meter\n const mutex = new Mutex();\n const release = await mutex.acquire();\n this._map\n .getView()\n .fit(bufferExtented, { size: this._map.getSize(), callback: release() });\n this._newHearingAnswerCallback(feature);\n }\n }else{\n const feature = new Feature({\n geometry: new GeoJSON().readGeometry(geojson),\n });\n this.hearingAnswerDisplayLayer.getSource().clear();\n let extent = feature.getGeometry().getExtent();\n let bufferExtented = buffer(extent, 2000); // Buffer 1500 meter\n const mutex = new Mutex();\n const release = await mutex.acquire();\n this._map\n .getView()\n .fit(bufferExtented, { size: this._map.getSize(), callback: release() });\n this._newHearingAnswerCallback(feature);\n }\n\n }\n\n showSelectedHearingGeometry(geojson: JSON) {\n const feature = new Feature({\n geometry: new GeoJSON().readGeometry(geojson),\n });\n this._newHearingAnswerCallback(feature);\n }\n\n private addDrawFeature(event: any): void {\n if (this.isDrawingToolActive) {\n const features = this._editSource.getFeatures() as Feature[];\n this.updateEditedFeatures(features);\n }\n }\n\n private removeDrawFeature(event: any): void {\n if (this.isDrawingToolActive) {\n const features = this._editSource.getFeatures() as Feature[];\n this.updateEditedFeatures(features);\n }\n }\n\n public clearEditFeatures(): void {\n this._hearingAnswerDisplayLayer.getSource().clear();\n if (this._editVectorLayer.getSource().getFeatures().length > 0) {\n this._editVectorLayer.getSource().clear();\n }\n }\n\n private mergeGeometries(features: Feature[]): Feature {\n if (features.length == 1) {\n return features[0];\n }\n let listGemetries = [];\n for (let i = 0; i < features.length; i++) {\n listGemetries.push(features[i].getGeometry());\n }\n return new Feature({\n geometry: new GeometryCollection(listGemetries),\n name: \"zoom area\",\n });\n }\n\n private findFeature(refID: string, zoneType: string): Feature {\n let featureFound: Feature = null;\n\n this._map.getLayers().forEach(function (layer: any) {\n if (layer instanceof LayerGroup) {\n } else {\n if (layer.get(\"layerInfo\")) {\n layer.getSource().forEachFeature(function (feature: any) {\n if (\n feature.get(\"refID\") == refID &&\n feature.get(\"type\") == zoneType\n ) {\n featureFound = feature;\n return;\n }\n });\n }\n }\n if (featureFound) {\n return;\n }\n });\n\n return featureFound;\n }\n\n private findFeatureByZoneTypes(refID: string, zoneTypes: string[]): Feature {\n let featureFound: Feature = null;\n\n this._map.getLayers().forEach(function (layer: any) {\n if (layer instanceof LayerGroup) {\n } else {\n if (layer.get(\"layerInfo\")) {\n layer.getSource().forEachFeature(function (feature: any) {\n if (\n feature.get(\"refID\") == refID &&\n zoneTypes.indexOf(feature.get(\"type\")) >= 0\n ) {\n featureFound = feature;\n return;\n }\n });\n }\n }\n if (featureFound) {\n return;\n }\n });\n\n return featureFound;\n }\n\n public flyToFeaturesByZoneTypes(zoneFeatures: ZoneFeature[]) {\n let features = [];\n for (let i = 0; i < zoneFeatures.length; i++) {\n let feature = this.findFeature(\n zoneFeatures[i].refId,\n zoneFeatures[i].zoneType\n );\n if (feature) {\n features.push(feature);\n }\n }\n // console.log(JSON.stringify(features));\n this.flyToFeatures(features);\n }\n\n public flyToFeaturesByZoneTypesArr(zone:any[]) {\n let features = [];\n for (let i = 0; i < zone.length; i++) {\n let feature = this.findFeatureByZoneTypes(\n zone[i].refId,\n zone[i].type\n );\n if (feature) {\n features.push(feature);\n }\n }\n // console.log(JSON.stringify(features));\n this.flyToFeatures(features);\n }\n\n public flyTofeatureByZoneType(refID: string, zoneType: string) {\n let feature = this.findFeature(refID, zoneType);\n if (feature) {\n this.flyToFeature(feature);\n } else {\n console.log(\"Feature not found by: \" + refID + \" : \" + zoneType);\n }\n }\n\n private flytoCallback(bufferExtented: Extent) {\n this._map.getView().fit(bufferExtented, this._flyTofitOptions);\n }\n\n public flyToFeatures(features: Feature[], bufferSize: number = 2000) {\n //console.log(\"Number: \"+features.length);\n if (features.length > 0) {\n let mergedFeature = this.mergeGeometries(features);\n let extent = mergedFeature.getGeometry().getExtent();\n let bufferExtented = buffer(extent, bufferSize);\n if (containsExtent(this._map.getView().calculateExtent(), extent)) {\n this.flytoCallback(bufferExtented);\n } else {\n this._map\n .getView()\n .animate(\n { zoom: this._map.getView().getZoom() - 1, duration: 500 },\n this.flytoCallback.bind(this, bufferExtented)\n );\n }\n }\n }\n\n public flyToFeature(feature: Feature) {\n if (feature) {\n let extent = feature.getGeometry().getExtent();\n let bufferExtented = buffer(extent, 2000);\n if (containsExtent(this._map.getView().calculateExtent(), extent)) {\n this.flytoCallback(bufferExtented);\n } else {\n this._map\n .getView()\n .animate(\n { zoom: this._map.getView().getZoom() - 1, duration: 500 },\n this.flytoCallback.bind(this, bufferExtented)\n );\n }\n }\n }\n\n setNewHearingAnswerCallback(cb: any): any {\n this._newHearingAnswerCallback = cb;\n }\n\n public getMap(): any {\n return this._map;\n }\n\n public transformatToFromProjection(\n geometry: Geometry,\n projSoruce: string,\n projDestination: string\n ): Geometry {\n return geometry.transform(\"EPSG:25832\", \"EPSG:4326\");\n }\n\n public setTerm(term: string) {\n this._mapSearchTerm = term;\n }\n\n public getTerm() {\n return this._mapSearchTerm;\n }\n\n callByProxy(url: string): Observable {\n const parameters = {};\n parameters['url'] = url;\n const params = new HttpParams({\n // fromObject: parameters\n });\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'text/plain');\n headers.append('Accept', 'text/plain');\n return this.http.get(url , {params: params, headers: headers, responseType: 'text', observe: 'response' });\n }\n\n public setChangeMarkingLayersVisibility(name: string, isVisible : boolean) {\n\n this.showChangeMarkingLayers[name] = isVisible;\n\n if (this._map) {\n this._map.getLayers().forEach(function (layer: any) {\n const layerInfo = layer.get(\"layerInfo\");\n if (layerInfo && layerInfo.name == name) {\n layer.setVisible(isVisible);\n }\n });\n\n this.changeMarkingsSubject.next(isVisible);\n }\n }\n\n public setServiceLayerIsOn(isOn: boolean) {\n if (this.serviceLayerIsOn != isOn) {\n this.serviceLayersModeSubject.next(isOn);\n }\n this.serviceLayerIsOn = isOn;\n }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\nimport { Consultation } from \"../models/consultation\";\nimport { MapSettings } from \"../models/mapsettings\";\nimport { PlandataTimeLineInfo } from \"../models/plandatatimelineinfo\";\nimport { StatusInfo } from \"../models/statusinfo\";\nimport { Timeline } from \"../models/timeline\";\nimport { TimePlanversionEvent } from \"../models/timeplanversionevent\";\nimport { DescriptionTextPdf } from \"../plandataDefinition/descriptionTextPdf\";\nimport { ContentService } from \"./content.service\";\nimport { DateService } from \"./date.service\";\nimport { EnvironmentService } from \"./environment.service\";\nimport { LanguageService } from \"./language.service\";\nimport { PreviewService } from \"./preview.service\";\n// import moment from \"moment\";\n//import { Console } from \"console\";\n//import { ConsoleReporter } from 'jasmine';\n\n@Injectable()\nexport class PlandataService {\n private _seaplandata: any;\n private _currentDateTime: Date;\n private _mapDefinition: any;\n private _currentConfigLayers: [];\n private _currentPublishedLayers = new Array();\n private _currentConsultationLayers = new Array();\n private _currentConsultationVersionIdxList = new Array();\n private _currentPostConsultationVersionIdxList = new Array();\n private _currentPublishedVersionIdx;\n private _workingVersion: number;\n private _currentTimeLineIndex: number;\n private _layerConfigChanged = new Subject();\n private _layersChanged = new Subject();\n private _timePlanversionChanged = new Subject();\n currentLang: string = null;\n contentString: any;\n historyPrefix = \"/plan/history\";\n\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService,\n private previewService: PreviewService,\n private dateService: DateService,\n private languageService: LanguageService,\n private contentService: ContentService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n onLayerConfigEventChanged(): Observable {\n return this._layerConfigChanged.asObservable();\n }\n\n onLayersEventChanged(): Observable {\n return this._layersChanged.asObservable();\n }\n\n onTimePlanversionChanged(): Observable {\n return this._timePlanversionChanged.asObservable();\n }\n\n set currentLayerConfig(configLayers: any) {\n this._currentConfigLayers = configLayers;\n }\n\n set currentSeaPlandata(plandataversion: any) {\n this.currentSeaPlandata$.next(plandataversion);\n this._seaplandata = plandataversion;\n }\n\n currentSeaPlandata$ = new Subject();\n\n set currentDateTime(currentDateTime: Date) {\n this._currentDateTime = currentDateTime;\n }\n\n set mapDefinition(mapDefination: any) {\n this._mapDefinition = mapDefination;\n }\n\n set currentTimeLineIndex(timeIndex: number) {\n this._currentTimeLineIndex = timeIndex;\n }\n\n getText(prefix: string, shortName: string) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n get currentDateTime(): Date {\n return this._currentDateTime;\n }\n\n get mapDefinition() {\n return this._mapDefinition;\n }\n\n get currentPlandata(): any {\n return this._seaplandata;\n }\n\n get currentLayerConfig(): any {\n return this._currentConfigLayers;\n }\n\n get currentPublishedLayers(): any {\n return this._currentPublishedLayers;\n }\n\n get currentConsultationLayers(): any {\n return this._currentConsultationLayers;\n }\n\n get currentTimeLineIndex(): number {\n return this._currentTimeLineIndex;\n }\n\n private setLayerConfig(index: number): void {\n if (\n index != null &&\n index > -1 &&\n this._seaplandata.configurations[index] &&\n this._seaplandata.configurations[index].layers &&\n this._seaplandata.configurations[index].styles\n ) {\n this.currentLayerConfig = this._seaplandata.configurations[index];\n this._layerConfigChanged.next(this._seaplandata.configurations[index]);\n } else {\n this.currentLayerConfig = this._seaplandata.configurations[0];\n this._layerConfigChanged.next(this._seaplandata.configurations[0]);\n }\n }\n\n public getPlandata(): Observable {\n let previewDateIso: string = this._currentDateTime.toISOString();\n\n // Preview\n let plandataServiceEndpoint = \"\";\n if (this.previewService.getPlandataPreviewUUID() != null)\n plandataServiceEndpoint =\n this.environmentService.getEnvironment()\n .serviceurl_protectedportalcache +\n \"plandata/\" +\n this.previewService.getPlandataPreviewUUID() +\n \"/\" +\n previewDateIso +\n \"/preview\";\n else if (this.previewService.getPlandataConsultationPreviewUUID() != null)\n plandataServiceEndpoint =\n this.environmentService.getEnvironment()\n .serviceurl_protectedportalcache +\n \"plandata/\" +\n this.previewService.getPlandataConsultationPreviewUUID() +\n \"/\" +\n previewDateIso +\n \"/consultationpreview\";\n else\n plandataServiceEndpoint =\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"plandata\";\n\n return this.http.get(plandataServiceEndpoint, { params: {} });\n }\n\n public getCurrentDateTime(): Observable {\n return this.http.get(\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"currentDateTime\",\n { params: {} }\n );\n }\n\n public getMapDefinition(): Observable {\n return this.http.get(\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"mapdefinition\",\n { params: {} }\n );\n }\n\n public setPlanVersionFromCurrentDateTime() {\n let index = this.findTimeLineIndex();\n if (index > -1) {\n let configurationIdx = this.findIndexOfConfigurationToApply(index);\n this.setLayerConfig(configurationIdx);\n this.currentTimeLineIndex = index;\n this._workingVersion = this.findLastApprovedOrCancelled();\n let event = new TimePlanversionEvent();\n event.timeLineIndex = index;\n event.historicPlan = this._workingVersion <= index ? false : true;\n this._timePlanversionChanged.next(event);\n\n this._currentConsultationVersionIdxList =\n this._seaplandata.timeline[index].consultationVersionIdxList;\n this._currentPublishedVersionIdx =\n this._seaplandata.timeline[index].publishedVersionIdx;\n this._currentPostConsultationVersionIdxList =\n this._seaplandata.timeline[index].postConsultationVersionIdxList;\n this.createPlandataLayers(index);\n } else {\n console.log(\"No data for seaplan timeline\");\n }\n }\n\n public setRegularPlanVersionTimeLine() {\n let event = new TimePlanversionEvent();\n event.timeLineIndex = this.currentTimeLineIndex;\n event.historicPlan =\n this._workingVersion <= this.currentTimeLineIndex ? false : true;\n this._timePlanversionChanged.next(event);\n }\n\n public setConsultationTimeLine(consultation: any, timeLineData: any[]) {\n let consultationTimeIndex = this.getTimeIndex(\n new Date(consultation.currentDateTime),\n timeLineData\n );\n let event = new TimePlanversionEvent();\n event.timeLineIndex = consultationTimeIndex;\n event.historicPlan =\n this._workingVersion <= this.currentTimeLineIndex ? false : true;\n this._timePlanversionChanged.next(event);\n }\n\n getTimeIndex(newDate: Date, timeLineData: any[]) {\n let timeIndex: number = 0;\n\n for (let n = 0; n < timeLineData.length; n++) {\n if (newDate >= new Date(timeLineData[n].start)) {\n timeIndex = n;\n }\n }\n return timeIndex;\n }\n\n public isHistoryMap(): boolean {\n //return this._workingVersion != this._currentTimeLineIndex;\n console.log(\n \"isHistoryMap: | _workingVersion=\" +\n this._workingVersion +\n \" _currentTimeLineIndex=\" +\n this._currentTimeLineIndex\n );\n return this._workingVersion > this._currentTimeLineIndex;\n }\n\n private findIndexOfConfigurationToApply(timeIndex: number): number {\n // let index = -1;\n // if (currentVersionIdx > -1) {\n // index =\n // this._seaplandata.consultationVersions[currentVersionIdx]\n // .configurationIdx;\n // }\n\n if (\n !this._seaplandata.timeline ||\n timeIndex >= this._seaplandata.timeline.length\n ) {\n return this._seaplandata.consultationVersions[0].configurationIdx;\n }\n\n const pointInTime = this._seaplandata.timeline[timeIndex];\n\n if (\n pointInTime.publishedVersionIdx > -1 &&\n this._seaplandata.publishedVersions &&\n pointInTime.publishedVersionIdx <\n this._seaplandata.publishedVersions.length\n ) {\n return this._seaplandata.publishedVersions[\n pointInTime.publishedVersionIdx\n ].configurationIdx;\n }\n\n let consultationVersionIdxList = [];\n if (\n pointInTime.consultationVersionIdxList != null &&\n pointInTime.consultationVersionIdxList.length > 0\n ) {\n consultationVersionIdxList = pointInTime.consultationVersionIdxList;\n } else if (\n pointInTime.postConsultationVersionIdxList != null &&\n pointInTime.postConsultationVersionIdxList.length > 0\n ) {\n consultationVersionIdxList = pointInTime.postConsultationVersionIdxList;\n }\n\n for (let i = consultationVersionIdxList.length - 1; i >= 0; i--) {\n const planVersionBeforeIdx = consultationVersionIdxList[i];\n if (\n this._seaplandata.consultationVersions[planVersionBeforeIdx]\n .configurationIdx > -1\n ) {\n return this._seaplandata.consultationVersions[planVersionBeforeIdx]\n .configurationIdx;\n }\n }\n\n return -1;\n }\n\n public isCurrentTimeLineHistoric() {\n return this._workingVersion <= this.currentTimeLineIndex ? false : true;\n }\n\n public setPlanVersionFromHistorik(timeIndex: number) {\n if (0 <= timeIndex < this._seaplandata.timeline.length) {\n let configurationIdx = this.findIndexOfConfigurationToApply(timeIndex);\n this.setLayerConfig(configurationIdx);\n\n this.currentTimeLineIndex = timeIndex;\n let event = new TimePlanversionEvent();\n event.timeLineIndex = timeIndex;\n // Get working version\n let index = this.findLastApprovedOrCancelled();\n if (index != -1) {\n this._workingVersion = index;\n }\n event.historicPlan = this._workingVersion <= timeIndex ? false : true;\n\n this._timePlanversionChanged.next(event);\n\n let timeLineHistorie = this._seaplandata.timeline[timeIndex];\n if (timeLineHistorie) {\n this._currentConsultationVersionIdxList =\n timeLineHistorie.consultationVersionIdxList;\n this._currentPublishedVersionIdx = timeLineHistorie.publishedVersionIdx;\n this._currentPostConsultationVersionIdxList =\n timeLineHistorie.postConsultationVersionIdxList;\n this.createPlandataLayers(timeIndex);\n this._layersChanged.next();\n }\n } else {\n console.log(\"timeIndex does not exists\");\n }\n }\n\n public showLegendForConsultation(): boolean {\n if (this._currentPublishedVersionIdx == -1) {\n return false;\n }\n if (this._currentConsultationVersionIdxList.length > 0) {\n return true;\n }\n return false;\n }\n\n public showLegendForPostConsultation(): boolean {\n if (this._currentPublishedVersionIdx == -1) {\n return false;\n }\n if (this._currentPostConsultationVersionIdxList.length > 0) {\n return true;\n }\n return false;\n }\n\n private getGeometryFileKeys(): Set {\n let result: Set = new Set();\n\n if (this._currentPublishedVersionIdx != -1) {\n for (let k in this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].geometryFiles) {\n result.add(k);\n }\n }\n for (let i = 0; i < this._currentConsultationVersionIdxList.length; i++) {\n for (let k in this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].geometryFiles) {\n result.add(k);\n }\n }\n for (\n let i = 0;\n i < this._currentPostConsultationVersionIdxList.length;\n i++\n ) {\n for (let k in this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].geometryFiles) {\n result.add(k);\n }\n }\n return result;\n }\n\n private createPlandataLayers(timeIndex: number) {\n let publishedlayers = [];\n let consultatationlayers = [];\n\n let geometryFileKeys = this.getGeometryFileKeys();\n //@ts-ignore\n for (let value of geometryFileKeys) {\n // -1 FIRST special case for seaplan\n if (this._currentPublishedVersionIdx == -1) {\n for (\n let i = 0;\n i < this._currentConsultationVersionIdxList.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].geometryFiles[value]\n ) {\n let isChangeType = value == \"changed\" || value == \"removed\";\n\n publishedlayers.push({\n type: \"consultation\",\n name: value,\n styleType: value,\n layerType: \"approved\",\n uuid: this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].geometryFiles[value],\n planversionId:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].planversionId,\n planversionName:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].title,\n planversionName_en:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].title_en,\n planversionType: \"\",\n consultationNoteUUID:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationNoteUUID,\n consultationNote:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationNote,\n consultationDescription:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationDescription,\n consultationVersionIdx:\n this._currentConsultationVersionIdxList[i],\n status: \"consultation\",\n consultationStart:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationStart,\n consultationEnd:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationEnd,\n effectiveDate:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].effectiveDate,\n descriptionTexts:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].descriptionTexts,\n historic: this._workingVersion <= timeIndex ? false : true,\n });\n }\n }\n\n // consultation without hearing\n for (\n let i = 0;\n i < this._currentPostConsultationVersionIdxList.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].geometryFiles[value]\n ) {\n let isChangeType = value == \"changed\" || value == \"removed\";\n\n consultatationlayers.push({\n type: \"consultation\",\n name: value,\n styleType: value, //(isChangeType ? value : \"consultation\"),\n layerType: \"approved\", //(isChangeType ? value : \"consultation\"),\n uuid: this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].geometryFiles[value],\n planversionId:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].planversionId,\n planversionName:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].title,\n planversionName_en:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].title_en,\n planversionType: \"\",\n consultationNoteUUID:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationNoteUUID,\n consultationNote:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationNote,\n consultationDescription:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationDescription,\n consultationVersionIdx:\n this._currentPostConsultationVersionIdxList[i],\n status: \"approved\", //'consultation',\n consultationStart:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationStart,\n consultationEnd:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationEnd,\n effectiveDate:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].effectiveDate,\n descriptionTexts:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].descriptionTexts,\n historic: this._workingVersion <= timeIndex ? false : true,\n });\n }\n }\n } else {\n // Published\n if (\n this._seaplandata.publishedVersions[this._currentPublishedVersionIdx]\n .geometryFiles[value]\n ) {\n publishedlayers.push({\n name: value,\n styleType: value,\n layerType: \"approved\",\n uuid: this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].geometryFiles[value],\n planversionId:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].planversionId,\n planversionName:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].title,\n planversionName_en:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].title_en,\n planversionType: \"\",\n consultationNoteUUID:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].consultationNoteUUID,\n consultationNote:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].consultationNote,\n consultationDescription:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].consultationDescription,\n currentPublishedVersionIdx: this._currentPublishedVersionIdx,\n status: \"approved\",\n consultationStart:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].consultationStart,\n consultationEnd:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].consultationEnd,\n effectiveDate:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].effectiveDate,\n descriptionTexts:\n this._seaplandata.publishedVersions[\n this._currentPublishedVersionIdx\n ].descriptionTexts,\n historic: this._workingVersion <= timeIndex ? false : true,\n });\n }\n\n // Hearings\n for (\n let i = 0;\n i < this._currentConsultationVersionIdxList.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].geometryFiles[value]\n ) {\n let isChangeType = value == \"changed\" || value == \"removed\";\n consultatationlayers.push({\n name: value,\n styleType: isChangeType ? value : \"consultation\",\n layerType: isChangeType ? value : \"consultation\",\n uuid: this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].geometryFiles[value],\n planversionId:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].planversionId,\n planversionName:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].title,\n planversionName_en:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].title_en,\n planversionType: \"\",\n consultationNoteUUID:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationNoteUUID,\n consultationNote:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationNote,\n consultationDescription:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationDescription,\n consultationVersionIdx:\n this._currentConsultationVersionIdxList[i],\n status: \"consultation\",\n consultationStart:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationStart,\n consultationEnd:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].consultationEnd,\n effectiveDate:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].effectiveDate,\n descriptionTexts:\n this._seaplandata.consultationVersions[\n this._currentConsultationVersionIdxList[i]\n ].descriptionTexts,\n historic: this._workingVersion <= timeIndex ? false : true,\n });\n }\n }\n\n // v\n for (\n let i = 0;\n i < this._currentPostConsultationVersionIdxList.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].geometryFiles[value]\n ) {\n let isChangeType = value == \"changed\" || value == \"removed\";\n\n consultatationlayers.push({\n type: \"consultation\",\n name: value,\n styleType: value,\n layerType: \"approved\",\n // name: value,\n // styleType: (isChangeType ? value : \"consultation\"),\n // layerType: 'approved', //(isChangeType ? value : \"consultation\"),\n uuid: this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].geometryFiles[value],\n planversionId:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].planversionId,\n planversionName:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].title,\n planversionName_en:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].title_en,\n planversionType: \"\",\n consultationNoteUUID:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationNoteUUID,\n consultationNote:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationNote,\n consultationDescription:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationDescription,\n consultationVersionIdx:\n this._currentPostConsultationVersionIdxList[i],\n status: \"approved\", //'consultation',\n consultationStart:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationStart,\n consultationEnd:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].consultationEnd,\n effectiveDate:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].effectiveDate,\n descriptionTexts:\n this._seaplandata.consultationVersions[\n this._currentPostConsultationVersionIdxList[i]\n ].descriptionTexts,\n historic: this._workingVersion <= timeIndex ? false : true,\n });\n }\n }\n }\n }\n\n this._currentPublishedLayers = publishedlayers;\n this._currentConsultationLayers = consultatationlayers;\n }\n\n private getStatusInfo(value: string): StatusInfo {\n let response: StatusInfo = new StatusInfo();\n switch (value.toUpperCase()) {\n case \"PLAN_CONSULTATION_START\":\n response.cmstext = \"consultation_attribute_status_in_consultation_plan\";\n response.status = \"consultation\";\n break;\n case \"PLAN_CONSULTATION_END\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_plan_end\";\n response.status = \"consultation\";\n break;\n case \"PLAN_APPROVED\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_plan_approved\";\n response.status = \"approved\";\n break;\n case \"SUPPLEMENT_CONSULTATION_START\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_supplement\";\n response.status = \"consultation\";\n break;\n case \"SUPPLEMENT_CONSULTATION_END\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_supplement_end\";\n response.status = \"consultation\";\n break;\n case \"SUPPLEMENT_APPROVED\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_supplement_approved\";\n response.status = \"approved\";\n break;\n case \"CANCELLATION\":\n response.cmstext =\n \"consultation_attribute_status_in_consultation_cancelled\";\n response.status = \"cancel\";\n break;\n default:\n response.cmstext =\n \"consultation_attribute_status_in_consultation_unknown\";\n response.status = \"\";\n break;\n }\n return response;\n }\n\n private getConsultationStatusAndDate(consultationIdx: number): any {\n let response: Timeline = new Timeline();\n let lastConsultationIdx = -1;\n let lastPostConsultationIdx = -1;\n let tempTimeLine = new Array();\n for (let n = 0; n < this._seaplandata.timeline.length; n++) {\n if (\n new Date(this._seaplandata.timeline[n].start) <= this._currentDateTime\n ) {\n tempTimeLine.push(this._seaplandata.timeline[n]);\n }\n }\n\n for (let n = 0; n < tempTimeLine.length; n++) {\n if (\n tempTimeLine[n].consultationVersionIdxList.indexOf(consultationIdx) !=\n -1\n ) {\n lastConsultationIdx = n;\n }\n }\n for (let n = 0; n < tempTimeLine.length; n++) {\n if (\n tempTimeLine[n].postConsultationVersionIdxList.indexOf(\n consultationIdx\n ) != -1\n ) {\n lastPostConsultationIdx = n;\n }\n }\n\n if (lastPostConsultationIdx > -1) {\n if (tempTimeLine.length > lastPostConsultationIdx + 1) {\n let newlastPostConsultationIdx = lastPostConsultationIdx + 1;\n response.effectiveDate = tempTimeLine[newlastPostConsultationIdx].start;\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[newlastPostConsultationIdx].timelineType\n );\n } else {\n response.effectiveDate = tempTimeLine[lastPostConsultationIdx].start;\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[lastPostConsultationIdx].timelineType\n );\n }\n } else if (lastConsultationIdx > -1) {\n if (tempTimeLine.length > lastConsultationIdx + 1) {\n let newlastConsultationIdx = lastConsultationIdx + 1;\n response.effectiveDate = tempTimeLine[newlastConsultationIdx].start;\n if (\n tempTimeLine[newlastConsultationIdx].timelineType.indexOf(\"_END\") ==\n -1\n ) {\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[newlastConsultationIdx].timelineType\n );\n } else {\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[newlastConsultationIdx].timelineType.replace(\n \"_END\",\n \"_START\"\n )\n );\n }\n } else {\n response.effectiveDate = tempTimeLine[lastConsultationIdx].start;\n if (\n tempTimeLine[lastConsultationIdx].timelineType.indexOf(\"_END\") == -1\n ) {\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[lastConsultationIdx].timelineType\n );\n } else {\n response.statusInfo = this.getStatusInfo(\n tempTimeLine[lastConsultationIdx].timelineType.replace(\n \"_END\",\n \"_START\"\n )\n );\n }\n }\n }\n return response;\n }\n\n public getConsultations(includeHistoric: boolean): Consultation[] {\n let list: Consultation[] = new Array();\n // Get current in time\n // this.currentTimeLineIndex;\n if (includeHistoric) {\n // No historical\n\n for (let i = 0; i < this._seaplandata.consultationVersions.length; i++) {\n if (\n new Date(this._seaplandata.consultationVersions[i].consultationEnd) >\n this._currentDateTime &&\n new Date(\n this._seaplandata.consultationVersions[i].consultationStart\n ) <= this._currentDateTime\n ) {\n let item: Consultation = this._seaplandata.consultationVersions[\n i\n ] as Consultation;\n item.consultationVersionIdx = i;\n let response: Timeline = this.getConsultationStatusAndDate(i);\n item.statusInfo = response.statusInfo;\n item.effectiveDate = response.effectiveDate;\n item.historic = false;\n list.push(item);\n }\n }\n\n for (let i = 0; i < this._seaplandata.consultationVersions.length; i++) {\n if (\n new Date(this._seaplandata.consultationVersions[i].consultationEnd) <=\n this._currentDateTime &&\n new Date(\n this._seaplandata.consultationVersions[i].consultationStart\n ) <= this._currentDateTime\n ) {\n let item: Consultation = this._seaplandata.consultationVersions[\n i\n ] as Consultation;\n item.historic = true;\n item.consultationVersionIdx = i;\n let response: Timeline = this.getConsultationStatusAndDate(i);\n item.statusInfo = response.statusInfo;\n item.effectiveDate = response.effectiveDate;\n list.push(item);\n }\n }\n } else {\n for (let i = 0; i < this._seaplandata.consultationVersions.length; i++) {\n if (\n new Date(this._seaplandata.consultationVersions[i].consultationEnd) >\n this._currentDateTime &&\n new Date(\n this._seaplandata.consultationVersions[i].consultationStart\n ) <= this._currentDateTime\n ) {\n let item: Consultation = this._seaplandata.consultationVersions[\n i\n ] as Consultation;\n item.consultationVersionIdx = i;\n let response: Timeline = this.getConsultationStatusAndDate(i);\n item.statusInfo = response.statusInfo;\n item.effectiveDate = response.effectiveDate;\n item.historic = false;\n list.push(item);\n }\n }\n }\n return list;\n }\n\n public getMapBaseSettings(): MapSettings {\n let defaultSettings = this._seaplandata.configurations[0];\n let mapsettings: MapSettings = new MapSettings();\n this.currentLayerConfig.settings\n ? (mapsettings.settings = this.currentLayerConfig.settings)\n : (mapsettings.settings = defaultSettings.settings);\n this.currentLayerConfig.backgroundlayers\n ? (mapsettings.backgroundlayers =\n this.currentLayerConfig.backgroundlayers)\n : (mapsettings.backgroundlayers = defaultSettings.backgroundlayers);\n this.currentLayerConfig.overlayers\n ? (mapsettings.overlayers = this.currentLayerConfig.overlayers)\n : (mapsettings.overlayers = defaultSettings.overlayers);\n return mapsettings;\n }\n\n public getNameForZoneType(zone: any): string {\n return this.getTitlePrefixByZoneId(\n zone.refId,\n zone.zoneType[0],\n zone.planInfo.planversionId,\n zone.planInfo.status,\n this.currentLang\n );\n }\n\n public getDescriptionTextPdf(\n planVersionId: string,\n singleZone: any,\n currentLang: string\n ): DescriptionTextPdf {\n let result: DescriptionTextPdf = null;\n let lang: string = \"\";\n if (currentLang == \"en\") {\n lang = \"_en\";\n }\n if (singleZone.planInfo.status == \"consultation\") {\n for (let i = 0; i < this._seaplandata.consultationVersions.length; i++) {\n if (\n this._seaplandata.consultationVersions[i].planversionId ==\n planVersionId\n ) {\n let pdfUuid =\n this._seaplandata.consultationVersions[i][\n \"descriptionTextPDF\" + lang\n ];\n if (pdfUuid != null) {\n let pdfUrl: string =\n \"/portalcache/api/v1/file/\" +\n currentLang +\n \"/\" +\n pdfUuid +\n \".pdf\";\n\n if (\n singleZone.zoneType != null &&\n singleZone.zoneType.length == 1\n ) {\n pdfUrl += \"#nameddest=\" + singleZone.zoneType[0];\n }\n\n result = {\n pdfUrl: pdfUrl,\n validFrom:\n this._seaplandata.consultationVersions[i][\n \"descriptionTextPDFValidFrom\" + lang\n ],\n validTo:\n this._seaplandata.consultationVersions[i][\n \"descriptionTextPDFValidTo\" + lang\n ],\n draft: true,\n historic: false,\n };\n }\n }\n }\n }\n //PDF for both da/en version\n if (result == null && this._currentPublishedVersionIdx != -1) {\n let currPublishedVersion =\n this._seaplandata.publishedVersions[this._currentPublishedVersionIdx];\n let pdfUuid = currPublishedVersion[\"descriptionTextPDF\" + lang];\n if (pdfUuid != null) {\n let pdfUrl: string =\n \"/portalcache/api/v1/file/\" + currentLang + \"/\" + pdfUuid + \".pdf\";\n\n let isHistoric: boolean = false;\n if (currPublishedVersion[\"descriptionTextPDFValidTo\" + lang] != null) {\n isHistoric = true;\n pdfUrl += \"?historic=true\"; // to prevent clientside caching without watermark\n }\n\n if (singleZone.zoneType != null && singleZone.zoneType.length == 1) {\n pdfUrl += \"#nameddest=\" + singleZone.zoneType[0];\n }\n\n result = {\n pdfUrl: pdfUrl,\n validFrom: currPublishedVersion[\"descriptionTextPDFValidFrom\" + lang],\n validTo: currPublishedVersion[\"descriptionTextPDFValidTo\" + lang],\n draft: false,\n historic: isHistoric,\n };\n }\n }\n return result;\n }\n\n public getLawstextByZoneType(\n zoneType: string,\n planversionId: string,\n status: string,\n lang: string\n ): string {\n let key = this.getLawstextKey(zoneType, planversionId, status);\n if (key != null) return this.getLawText(key, lang);\n else return \"\";\n }\n\n public getLawstextByZoneId(\n zoneID: string,\n planversionId: string,\n status: string,\n lang: string\n ): string {\n let key = this.getLawstextKey(\"#\" + zoneID, planversionId, status);\n if (key != null) return this.getLawText(key, lang);\n else return \"\";\n }\n\n private getLawstextKey(\n identifier: string,\n planversionId: string,\n status: string\n ) {\n let lawsTexts = this.getLawsTexts(planversionId, status);\n let lawTextKey = lawsTexts[identifier];\n if (\n lawTextKey == null &&\n status == \"consultation\" &&\n this._currentPublishedVersionIdx != -1\n ) {\n let currPublishedVersion =\n this._seaplandata.publishedVersions[this._currentPublishedVersionIdx];\n lawsTexts = this.getLawsTexts(\n currPublishedVersion.planversionId,\n \"approved\"\n );\n lawTextKey = lawsTexts[identifier];\n }\n return lawTextKey;\n }\n\n public getTitlePrefixByZoneId(\n zoneID: string,\n zoneType: string,\n planversionId: string,\n status: string,\n lang: string\n ): string {\n let key = this.getLawstextKey(\"#\" + zoneID, planversionId, status);\n if (key == null) {\n key = this.getLawstextKey(zoneType, planversionId, status);\n }\n\n if (key != null) return this.getTitlePrefix(key, lang);\n else return \"\";\n }\n\n public getAllZonesLawText(\n planversionId: string,\n status: string,\n lang: string\n ): string {\n let allZonesText: string = \"\";\n switch (status) {\n case \"approved\":\n for (let i = 0; i < this._seaplandata.publishedVersions.length; i++) {\n if (\n this._seaplandata.publishedVersions[i].planversionId ==\n planversionId\n ) {\n if (lang == \"en\") {\n allZonesText =\n this._seaplandata.publishedVersions[i].allZonesLawText_en;\n } else {\n allZonesText =\n this._seaplandata.publishedVersions[i].allZonesLawText;\n }\n break;\n }\n }\n break;\n case \"consultation\":\n for (\n let i = 0;\n i < this._seaplandata.consultationVersions.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[i].planversionId ==\n planversionId\n ) {\n if (lang == \"en\") {\n allZonesText =\n this._seaplandata.consultationVersions[i].allZonesLawText_en;\n } else {\n allZonesText =\n this._seaplandata.consultationVersions[i].allZonesLawText;\n }\n break;\n }\n }\n break;\n default:\n console.log(\"allZonesLawText is empty\");\n break;\n }\n if (status == \"consultation\" && allZonesText == \"\") {\n // fallback\n if (this._currentPublishedVersionIdx != -1) {\n let currPublishedVersion =\n this._seaplandata.publishedVersions[this._currentPublishedVersionIdx];\n for (let i = 0; i < this._seaplandata.publishedVersions.length; i++) {\n if (\n this._seaplandata.publishedVersions[i].planversionId ==\n currPublishedVersion.planversionId\n ) {\n if (lang == \"en\") {\n allZonesText =\n this._seaplandata.publishedVersions[i].allZonesLawText_en;\n } else {\n allZonesText =\n this._seaplandata.publishedVersions[i].allZonesLawText;\n }\n break;\n }\n }\n }\n }\n return allZonesText;\n }\n\n private getLawsTexts(planversionId: string, status: string) {\n let lawsTexts: any = {};\n let foundLawsTexts = false;\n switch (status) {\n case \"approved\":\n for (let i = 0; i < this._seaplandata.publishedVersions.length; i++) {\n if (\n this._seaplandata.publishedVersions[i].planversionId ==\n planversionId\n ) {\n lawsTexts = this._seaplandata.publishedVersions[i].lawTexts;\n foundLawsTexts = true;\n break;\n }\n }\n break;\n case \"consultation\":\n for (\n let i = 0;\n i < this._seaplandata.consultationVersions.length;\n i++\n ) {\n if (\n this._seaplandata.consultationVersions[i].planversionId ==\n planversionId\n ) {\n lawsTexts = this._seaplandata.consultationVersions[i].lawTexts;\n foundLawsTexts = true;\n break;\n }\n }\n break;\n default:\n console.log(\"getTexts: UNKNOWN\");\n break;\n }\n\n if (foundLawsTexts) {\n return lawsTexts;\n } else {\n return {};\n }\n }\n\n // text , text_en switcher\n private getLawText(textId: string, lang: string): string {\n let textItems = this._seaplandata.planTexts;\n for (let i = 0; textItems && i < textItems.length; i++) {\n if (textItems[i].textId === textId && textItems[i].published) {\n if (lang == \"en\") {\n return textItems[i].text_en;\n } else {\n return textItems[i].text;\n }\n }\n }\n return \"\";\n }\n\n private getTitlePrefix(textId: string, lang: string) {\n let textItems = this._seaplandata.planTexts;\n for (let i = 0; textItems && i < textItems.length; i++) {\n if (textItems[i].textId === textId && textItems[i].published) {\n if (lang == \"en\") {\n return textItems[i].zone_title_prefix_en;\n } else {\n return textItems[i].zone_title_prefix;\n }\n }\n }\n return \"\";\n }\n\n public getTimeline() {\n let publishedTimeLines = [];\n for (let i = 0; i < this._seaplandata.timeline.length; i++) {\n if (\n new Date(this._seaplandata.timeline[i].start) <= this.currentDateTime\n ) {\n publishedTimeLines.push(this._seaplandata.timeline[i]);\n }\n }\n return publishedTimeLines;\n }\n // TODO FIX WITH UTC TIME\n private findTimeLineIndex() {\n for (let i = 0; i < this._seaplandata.timeline.length; i++) {\n if (\n new Date(this._seaplandata.timeline[i].start) <= this.currentDateTime\n ) {\n if (this._seaplandata.timeline.length == 1) {\n return i;\n }\n let nextIndex = i + 1;\n if (nextIndex < this._seaplandata.timeline.length)\n if (\n new Date(this._seaplandata.timeline[nextIndex].start) >\n this.currentDateTime\n ) {\n return i;\n }\n if (i == this._seaplandata.timeline.length - 1) {\n return i;\n }\n }\n }\n // No timeline match\n return -1;\n }\n\n private findLastApprovedOrCancelled() {\n let lastApproved = 0;\n for (let i = 0; i < this._seaplandata.timeline.length; i++) {\n if (\n this._seaplandata.timeline[i].timelineType === \"PLAN_APPROVED\" ||\n this._seaplandata.timeline[i].timelineType === \"SUPPLEMENT_APPROVED\" ||\n this._seaplandata.timeline[i].timelineType === \"CORRECTION_APPROVED\" ||\n this._seaplandata.timeline[i].timelineType === \"CANCELLATION\"\n ) {\n lastApproved = i;\n }\n }\n return lastApproved;\n }\n\n public findLayerZIndex(layerName: string): number {\n let zIndex = 0;\n let layersConfig = this.currentLayerConfig.layers;\n for (var n = 0; n < layersConfig.length; n++) {\n if (layersConfig[n].name.toLowerCase() == layerName.toLowerCase()) {\n if (layersConfig[n].zindex) {\n return layersConfig[n].zindex;\n }\n } else if (\n layersConfig[n].subtypes &&\n layersConfig[n].subtypes.length > 0\n ) {\n for (var m = 0; m < layersConfig[n].subtypes.length; m++) {\n if (\n layersConfig[n].subtypes[m].name.toLowerCase() ===\n layerName.toLowerCase()\n ) {\n if (layersConfig[n].zindex) {\n return layersConfig[n].zindex;\n }\n }\n }\n }\n }\n return zIndex;\n }\n\n public getLayerNameByTextName(name: string): string {\n let layerName = name;\n for (\n let i = 0;\n this.currentLayerConfig && i < this.currentLayerConfig.layers.length;\n i++\n ) {\n // Specialcase\n if (name.toLowerCase() == \"u\") {\n return \"zones\";\n }\n if (\n this.currentLayerConfig.layers[i].type.toLowerCase() ==\n name.toLowerCase()\n ) {\n return this.currentLayerConfig.layers[i].name;\n }\n }\n return layerName;\n }\n\n public getPlandataTimeLineInfo(timeIndex: number): PlandataTimeLineInfo {\n let planTimeLineInfo: PlandataTimeLineInfo = new PlandataTimeLineInfo();\n\n let timelineItem = this._seaplandata.timeline[timeIndex];\n if (timelineItem) {\n let pubVIdx = timelineItem.publishedVersionIdx;\n switch (timelineItem.timelineType) {\n case \"PLAN_CONSULTATION_START\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_start_of_see_plan_value\"\n );\n for (\n let i = 0;\n i < timelineItem.consultationVersionIdxList.length;\n i++\n ) {\n let conVIdx = timelineItem.consultationVersionIdxList[i];\n if (this._seaplandata.consultationVersions[conVIdx]) {\n if (\n this._seaplandata.consultationVersions[conVIdx]\n .consultationStart == timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.consultationVersions[conVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.consultationVersions[conVIdx].title_en;\n planTimeLineInfo.planConsultationStart =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationStart;\n planTimeLineInfo.planConsultationEnd =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationEnd;\n break;\n }\n }\n }\n break;\n case \"PLAN_CONSULTATION_END\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_end_of_see_plan_value\"\n );\n for (\n let i = 0;\n i < timelineItem.postConsultationVersionIdxList.length;\n i++\n ) {\n let conVIdx = timelineItem.postConsultationVersionIdxList[i];\n if (this._seaplandata.consultationVersions[conVIdx]) {\n if (\n this._seaplandata.consultationVersions[conVIdx]\n .consultationEnd == timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.consultationVersions[conVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.consultationVersions[conVIdx].title_en;\n planTimeLineInfo.planConsultationStart =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationStart;\n planTimeLineInfo.planConsultationEnd =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationEnd;\n break;\n }\n }\n }\n break;\n case \"PLAN_APPROVED\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_force_plan_see_value\"\n );\n if (this._seaplandata.publishedVersions[pubVIdx]) {\n if (\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate ==\n timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.publishedVersions[pubVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.publishedVersions[pubVIdx].title_en;\n planTimeLineInfo.planApprovedeffEctiveDate =\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate;\n break;\n }\n }\n break;\n case \"SUPPLEMENT_CONSULTATION_START\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_change_label_value\"\n );\n for (\n let i = 0;\n i < timelineItem.consultationVersionIdxList.length;\n i++\n ) {\n let conVIdx = timelineItem.consultationVersionIdxList[i];\n if (this._seaplandata.consultationVersions[conVIdx]) {\n if (\n this._seaplandata.consultationVersions[conVIdx]\n .consultationStart == timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.consultationVersions[conVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.consultationVersions[conVIdx].title_en;\n planTimeLineInfo.planConsultationStart =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationStart;\n planTimeLineInfo.planConsultationEnd =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationEnd;\n break;\n }\n }\n }\n break;\n case \"SUPPLEMENT_CONSULTATION_END\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_change_value_current\"\n );\n for (\n let i = 0;\n i < timelineItem.postConsultationVersionIdxList.length;\n i++\n ) {\n let conVIdx = timelineItem.postConsultationVersionIdxList[i];\n if (this._seaplandata.consultationVersions[conVIdx]) {\n if (\n this._seaplandata.consultationVersions[conVIdx]\n .consultationEnd == timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.consultationVersions[conVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.consultationVersions[conVIdx].title_en;\n planTimeLineInfo.planConsultationStart =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationStart;\n planTimeLineInfo.planConsultationEnd =\n this._seaplandata.consultationVersions[\n conVIdx\n ].consultationEnd;\n break;\n }\n }\n }\n break;\n case \"SUPPLEMENT_APPROVED\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_plan_supplement_label_value\"\n );\n if (this._seaplandata.publishedVersions[pubVIdx]) {\n if (\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate ==\n timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.publishedVersions[pubVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.publishedVersions[pubVIdx].title_en;\n planTimeLineInfo.planApprovedeffEctiveDate =\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate;\n break;\n }\n }\n break;\n case \"CORRECTION_APPROVED\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_plan_correction_value\"\n );\n if (this._seaplandata.publishedVersions[pubVIdx]) {\n if (\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate ==\n timelineItem.start\n ) {\n planTimeLineInfo.plantitle =\n this._seaplandata.publishedVersions[pubVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.publishedVersions[pubVIdx].title_en;\n planTimeLineInfo.planApprovedeffEctiveDate =\n this._seaplandata.publishedVersions[pubVIdx].effectiveDate;\n break;\n }\n }\n break;\n case \"CANCELLATION\":\n planTimeLineInfo.plantype = this.getText(\n this.historyPrefix,\n \"history_Cancelled_label_value\"\n );\n if (this._seaplandata.publishedVersions[pubVIdx]) {\n planTimeLineInfo.plantitle =\n this._seaplandata.publishedVersions[pubVIdx].title;\n planTimeLineInfo.plantitle_en =\n this._seaplandata.publishedVersions[pubVIdx].title_en;\n planTimeLineInfo.planCancelDate = timelineItem.start;\n // planTimeLineInfo.planApprovedeffEctiveDate = this.getFormateretDatetime(this._seaplandata.publishedVersions[pubVIdx].effectiveDate);\n break;\n }\n break;\n default:\n console.log(\"NO TYPE: \" + timelineItem.timelineType);\n break;\n }\n }\n return planTimeLineInfo;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class PreviewService {\n\n private plandataPreviewUUID: string = null;\n private plandataConsultationPreviewUUID: string = null;\n private contentPreviewID: number = null;\n private printPreview: number = null;\n\n private plandataPreviewUUIDParam: string = \"plandata_preview\";\n private plandataConsultationPreviewUUIDParam: string = \"plandata_consultation_preview\";\n private contentPreviewIDParam: string = \"content_preview\";\n private printPreviewParam: string = \"print_preview\";\n\n constructor() {\n this.plandataPreviewUUID = this.getUUIDParameterByName(this.plandataPreviewUUIDParam);\n this.plandataConsultationPreviewUUID = this.getUUIDParameterByName(this.plandataConsultationPreviewUUIDParam);\n this.contentPreviewID = this.getIntParameterByName(this.contentPreviewIDParam);\n this.printPreview = this.getIntParameterByName(this.printPreviewParam);\n\n if (this.isPreviewMode()) {\n console.log(this.getPreviewModeText());\n }\n }\n\n isPreviewMode() : boolean {\n return (this.plandataPreviewUUID != null || this.plandataConsultationPreviewUUID != null || this.contentPreviewID != null);\n }\n\n getPreviewModeText() : string {\n // preview mode texts are and must be hardcoded\n if (this.plandataPreviewUUID != null)\n return \"PREVIEW (Havplan endelig version)\";\n else if (this.plandataConsultationPreviewUUID != null)\n return \"PREVIEW (Havplan høringsforslag )\";\n else if (this.contentPreviewID != null)\n return \"PREVIEW (CMS indhold)\";\n else\n return \"\";\n }\n\n getPlandataPreviewUUID() : string {\n return this.plandataPreviewUUID;\n }\n\n getPlandataConsultationPreviewUUID() : string {\n return this.plandataConsultationPreviewUUID;\n }\n\n getContentPreviewID() : number {\n return this.contentPreviewID;\n }\n\n isPrintPreview() : boolean {\n return this.printPreview != null;\n }\n\n getQuerystringParamName() : string {\n if (this.plandataPreviewUUID != null)\n return this.plandataPreviewUUIDParam;\n else if (this.plandataConsultationPreviewUUID != null)\n return this.plandataConsultationPreviewUUIDParam;\n else if (this.contentPreviewID != null)\n return \"\" + this.contentPreviewIDParam;\n else\n return \"\";\n }\n\n getQuerystringParamValue() : string {\n if (this.plandataPreviewUUID != null)\n return this.plandataPreviewUUID;\n else if (this.plandataConsultationPreviewUUID != null)\n return this.plandataConsultationPreviewUUID;\n else if (this.contentPreviewID != null)\n return \"\" + this.contentPreviewID;\n else\n return \"\";\n }\n\n // TODO: Eg use angular route/snapshot approach - be aware of timing issue\n private getIntParameterByName(name: string) : number {\n let url = window.location.href;\n name = name.replace(/[[]]/g, \"\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (results)\n return Number(results[2]);\n else\n return null;\n }\n\n // TODO: Eg use angular route/snapshot approach - be aware of timing issue\n private getUUIDParameterByName(name: string) : string {\n let url = window.location.href;\n name = name.replace(/[[]]/g, \"\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (results) {\n let result = results[2].match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$');\n if (result != null) {\n return result.toString();\n }\n }\n return null;\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Mutex } from \"async-mutex\";\nimport * as jsPDF from \"jspdf\";\nimport View from \"ol/View\";\nimport Projection from \"ol/proj/Projection\";\nimport { ConsultationResponse } from \"../models/consultationresponse\";\nimport { ZoneInHoering } from \"../models/zoneinhoering\";\nimport { ZoneFeature } from \"../plandataDefinition/zoneFeature\";\nimport { EnvironmentService } from \"./environment.service\";\nimport { MapService } from \"./map.service\";\n\n@Injectable()\nexport class PrintService {\n printedReportsPercentage: string;\n printFinished: boolean = false;\n currentHostName: string = window.location.origin;\n prepareHostName: string;\n\n constructor(\n private mapService: MapService,\n private http: HttpClient,\n private environmentService: EnvironmentService\n ) {}\n\n async printMaps(timeLineData) {\n // localStorage.setItem(\"reportsToPrint\",JSON.stringify([\"8e967ff1-28f2-4399-b0c2-ab3ccee05552\",\"3cccff12-efc5-4dcf-bf3c-6cf6761141e0\", \"b075b4ee-9c30-4267-9ad4-cb054cdd56bd\", \"e74c76e2-b653-4c1f-9e12-ea84cc5b59ab\"]));\n\n // localStorage.setItem(\"reportsToPrint\",JSON.stringify([\"1b415306-c135-4e6e-b1fe-ea1cd88e9f15\"]));\n\n this.printFinished = false;\n console.log(\"wait for map\");\n if (!this.mapService.isMapLoaded())\n await this.mapService.onMapReady().toPromise();\n console.log(\"PRINTING!\");\n let reportIds = JSON.parse(localStorage.getItem(\"reportsToPrint\")) || [];\n let reportsValidFrom = JSON.parse(localStorage.getItem(\"reportsValidFrom\"));\n let allPrintReportsNumber = reportIds.length;\n let printCounter = 0;\n this.printedReportsPercentage = \"0\";\n\n var format = \"A4\";\n var resolution = 100;\n var width = Math.round((297 * resolution) / 25.4);\n var height = Math.round((210 * resolution) / 25.4);\n let map = this.mapService.getMap();\n var size = map.getSize();\n var viewResolution = map.getView().getResolution();\n // Set print size\n var printSize = [width, height];\n map.setSize(printSize);\n var scaling = Math.min(width / size[0], height / size[1]);\n map.getView().setResolution(viewResolution / scaling);\n\n let me = this;\n const mutex = new Mutex();\n let i = 0;\n for (const reportId of reportIds) {\n const release = await mutex.acquire();\n i = i + 1;\n\n let consultationResponse = await this.http\n .get(\n this.environmentService.getEnvironment().serviceurl_portalcache +\n \"consultation/response/get/\" +\n reportId\n )\n .toPromise();\n console.log(\n \"consultationResponse => \" +\n JSON.stringify(consultationResponse, null, 3)\n );\n if (!consultationResponse || consultationResponse.name === null) {\n release();\n continue;\n }\n\n let timeLineIndex = 0;\n if (\n reportsValidFrom &&\n reportsValidFrom[i - 1] &&\n timeLineData &&\n timeLineData.length > 0\n ) {\n // timeLineData = timeLineData.reverse();\n let selectedDate = new Date(reportsValidFrom[i - 1]);\n timeLineIndex = this.getTimeIndex(selectedDate, timeLineData);\n }\n\n let ZonesInHearing = this.getZonesInHearing(\n consultationResponse.planversionID\n );\n let refLinkList = [];\n if (consultationResponse.refId && ZonesInHearing.length > 0) {\n let refList = consultationResponse.refId.split(\",\");\n for (let zoneObj of ZonesInHearing) {\n if (refList.indexOf(zoneObj.refId) >= 0) {\n let cordinates = this.getZonesFirstCordinates(\n zoneObj[\"geometry\"][\"coordinates\"]\n );\n let partCordinateLink = cordinates\n ? cordinates[0] + \"/\" + cordinates[1]\n : \"\";\n let refidText = `- ${zoneObj.refId}: `;\n\n if (this.currentHostName === \"https://admin.havplan.dk\") {\n this.prepareHostName = this.currentHostName.replace(\n this.currentHostName,\n \"https://havplan.dk\"\n );\n } else if (\n this.currentHostName === \"https://test-admin.havplan.dk\"\n ) {\n this.prepareHostName = this.currentHostName.replace(\n this.currentHostName,\n \"https://test.havplan.dk\"\n );\n } else if (\n this.currentHostName === \"https://havplan-admin.cloud.atkins.dk\"\n ) {\n this.prepareHostName = this.currentHostName.replace(\n this.currentHostName,\n \"https://havplan.cloud.atkins.dk\"\n );\n } else {\n this.prepareHostName = this.currentHostName.replace(\n this.currentHostName,\n \"http://localhost:4400\"\n );\n }\n refLinkList.push(\n refidText +\n this.prepareHostName +\n \"/da/page/zone/s/\" +\n consultationResponse.planversionID +\n \"/\" +\n partCordinateLink +\n \"/\" +\n zoneObj.layerName +\n \"/\" +\n zoneObj.refId +\n \"?timeLineIdx=\" +\n timeLineIndex\n );\n }\n }\n }\n console.log(\"refLinkList:\", refLinkList);\n\n this.mapService.clearSelectedFeatures(\"CONSULTATIONRESPONSEZONE\");\n if (\n consultationResponse.geometry !== undefined &&\n Object.keys(consultationResponse.geometry).length !== 0\n ) {\n await this.mapService.showHearingAnswerGeometry(\n consultationResponse.geometry\n );\n } else {\n var projection = new Projection({\n code: \"EPSG:25832\",\n units: \"m\",\n extent: [120000, 5661139.2, 1378291.2, 6500000],\n getPointResolution: function (r) {\n return r;\n },\n });\n let zoomParam: number = 2.75;\n let xCordinate: number = 560500;\n let yCordinate: number = 6203000;\n\n map.setView(\n new View({\n center: [xCordinate, yCordinate],\n projection: projection,\n zoom: zoomParam,\n minResolution: 2.800005600011201,\n })\n );\n }\n\n map.once(\"rendercomplete\", async function () {\n console.log(\"rendering map for \" + consultationResponse.name);\n var mapCanvas = document.createElement(\"canvas\");\n mapCanvas.width = width;\n mapCanvas.height = height;\n var mapContext = mapCanvas.getContext(\"2d\");\n await Array.prototype.forEach.call(\n document.querySelectorAll(\".ol-layer canvas\"),\n function (canvas) {\n if (canvas.width > 0) {\n var opacity = canvas.parentNode.style.opacity;\n mapContext.globalAlpha = opacity === \"\" ? 1 : Number(opacity);\n var transform = canvas.style.transform;\n // Get the transform parameters from the style's transform matrix\n var matrix = transform\n .match(/^matrix\\(([^\\(]*)\\)$/)[1]\n .split(\",\")\n .map(Number);\n // Apply the transform to the export map context\n CanvasRenderingContext2D.prototype.setTransform.apply(\n mapContext,\n matrix\n );\n mapContext.drawImage(canvas, 0, 0);\n }\n }\n );\n var pdf = new jsPDF(\"landscape\", \"mm\", format);\n\n pdf.addImage(\n mapCanvas.toDataURL(\"image/jpeg\"),\n \"JPEG\",\n 0,\n 0,\n pdf.internal.pageSize.getWidth(),\n pdf.internal.pageSize.getHeight()\n );\n pdf.addPage(\"portrait\", format);\n pdf.setFont(\"Times\", \"Roman\").setFontSize(10);\n let pdfText = [];\n pdfText.push(\"UUID: \" + reportId);\n pdfText.push(\n \"Navn / Virksomhed / Organisation: \" + consultationResponse.name\n );\n if (consultationResponse.address)\n pdfText.push(\"Adresse: \" + consultationResponse.address);\n pdfText.push(\"Postnummer: \" + consultationResponse.postalcode);\n pdfText.push(\"By: \" + consultationResponse.city);\n if (consultationResponse.email)\n pdfText.push(\"E-mail: \" + consultationResponse.email);\n if (consultationResponse.othercontact)\n pdfText.push(\n \"Anden kontaktinformation: \" + consultationResponse.othercontact\n );\n pdfText.push(\"PlanversionID: \" + consultationResponse.planversionID);\n pdfText.push(\"refId: \" + consultationResponse.refId);\n // pdfText.push(\"Sektorer: \"+consultationResponse.zoneType);\n\n if (\n consultationResponse.zoneType &&\n consultationResponse.zoneType.length\n ) {\n if (consultationResponse.zoneType.split(\",\").length == 1) {\n pdfText.push(\"Zone type: \" + consultationResponse.zoneType);\n } else {\n const addSpaceRegex = /(\\,)/g;\n pdfText.push(\n \"Zone type: \" +\n consultationResponse.zoneType.replace(addSpaceRegex, \", \")\n );\n }\n }\n\n if (consultationResponse.refId) {\n let label = refLinkList.length > 1 ? \"zoner: \" : \"zone: \";\n for (let i = 0; i < refLinkList.length; i++) {\n if (i == 0) {\n pdfText.push(label);\n }\n pdfText.push(refLinkList[i]);\n }\n }\n\n // from https://stackoverflow.com/a/58953898\n const addWrappedText = ({\n propertyLines,\n text,\n textWidth,\n doc,\n fontSize = 10,\n fontType = \"normal\",\n lineSpacing = 7,\n xPosition = 10,\n initialYPosition = 10,\n pageWrapInitialYPosition = 10,\n }) => {\n let textLines = doc.splitTextToSize(text, textWidth); // Split the text into lines\n let pageHeight = doc.internal.pageSize.height - 20; // Get page height, well use this for auto-paging\n doc.setFontType(fontType);\n doc.setFontSize(fontSize);\n\n let cursorY = initialYPosition;\n\n let allLines = [...propertyLines, ...textLines];\n allLines.forEach((lineText) => {\n if (cursorY > pageHeight) {\n // Auto-paging\n doc.addPage();\n cursorY = pageWrapInitialYPosition;\n }\n doc.text(xPosition, cursorY, lineText);\n cursorY += lineSpacing;\n });\n };\n\n addWrappedText({\n propertyLines: pdfText,\n text: \"Høringssvar: \" + consultationResponse.consultation_description,\n textWidth: 250,\n doc: pdf,\n fontSize: 10,\n fontType: \"normal\",\n lineSpacing: 7, // Space between lines\n xPosition: 30, // Text offset from left of document\n initialYPosition: 20, // Initial offset from top of document; set based on prior objects in document\n pageWrapInitialYPosition: 20, // Initial offset from top of document when page-wrapping\n });\n\n // pdf.save('map.pdf');\n let pdfBlob = pdf.output(\"blob\", { filename: reportId + \"-cover.pdf\" });\n\n const formData: FormData = new FormData();\n formData.append(\"report_id\", reportId);\n formData.append(\"files\", pdfBlob);\n await me.http\n .post(\n me.environmentService.getEnvironment().serviceurl_portalcache +\n \"consultation/response/coverFile\",\n formData\n )\n .toPromise();\n\n console.log(\"finish\");\n document.body.style.cursor = \"auto\";\n release();\n });\n\n console.log(\"downloaded \" + consultationResponse.name);\n printCounter++;\n this.printedReportsPercentage = (\n (printCounter / allPrintReportsNumber) *\n 100\n ).toFixed(0);\n }\n await mutex.acquire();\n this.printFinished = true;\n localStorage.setItem(\"coversdone\", \"1\");\n }\n\n private getZonesInHearing(planversionId) {\n // this.mapService.clearSelectedFeatures(\"SELECT\");\n const zones: ZoneFeature[] = this.mapService.getZoneFeaturesForConsultation(\n planversionId,\n false\n );\n let zonesInHearings = new Array();\n zones.map((zone) => {\n let zoneInHearing = new ZoneInHoering();\n zoneInHearing.planversionId = zone.planInfo.planversionId;\n zoneInHearing.title = \"\";\n zoneInHearing.layerName = zone.layerName;\n zoneInHearing.refId = zone.refId;\n zoneInHearing.type = zone.zoneType;\n zoneInHearing.planInfo = zone.planInfo;\n zoneInHearing.geometry = zone.geometry;\n zonesInHearings.push(zoneInHearing);\n });\n return zonesInHearings;\n }\n private getZonesFirstCordinates(zone) {\n if (zone && zone.length > 0) {\n let zoneData = this.getRecZoneData(zone);\n return zoneData ? zoneData : null;\n } else {\n return null;\n }\n }\n getRecZoneData(zoneCordinate) {\n if (\n Array.isArray(zoneCordinate) &&\n (zoneCordinate.length == 2 || zoneCordinate.length == 3) &&\n !Array.isArray(zoneCordinate[0]) &&\n (zoneCordinate[0] >= 0 || zoneCordinate[0] <= 0) &&\n (zoneCordinate[1] >= 0 || zoneCordinate[1] <= 0)\n ) {\n return zoneCordinate;\n } else {\n for (let obj of zoneCordinate) {\n return this.getRecZoneData(obj);\n }\n }\n }\n\n getTimeIndex(newDate: Date, timeLineData: any) {\n for (let n = 0; n < timeLineData.length; n++) {\n if (\n new Date(new Date(timeLineData[n].start).setUTCHours(0, 0, 0, 0)) <=\n newDate\n ) {\n if (timeLineData.length == 1) {\n return n;\n }\n let nextIndex = n + 1;\n if (nextIndex < timeLineData.length) {\n if (\n new Date(\n new Date(timeLineData[nextIndex].start).setUTCHours(0, 0, 0, 0)\n ) >= newDate\n ) {\n return n;\n }\n if (n == timeLineData.length - 1) {\n return n;\n }\n }\n }\n }\n return timeLineData.length - 1;\n }\n}\n","import {RouteReuseStrategy,ActivatedRouteSnapshot,DetachedRouteHandle\n} from '@angular/router';\n\n\nexport class RouteReuseService implements RouteReuseStrategy {\n\n\n private handlers: { [key: string]: DetachedRouteHandle } = {};\n\n\n\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n\n if (!route.routeConfig || route.routeConfig.loadChildren) {\n\n return false;\n\n }\n \n let shouldReuse = false;\n\n // console.log('checking if this route should be re used or not', route);\n\n if (route.routeConfig.data) {\n\n route.routeConfig.data.reuse ? shouldReuse = true : shouldReuse = false;\n\n }\n\n return shouldReuse;\n\n }\n\n\n\n store(route: ActivatedRouteSnapshot, handler: DetachedRouteHandle): void {\n let url = \"\"; \n for(let i = 0; i < route.children.length; i++) {\n url = route.routeConfig.path+\"/\"+route.children[i].routeConfig.path;\n } \n this.handlers[url] = handler;\n \n }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return !!this.handlers[this.getUrl(route)];\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\n\n if (!route.routeConfig || route.routeConfig.loadChildren) {\n return null;\n };\n return this.handlers[this.getUrl(route)];\n }\n\n shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {\n\n let reUseUrl = false;\n if (future.routeConfig) {\n\n if (future.routeConfig.data) {\n reUseUrl = future.routeConfig.data.reuse;\n }\n }\n\n const defaultReuse = (future.routeConfig === current.routeConfig);\n return reUseUrl || defaultReuse;\n\n }\n\n getUrl(route: ActivatedRouteSnapshot): string {\n\n if (route.routeConfig) {\n const url = route.routeConfig.path;\n return url;\n }\n\n }\n\n}","import {Injectable} from \"@angular/core\";\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from \"@angular/common/http\";\nimport {EnvironmentService} from \"./environment.service\";\nimport {Subject, Observable, throwError} from \"rxjs\";\nimport {catchError, tap} from \"rxjs/operators\";\nimport { RouteInfo } from '../models/routeinfo';\nimport { Router } from \"@angular/router\";\nimport { ActivatedRoute } from '@angular/router';\n\n\n@Injectable()\nexport class RoutingService {\n \n private _routeChanged = new Subject();\n private _routeInfo: RouteInfo;\n constructor(private router: Router) {\n\n }\n\n onRouteEventChanged(): Observable {\n return this._routeChanged.asObservable();\n }\n\n changeRoute(routeelement: string, path: string, routedata: any) {\n this._routeInfo = new RouteInfo();\n this._routeInfo.routeelement = routeelement\n this._routeInfo.routepath = path;\n this._routeInfo.routedata = routedata; \n this._routeChanged.next(this.routeInfo);\n }\n\n get routeInfo() : RouteInfo{\n return this._routeInfo;\n }\n\n changeRoutePath(path: string) {\n //console.log(path);\n this.router.navigateByUrl(path);\n }\n\n get currentPath() : string {\n return this.router.url;\n }\n\n\n\n}\n","export default \"#clickToCopy {\\n width: 30%;\\n margin: 2% 30% 0 40%;\\n font-weight: bold;\\n background-color: #031254;\\n}\\n\\n.form-control {\\n outline: 2px solid;\\n}\\n\\n.form-control-copy {\\n background-color: #28a745 !important;\\n font-weight: bold;\\n color: white;\\n outline: 3px solid #031254;\\n}\\n\\nh4 {\\n font-weight: bold;\\n font-weight: bold;\\n color: #031254;\\n}\\n\\n.modal-header {\\n background-color: white;\\n}\\n\\n#inputControl {\\n background-color: white;\\n font-size: 15px;\\n}\\n\\n.share {\\n cursor: pointer;\\n}\\n\\n#del_icon {\\n vertical-align: baseline;\\n padding-right: 3px;\\n}\\n\\n#sharedLinkText {\\n padding-right: 30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvc2hhcmUtbGluay9zaGFyZS1saW5rLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9zaGFyZS1saW5rL3NoYXJlLWxpbmsuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtBQ0NGOztBREVBO0VBQ0Usb0NBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSwwQkFBQTtBQ0NGOztBREVBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7QUNDQTs7QURFQTtFQUNFLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSx1QkFBQTtFQUNBLGVBQUE7QUNDRjs7QURHQTtFQUNFLGVBQUE7QUNBRjs7QURHQTtFQUNFLHdCQUFBO0VBQ0Esa0JBQUE7QUNBRjs7QURHQTtFQUNFLG1CQUFBO0FDQUYiLCJmaWxlIjoic3JjL2FwcC9zaGFyZS1saW5rL3NoYXJlLWxpbmsuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2xpY2tUb0NvcHkge1xuICB3aWR0aDogMzAlO1xuICBtYXJnaW46IDIlIDMwJSAwIDQwJTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IzAzMTI1NDtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gIG91dGxpbmU6IDJweCBzb2xpZDtcbn1cblxuLmZvcm0tY29udHJvbC1jb3B5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjojMjhhNzQ1ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogd2hpdGU7IFxuICBvdXRsaW5lOiAzcHggc29saWQgIzAzMTI1NDtcbn1cblxuaDQge1xuZm9udC13ZWlnaHQ6IGJvbGQ7XG5mb250LXdlaWdodDogYm9sZDtcbmNvbG9yOiMwMzEyNTQ7XG5cbn1cbi5tb2RhbC1oZWFkZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4jaW5wdXRDb250cm9se1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjYTFjNWVmICFpbXBvcnRhbnQ7XG59XG5cbi5zaGFyZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2RlbF9pY29ue1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuI3NoYXJlZExpbmtUZXh0e1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xufSIsIiNjbGlja1RvQ29weSB7XG4gIHdpZHRoOiAzMCU7XG4gIG1hcmdpbjogMiUgMzAlIDAgNDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzMTI1NDtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gIG91dGxpbmU6IDJweCBzb2xpZDtcbn1cblxuLmZvcm0tY29udHJvbC1jb3B5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHdoaXRlO1xuICBvdXRsaW5lOiAzcHggc29saWQgIzAzMTI1NDtcbn1cblxuaDQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMDMxMjU0O1xufVxuXG4ubW9kYWwtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbiNpbnB1dENvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4uc2hhcmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNkZWxfaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4jc2hhcmVkTGlua1RleHQge1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xufSJdfQ== */\"","import { Component, OnInit, TemplateRef } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { ContentService } from \"../services/content.service\";\nimport { LanguageService } from \"../services/language.service\";\n\n@Component({\n selector: \"app-share-link\",\n templateUrl: \"./share-link.component.html\",\n styleUrls: [\"./share-link.component.scss\"],\n})\nexport class ShareLinkComponent implements OnInit {\n\n currentLang: string = null;\n modalRef: BsModalRef;\n isCopied: boolean = false;\n private _sharedUrl: string = \"\";\n shareCompleteUrl: any;\n content: any;\n sharelinkPrefix = \"/sharelink\";\n // rootPrefix = \"da\";\n\n constructor(\n private _modalService: BsModalService,\n private _toastr: ToastrService,\n private _mapService: MapService,\n private _plandataService: PlandataService,\n private _router: Router,\n private contentService: ContentService,\n private languageService: LanguageService\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnInit() {}\n\n getLink(template: TemplateRef) {\n this.isCopied = false;\n let sitepath = this._router.url.split(\"?\")[0];\n if (this._router.url.toLowerCase().indexOf(\"/page/\") > -1) {\n if(sitepath.includes(\"search\")){\n this._sharedUrl = this.processSearchUrl(this.getBaseUrl()+sitepath);\n }\n else this._sharedUrl = this.getBaseUrl() + sitepath + this.getMapUrl();\n } else {\n this._sharedUrl = this.getBaseUrl() + sitepath;\n }\n this.setShareLinkurl(this._sharedUrl);\n this.modalRef = this._modalService.show(template, {\n class: \"modal-dialog-centered\",\n });\n }\n\n processSearchUrl(baseURL:string):string{\n let term:string = this._mapService.getTerm();\n\n if(term.length > 1){\n const [type, searchTerm] = term.split('-');\n if(type == \"1\" && searchTerm != \"\"){\n const[x,y] = searchTerm.split(\" \");\n return baseURL+\"?coordinates=\"+x+\"%20\"+y+this.getMapUrl().replace(\"?\",\"&\");\n }\n else if(type == \"0\" && searchTerm != \"\"){\n return baseURL + \"?text=\" + searchTerm + this.getMapUrl().replace(\"?\",\"&\");\n }\n }\n else return baseURL+this.getMapUrl();\n }\n\n private getMapUrl(): string {\n let mapCenter = this._mapService.getMapCenter();\n let zoom = this._mapService.getMapZoomLevel();\n let timeLineIdx = this._plandataService.currentTimeLineIndex;\n let activeTypes = this._mapService.zoneLayersActive;\n let mapUrlParts =\n \"?timeLineIdx=\" +\n timeLineIdx +\n \"&zoom=\" +\n zoom +\n \"&x=\" +\n mapCenter[0] +\n \"&y=\" +\n mapCenter[1];\n if (activeTypes.length > 0) {\n mapUrlParts += \"&activeTypes=\" + activeTypes.toString();\n }\n return mapUrlParts;\n }\n\n showSuccess(event) {\n this.isCopied = true;\n this._toastr.success(this.getText(this.sharelinkPrefix, \"sharelink_click_to_copy\"));\n }\n\n getText(prefix: string, shortName: string) {\n return (this.content = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getAltText(prefix: string, shortName:string){\n return this.contentService.getAltTextByShortName(this.currentLang +prefix, shortName);\n }\n\n private getBaseUrl(): string {\n return window.location.origin + \"\";\n }\n\n private setShareLinkurl(url: string) {\n this.shareCompleteUrl = url;\n }\n}\n","export default \".info-container, .order-container, .search-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n}\\n\\n.tab-button-group {\\n position: absolute;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n top: 0;\\n right: -2.5em;\\n width: 2.5em;\\n z-index: 1000;\\n border-right: 1px solid #cccccc;\\n}\\n\\n.tab-button-group #back-to-map {\\n display: none;\\n}\\n\\n@-moz-document url-prefix() {\\n .tab-button-group {\\n top: 16px !important;\\n }\\n}\\n\\n.tab-button {\\n border-left: 1px solid #cccccc;\\n height: 2.5em;\\n border-bottom: 1px solid #cccccc;\\n text-align: center;\\n background: #f6f6f6;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n padding: 0.5em;\\n cursor: pointer;\\n}\\n\\n.tab-button.active {\\n background: white;\\n border-left-color: white;\\n}\\n\\n::ng-deep .tooltip-inner {\\n background-color: white;\\n border: 1px solid black;\\n border-radius: 0px;\\n font-size: 12px;\\n padding: 4px 8px;\\n}\\n\\n.getting-started {\\n padding-left: 0.5em;\\n}\\n\\n.getting-started-step {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 0.75em;\\n}\\n\\n.getting-started-step .step-img {\\n width: 2em;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.number-of-zones {\\n margin-bottom: 1rem;\\n}\\n\\n.selected-zone {\\n background: #f6f6f6;\\n border: 1px solid #cccccc;\\n padding: 1rem;\\n margin-bottom: 1rem;\\n cursor: pointer;\\n}\\n\\n.selected-zone .selected-zone-status {\\n color: #233c65;\\n}\\n\\n.lawtext-container {\\n margin: 1rem 0;\\n}\\n\\n.lawtext-container .lawtext-item .lawtext-title {\\n font-weight: bold;\\n}\\n\\n.other-zones {\\n margin-bottom: 1rem;\\n}\\n\\n.other-zones .other-zone-item {\\n color: #233c65;\\n margin-bottom: 0.5rem;\\n cursor: pointer;\\n}\\n\\n.testSelectedFeature {\\n outline-style: solid;\\n outline-color: #bb4ae8;\\n}\\n\\n.highlight-zone {\\n outline-style: solid;\\n outline-color: #bb4ae8;\\n border-color: transparent;\\n}\\n\\n[hidden] .side-bar {\\n display: none !important;\\n}\\n\\n.historic-da {\\n background-image: url('historic_watermark_da.svg');\\n}\\n\\n.historic-en {\\n background-image: url('historic_watermark_en.svg');\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .tab-button-group {\\n right: -2.5em;\\n }\\n\\n .side-bar {\\n width: calc(100% - 2.5em) !important;\\n }\\n\\n .tab-button-group #back-to-map {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-transform: rotate(90deg);\\n -moz-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n -o-transform: rotate(90deg);\\n border-top: 1px solid #cccccc;\\n border-left: none;\\n border-right: 1px solid #cccccc;\\n width: 100px;\\n right: 2.5em;\\n margin-top: 1.9em;\\n align-self: center;\\n }\\n .tab-button-group #back-to-map.active {\\n background: white;\\n border-bottom-color: white;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL1VJL3B1YmxpYy11aS9zcmMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ0ZGOztBREtBO0VBQ0Usa0JBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw0QkFBQTtFQUFBLDZCQUFBO1VBQUEsc0JBQUE7RUFDQSxNQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsK0JFRG9CO0FERHRCOztBREdFO0VBQ0UsYUFBQTtBQ0RKOztBREtBO0VBQ0U7SUFDRSxvQkFBQTtFQ0ZGO0FBQ0Y7O0FES0E7RUFDRSw4QkVkb0I7RUZlcEIsYUFBQTtFQUNBLGdDRWhCb0I7RUZpQnBCLGtCQUFBO0VBQ0EsbUJFckJnQjtFRnNCaEIsb0JBQUE7RUFBQSxhQUFBO0VBQ0Esd0JBQUE7VUFBQSx1QkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0FDSEY7O0FESUU7RUFDRSxpQkFBQTtFQUNBLHdCQUFBO0FDRko7O0FETUE7RUFDRSx1QkFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNIRjs7QURNQTtFQUNFLG1CQUFBO0FDSEY7O0FESUU7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSxxQkFBQTtBQ0ZKOztBREdJO0VBQ0UsVUFBQTtFQUNBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNETjs7QURNQTtFQUNFLG1CQUFBO0FDSEY7O0FETUE7RUFDRSxtQkUzRGdCO0VGNERoQix5QkV6RG9CO0VGMERwQixhQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FDSEY7O0FESUU7RUFDRSxjRTlFWTtBRDRFaEI7O0FETUE7RUFDRSxjQUFBO0FDSEY7O0FES0k7RUFDRSxpQkFBQTtBQ0hOOztBRFFBO0VBQ0UsbUJBQUE7QUNMRjs7QURNRTtFQUNFLGNFOUZZO0VGK0ZaLHFCQUFBO0VBQ0EsZUFBQTtBQ0pKOztBRE9BO0VBQ0Usb0JBQUE7RUFDQSxzQkFBQTtBQ0pGOztBRE9BO0VBQ0Usb0JBQUE7RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0FDSkY7O0FEUUU7RUFDQyx3QkFBQTtBQ0xIOztBRFNBO0VBQ0Usa0RBQUE7QUNORjs7QURTQTtFQUNFLGtEQUFBO0FDTkY7O0FEVUE7RUFFRTtJQUNFLGFBQUE7RUNSRjs7RURXQTtJQUNFLG9DQUFBO0VDUkY7O0VEYUU7SUFDRSxvQkFBQTtJQUFBLGFBQUE7SUFDQSw4QkFBQTtJQUFBLDZCQUFBO1lBQUEsbUJBQUE7SUFDQSxnQ0FBQTtJQUNBLDZCQUFBO0lBQ0EsNEJBQUE7SUFDQSwyQkFBQTtJQUNBLDZCRWhJZ0I7SUZpSWhCLGlCQUFBO0lBQ0EsK0JFbElnQjtJRm1JaEIsWUFBQTtJQUNBLFlBQUE7SUFDQSxpQkFBQTtJQUNBLGtCQUFBO0VDVko7RURXSTtJQUNFLGlCQUFBO0lBQ0EsMEJBQUE7RUNUTjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uL3ZhcmlhYmxlcy5zY3NzXCI7XG5cblxuLmluZm8tY29udGFpbmVyLCAub3JkZXItY29udGFpbmVyLCAuc2VhcmNoLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udGFiLWJ1dHRvbi1ncm91cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdG9wOiAwO1xuICByaWdodDogLTIuNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJvcmRlci1yaWdodDogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gICNiYWNrLXRvLW1hcHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gIC50YWItYnV0dG9uLWdyb3VwIHtcbiAgICB0b3A6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGFiLWJ1dHRvbiB7XG4gIGJvcmRlci1sZWZ0OiAkcHJpbWFyeS1ncmV5LWJvcmRlcjtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgYm9yZGVyLWJvdHRvbTogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktZ3JleS1iZztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogd2hpdGU7XG4gIH1cbn1cblxuOjpuZy1kZWVwIC50b29sdGlwLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbn1cblxuLmdldHRpbmctc3RhcnRlZCB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICYtc3RlcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbiAgICAuc3RlcC1pbWcge1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLm51bWJlci1vZi16b25lcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zZWxlY3RlZC16b25lIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktZ3JleS1iZztcbiAgYm9yZGVyOiAkcHJpbWFyeS1ncmV5LWJvcmRlcjtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAuc2VsZWN0ZWQtem9uZS1zdGF0dXMge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxufVxuXG4ubGF3dGV4dC1jb250YWluZXIge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgLmxhd3RleHQtaXRlbSB7XG4gICAgLmxhd3RleHQtdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG59XG5cbi5vdGhlci16b25lcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIC5vdGhlci16b25lLWl0ZW0ge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG4udGVzdFNlbGVjdGVkRmVhdHVyZXtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtY29sb3I6I2JiNGFlODtcbn1cblxuLmhpZ2hsaWdodC16b25le1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS1jb2xvcjojYmI0YWU4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5baGlkZGVuXSB7XG4gIC5zaWRlLWJhcntcbiAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlzdG9yaWMtZGEge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaGlzdG9yaWNfd2F0ZXJtYXJrX2RhLnN2Z1wiKTtcbn1cblxuLmhpc3RvcmljLWVuIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2hpc3RvcmljX3dhdGVybWFya19lbi5zdmdcIik7XG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XG5cbiAgLnRhYi1idXR0b24tZ3JvdXAge1xuICAgIHJpZ2h0OiAtMi41ZW07XG4gIH1cblxuICAuc2lkZS1iYXJ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIuNWVtKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRhYi1idXR0b24tZ3JvdXB7XG5cbiAgICAjYmFjay10by1tYXB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgYm9yZGVyLXRvcDogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gICAgICB3aWR0aDogMTAwcHggO1xuICAgICAgcmlnaHQ6ICsyLjVlbTtcbiAgICAgIG1hcmdpbi10b3A6IDEuOWVtO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgJi5hY3RpdmV7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG5cblxufVxuIiwiLmluZm8tY29udGFpbmVyLCAub3JkZXItY29udGFpbmVyLCAuc2VhcmNoLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udGFiLWJ1dHRvbi1ncm91cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdG9wOiAwO1xuICByaWdodDogLTIuNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2NjY2M7XG59XG4udGFiLWJ1dHRvbi1ncm91cCAjYmFjay10by1tYXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAudGFiLWJ1dHRvbi1ncm91cCB7XG4gICAgdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi50YWItYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBoZWlnaHQ6IDIuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi50YWItYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItbGVmdC1jb2xvcjogd2hpdGU7XG59XG5cbjo6bmctZGVlcCAudG9vbHRpcC1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG5cbi5nZXR0aW5nLXN0YXJ0ZWQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xufVxuLmdldHRpbmctc3RhcnRlZC1zdGVwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xufVxuLmdldHRpbmctc3RhcnRlZC1zdGVwIC5zdGVwLWltZyB7XG4gIHdpZHRoOiAyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubnVtYmVyLW9mLXpvbmVzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlbGVjdGVkLXpvbmUge1xuICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2VsZWN0ZWQtem9uZSAuc2VsZWN0ZWQtem9uZS1zdGF0dXMge1xuICBjb2xvcjogIzIzM2M2NTtcbn1cblxuLmxhd3RleHQtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG4ubGF3dGV4dC1jb250YWluZXIgLmxhd3RleHQtaXRlbSAubGF3dGV4dC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ub3RoZXItem9uZXMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLm90aGVyLXpvbmVzIC5vdGhlci16b25lLWl0ZW0ge1xuICBjb2xvcjogIzIzM2M2NTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50ZXN0U2VsZWN0ZWRGZWF0dXJlIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtY29sb3I6ICNiYjRhZTg7XG59XG5cbi5oaWdobGlnaHQtem9uZSB7XG4gIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICBvdXRsaW5lLWNvbG9yOiAjYmI0YWU4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5baGlkZGVuXSAuc2lkZS1iYXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5oaXN0b3JpYy1kYSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9oaXN0b3JpY193YXRlcm1hcmtfZGEuc3ZnXCIpO1xufVxuXG4uaGlzdG9yaWMtZW4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9hc3NldHMvaGlzdG9yaWNfd2F0ZXJtYXJrX2VuLnN2Z1wiKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudGFiLWJ1dHRvbi1ncm91cCB7XG4gICAgcmlnaHQ6IC0yLjVlbTtcbiAgfVxuXG4gIC5zaWRlLWJhciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIuNWVtKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRhYi1idXR0b24tZ3JvdXAgI2JhY2stdG8tbWFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY2NjYztcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgcmlnaHQ6IDIuNWVtO1xuICAgIG1hcmdpbi10b3A6IDEuOWVtO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuICAudGFiLWJ1dHRvbi1ncm91cCAjYmFjay10by1tYXAuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB3aGl0ZTtcbiAgfVxufSIsIi8vIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMyMzNjNjU7XG4kb3JhbmdlOiAjZmY4NTAwO1xuJHJlZDogI2NjNjY3NztcbiRncmVlbjogIzQ0YWI5OTtcbiRsaWdodC1ibHVlOiAjMzlhOGUwO1xuJHllbGxvdzogI2ZhYjMwYztcbiRwdXJwbGU6ICNhYTQ0OTk7XG4kcHVycGxlLWZpbGw6IHJnYmEoJHB1cnBsZSwgMC41KTtcblxuJHByaW1hcnktdGV4dDogIzMzMzMzMztcbiRoZWxwLXRleHQ6ICM2NjY2NjY7XG4kZGlzYmFsZWQtbGluay10ZXh0OiAjOTk5OTk5O1xuXG4kcHJpbWFyeS1ncmV5LWJnOiAjZjZmNmY2O1xuXG4vLyBCb3JkZXJzXG4kcHJpbWFyeS1ncmV5LWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4kb3JhbmdlLWJvcmRlcjogMnB4IHNvbGlkICRvcmFuZ2U7XG4kcmVkLWJvcmRlcjogMnB4IGRhc2hlZCAkcmVkO1xuJHB1cnBsZS1ib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlO1xuIl19 */\"","import { Component, OnInit,OnDestroy, HostListener, Output, EventEmitter } from \"@angular/core\";\nimport { Subscription } from 'rxjs';\nimport { PlandataService } from \"../services/plandata.service\";\nimport { ContentService } from '../services/content.service';\nimport { TimePlanversionEvent } from \"../models/timeplanversionevent\";\nimport { Router } from \"@angular/router\";\nimport { ActivatedRoute } from '@angular/router';\nimport {PreviewService} from \"../services/preview.service\";\nimport { MapService } from '../services/map.service';\nimport { LanguageService } from \"../services/language.service\";\n\n@Component({\n selector: \"app-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"]\n})\nexport class SidebarComponent implements OnInit, OnDestroy {\n\n private subscriptions: Subscription[] = new Array();\n @Output() notifyPageChange: EventEmitter = new EventEmitter();\n innerWidth: any;\n currentPage: string = \"info\";\n currDiv: string = \"info\";\n currentLang: string = null;\n\n\n tabPrefix:string = '/plan/tabs';\n isSubmitted = false;\n model: any = {};\n showHearingAnswerSingle: boolean;\n hoveredFeatureZones: [];\n consultationContent: any;\n contentString: any;\n infoContent: any;\n tabsContent: any;\n historicClass: string;\n isHistoric = false;\n\n\n constructor(\n private planService: PlandataService,\n private activatedRoute: ActivatedRoute,\n private contentService: ContentService,\n private mapService: MapService,\n private router: Router,\n private previewService: PreviewService,\n private _planDataService: PlandataService,\n private languageService: LanguageService,\n private route: ActivatedRoute\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n ngOnInit() {\n this.getCurrentPageFromURL();\n this.innerWidth = window.innerWidth;\n if (this.innerWidth <= 767) {\n this.currentPage = 'showMap';\n }\n\n const me = this;\n this.subscriptions.push(this.planService.onTimePlanversionChanged().subscribe((event: TimePlanversionEvent) => {\n if (event.historicPlan) {\n if (this.currentPage == 'hist') {\n this.isHistoric = true;\n } else {\n let page: string = this.getPageName(this.activatedRoute.snapshot.firstChild.url.toString());\n if(page != 'consultation'){\n //me.historicClass = \"historic-\"+this.currentLang;\n }\n this.isHistoric = true;\n }\n } else {\n me.historicClass = \"\";\n this.isHistoric = false;\n }\n\n console.log(\"isHistoric: \" + this.isHistoric + \"historicClass:\" + me.historicClass)\n }));\n }\n\n\n getCurrentPageFromURL() {\n this.subscriptions.push(this.activatedRoute.url.subscribe(val => {\n this.setActiveTab(this.activatedRoute.snapshot.firstChild.url.toString());\n } )\n );\n }\n\n getPageName(pageUrlParts){\n let page: string = \"\";\n if(pageUrlParts.indexOf(\",\")){\n let parts = pageUrlParts.split(\",\");\n if(parts.length > 0) {\n page = parts[0];\n }\n }else {\n page = pageUrlParts;\n }\n return page;\n }\n\n//------set active tab based on selected zone--------\n setActiveTab(pageUrlParts: string) : string {\n\n let page: string = this.getPageName(pageUrlParts);\n switch (page) {\n case \"info\":\n if (this.isHistoric) {\n this.historicClass = \"\";\n }\n this.currentPage = page;\n break;\n case \"zone\":\n if (this.isHistoric) {\n this.historicClass = \"historic-\"+this.currentLang;\n }\n this.currentPage = page;\n break;\n case \"consultation\":\n if (this.isHistoric) {\n this.historicClass = \"historic-\"+this.currentLang;\n }\n this.currentPage = page;\n break;\n case \"hist\":\n if (this.isHistoric) {\n this.historicClass = \"\";\n }\n this.currentPage = page;\n page += \"/\" + this._planDataService.currentTimeLineIndex;\n break;\n case \"search\":\n if (this.isHistoric) {\n this.historicClass = \"\";\n }\n this.currentPage = page;\n break;\n case \"service-layers\":\n if (this.isHistoric) {\n this.historicClass = \"\";\n }\n this.currentPage = page;\n break;\n case \"showMap\":\n if (this.isHistoric) {\n this.historicClass = \"historic-\"+this.currentLang;\n }\n this.currentPage = page;\n break;\n default:\n break;\n }\n if (this.innerWidth <= 767) {\n this.notifyPageChange.emit(this.currentPage);\n }\n return page;\n }\n\n changePage(page: string) {\n let newPage =this.setActiveTab(page);\n let parentpath = this.route.routeConfig.path;\n if(newPage == \"zone\") {\n let zoneFeatures = this.mapService.getSelectedFeature();\n let coordinates = this.mapService.clickedCoordinates;\n let timeLineIdx = this.planService.currentTimeLineIndex;\n if(zoneFeatures.length == 1) {\n let zone = zoneFeatures[0];\n if(coordinates && coordinates.length > 1) {\n newPage = newPage+\"/s/\"+zone.planInfo.planversionId+\"/\"+coordinates[0] +\"/\"+coordinates[1]+\"/\"+zone.layerName+\"/\"+zone.refId+\"?timeLineIdx=\"+timeLineIdx;\n }else {\n newPage = newPage+\"/s/\"+zone.planInfo.planversionId+\"/\"+zone.layerName+\"/\"+zone.refId+\"?timeLineIdx=\"+timeLineIdx;\n }\n\n }else if (zoneFeatures.length > 1) {\n if(coordinates && coordinates.length > 1) {\n newPage = newPage+\"/m/\"+coordinates[0] +\"/\"+coordinates[1]+\"?timeLineIdx=\"+timeLineIdx;\n }\n }\n }\n\n if(newPage == \"consultation\") {\n if(this._planDataService.isHistoryMap()) {\n newPage +=\"/hist\";\n }\n\n }\n\n let path = parentpath+\"/\" + newPage;\n this.router.navigateByUrl(path);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n this.innerWidth = window.innerWidth;\n if (this.innerWidth <= 767) {\n this.currentPage = 'showMap';\n }\n else {\n this.currentPage = 'info'\n }\n }\n\n\n getText(prefix, shortName) {\n this.infoContent = this.contentService.getContentByPrefix(this.currentLang+\"/plan/info\");\n return (this.contentString = this.contentService.getTextByShortName(\n prefix,\n shortName\n ));\n }\n\n getAltText(prefix,shortName){\n return this.contentService.getAltTextByShortName(this.currentLang+prefix,shortName);\n }\n\n isPrintPreview(): boolean {\n return this.previewService.isPrintPreview();\n }\n}\n","import { Directive } from \"@angular/core\";\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidationErrors } from '@angular/forms';\nimport { PhoneNumberUtil } from 'google-libphonenumber';\n\n@Directive({\n selector: '[phoneNumberValidator]',\n providers: [\n {provide: NG_VALIDATORS, useExisting: PhoneNumberValidatorDirective, multi: true}\n ]\n})\nexport class PhoneNumberValidatorDirective implements Validator {\n\n phoneUtil = PhoneNumberUtil.getInstance();\n\n constructor() { }\n\n validate(control: AbstractControl): ValidationErrors | null {\n let isValid = false;\n\n try {\n const phoneNumber = this.phoneUtil.parseAndKeepRawInput(control.value, null);\n isValid = this.phoneUtil.isValidNumber(phoneNumber);\n } catch (e) { }\n\n return isValid ? null : { phoneNumberValidator: true };\n }\n\n}\n","export default \".order-container {\\n padding: 3em 4em 3em 2.5em;\\n height: calc(100vh - 60px);\\n overflow-y: auto;\\n position: relative;\\n}\\n\\n.subheader-blue {\\n margin-top: 0px;\\n}\\n\\n.getting-started {\\n padding-left: 0.5em;\\n}\\n\\n.getting-started-step {\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n margin-bottom: 0.75em;\\n}\\n\\n.getting-started-step .step-img {\\n width: 2em;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-pack: center;\\n justify-content: center;\\n}\\n\\n.number-of-zones {\\n margin-bottom: 1rem;\\n}\\n\\n.selected-zone {\\n background: #f6f6f6;\\n border: 1px solid #cccccc;\\n padding: 1rem;\\n margin-bottom: 1rem;\\n cursor: pointer;\\n}\\n\\n.selected-zone .selected-zone-status {\\n color: #233c65;\\n}\\n\\n.lawtext-container {\\n margin: 1rem 0;\\n}\\n\\n.lawtext-container .lawtext-item .lawtext-title {\\n font-weight: bold;\\n}\\n\\n.other-zones {\\n margin-bottom: 1rem;\\n}\\n\\n.other-zones .other-zone-item {\\n color: #233c65;\\n margin-bottom: 0.5rem;\\n cursor: pointer;\\n}\\n\\n.other-zones-link {\\n margin-bottom: 1rem;\\n}\\n\\n.other-zones-link .other-zone-item-link {\\n color: #007bff !important;\\n margin-bottom: 0.5rem;\\n cursor: pointer;\\n}\\n\\n.testSelectedFeature {\\n outline-style: solid;\\n outline-color: #bb4ae8;\\n}\\n\\n.highlight-zone {\\n outline-style: solid;\\n outline-color: #bb4ae8;\\n border-color: transparent;\\n}\\n\\n.ngb-carousel-margin {\\n margin: 0px !important;\\n}\\n\\nh1 {\\n /* padding-top: 12% !important;*/\\n}\\n\\n.time-line-style {\\n margin-bottom: 40px;\\n}\\n\\n.toppadding {\\n padding-top: 7%;\\n}\\n\\n.prevMargin {\\n align-self: center;\\n padding-left: 25px;\\n padding-right: 0px;\\n}\\n\\n.midMargin {\\n padding-left: 0px;\\n padding-right: 0px;\\n}\\n\\n.nextMargin {\\n align-self: center;\\n padding-left: 0px;\\n}\\n\\n.steps {\\n width: 100%;\\n font-size: 10px;\\n list-style: none;\\n padding: 0;\\n display: -webkit-box;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: reverse;\\n flex-direction: row-reverse;\\n}\\n\\n.steps li {\\n -webkit-box-flex: 1;\\n flex: 1;\\n position: relative;\\n padding-bottom: 12px;\\n color: #233c65;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n\\n.steps li .dot {\\n position: absolute;\\n bottom: 1px;\\n left: 50%;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n border: 2px solid currentColor;\\n background-color: currentColor;\\n z-index: 1;\\n}\\n\\n.steps li .line {\\n position: absolute;\\n height: 8px;\\n width: 1px;\\n left: 50%;\\n top: 2px;\\n background-color: currentColor;\\n}\\n\\n.steps li .steps li:nth-child(odd) .line {\\n top: -16px !important;\\n}\\n\\n.steps li .title {\\n text-align: center;\\n}\\n\\n.steps li:before, .steps li:after {\\n content: \\\"\\\";\\n position: absolute;\\n box-sizing: border-box;\\n height: 2px;\\n background-color: #233c65;\\n bottom: 5px;\\n}\\n\\n.steps li:before {\\n left: 0;\\n right: calc(50%);\\n}\\n\\n.steps li:after {\\n right: 0;\\n left: calc(50%);\\n}\\n\\n.steps li.active .title {\\n font-weight: bold;\\n}\\n\\n.steps li.active .dot {\\n border: 2px solid #233c65;\\n background-color: white;\\n width: 15px;\\n height: 15px;\\n bottom: -1px;\\n -webkit-transform: translateX(-45%);\\n transform: translateX(-45%);\\n}\\n\\n.steps li.clickable {\\n cursor: pointer;\\n}\\n\\n.steps li.disabled {\\n color: lightgrey;\\n}\\n\\n.steps li.disabled:before, .steps li.disabled:after {\\n background-color: lightgrey;\\n}\\n\\n.steps li.max:after {\\n background-color: lightgrey;\\n}\\n\\n.nozone-text-style {\\n position: relative;\\n top: 50px;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n .order-container {\\n width: calc(100vw - 2.5em);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvVUkvcHVibGljLXVpL3NyYy9hcHAvem9uZXMvem9uZXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3pvbmVzL3pvbmVzLmNvbXBvbmVudC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9VSS9wdWJsaWMtdWkvc3JjL3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsMEJBQUE7RUFDQSwwQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUNERjs7QURJQTtFQUNFLGVBQUE7QUNERjs7QURJQTtFQUNFLG1CQUFBO0FDREY7O0FERUU7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDZCQUFBO1VBQUEsbUJBQUE7RUFDQSxxQkFBQTtBQ0FKOztBRENJO0VBQ0UsVUFBQTtFQUNBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHdCQUFBO1VBQUEsdUJBQUE7QUNDTjs7QURJQTtFQUNFLG1CQUFBO0FDREY7O0FESUE7RUFDRSxtQkVsQmdCO0VGbUJoQix5QkVoQm9CO0VGaUJwQixhQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FDREY7O0FERUU7RUFDRSxjRXJDWTtBRHFDaEI7O0FESUE7RUFDRSxjQUFBO0FDREY7O0FER0k7RUFDRSxpQkFBQTtBQ0ROOztBRE1BO0VBQ0UsbUJBQUE7QUNIRjs7QURJRTtFQUNFLGNFckRZO0VGc0RaLHFCQUFBO0VBQ0EsZUFBQTtBQ0ZKOztBRE1BO0VBQ0UsbUJBQUE7QUNIRjs7QURJSTtFQUNDLHlCQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0FDRkw7O0FES0E7RUFDRSxvQkFBQTtFQUNBLHNCQUFBO0FDRkY7O0FES0E7RUFDRSxvQkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7QUNGRjs7QURJQTtFQUNFLHNCQUFBO0FDREY7O0FESUE7RUFDQyxnQ0FBQTtBQ0REOztBRElBO0VBQ0UsbUJBQUE7QUNERjs7QURJQTtFQUNFLGVBQUE7QUNERjs7QURJQTtFQUNFLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7RUFDQSxrQkFBQTtBQ0RGOztBRElBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtBQ0RGOztBREdBO0VBQ0UsV0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSw4QkFBQTtFQUFBLDhCQUFBO1VBQUEsMkJBQUE7QUNBRjs7QURFRTtFQUNFLG1CQUFBO1VBQUEsT0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxjRXhIWTtFRnlIWixtQkFBQTtFQUNBLGVBQUE7QUNBSjs7QURHSTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLDhCQUFBO0VBQ0EsOEJBQUE7RUFDQSxVQUFBO0FDRE47O0FESUk7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSw4QkFBQTtBQ0ZOOztBREtJO0VBQ0UscUJBQUE7QUNITjs7QURNSTtFQUNFLGtCQUFBO0FDSk47O0FET0k7RUFFRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSx5QkVqS1U7RUZrS1YsV0FBQTtBQ05OOztBRFNJO0VBQ0UsT0FBQTtFQUNBLGdCQUFBO0FDUE47O0FEVUk7RUFDRSxRQUFBO0VBQ0EsZUFBQTtBQ1JOOztBRFlNO0VBQ0UsaUJBQUE7QUNWUjs7QURZTTtFQUNFLHlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0FDVlI7O0FEY0k7RUFDRSxlQUFBO0FDWk47O0FEZUk7RUFDRSxnQkFBQTtBQ2JOOztBRGVNO0VBRUUsMkJBQUE7QUNkUjs7QURrQkk7RUFDRSwyQkFBQTtBQ2hCTjs7QURzQkE7RUFDRSxrQkFBQTtFQUNBLFNBQUE7QUNuQkY7O0FEdUJBO0VBQ0U7SUFDRSwwQkFBQTtFQ3BCRjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvem9uZXMvem9uZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vdmFyaWFibGVzLnNjc3NcIjtcblxuLm9yZGVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDNlbSA0ZW0gM2VtIDIuNWVtO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3ViaGVhZGVyLWJsdWUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5nZXR0aW5nLXN0YXJ0ZWQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAmLXN0ZXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XG4gICAgLnN0ZXAtaW1nIHtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi5udW1iZXItb2Ytem9uZXMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uc2VsZWN0ZWQtem9uZSB7XG4gIGJhY2tncm91bmQ6ICRwcmltYXJ5LWdyZXktYmc7XG4gIGJvcmRlcjogJHByaW1hcnktZ3JleS1ib3JkZXI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLnNlbGVjdGVkLXpvbmUtc3RhdHVzIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cbn1cblxuLmxhd3RleHQtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIC5sYXd0ZXh0LWl0ZW0ge1xuICAgIC5sYXd0ZXh0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxufVxuXG4ub3RoZXItem9uZXMge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAub3RoZXItem9uZS1pdGVtIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4ub3RoZXItem9uZXMtbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgLm90aGVyLXpvbmUtaXRlbS1saW5rIHtcbiAgICAgY29sb3I6ICMwMDdiZmYgIWltcG9ydGFudDtcbiAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbi50ZXN0U2VsZWN0ZWRGZWF0dXJlIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtY29sb3I6ICNiYjRhZTg7XG59XG5cbi5oaWdobGlnaHQtem9uZSB7XG4gIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICBvdXRsaW5lLWNvbG9yOiAjYmI0YWU4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5nYi1jYXJvdXNlbC1tYXJnaW4ge1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuXG5oMXtcbiAvKiBwYWRkaW5nLXRvcDogMTIlICFpbXBvcnRhbnQ7Ki9cbn1cblxuLnRpbWUtbGluZS1zdHlsZSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi50b3BwYWRkaW5ne1xuICBwYWRkaW5nLXRvcDogNyU7XG59XG5cbi5wcmV2TWFyZ2lue1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubWlkTWFyZ2lue1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubmV4dE1hcmdpbntcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cbi5zdGVwcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICBsaSB7XG4gICAgZmxleDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICAuZG90IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAubGluZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAuc3RlcHMgbGk6bnRoLWNoaWxkKG9kZCkgLmxpbmUge1xuICAgICAgdG9wOiAtMTZweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGNhbGMoNTAlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogY2FsYyg1MCUpO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgLmRvdCB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jbGlja2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgY29sb3I6IGxpZ2h0Z3JleTtcblxuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF4OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcbiAgICB9XG5cbiAgfVxufVxuXG4ubm96b25lLXRleHQtc3R5bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDo1MHB4O1xufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm9yZGVyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyLjVlbSk7XG4gIH1cbn1cbiIsIi5vcmRlci1jb250YWluZXIge1xuICBwYWRkaW5nOiAzZW0gNGVtIDNlbSAyLjVlbTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnN1YmhlYWRlci1ibHVlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZ2V0dGluZy1zdGFydGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbn1cbi5nZXR0aW5nLXN0YXJ0ZWQtc3RlcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbn1cbi5nZXR0aW5nLXN0YXJ0ZWQtc3RlcCAuc3RlcC1pbWcge1xuICB3aWR0aDogMmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm51bWJlci1vZi16b25lcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zZWxlY3RlZC16b25lIHtcbiAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNlbGVjdGVkLXpvbmUgLnNlbGVjdGVkLXpvbmUtc3RhdHVzIHtcbiAgY29sb3I6ICMyMzNjNjU7XG59XG5cbi5sYXd0ZXh0LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuLmxhd3RleHQtY29udGFpbmVyIC5sYXd0ZXh0LWl0ZW0gLmxhd3RleHQtdGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm90aGVyLXpvbmVzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5vdGhlci16b25lcyAub3RoZXItem9uZS1pdGVtIHtcbiAgY29sb3I6ICMyMzNjNjU7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ub3RoZXItem9uZXMtbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ub3RoZXItem9uZXMtbGluayAub3RoZXItem9uZS1pdGVtLWxpbmsge1xuICBjb2xvcjogIzAwN2JmZiAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRlc3RTZWxlY3RlZEZlYXR1cmUge1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS1jb2xvcjogI2JiNGFlODtcbn1cblxuLmhpZ2hsaWdodC16b25lIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtY29sb3I6ICNiYjRhZTg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5uZ2ItY2Fyb3VzZWwtbWFyZ2luIHtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cblxuaDEge1xuICAvKiBwYWRkaW5nLXRvcDogMTIlICFpbXBvcnRhbnQ7Ki9cbn1cblxuLnRpbWUtbGluZS1zdHlsZSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi50b3BwYWRkaW5nIHtcbiAgcGFkZGluZy10b3A6IDclO1xufVxuXG4ucHJldk1hcmdpbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG5cbi5taWRNYXJnaW4ge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4ubmV4dE1hcmdpbiB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG59XG5cbi5zdGVwcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cbi5zdGVwcyBsaSB7XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIGNvbG9yOiAjMjMzYzY1O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3RlcHMgbGkgLmRvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgei1pbmRleDogMTtcbn1cbi5zdGVwcyBsaSAubGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4cHg7XG4gIHdpZHRoOiAxcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5zdGVwcyBsaSAuc3RlcHMgbGk6bnRoLWNoaWxkKG9kZCkgLmxpbmUge1xuICB0b3A6IC0xNnB4ICFpbXBvcnRhbnQ7XG59XG4uc3RlcHMgbGkgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN0ZXBzIGxpOmJlZm9yZSwgLnN0ZXBzIGxpOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzM2M2NTtcbiAgYm90dG9tOiA1cHg7XG59XG4uc3RlcHMgbGk6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGNhbGMoNTAlKTtcbn1cbi5zdGVwcyBsaTphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBjYWxjKDUwJSk7XG59XG4uc3RlcHMgbGkuYWN0aXZlIC50aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnN0ZXBzIGxpLmFjdGl2ZSAuZG90IHtcbiAgYm9yZGVyOiAycHggc29saWQgIzIzM2M2NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvdHRvbTogLTFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NSUpO1xufVxuLnN0ZXBzIGxpLmNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zdGVwcyBsaS5kaXNhYmxlZCB7XG4gIGNvbG9yOiBsaWdodGdyZXk7XG59XG4uc3RlcHMgbGkuZGlzYWJsZWQ6YmVmb3JlLCAuc3RlcHMgbGkuZGlzYWJsZWQ6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXk7XG59XG4uc3RlcHMgbGkubWF4OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xufVxuXG4ubm96b25lLXRleHQtc3R5bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTBweDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAub3JkZXItY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIDIuNWVtKTtcbiAgfVxufSIsIi8vIENvbG9yc1xuJHByaW1hcnktY29sb3I6ICMyMzNjNjU7XG4kb3JhbmdlOiAjZmY4NTAwO1xuJHJlZDogI2NjNjY3NztcbiRncmVlbjogIzQ0YWI5OTtcbiRsaWdodC1ibHVlOiAjMzlhOGUwO1xuJHllbGxvdzogI2ZhYjMwYztcbiRwdXJwbGU6ICNhYTQ0OTk7XG4kcHVycGxlLWZpbGw6IHJnYmEoJHB1cnBsZSwgMC41KTtcblxuJHByaW1hcnktdGV4dDogIzMzMzMzMztcbiRoZWxwLXRleHQ6ICM2NjY2NjY7XG4kZGlzYmFsZWQtbGluay10ZXh0OiAjOTk5OTk5O1xuXG4kcHJpbWFyeS1ncmV5LWJnOiAjZjZmNmY2O1xuXG4vLyBCb3JkZXJzXG4kcHJpbWFyeS1ncmV5LWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4kb3JhbmdlLWJvcmRlcjogMnB4IHNvbGlkICRvcmFuZ2U7XG4kcmVkLWJvcmRlcjogMnB4IGRhc2hlZCAkcmVkO1xuJHB1cnBsZS1ib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlO1xuIl19 */\"","import {\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Subscription } from \"rxjs\";\nimport { TimePlanversionEvent } from \"../models/timeplanversionevent\";\nimport { ZoneFeature } from \"../plandataDefinition/zoneFeature\";\nimport { ContentService } from \"../services/content.service\";\nimport { MapService } from \"../services/map.service\";\nimport { PlandataService } from \"../services/plandata.service\";\nimport { RoutingService } from \"../services/routing.service\";\n\nimport { NgbCarousel, NgbCarouselConfig } from \"@ng-bootstrap/ng-bootstrap\";\n\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { DescriptionTextPdf } from \"../plandataDefinition/descriptionTextPdf\";\nimport { PlanInfo } from \"../plandataDefinition/planInfo\";\nimport { DateService } from \"../services/date.service\";\nimport { LanguageService } from \"../services/language.service\";\n\n@Component({\n selector: \"zones-info\",\n templateUrl: \"./zones.component.html\",\n styleUrls: [\"./zones.component.scss\"],\n providers: [NgbCarouselConfig],\n})\nexport class ZonesComponent implements OnInit, OnDestroy {\n @Input() isAutonomousModeOn;\n @Input() autonomousSelectedFeatureCallback;\n @ViewChild(\"zonesInfo\", { read: ElementRef, static: false })\n zonesInfoRef: ElementRef;\n\n //private subscriptions: Subscription[] = new Array();\n private subscription: Subscription = new Subscription();\n private mapReady1: Subscription = Subscription.EMPTY;\n private mapReady2: Subscription = Subscription.EMPTY;\n\n currentLang: string = null;\n // infoPrefix = \"da/plan/info\";\n // tabsPrefix = \"da/plan/tabs\";\n contentString: any;\n infoContent: any;\n tabsContent: any;\n\n historicClass: string;\n lawtextContent: any;\n lawtextPrefix = \"/plan/lawtext\";\n innerWidth: any;\n currDiv: string = \"info\";\n singleZone: ZoneFeature = null;\n lawTextZoneId: string;\n lawTextZoneType: string;\n titlePrefixZoneId: string;\n allZonesLawText: string;\n descriptionTextPdf: DescriptionTextPdf;\n otherSelectedZones = new Array();\n lawDefault: boolean = false;\n multipleLayers: boolean = false;\n singleLayer: boolean = false;\n selectedZones: ZoneFeature[] = new Array();\n listFeatures: ZoneFeature[] = new Array();\n hoveredFeatureZones: ZoneFeature[] = new Array();\n selectedBoxFeatureRefId: string = \"\";\n private _paramsDefined: boolean = false;\n private _showZoneData = false;\n public subscribers: any = {};\n timeLine: any;\n showTimeSlider: boolean = false;\n endValue: string;\n startValue: string;\n private _mapIndex = new Array();\n private _activeTimeLine = new Array();\n _chosenDate = -1;\n //for history line time slider\n nextIndx: number = 0;\n prevIndx: number = 8;\n withCordinates: boolean = false;\n fromConsultation: boolean = false;\n\n @ViewChild(\"mycarousel\", { static: true }) carousel: NgbCarousel;\n\n constructor(\n private planService: PlandataService,\n private mapService: MapService,\n private routingService: RoutingService,\n private contentService: ContentService,\n private route: ActivatedRoute,\n private router: Router,\n public dateService: DateService,\n private languageService: LanguageService,\n public sanitizer: DomSanitizer\n ) {\n this.currentLang = this.languageService.prepareLanguage();\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.mapReady1.unsubscribe();\n this.mapReady2.unsubscribe();\n //this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n private getRouteParams() {\n let coordinates = new Array();\n if (this.route.snapshot.params[\"x\"] && this.route.snapshot.params[\"y\"]) {\n coordinates.push(this.route.snapshot.params[\"x\"]);\n coordinates.push(this.route.snapshot.params[\"y\"]);\n }\n\n if (\n this.route.snapshot.params[\"planversionid\"] &&\n this.route.routeConfig.path.indexOf(\"/s/\") > -1\n ) {\n let zone = this.mapService.findZoneFeature(\n this.route.snapshot.params[\"planversionid\"],\n this.planService.getLayerNameByTextName(\n this.route.snapshot.params[\"name\"]\n ),\n this.route.snapshot.params[\"id\"]\n );\n if (zone) {\n this.mapService.removeSelectedFeatures(zone);\n this.handlingFeatures([zone], coordinates);\n if (coordinates.length > 1) {\n this.mapService.clickedCoordinates = coordinates;\n let zoneFeatures =\n this.mapService.getFeaturesByCooordinat(coordinates);\n if (zoneFeatures.length > 1) {\n this.multipleLayers = true;\n // other zones\n let other = zoneFeatures;\n for (let i = 0; i < other.length; i++) {\n if (zone.refId != other[i].refId)\n this.otherSelectedZones.push(other[i]);\n }\n }\n }\n } else {\n this.singleLayer = true;\n this.singleZone = null;\n //console.log(\"TODO2: Feature not found!!!!\");\n this.setupTimeLine();\n }\n }\n }\n\n private initSetup() {\n this.mapService.selectEnabled = true;\n this.mapService.deactivateDrawingTool(true);\n let me = this;\n\n this.subscription.add(\n this.route.params.subscribe((params) => {\n this.withCordinates = false;\n me._paramsDefined = true;\n let coordinates = new Array();\n if (params[\"x\"] && params[\"y\"]) {\n coordinates.push(params[\"x\"]);\n coordinates.push(params[\"y\"]);\n this.withCordinates = true;\n }\n\n if (\n params[\"planversionid\"] &&\n this.route.routeConfig.path.indexOf(\"/s/\") > -1\n ) {\n me._showZoneData = true;\n let zone = me.mapService.findZoneFeature(\n params[\"planversionid\"],\n me.planService.getLayerNameByTextName(params[\"name\"]),\n params[\"id\"]\n );\n if (zone) {\n // console.log(\"Found zone | zone: \" + JSON.stringify(zone, null, 3));\n me.mapService.removeSelectedFeatures(zone);\n me.handlingFeatures([zone], coordinates);\n if (coordinates.length > 1) {\n this.mapService.clickedCoordinates = coordinates;\n let zoneFeatures =\n this.mapService.getFeaturesByCooordinat(coordinates);\n if (zoneFeatures.length > 1) {\n this.multipleLayers = true;\n // other zones\n let other = zoneFeatures;\n for (let i = 0; i < other.length; i++) {\n if (zone.refId != other[i].refId)\n this.otherSelectedZones.push(other[i]);\n }\n }\n }\n } else {\n this.singleLayer = true;\n this.singleZone = null;\n this.lawDefault = false;\n if (coordinates.length > 0) {\n this.mapService.clickedCoordinates = coordinates;\n this.mapService.addIconMarker(coordinates);\n }\n this.setupTimeLine();\n }\n }\n\n if (this.isAutonomousModeOn) {\n me._showZoneData = true;\n me.handlingFeatures(me.mapService.getSelectedFeature(), coordinates);\n }\n\n if (\n this.route.routeConfig.path &&\n this.route.routeConfig.path.indexOf(\"/m/\") > -1\n ) {\n me._showZoneData = true;\n this.mapService.clickedCoordinates = coordinates;\n this.mapService.addIconMarker(coordinates);\n this.mapService.setFeature(coordinates);\n me.handlingFeatures(me.mapService.getSelectedFeature(), coordinates);\n }\n\n if (\n this.route.routeConfig.path &&\n this.route.routeConfig.path &&\n this.route.routeConfig.path.indexOf(\"/n/\") > -1\n ) {\n me._showZoneData = true;\n if (coordinates.length > 0) {\n this.mapService.clickedCoordinates = coordinates;\n let zoneFeatures =\n this.mapService.getFeaturesByCooordinat(coordinates);\n me.handlingFeatures(zoneFeatures, coordinates);\n this.mapService.addIconMarker(coordinates);\n }\n\n if (params[\"type\"] && params[\"type\"] == \"nozone\") {\n this.showNoZoneMessage();\n }\n }\n\n this.subscription.add(\n this.mapService.onFeatureHover().subscribe((zoneFeatures) => {\n me.hoveredFeatureZones = zoneFeatures;\n })\n );\n })\n );\n\n this.subscription.add(\n this.route.queryParams.subscribe((queryParams) => {\n this.fromConsultation = queryParams.consultation;\n if (queryParams.timeLineIdx) {\n this.getRouteParams();\n // console.log(\"NO ZONE2\");\n }\n })\n );\n }\n\n ngOnInit() {\n this._paramsDefined = false;\n this._showZoneData = false;\n const me = this;\n if (!this.mapService.isMapLoaded()) {\n if (this.mapReady1.closed) {\n this.mapReady1 = this.mapService.onMapReady().subscribe((status) => {\n me.initSetup();\n });\n }\n } else {\n me.initSetup();\n }\n\n this.subscription.add(\n this.planService\n .onTimePlanversionChanged()\n .subscribe((event: TimePlanversionEvent) => {\n //console.log(this.planService.currentTimeLineIndex + \" : \"+event.timeLineIndex);\n let urlTimeIndex = -1;\n if (this.route.snapshot.queryParams) {\n if (this.route.snapshot.queryParams.timeLineIdx != null) {\n urlTimeIndex = this.route.snapshot.queryParams.timeLineIdx;\n let currentTimeIndex = this.planService.currentTimeLineIndex;\n if (\n urlTimeIndex != undefined &&\n urlTimeIndex != -1 &&\n currentTimeIndex != urlTimeIndex\n ) {\n if (!this.mapService.isMapLoaded()) {\n let me = this;\n if (this.mapReady2.closed) {\n this.mapReady2 = this.mapService\n .onMapReady()\n .subscribe((status) => {\n me.changePageForTimeChange(\n me.planService.currentTimeLineIndex\n );\n });\n }\n } else {\n //console.log(\"Map loaded\");\n this.changePageForTimeChange(currentTimeIndex);\n }\n }\n }\n }\n })\n );\n\n if (!this._paramsDefined) {\n this.handlingFeatures(this.mapService.getSelectedFeature(), []);\n } else {\n if (!this._showZoneData) {\n this.lawDefault = true;\n this.singleLayer = false;\n this.multipleLayers = false;\n }\n }\n }\n\n private changePageForTimeChange(currentTimeIndex: number): void {\n let coordinates = new Array();\n if (this.route.snapshot.params[\"x\"] && this.route.snapshot.params[\"y\"]) {\n coordinates.push(this.route.snapshot.params[\"x\"]);\n coordinates.push(this.route.snapshot.params[\"y\"]);\n }\n let zoneFeatures = null;\n if (coordinates.length > 0) {\n zoneFeatures = this.mapService.getFeaturesByCooordinat(coordinates);\n } else if (\n this.route.snapshot.params[\"id\"] &&\n this.route.snapshot.params[\"name\"]\n ) {\n //console.log(\"named zonefeature found\");\n let refId = this.route.snapshot.params[\"id\"];\n let layerName = this.planService.getLayerNameByTextName(\n this.route.snapshot.params[\"name\"]\n );\n let zoneFeatures = this.mapService.findZoneFeatures(layerName, refId);\n if (this.singleZone && zoneFeatures && zoneFeatures.length != 0) {\n let featureFound = null;\n for (let i = 0; i < zoneFeatures.length; i++) {\n if (this.singleZone.refId == zoneFeatures[i].refId) {\n featureFound = zoneFeatures[i];\n }\n }\n if (featureFound) {\n this.changeSingleZoneWithOutCoordinatRoutePath(\n featureFound,\n currentTimeIndex\n );\n }\n } else {\n this.changeNoZoneMessageRoutePath(currentTimeIndex);\n }\n return;\n }\n\n if (zoneFeatures && zoneFeatures.length != 0) {\n if (this.singleZone && zoneFeatures.length == 1) {\n if (this.singleZone.refId == zoneFeatures[0].refId) {\n //console.log(\"found zonefeature single before: \"+this.singleZone.planInfo.planversionId +\" : \"+zoneFeatures[0].planInfo.planversionId);\n this.changeSingleZoneRoutePath(\n zoneFeatures[0],\n coordinates[0],\n coordinates[1],\n currentTimeIndex\n );\n } else {\n //console.log(\"found zonefeature change\" +this.singleZone.refId == zoneFeatures[0].refId);\n this.changeZoneMessageRoutePath(\n coordinates[0],\n coordinates[1],\n \"otherzone\",\n currentTimeIndex\n );\n }\n } else {\n let countSameRefId = 0;\n let foundZone = null;\n for (let i = 0; i < zoneFeatures.length; i++) {\n if (\n this.singleZone &&\n zoneFeatures[i].refId == this.singleZone.refId\n ) {\n foundZone = zoneFeatures[i];\n countSameRefId++;\n }\n }\n\n if (countSameRefId > 1) {\n //console.log(\"found zonefeature multi\");\n this.changeMultiZoneRoutePath(\n coordinates[0],\n coordinates[1],\n currentTimeIndex\n );\n } else if (countSameRefId == 1) {\n //console.log(\"found zonefeature same\");\n this.changeSingleZoneRoutePath(\n foundZone,\n coordinates[0],\n coordinates[1],\n currentTimeIndex\n );\n } else {\n //console.log(\"found zonefeature new\");\n this.changeZoneMessageRoutePath(\n coordinates[0],\n coordinates[1],\n \"otherzone\",\n currentTimeIndex\n );\n }\n }\n } else {\n //console.log(\"No found zonefeature\");\n if (coordinates.length > 0) {\n this.changeZoneMessageRoutePath(\n coordinates[0],\n coordinates[1],\n \"nozone\",\n currentTimeIndex\n );\n } else {\n this.changeNoZoneMessageRoutePath(currentTimeIndex);\n }\n }\n }\n\n private showNoZoneMessage() {\n this.setupTimeLine();\n this.singleZone = null;\n this.singleLayer = true;\n this.lawDefault = false;\n }\n\n private handlingFeatures(zoneFeatures: ZoneFeature[], coordinates: number[]) {\n this.listFeatures = zoneFeatures;\n this.selectedZones = this.listFeatures;\n if (this.listFeatures && this.listFeatures.length) {\n this.lawDefault = false;\n if (this.listFeatures.length === 1) {\n this.singleLayer = true;\n this.multipleLayers = false;\n let zoneFeature = this.selectedZones[0];\n this.initiateSingleZone(zoneFeature);\n this.setupTimeLine();\n this.mapService.addIconMarker(coordinates);\n this.mapService.flyTofeatureByZoneType(\n zoneFeature.refId,\n zoneFeature.zoneType\n );\n } else if (this.selectedZones.length >= 1) {\n this.multipleLayers = true;\n this.singleLayer = false;\n this.mapService.addIconMarker(coordinates);\n this.mapService.flyToFeaturesByZoneTypes(this.selectedZones);\n }\n } else {\n this.lawDefault = true;\n this.singleLayer = false;\n this.multipleLayers = false;\n }\n }\n\n getText(prefix: string, shortName: string) {\n return (this.contentString = this.contentService.getTextByShortName(\n this.currentLang + prefix,\n shortName\n ));\n }\n\n getAltText(prefix, shortName) {\n return this.contentService.getAltTextByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n getBodyText(prefix: string, shortName: string) {\n return this.contentService.getHTMLByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n getContentElement(prefix: string, shortName: string): any {\n return this.contentService.getCmsElementByShortName(\n this.currentLang + prefix,\n shortName\n );\n }\n\n formatDate(datetime: Date, includeTime: boolean) {\n let result: string = \"-\";\n if (includeTime) {\n result = new Date(datetime).toLocaleString(\"da-DK\", {\n timeZone: \"Europe/Copenhagen\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } else {\n result = new Date(datetime).toLocaleDateString(\"da-DK\", {\n timeZone: \"Europe/Copenhagen\",\n });\n }\n return result;\n }\n\n highlightZoneStyle(layerName: string, styleType: string, refId: string) {\n this.selectedBoxFeatureRefId = refId;\n this.mapService.setFeatureStyle(layerName, refId, styleType, \"highlight\");\n }\n\n selectedZoneStyle(layerName: string, styleType: string, refId: string) {\n if (this.selectedBoxFeatureRefId == refId) {\n this.selectedBoxFeatureRefId = \"\";\n }\n if (this.singleLayer) {\n this.mapService.setFeatureStyle(layerName, refId, styleType, styleType);\n } else {\n this.mapService.setFeatureStyle(layerName, refId, styleType, \"selected\");\n }\n }\n\n initiateSingleZone(zone: ZoneFeature) {\n this.otherSelectedZones = [];\n this.singleZone = zone;\n const refId = this.singleZone.refId;\n let zoneType: string = this.singleZone.zoneType;\n const planversionId = this.singleZone.planInfo.planversionId;\n\n // const status = \"consultation\"; //this.singleZone.planInfo.status;\n const status = this.singleZone.planInfo.type == \"consultation\" ? \"consultation\" : \"approved\";\n\n const layerName = this.singleZone.layerName;\n\n // console.log(\"initSingleZone | zone: \" + JSON.stringify(zone, null, 3));\n\n this.lawTextZoneId = this.planService.getLawstextByZoneId(\n refId,\n planversionId,\n status,\n this.currentLang\n );\n\n this.lawTextZoneType = this.planService.getLawstextByZoneType(\n zoneType.toString(),\n planversionId,\n status,\n this.currentLang\n );\n\n this.titlePrefixZoneId = this.planService.getTitlePrefixByZoneId(\n refId,\n zoneType.toString(),\n planversionId,\n status,\n this.currentLang\n );\n\n this.allZonesLawText = this.planService.getAllZonesLawText(\n planversionId,\n status,\n this.currentLang\n );\n\n this.descriptionTextPdf = this.planService.getDescriptionTextPdf(\n planversionId,\n this.singleZone,\n this.currentLang\n );\n\n for (let i in this.selectedZones) {\n if (\n this.selectedZones[i].refId !== this.singleZone.refId ||\n this.selectedZones[i].zoneType != this.singleZone.zoneType ||\n this.selectedZones[i].planInfo.status != this.singleZone.planInfo.status\n ) {\n this.otherSelectedZones.push(this.selectedZones[i]);\n }\n }\n this.highlightZoneStyle(\n layerName,\n this.singleZone.planInfo.styleType,\n refId\n );\n }\n\n private setupTimeLine() {\n //===History Line on paragraph page==========\n this._mapIndex = new Array();\n this.timeLine = this.planService.getTimeline().reverse();\n for (let i = 0; i < this.timeLine.length; i++) {\n this._mapIndex.push(i);\n }\n this._mapIndex = this._mapIndex.reverse();\n this._chosenDate = this.findIndex(this.planService.currentTimeLineIndex);\n\n // set showed index\n // console.log(this._chosenDate + \" : \" +JSON.stringify(this._mapIndex));\n //this._activeTimeLine\n\n if (this._chosenDate == 0) {\n this.showTimeSlider = false;\n } else {\n this.showTimeSlider = true;\n }\n this.startValue = \"0\";\n const first = Math.ceil(this.timeLine.length / 8);\n const second = first - 1;\n const third = second * 8;\n\n this.endValue = third.toString();\n }\n\n showDate(index: number) {\n if (this._chosenDate != index) {\n this._chosenDate = index;\n /*if(this._chosenDate == 0) {\n this.showTimeSlider = false;\n }else {\n this.showTimeSlider = true;\n }*/\n this.loadPlanversionData(index);\n }\n }\n\n private loadPlanversionData(sliderindex: number) {\n this._chosenDate = sliderindex;\n let index = this.findIndex(sliderindex);\n this.mapService.setMapLoaded(false);\n this.planService.setPlanVersionFromHistorik(index);\n }\n\n private findIndex(index: number) {\n return this._mapIndex[index];\n }\n\n getZoneStatusText(planInfo: PlanInfo) {\n const isHistoric = this.planService.isCurrentTimeLineHistoric();\n\n if (isHistoric) {\n return this.getText(this.lawtextPrefix, \"lawtext_is_historic\");\n }\n\n switch (planInfo.status) {\n case \"approved\":\n return this.getText(this.lawtextPrefix, \"lawtext_status_current\");\n\n case \"consultation\":\n let dt = new Date(planInfo.consultationEnd);\n let formatted_date = this.dateService.format(dt);\n if (dt < this.planService.currentDateTime) {\n return this.getText(\n this.lawtextPrefix,\n \"lawtext_status_in_consultation_hist\"\n );\n }\n return (\n this.getText(\n this.lawtextPrefix,\n \"lawtext_status_consultation_deadline\"\n ) + ` ( ${formatted_date} )`\n );\n\n default:\n return this.getText(\n this.lawtextPrefix,\n \"lawtext_status_expired_without_acceptance\"\n );\n }\n }\n\n hideResponseListButtonOnPastTime(planInfo: PlanInfo) {\n if (planInfo.status == \"consultation\") {\n let dt = new Date(planInfo.consultationEnd);\n let formatted_date = this.dateService.format(dt);\n if (dt <= this.planService.currentDateTime) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n\n checkIDs(refId: string) {\n if (this.hoveredFeatureZones.find((f) => f.refId === refId)) {\n return true;\n } else if (this.selectedBoxFeatureRefId == refId) {\n return true;\n } else {\n return false;\n }\n }\n\n private changeMultiZoneRoutePath(\n xcoord: number,\n ycoord: number,\n timeLineIdx: number\n ) {\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/m/\" +\n xcoord +\n \"/\" +\n ycoord +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n private changeSingleZoneRoutePath(\n zone: ZoneFeature,\n xcoord: number,\n ycoord: number,\n timeLineIdx: number\n ) {\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zone.planInfo.planversionId +\n \"/\" +\n xcoord +\n \"/\" +\n ycoord +\n \"/\" +\n zone.layerName +\n \"/\" +\n zone.refId +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n private changeSingleZoneWithOutCoordinatRoutePath(\n zone: ZoneFeature,\n timeLineIdx: number\n ) {\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zone.planInfo.planversionId +\n \"/\" +\n zone.layerName +\n \"/\" +\n zone.refId +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n private changeZoneMessageRoutePath(\n xcoord: number,\n ycoord: number,\n type: string,\n timeLineIdx: number\n ) {\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/n/\" +\n xcoord +\n \"/\" +\n ycoord +\n \"/\" +\n type +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n public getTitlePrefixZoneId(zone: any): string {\n // return this.planService.getTitlePrefixByZoneId(zone.refId, zone.zoneType[0], zone.planInfo.planversionId, zone.planInfo.status, this.currentLang);\n return this.planService.getTitlePrefixByZoneId(\n zone.refId,\n zone.zoneType[0],\n zone.planInfo.planversionId,\n \"consultation\",\n this.currentLang\n );\n }\n\n private changeNoZoneMessageRoutePath(timeLineIdx: number) {\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/n/nozone?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n goToZoneFromZonesList(zone: ZoneFeature) {\n if (this.isAutonomousModeOn && this.autonomousSelectedFeatureCallback) {\n this.autonomousSelectedFeatureCallback(zone);\n return;\n }\n\n let timeLineIdx = this.planService.currentTimeLineIndex;\n let coordinates = this.mapService.clickedCoordinates;\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zone.planInfo.planversionId +\n \"/\" +\n coordinates[0] +\n \"/\" +\n coordinates[1] +\n \"/\" +\n zone.layerName +\n \"/\" +\n zone.refId +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n\n goBackToMultipleLayers() {\n let timeLineIdx = this.planService.currentTimeLineIndex;\n let coordinates = this.mapService.clickedCoordinates;\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/m/\" +\n coordinates[0] +\n \"/\" +\n coordinates[1] +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n //this.routingService.changeRoutePath(this.route.parent.routeConfig.path + \"/zone/m/\" + this.selectedZones[0].planInfo.planversionId + \"/\" + coordinates[0] + \"/\" + coordinates[1] + \"?timeLineIdx=\" + timeLineIdx);\n this.selectedZoneStyle(\n this.singleZone.layerName,\n this.singleZone.planInfo.styleType,\n this.singleZone.refId\n );\n }\n\n goToSearch() {\n this.router.navigate([\"/\" + this.currentLang + \"/page/search\"]);\n }\n\n goToZoneFromSingleZone(zone: ZoneFeature) {\n let coordinates = this.mapService.clickedCoordinates;\n if (coordinates) {\n let timeLineIdx = this.planService.currentTimeLineIndex;\n this.mapService.setFeatureStyle(\n zone.layerName,\n zone.refId,\n zone.planInfo.styleType,\n zone.planInfo.styleType\n );\n if (\n this.zonesInfoRef &&\n this.zonesInfoRef.nativeElement &&\n this.zonesInfoRef.nativeElement.scrollTop\n ) {\n this.zonesInfoRef.nativeElement.scrollTop = 0;\n }\n\n this.routingService.changeRoutePath(\n this.route.parent.routeConfig.path +\n \"/zone/s/\" +\n zone.planInfo.planversionId +\n \"/\" +\n coordinates[0] +\n \"/\" +\n coordinates[1] +\n \"/\" +\n zone.layerName +\n \"/\" +\n zone.refId +\n \"?timeLineIdx=\" +\n timeLineIdx\n );\n }\n }\n\n clickGoToConsultation(featureZone: ZoneFeature) {\n if (\n featureZone &&\n featureZone.planInfo &&\n featureZone.planInfo.planversionId\n ) {\n let timeLineIdx = this.planService.currentTimeLineIndex;\n let urlPath = \"\";\n if (\n featureZone.planInfo.styleType == \"consultationend\" ||\n featureZone.planInfo.historic\n ) {\n urlPath =\n this.route.parent.routeConfig.path +\n \"/consultation/\" +\n featureZone.planInfo.planversionId +\n \"/hist\" +\n \"?timeLineIdx=\" +\n timeLineIdx;\n } else {\n urlPath =\n this.route.parent.routeConfig.path +\n \"/consultation/\" +\n featureZone.planInfo.planversionId +\n \"?timeLineIdx=\" +\n timeLineIdx;\n }\n\n this.routingService.changeRoutePath(urlPath);\n }\n }\n //slider\n public prevItem() {\n this.prevIndx = this.prevIndx + 1;\n this.nextIndx = this.nextIndx + 1;\n }\n\n public nextItem() {\n this.prevIndx = this.prevIndx - 1;\n this.nextIndx = this.nextIndx - 1;\n }\n\n changePage(featureZone: ZoneFeature) {\n if (\n featureZone &&\n featureZone.planInfo &&\n featureZone.planInfo.planversionId\n ) {\n let subpath =\n \"consultation/answer/\" +\n featureZone.planInfo.planversionId +\n \"/create\" +\n \"/\" +\n featureZone.refId;\n if (this.route.routeConfig.path.indexOf(\"hist\") > -1) {\n subpath += \"/hist\";\n }\n let path = this.route.parent.routeConfig.path + \"/\" + subpath;\n this.router.navigate([path]);\n }\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n serviceurl_portalcache: '/portalcache/api/v1/',\n serviceurl_protectedportalcache: '/protectedportalcache/api/v1/',\n serviceurl_content: '/content/api/latest/' \n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\n// main.ts\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}