\\n
\\n
\" + state.text + \" \\n \");\n },\n resize: function () {\n var _ref = _asyncToGenerator(function* () {\n if (!this.isIframe) {\n yield this.$nextTick();\n var max_width = this.$refs.navbar_toggle.offsetWidth > 0 ? this.$refs.navbar.offsetWidth - this.$refs.navbar_toggle.offsetWidth : this.$refs.mainnavbar.offsetWidth - this.$refs['app-navbar-nav'].offsetWidth;\n this.$refs.main_title_project_title.style.maxWidth = max_width - this.logoWidth - 15 + \"px\";\n }\n });\n\n function resize() {\n return _ref.apply(this, arguments);\n }\n\n return resize;\n }(),\n showCustomModalContent: function showCustomModalContent(id) {\n var _custom_modals$find = this.custom_modals.find(function (custommodal) {\n return custommodal.id === id;\n }),\n content = _custom_modals$find.content;\n\n this.current_custom_modal_content = content;\n },\n closePanel: function closePanel() {\n sidebarService.closePanel();\n },\n getLogoLink: function getLogoLink() {\n return this.appconfig.logo_link ? this.appconfig.logo_link : null;\n },\n openProjectsMenu: function openProjectsMenu() {\n _gui2.default.openProjectsMenu();\n },\n initDialogMessages: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var messages = this.currentProject.getMessages();\n\n if (!messages) {\n return;\n }\n\n var projectId = this.currentProject.getId();\n\n var _loop = function* _loop(i) {\n var message = messages.items[i];\n var data = _application2.default.getLocalItem(_constant.LOCAL_ITEM_IDS.MESSAGES.id) || _constant.LOCAL_ITEM_IDS.MESSAGES.value;\n\n if (undefined === data[projectId]) {\n data[projectId] = [];\n }\n\n if (undefined !== data[projectId].find(function (id) {\n return id === message.id;\n })) {\n return \"continue\";\n }\n\n var doNotShowAgainVueComponent = new (Vue.extend({\n data: function data() {\n return { id: uniqueId(), checked: false };\n },\n template: \"\\n
\\n \\n \\n
\\n \"\n }))();\n\n var content = document.createElement('div');\n\n content.append.apply(content, _toConsumableArray(new DOMParser().parseFromString(message.body, 'text/html').body.childNodes));\n\n content.append(doNotShowAgainVueComponent.$mount().$el);\n\n yield new Promise(function (resolve) {\n _gui2.default.showModalDialog({\n title: message.title,\n message: content,\n size: 'large',\n closeButton: false,\n className: \"g3w-modal-project-message \" + Object.entries(messages.levels).find(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n return value === message.level;\n })[0],\n buttons: {\n close: {\n label: t('close'),\n className: 'btn-secondary',\n callback: function callback() {\n if (doNotShowAgainVueComponent.checked) {\n data[projectId].push(message.id);\n _application2.default.setLocalItem({ id: _constant.LOCAL_ITEM_IDS.MESSAGES.id, data: data });\n }\n resolve();\n }\n }\n }\n });\n });\n };\n\n for (var i = 0; i < messages.items.length; i++) {\n var _ret = yield* _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n });\n\n function initDialogMessages() {\n return _ref2.apply(this, arguments);\n }\n\n return initDialogMessages;\n }(),\n openChangeMapMenu: function openChangeMapMenu() {\n _gui2.default.openChangeMapMenu();\n }\n },\n\n watch: {\n 'language': function language(l, cl) {\n if (cl) {\n _application2.default.changeLanguage(l);\n this.cookie_law_buttonText = t('cookie_law.buttonText');\n }\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n this.delayTime = 0;\n },\n created: function created() {\n var _this2 = this;\n\n this.language = this.appconfig._i18n.language;\n this.custom_modals = [];\n this.custom_header_items_position = {\n 0: [],\n 1: [],\n 2: [],\n 3: [],\n 4: []\n };\n\n this.customlinks = Array.isArray(this.appconfig.header_custom_links) ? this.appconfig.header_custom_links.filter(function (customitem) {\n if (customitem !== null) {\n var id = customitem.id = uniqueId();\n customitem.type === 'modal' && _this2.custom_modals.push({ id: id, content: customitem.content });\n var position = 1 * (customitem.position || 0);\n position = position > 4 ? 4 : position < 0 || Number.isNaN(position) ? 0 : position;\n _this2.custom_header_items_position[position].push(customitem);\n return true;\n }\n return false;\n }) : [];\n\n if (!!this.appconfig.credits) {\n $.get(this.appconfig.credits).then(function (c) {\n return _this2.customcredits = c !== 'None' && c;\n });\n }\n },\n mounted: function () {\n var _ref5 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n this.initDialogMessages();\n\n this.logoWidth = 0;\n\n yield this.$nextTick();\n\n var rightNavBarElements = !this.isIframe ? this.$refs.mainnavbar.getElementsByTagName('ul') : [];\n\n var elementLenght = rightNavBarElements.length;\n\n this.rightNavbarWidth = 15;\n\n for (var i = 0; i < elementLenght; i++) {\n this.rightNavbarWidth += rightNavBarElements.item(i).offsetWidth;\n }\n\n this.language = this.appconfig.user.i18n;\n\n yield this.$nextTick();\n\n if (!this.isIframe) {\n this.$refs.img_logo.addEventListener('load', function () {\n _this3.logoWidth = _this3.$refs.img_logo.offsetWidth + 15;\n _this3.resize();\n }, { once: true });\n }\n\n layout.loading(false);\n layout.setup();\n\n layout.pushMenu.expandOnHover();\n layout.controlSidebar._fix($(\".control-sidebar-bg\"));\n layout.controlSidebar._fix($(\".control-sidebar\"));\n\n function setFloatBarMaxHeight() {\n $(layout.options.controlSidebarOptions.selector).css('max-height', $(window).innerHeight());\n $('.g3w-sidebarpanel').css('height', $(window).height() - $(\"#main-navbar\").height());\n }\n setFloatBarMaxHeight();\n\n $(window).resize(function () {\n setFloatBarMaxHeight();\n $('#g3w-modal-overlay').css('height', $(window).height());\n });\n\n document.body.classList.toggle('is-mobile', this.isMobile());\n });\n\n function mounted() {\n return _ref5.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.app.disabled),expression:\"app.disabled\"}],staticClass:\"wrapper\"},[_c('cookie-law',{attrs:{\"theme\":\"dark-lime\",\"buttonText\":_vm.cookie_law_buttonText}},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('cookie_law.message'),expression:\"'cookie_law.message'\"}],attrs:{\"slot\":\"message\"},slot:\"message\"})]),_vm._v(\" \"),(!_vm.isIframe)?_c('header',{staticClass:\"main-header\"},[_c('nav',{ref:\"navbar\",staticClass:\"navbar navbar-inverse navbar-fixed-top\",attrs:{\"role\":\"navigation\"}},[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"navbar-header\"},[_c('button',{ref:\"navbar_toggle\",staticClass:\"navbar-toggle\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#main-navbar\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('ellips-v'),staticStyle:{\"font-size\":\"1.3em\"}})]),_vm._v(\" \"),_c('a',{staticClass:\"sidebar-toggle\",attrs:{\"id\":\"g3w-small-screen-hamburger-sidebar\",\"href\":\"#\",\"data-toggle\":\"offcanvas\",\"role\":\"button\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('bars'),staticStyle:{\"font-size\":\"1.3em\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"logo-wrapper\",class:{'mobile': _vm.isMobile()}},[(_vm.logo_url)?_c('a',{staticClass:\"project_logo_link\",attrs:{\"href\":_vm.logo_link,\"target\":_vm.logo_link_target}},[_c('img',{ref:\"img_logo\",staticClass:\"img-responsive\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"alt\":\"\",\"src\":_vm.logo_url}})]):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"main_title_project_title\",staticClass:\"project_title_content\"},[_c('div',{staticClass:\"main_title\"},[_vm._v(_vm._s(_vm.main_title))]),_vm._v(\" \"),_c('div',{staticClass:\"sub_title\"},[_vm._v(_vm._s(_vm.project_title))])])])]),_vm._v(\" \"),_c('div',{ref:\"mainnavbar\",staticClass:\"collapse navbar-collapse\",staticStyle:{\"text-align\":\"center\",\"overflow\":\"hidden\",\"margin\":\"0 0\"},attrs:{\"id\":\"main-navbar\"}},[_c('navbarleftitems'),_vm._v(\" \"),_c('navbarrightitems'),_vm._v(\" \"),_c('ul',{ref:\"app-navbar-nav\",staticClass:\"nav navbar-nav navbar-right app-navbar-nav\"},[(!_vm.user)?_c('li',{staticClass:\"dropdown user user-menu\"},[_c('a',{attrs:{\"href\":_vm.login_url}},[_c('i',{class:_vm.g3wtemplate.getFontClass('sign-in'),attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sign_in'),expression:\"'sign_in'\"}]})])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.custom_header_items_position[0]),function(state){return _c('header-item',{key:state.id,attrs:{\"state\":state},on:{\"show-custom-modal-content\":_vm.showCustomModalContent}})}),_vm._v(\" \"),(_vm.hasRelatedMaps)?_c('li',{staticClass:\"dropdown user\",attrs:{\"id\":\"changemaps\"}},[_c('a',{staticClass:\"dropdown-toggle\",attrs:{\"href\":\"#\",\"data-toggle\":\"dropdown\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openChangeMapMenu($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('change-map'),attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('changemap'),expression:\"'changemap'\"}]})])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.custom_header_items_position[1]),function(state){return _c('header-item',{key:state.id,attrs:{\"state\":state},on:{\"show-custom-modal-content\":_vm.showCustomModalContent}})}),_vm._v(\" \"),(_vm.user)?_c('li',{staticClass:\"dropdown user user-menu\"},[_c('a',{staticClass:\"dropdown-toggle\",attrs:{\"href\":\"#\",\"data-toggle\":\"dropdown\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('user')}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-xs\"},[_vm._v(_vm._s(_vm.user.username))])]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',{staticClass:\"user-header\"},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.user.first_name)+\" \"+_vm._s(_vm.user.last_name)+\"\\n \")])]),_vm._v(\" \"),_c('li',{staticClass:\"user-footer\"},[(_vm.user.admin_url)?_c('div',{staticClass:\"pull-left\"},[_c('a',{staticClass:\"btn btn-default btn-flat skin-color bold\",attrs:{\"href\":_vm.user.admin_url}},[_c('i',{class:_vm.g3wtemplate.getFontClass('folder')}),_vm._v(\" Admin\\n \")])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"pull-right\"},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('logout'),expression:\"'logout'\"}],staticClass:\"btn btn-default btn-flat skin-color bold\",attrs:{\"href\":_vm.user.logout_url}},[_c('i',{class:_vm.g3wtemplate.getFontClass('sign-out'),staticStyle:{\"margin-right\":\"2px\"}})])])])])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.custom_header_items_position[2]),function(state){return _c('header-item',{key:state.id,attrs:{\"state\":state},on:{\"show-custom-modal-content\":_vm.showCustomModalContent}})}),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_vm._l((_vm.custom_header_items_position[3]),function(state){return _c('header-item',{key:state.id,attrs:{\"state\":state},on:{\"show-custom-modal-content\":_vm.showCustomModalContent}})}),_vm._v(\" \"),(_vm.languages)?_c('li',{staticClass:\"g3w-languages\"},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('language'),expression:\"'language'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.language),expression:\"language\"}],staticClass:\"form-control\",staticStyle:{\"cursor\":\"pointer\",\"width\":\"130px\"},attrs:{\"templateSelection\":_vm.templateResultLanguages,\"templateResult\":_vm.templateResultLanguages},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.language=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.languages),function(lang){return _c('option',{key:lang[0],domProps:{\"value\":lang[0],\"selected\":lang[0] === _vm.language && 'selected'}},[_vm._v(\"\\n \"+_vm._s(lang[1])+\"\\n \")])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.frontendurl)?_c('li',{staticClass:\"dropdown\"},[_c('a',{attrs:{\"href\":_vm.frontendurl}},[_c('span',[_c('i',{class:_vm.g3wtemplate.getFontClass('home')}),_vm._v(\" Home\\n \")])])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.custom_header_items_position[4]),function(state){return _c('header-item',{key:state.id,attrs:{\"state\":state},on:{\"show-custom-modal-content\":_vm.showCustomModalContent}})})],2)],1)])])]):_vm._e(),_vm._v(\" \"),_c('sidebar'),_vm._v(\" \"),_c('div',{staticClass:\"content-wrapper\",style:({paddingTop: _vm.isIframe ? 0 : null})},[_c('viewport',{attrs:{\"appState\":_vm.appState}})],1),_vm._v(\" \"),_c('floatbar'),_vm._v(\" \"),_c('div',{staticClass:\"control-sidebar-bg\"}),_vm._v(\" \"),_c('div',{staticClass:\"modal fade modal-fullscreen force-fullscreen\",attrs:{\"id\":\"full-screen-modal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"aria-labelledby\":\"full-screen-modal\",\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"credits\"}},[_c('div',{staticClass:\"modal-dialog\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"space-around\",\"justify-items\":\"center\",\"align-items\":\"center\"}},[(!!_vm.customcredits)?_c('div',{staticClass:\"customcredits\",domProps:{\"innerHTML\":_vm._s(_vm.customcredits)}}):_vm._e(),_vm._v(\" \"),(_vm.powered_by)?_c('div',[_c('div',{staticClass:\"g3w-credits-block\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('credits.g3wSuiteFramework'),expression:\"'credits.g3wSuiteFramework'\"}],staticClass:\"credit-title-logo\",staticStyle:{\"background-color\":\"#95ad36\",\"padding\":\"5px\",\"border-radius\":\"3px\",\"color\":\"#ffffff\"}}),_vm._v(\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://g3wsuite.it/\"}},[_c('img',{staticClass:\"g3w-suite-logo\",attrs:{\"src\":_vm.g3w_suite_logo,\"alt\":\"\"}})]),_vm._v(\" \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('credits.g3wSuiteDescription'),expression:\"'credits.g3wSuiteDescription'\"}],staticStyle:{\"margin-top\":\"10px\"}})]),_vm._v(\" \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t:pre\",value:('credits.productOf'),expression:\"'credits.productOf'\",arg:\"pre\"}],staticClass:\"credit-title-logo g3w-credits-block\",staticStyle:{\"font-size\":\"1em\",\"display\":\"flex\",\"justify-content\":\"center\"}},[_c('a',{staticStyle:{\"text-align\":\"center!important\"},attrs:{\"href\":\"http://www.gis3w.it\",\"target\":\"_blank\"}},[_c('img',{staticClass:\"img-responsive center-block\",staticStyle:{\"margin-left\":\"5px\"},attrs:{\"width\":\"60\",\"src\":_vm.credits_logo,\"alt\":\"\"}})])]),_vm._v(\" \"),_c('address',{staticStyle:{\"line-height\":\"1.3\",\"text-align\":\"center\",\"margin-top\":\"5px\",\"display\":\"flex\",\"justify-content\":\"center\"},attrs:{\"id\":\"address-credits\"}},[_c('span',{staticStyle:{\"padding\":\"2px\"}},[_c('span',{class:_vm.g3wtemplate.getFontClass('marker'),staticStyle:{\"color\":\"#95ad36\",\"font-weight\":\"bold\"},attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Montecatini Terme - Italy\\n \")]),_vm._v(\" \"),_c('span',{staticStyle:{\"padding\":\"2px\"}},[_c('span',{class:_vm.g3wtemplate.getFontClass('mobile'),staticStyle:{\"color\":\"#95ad36\"},attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" +39 393 8534336\\n \")]),_vm._v(\" \"),_c('span',{staticStyle:{\"padding\":\"2px\"}},[_c('span',{class:_vm.g3wtemplate.getFontClass('mail'),staticStyle:{\"color\":\"#95ad36\"},attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('a',{staticStyle:{\"color\":\"#000000\"},attrs:{\"href\":\"mailto:info@gis3w.it\"}},[_vm._v(\" info@gis3w.it\")])])])]):_vm._e()])])])])]),_vm._v(\" \"),_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"custom_modal\"}},[_c('div',{staticClass:\"modal-dialog\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\",domProps:{\"innerHTML\":_vm._s(_vm.current_custom_modal_content)}})])])],1)}\n__vue__options__.staticRenderFns = [function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"dropdown user user-menu\"},[_c('a',{staticClass:\"dropdown-toggle\",attrs:{\"href\":\"#\",\"data-toggle\":\"modal\",\"data-target\":\"#credits\"}},[_c('span',[_vm._v(\"Credits\")])])])},function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",staticStyle:{\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"opacity\":\"1\",\"position\":\"absolute\",\"right\":\"25px\",\"top\":\"20px\"},attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n__vue__options__._scopeId = \"data-v-6659a6eb\"\n\n},{\"app/constant\":5,\"components/HeaderItem.vue\":155,\"core/i18n/i18n.service\":12,\"mixins\":274,\"services/application\":282,\"services/gui\":286,\"store/projects\":301,\"utils\":388,\"vue-cookie-law\":\"vue-cookie-law\",\"vueify/lib/insert-css\":2}],119:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: 'c3xyline',\n\n props: {\n showdata: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n id: 'graphline' + getUniqueDomId(),\n selectitems: [],\n data: [],\n components: [],\n config: { data: { columns: [['x'], ['y']] } },\n size: { width: 0, height: 0 }\n };\n },\n\n methods: {\n addComponent: function addComponent(component) {\n this.components.push(component);\n },\n addComponents: function addComponents() {\n var _this = this;\n\n var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n components.forEach(function (component) {\n return _this.addComponent(component);\n });\n },\n setConfig: function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.config = config;\n },\n setDataOffset: function setDataOffset(offset) {\n var render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var data = this.getData();\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n item.value += offset;\n }\n if (render) {\n this.resize();\n }\n },\n getSelectedItems: function getSelectedItems() {\n return this.selectitems;\n },\n selectItem: function selectItem(id) {\n this.chart.select(['y'], [id]);\n },\n unselectItem: function unselectItem(id) {\n this.chart.unselect(['y'], [id]);\n },\n selectItems: function selectItems() {\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n this.chart.select([y], ids);\n },\n unselectItems: function unselectItems() {\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n this.chart.unselect(['y'], ids);\n },\n unselectAll: function unselectAll() {\n this.chart.unselect();\n },\n selectAll: function selectAll() {\n this.chart.select();\n },\n getData: function getData() {\n return this.data;\n },\n resize: function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n width = _ref2.width,\n height = _ref2.height;\n\n yield this.$nextTick();\n this.chart.resize({\n width: width,\n height: height || $('#' + this.id).height() - 4\n });\n });\n\n function resize() {\n return _ref.apply(this, arguments);\n }\n\n return resize;\n }(),\n _setAllowedSpace: function _setAllowedSpace() {\n if (this.components && this.components.length) {\n this.size.height = document.querySelector('.g3wform_content').offsetHeight - this.$el.offsetHeight - document.querySelector('.g3wform_header').offsetHeight - 50;\n }\n },\n _setMaxMin: function _setMaxMin(_ref3) {\n var value = _ref3.value,\n max = _ref3.max,\n min = _ref3.min;\n\n min = value ? +value : +min;\n max = value ? +value : +max;\n if (min < this.chart.axis.min().y) {\n this.chart.axis.min(min);\n } else if (max > this.chart.axis.max().y) {\n this.chart.axis.max(max);\n } else {\n var dataValues = this.data.map(function (data) {\n return +data.value;\n });\n this.chart.axis.max(Math.max.apply(Math, _toConsumableArray(dataValues)));\n this.chart.axis.min(Math.min.apply(Math, _toConsumableArray(dataValues)));\n }\n this.resize();\n },\n changeItems: function changeItems(items) {\n if (1 === items.length) {\n this._setMaxMin(items[0].value);\n } else {\n this._setMaxMin({\n max: Math.max.apply(Math, _toConsumableArray(items.map(function (item) {\n return +item.value;\n }))),\n min: Math.min.apply(Math, _toConsumableArray(items.map(function (item) {\n return +item.value;\n })))\n });\n }\n this.resize();\n },\n changeItem: function changeItem(_ref4) {\n var item = _ref4.item,\n _ref4$render = _ref4.render,\n render = _ref4$render === undefined ? true : _ref4$render;\n\n this._setMaxMin({ value: item.value });\n if (render) {\n this.resize();\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _gui2.default.on('resize', _this2.resize);\n var self = _this2;\n _this2.config.data.onselected = function (e) {\n self.selectitems = [].concat(_toConsumableArray(self.selectitems), [e]);\n };\n _this2.config.data.onunselected = function (e) {\n self.selectitems = self.selectitems.filter(function (i) {\n return i.index !== e.index;\n });\n };\n _this2.chart = c3.generate(_extends({\n bindto: '#' + _this2.id\n }, _this2.config));\n var data = _this2.chart.data()[0] ? _this2.chart.data()[0].values : [];\n data.forEach(function (i) {\n return _this2.data.push(i);\n });\n _this2._setAllowedSpace();\n\n _this2.$emit('chart-ready', _this2.chart);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.data = this.selectitems = null;\n this.chart.destroy();\n this.chart = null;\n _gui2.default.off('resize', this.resize);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chart_wrapper\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('div',{staticStyle:{\"height\":\"100%\",\"min-height\":\"200px\",\"background-color\":\"#ffffff\"},attrs:{\"id\":_vm.id}}),_vm._v(\" \"),_vm._l((_vm.components),function(component){return _c('div',[_c('divider'),_vm._v(\" \"),_c(component,{tag:\"component\",attrs:{\"data\":_vm.data,\"selectitems\":_vm.selectitems,\"size\":_vm.size},on:{\"change-item\":_vm.changeItem,\"change-items\":_vm.changeItems,\"select-item\":_vm.selectItem,\"select-all\":_vm.selectAll,\"unselect-all\":_vm.unselectAll,\"unselect-item\":_vm.unselectItem}})],1)})],2)}\n__vue__options__.staticRenderFns = []\n\n},{\"services/gui\":286,\"utils\":388}],120:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".tabbable-line>.nav-tabs>li.active{border-bottom:4px solid var(--skin-color)}.catalog #legend div.selected,.catalog .tree-item.selected{background-color:var(--skin-color)}.catalog-context-menu li.title{border-bottom-color:var(--skin-color)!important}.skin-blue .tabbable-line>.nav-tabs>li:is(.open,:hover){border-bottom:4px solid #6abbea}.skin-blue .tabbable-line.tabs-below>.nav-tabs>li:hover{border-top:4px solid #6abbea}.skin-blue .tabbable-line.tabs-below>.nav-tabs>li.active{border-top:4px solid #f3565d}.skin-green .tabbable-line>.nav-tabs>li:is(.open,:hover){border-bottom:4px solid #00ff8e}.skin-green .tabbable-line.tabs-below>.nav-tabs>li:hover{border-top:4px solid #00ff8e}.skin-green .tabbable-line.tabs-below>.nav-tabs>li.active{border-top:4px solid #f3565d}.skin-purple .tabbable-line>.nav-tabs>li:is(.open,:hover){border-bottom:4px solid #a19dff}.skin-purple .tabbable-line.tabs-below>.nav-tabs>li:hover{border-top:4px solid #a19dff}.skin-purple .tabbable-line.tabs-below>.nav-tabs>li.active{border-top:4px solid #f3565d}.skin-red .tabbable-line>.nav-tabs>li:is(.open,:hover){border-bottom:4px solid #ff5542}.skin-red .tabbable-line.tabs-below>.nav-tabs>li.active,.skin-red .tabbable-line.tabs-below>.nav-tabs>li:hover{border-top:4px solid #ff5542}.skin-yellow .tabbable-line>.nav-tabs>li:is(.open,:hover){border-bottom:4px solid #ffde0d}.skin-yellow .tabbable-line.tabs-below>.nav-tabs>li:hover{border-top:4px solid #ffde0d}.skin-yellow .tabbable-line.tabs-below>.nav-tabs>li.active{border-top:4px solid #ffdf12}.tabbable-panel{padding:10px}.tabbable-line>.nav-tabs{border:none;margin:0}.tabbable-line .nav-tabs ul li{color:#fff}.tabbable-line>.nav-tabs>li{margin-right:2px;border-bottom:4px solid #21292d}.tabbable-line>.nav-tabs>li>a{border:0;margin-right:0;color:#fff}.tabbable-line>.nav-tabs>li>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li:is(.open,:hover)>a{border:0;background:none!important}.tabbable-line>.nav-tabs>li:is(.open,:hover)>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li:is(.open,:hover) .dropdown-menu{margin-top:0}.tabbable-line>.nav-tabs>li.active{position:relative;font-weight:700}.tabbable-line>.nav-tabs>li.active>a{border:0;color:#fff;background-color:#2c3b41}.tabbable-line>.nav-tabs>li.active>a>i{color:#fff}.tabbable-line>.tab-content.catalog-tab-content{margin-top:-3px;border:0;color:#fff;padding:5px 0 0}.portlet .tabbable-line>.tab-content{padding-bottom:0}.tabbable-line.tabs-below>.nav-tabs>li{border-top:4px solid transparent}.tabbable-line.tabs-below>.nav-tabs>li>a{margin-top:0}.tabbable-line.tabs-below>.nav-tabs>li:hover{border-bottom:0;color:#fff}.tabbable-line.tabs-below>.nav-tabs>li.active{margin-bottom:-2px;border-bottom:0}.tabbable-line.tabs-below>.tab-content{margin-top:-10px;border-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.nav-tabs>li.active>a,.nav-tabs>li.active>a:is(:focus,:hover){color:#fff;background-color:#2c3b41}.catalog>.title{padding:10px;font-weight:700}.catalog ul{line-height:1.5em;list-style-type:none}.catalog .list-group-item{color:#fff;background-color:#2c3b41}.catalog #legend div.selected ul.layer-categories,.catalog .tree-item.selected ul.layer-categories{background-color:#222d32}.catalog #legend div div.tree-node-title,.catalog .tree-item div.tree-node-title{padding-left:3px;cursor:pointer;width:80%;display:inline-flex;justify-content:space-between}.catalog #legend div div.tree-node-title.disabled,.catalog .tree-item div.tree-node-title.disabled{color:#999}.catalog #legend div div.tree-node-title .selection-filter-icon,.catalog .tree-item div.tree-node-title .selection-filter-icon{box-shadow:0 2px 5px rgba(0,0,0,.3);padding:5px;border-radius:3px;margin:0 3px;font-weight:700;color:#fff!important}.catalog #legend div div.tree-node-title .selection-filter-icon.active,.catalog .tree-item div.tree-node-title .selection-filter-icon.active{box-shadow:none;background-color:#384247}.catalog .tree-item{cursor:pointer;margin-bottom:3px}.catalog .tree-item.disabled>span{color:#999}.catalog .root{padding:2px 1px 1px 5px}.catalog .root .tree-item.group{padding-left:1px}.catalog .root.fa-chevron-right{padding-right:5px;padding-left:0}.catalog .root-categories.fa-chevron-right{padding-right:7px}.catalog .root-categories.fa-chevron-down{padding-right:3px}.bold{font-weight:700;color:#fff}.highlightlayer{border-bottom:2px dashed;border-color:#ffb516}.catalog{padding:3px}.catalog .tree-root{padding-left:0}.catalog .tree-root li>.root{padding-left:5px}.catalog .tree-root li.tree-item ul.tree-content-items.root{padding-left:18px}.catalog .tree-root li.tree-item ul.tree-content-items.root>.tree-item.group{padding-left:1px!important}.catalog .tree-root li.tree-item ul.tree-content-items{padding-left:17px;padding-top:2px}.g3w-lendplace-toc{padding-left:23px}.g3w-lendplace-toc.group{padding-left:17px}.g3w-lendplace-toc.root{padding-left:18px}.g3w-lendplace-toc.root>li.itemmarginbottom{margin-left:-13px}.g3w-lendplace-toc.root>li.itemmarginbottom div.layer-legend{padding-left:56px}.g3w-lendplace-toc.root>li.itemmarginbottom>span.child{padding-left:18px!important}.catalog .tree-root span.root.collapse-expande-collapse-icon{width:19px}.catalog .tree-root span.root.collapse-expande-collapse-icon.project-root{width:17px}.catalog .tree-root span.collapse-expande-collapse-icon{width:10px}.catalog span.legend-collapse-expande-collapse-icon{font-size:1.2em}.catalog .child-categories{padding:5px 3px 1px 12px}.catalog .layer-legend{padding:3px 0 0 35px;background-color:#222d32}.catalog .catalalog-nav-tabs{display:flex;flex:1 1 0}.catalog .catalalog-nav-tabs>li{font-size:1em;white-space:normal;display:flex;flex:1 1 0;align-items:stretch}.catalog .catalalog-nav-tabs>li a{padding:10px 0;text-align:center;height:100%;width:100%}.catalog .tree{color:#fff}.catalog .tree.disabled{color:#999;cursor:not-allowed}.catalog .g3w-external_wms_layers-group{padding:5px}.catalog .baselayers .radio{margin:0}.catalog-context-menu{background:#fafafa;border:1px solid #bdbdbd;border-radius:3px;display:block;list-style:none;margin:0;padding:0;position:fixed;min-width:150px;z-index:999999;color:#000;outline:none}.catalog-context-menu li{border-bottom:1px solid #e0e0e0;margin:0;padding:5px 15px}.catalog-context-menu li span.menu-icon{padding-right:3px;margin-right:3px}.catalog-context-menu li .wms-url-tooltip{color:#000;opacity:1}.catalog-context-menu li .wms-url-tooltip:hover{color:#fff!important;transform:scale(1.1)}.catalog-context-menu li.title{background:transparent;font-size:1.1em;font-weight:700;border-bottom-width:3px!important}.catalog-context-menu li.title:hover{cursor:default!important;background:transparent!important;color:#000}.catalog-context-menu li:last-child{border-bottom:none}.catalog-context-menu li:hover{color:#fafafa;cursor:pointer}.catalog-context-menu li .layer-menu-metadata-info{padding:5px;max-width:200px;white-space:normal;overflow-y:auto;max-height:150px}#baselayers-content{display:grid;justify-content:center;grid-gap:5px;padding:0;margin:5px}#baselayers-content.mobile{grid-template-columns:repeat(auto-fill,minmax(80px,110px))}#baselayers-content .baseselayer-text{white-space:pre-line;font-weight:700}#baselayers-content .baselayer{cursor:pointer}#baselayers-content .baselayer .baselayer-name{font-weight:700;white-space:pre-line;text-align:center}#catalog #layers ul.g3w-external_layers-group{padding-left:0!important}#catalog #layers ul.g3w-external_layers-group li{padding-left:2px!important}#catalog #layers .sidebar-menu>li>a{border:0}#catalog .catalog-context-menu .wms-url-tooltip .tooltip-inner{min-width:200px}#catalog .catalog-context-menu .tooltip-inner{word-break:break-all;font-weight:700}#catalog .catalog-context-menu .item-text{margin-left:3px}#catalog #toc_layer_help_text{position:relative;border-radius:2px;padding:5px;margin:.8em;white-space:pre-line;background-color:hsla(0,0%,100%,.1)}#catalog .info_helptext_button{text-align:center;font-size:.7em;margin-top:-5px;margin-left:-5px;background-color:#222d32;font-weight:700;color:#fff;position:absolute;top:0;left:0;width:15px;height:15px;box-shadow:0 3px 5px rgba(0,0,0,.5);border:1px solid #fff;border-radius:50%}#catalog>a{display:none!important}\\n#legend .divider[data-v-f931b03a]{display:block;position:relative;padding:0;margin:8px auto;height:0;width:100%;max-height:0;font-size:1px;line-height:0;clear:both;border:none}.legend-item[data-v-f931b03a]{width:100%;position:relative}.g3w-catalog-layers-group>div[data-v-f931b03a]{border:1px solid #ffffff33;margin:5px}.g3w-catalog-layers-group>div>h4[data-v-f931b03a]{margin:5px;font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eventbus = require('app/eventbus');\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _mapControls = require('store/map-controls');\n\nvar _mapControls2 = _interopRequireDefault(_mapControls);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _CatalogChangeMapThemes = require('components/CatalogChangeMapThemes.vue');\n\nvar _CatalogChangeMapThemes2 = _interopRequireDefault(_CatalogChangeMapThemes);\n\nvar _CatalogLayerContextMenu = require('components/CatalogLayerContextMenu.vue');\n\nvar _CatalogLayerContextMenu2 = _interopRequireDefault(_CatalogLayerContextMenu);\n\nvar _CatalogProjectContextMenu = require('components/CatalogProjectContextMenu.vue');\n\nvar _CatalogProjectContextMenu2 = _interopRequireDefault(_CatalogProjectContextMenu);\n\nvar _CatalogTristateTree = require('components/CatalogTristateTree.vue');\n\nvar _CatalogTristateTree2 = _interopRequireDefault(_CatalogTristateTree);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction __(name, value) {\n return value || 0 === value ? '' + name + value : null;\n}\n\nexports.default = {\n name: 'catalog',\n\n data: function data() {\n return {\n state: this.$options.service.state || {},\n showlegend: false,\n currentBaseLayer: null,\n activeTab: 'layers',\n loading: false\n };\n },\n\n\n components: {\n CatalogChangeMapThemes: _CatalogChangeMapThemes2.default,\n CatalogLayerContextMenu: _CatalogLayerContextMenu2.default,\n CatalogProjectContextMenu: _CatalogProjectContextMenu2.default,\n CatalogTristateTree: _CatalogTristateTree2.default\n },\n\n computed: {\n project: function project() {\n return _projects2.default.state.currentProject;\n },\n title: function title() {\n return this.project.state.name;\n },\n baselayers: function baselayers() {\n return this.project.state.baselayers;\n },\n hasBaseLayers: function hasBaseLayers() {\n return this.project.state.baselayers.length > 0;\n },\n hasLayers: function hasLayers() {\n var len = 0;\n this.state.layerstrees.forEach(function (layerstree) {\n return len += layerstree.tree.length;\n });\n return this.state.external.vector.length > 0 || len > 0 || this.state.layersgroups.length > 0;\n }\n },\n\n methods: {\n onLegendError: function onLegendError(legendurl) {\n legendurl.error = true;\n legendurl.loading = false;\n },\n onLegendLoad: function onLegendLoad(legendurl) {\n legendurl.loading = false;\n },\n getLegendSrc: function getLegendSrc() {\n var _this = this;\n\n var change = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if ('tab' !== this.state.legend.place) {\n return;\n }\n\n this.state.layerstrees.forEach(function (t) {\n var layers = _this._traverseVisibleLayers(t.tree);\n _this.showlegend = _this.showlegend || layers.length > 0;\n t.tree.forEach(function () {\n var _ref = _asyncToGenerator(function* (tree) {\n try {\n if (change && (tree.legendurls && 0 === tree.legendurls.length || layers.some(function (l) {\n return l.legend.change;\n }) || _projects2.default.getCurrentProject().getContextBaseLegend())) {\n layers.filter(function (l) {\n return l.legend.change;\n }).forEach(function (l) {\n return l.legend.change = false;\n });\n }\n tree.legendurls = yield _this._getLegendSrc(layers);\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x2) {\n return _ref.apply(this, arguments);\n };\n }());\n });\n },\n _traverseVisibleLayers: function _traverseVisibleLayers(obj) {\n var _layers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = obj[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var layer = _step.value;\n\n if (null !== layer.id && undefined !== layer.id && layer.visible && layer.geolayer && !layer.exclude_from_legend) {\n _layers.push(layer);\n }\n if (null !== layer.nodes && undefined !== layer.nodes) {\n _layers = _layers.concat(this._traverseVisibleLayers(layer.nodes, _layers));\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return _layers;\n },\n _getLegendSrc: function () {\n var _ref2 = _asyncToGenerator(function* (visiblelayers) {\n var _this2 = this;\n\n var legendurls = [];\n\n var layers = visiblelayers.filter(function (l) {\n return l.geolayer;\n });\n\n var http = { GET: {}, POST: {} };\n\n layers.forEach(function (layer) {\n var name = http[layer.source && layer.source.url || layer.external ? 'GET' : layer.ows_method];\n var catalogLayer = _catalogLayers2.default.getLayerById(layer.id);\n\n var url = catalogLayer ? catalogLayer.getLegendUrl(_this2.state.legend.config, {\n all: !_projects2.default.getCurrentProject().getContextBaseLegend(),\n format: 'image/png',\n categories: layer.categories\n }) : undefined;\n\n if (undefined === catalogLayer) {\n return;\n }\n\n if (layer.source && layer.source.url) {\n name[url] = [];\n return;\n }\n\n var prefix = url.split('LAYER=')[0].split('LEGEND_ON=')[0].split('LEGEND_OFF=')[0];\n\n if (!name[prefix]) {\n name[prefix] = [];\n }\n\n name[prefix].unshift({\n layerName: url.split('LAYER=')[1],\n style: (Array.isArray(layer.styles) && layer.styles.find(function (style) {\n return style.current;\n }) || { name: false }).name,\n legend_on: (url.split('LAYER=')[0].split('LEGEND_ON=')[1] || '').replace('&', ''),\n legend_off: (url.split('LAYER=')[0].split('LEGEND_ON=')[0].split('LEGEND_OFF=')[1] || '').replace('&', '') });\n });\n\n for (var method in http) {\n var _loop = function* _loop(url) {\n var obj = {\n loading: true,\n url: null,\n error: false\n };\n\n legendurls.push(obj);\n\n var params = {\n LAYERS: [],\n STYLES: [],\n LEGEND_ON: [],\n LEGEND_OFF: []\n };\n\n (http[method][url] || []).reduce(function (_, layer) {\n params.LAYERS.push(layer.layerName);\n params.STYLES.push(layer.style);\n if (layer.legend_on) {\n params.LEGEND_ON.push(layer.legend_on);\n }\n if (layer.legend_off) {\n params.LEGEND_OFF.push(layer.legend_off);\n }\n return params;\n }, params);\n\n var url_params = [__('LAYERS=', params.LAYERS.join(',')), __('STYLES=', params.STYLES.join(',')), __('LEGEND_ON=', params.LEGEND_ON.join(',')), __('LEGEND_OFF=', params.LEGEND_OFF.join(',')), __('filtertoken=', _application2.default.getFilterToken())].filter(function (p) {\n return p;\n }).join('&');\n\n try {\n obj.url = 'GET' === method ? url + (http[method][url].length ? url_params : '') : URL.createObjectURL((yield (yield fetch(url.split('?')[0], {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },\n\n body: url.split('?')[1].split('&').filter(function (p) {\n return p.split('=')[0];\n }).map(function (p) {\n return p.split('=')[0] + '=' + encodeURIComponent(p.split('=')[1]);\n }).join('&') + '&' + url_params\n })).blob()));\n } catch (e) {\n console.warn(e);\n }\n\n obj.loading = false;\n };\n\n for (var url in http[method]) {\n yield* _loop(url);\n }\n }\n\n return legendurls;\n });\n\n function _getLegendSrc(_x4) {\n return _ref2.apply(this, arguments);\n }\n\n return _getLegendSrc;\n }(),\n changeMapTheme: function () {\n var _ref3 = _asyncToGenerator(function* (map_theme) {\n _gui2.default.closeContent();\n\n _application2.default.changeProjectView(true);\n this.state.layerstrees[0].checked = true;\n var changes = (yield _projects2.default.getCurrentProject().setLayersTreePropertiesFromMapTheme({\n map_theme: map_theme,\n rootNode: this.state.layerstrees[0],\n layerstree: this.state.layerstrees[0].tree[0].nodes\n })).layers;\n _application2.default.changeProjectView(false);\n\n var layers = Object.keys(changes).filter(function (id) {\n return changes[id].style;\n });\n var styles = (yield this.project.getMapThemeFromThemeName(map_theme)).styles;\n\n layers.forEach(function (id) {\n if (!changes[id].visible) {\n var layer = _catalogLayers2.default.getLayerById(id);\n layer.clearCategories();\n layer.change();\n }\n });\n\n layers.forEach(function (id) {\n return _eventbus.CatalogEventBus.$emit('layer-change-style', { layerId: id, style: styles[id] });\n });\n });\n\n function changeMapTheme(_x5) {\n return _ref3.apply(this, arguments);\n }\n\n return changeMapTheme;\n }(),\n onTabClick: function onTabClick(e) {\n if (e.target.attributes['aria-controls']) {\n this.activeTab = e.target.attributes['aria-controls'].value;\n }\n },\n setBaseLayer: function setBaseLayer(id) {\n this.currentBaseLayer = id;\n this.project.setBaseLayer(id);\n _application2.default.setBaseLayerId(id);\n },\n getSrcBaseLayerImage: function getSrcBaseLayerImage(baseLayer) {\n var image = 'nobaselayer.png';\n switch (baseLayer && baseLayer.servertype || baseLayer) {\n case 'OSM':\n image = 'osm.png';break;\n case 'Bing':\n image = 'bing' + baseLayer.source.subtype + '.png';break;\n case 'TMS':\n image = baseLayer.icon ? baseLayer.icon : image;break;\n case 'WMTS':\n image = baseLayer.icon ? baseLayer.icon : image;break;\n }\n return (baseLayer || {}).icon ? image : _gui2.default.getResourcesUrl() + 'images/' + image;\n },\n onUnSelectionLayer: function onUnSelectionLayer(storeid, layerstree) {\n _gui2.default.getService('queryresults').removeFromSelection(layerstree, storeid);\n },\n onActiveFilterTokenLayer: function () {\n var _ref4 = _asyncToGenerator(function* (storeid, layerstree) {\n layerstree.filter.active = yield _catalogLayers2.default.getLayersStore(storeid).getLayerById(layerstree.id).toggleFilterToken();\n });\n\n function onActiveFilterTokenLayer(_x6, _x7) {\n return _ref4.apply(this, arguments);\n }\n\n return onActiveFilterTokenLayer;\n }(),\n onTreeNodeVisible: function onTreeNodeVisible(layer) {\n _gui2.default.getService('map').emit('cataloglayervisible', layer);\n },\n onTreeNodeSelected: function onTreeNodeSelected(storeid, node) {\n var layer = _catalogLayers2.default.getLayersStore(storeid).getLayerById(node.id);\n\n if (!layer.isSelected()) {\n _gui2.default.getService('catalog').setSelectedExternalLayer({ layer: null, type: 'vector', selected: false });\n }\n setTimeout(function () {\n _catalogLayers2.default.getLayersStore(storeid).selectLayer(node.id, !layer.isSelected());\n\n _gui2.default.getService('map').emit('cataloglayerselected', layer);\n });\n },\n onTreeNodeExternalSelected: function onTreeNodeExternalSelected(layer) {\n _gui2.default.getService('catalog').setSelectedExternalLayer({ layer: layer, type: 'vector', selected: !layer.selected }).then(function () {\n if (layer.selected) {\n _catalogLayers2.default.getLayersStores().forEach(function (layer) {\n layer.selectLayer(null, false);\n });\n }\n });\n },\n onRegisterControl: function onRegisterControl(id, control) {\n var _this3 = this;\n\n if ('querybbox' === id) {\n control.getInteraction().on('propertychange', function (e) {\n if ('active' === e.key) {\n _this3.state.highlightlayers = !e.oldValue;\n }\n });\n }\n }\n },\n\n watch: {\n 'state.external.wms': function stateExternalWms(newlayers, oldlayers) {\n if (oldlayers && 0 === newlayers.length) {\n this.activeTab = this.project.state.catalog_tab || 'layers';\n }\n },\n\n\n project: {\n handler: function () {\n var _ref5 = _asyncToGenerator(function* (project, oldproject) {\n var _this4 = this;\n\n var activeTab = project.state.catalog_tab || 'layers';\n this.loading = 'baselayers' === activeTab;\n yield this.$nextTick();\n setTimeout(function () {\n _this4.loading = false;\n _this4.activeTab = activeTab;\n }, 'baselayers' === activeTab ? 500 : 0);\n });\n\n function handler(_x8, _x9) {\n return _ref5.apply(this, arguments);\n }\n\n return handler;\n }(),\n\n immediate: false\n },\n\n activeTab: function activeTab(tab) {\n if ('legend' === tab) {\n this.getLegendSrc(true);\n }\n }\n },\n\n created: function created() {\n _eventbus.CatalogEventBus.$on('unselectionlayer', this.onUnSelectionLayer);\n _eventbus.CatalogEventBus.$on('activefiltertokenlayer', this.onActiveFilterTokenLayer);\n _eventbus.CatalogEventBus.$on('treenodevisible', this.onTreeNodeVisible);\n _eventbus.CatalogEventBus.$on('treenodeselected', this.onTreeNodeSelected);\n _eventbus.CatalogEventBus.$on('treenodeexternalselected', this.onTreeNodeExternalSelected);\n _eventbus.CatalogEventBus.$on('layer-change-style', this.getLegendSrc);\n _mapControls2.default.onafter('registerControl', this.onRegisterControl);\n },\n beforeMount: function beforeMount() {\n this.currentBaseLayer = this.project.state.initbaselayer;\n },\n mounted: function () {\n var _ref6 = _asyncToGenerator(function* () {\n var _this5 = this;\n\n yield this.$nextTick();\n\n if (_projects2.default.getCurrentProject().getContextBaseLegend()) {\n _gui2.default.getService('map').on('change-map-legend-params', function () {\n _this5.getLegendSrc();\n });\n } else {\n this.getLegendSrc();\n }\n });\n\n function mounted() {\n return _ref6.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabbable-panel catalog\",attrs:{\"id\":\"catalog\"},on:{\"contextmenu\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('div',{staticClass:\"tabbable-line\"},[_c('ul',{staticClass:\"nav nav-tabs catalalog-nav-tabs\",attrs:{\"role\":\"tablist\"},on:{\"!click\":function($event){return _vm.onTabClick($event)}}},[(_vm.hasLayers)?_c('li',{class:{ active: ('layers' === _vm.activeTab) },attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('data'),expression:\"'data'\"}],attrs:{\"href\":\"#layers\",\"aria-controls\":\"layers\",\"role\":\"tab\",\"data-toggle\":\"tab\",\"data-i18n\":\"tree\"}})]):_vm._e(),_vm._v(\" \"),(_vm.state.external.wms.length)?_c('li',{class:{ active: ('externalwms' === _vm.activeTab) },attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('externalwms'),expression:\"'externalwms'\"}],attrs:{\"href\":\"#externalwms\",\"aria-controls\":\"externalwms\",\"role\":\"tab\",\"data-toggle\":\"tab\",\"data-i18n\":\"externalwms\"}})]):_vm._e(),_vm._v(\" \"),(_vm.hasBaseLayers)?_c('li',{class:{ active: ('baselayers' === _vm.activeTab) },attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('baselayers'),expression:\"'baselayers'\"}],attrs:{\"href\":\"#baselayers\",\"aria-controls\":\"baselayers\",\"role\":\"tab\",\"data-toggle\":\"tab\",\"data-i18n\":\"baselayers\"}})]):_vm._e(),_vm._v(\" \"),('tab' === _vm.state.legend.place && _vm.showlegend)?_c('li',{class:{ active: ('legend' === _vm.activeTab) },attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('legend'),expression:\"'legend'\"}],attrs:{\"href\":\"#legend\",\"aria-controls\":\"legend\",\"role\":\"tab\",\"data-toggle\":\"tab\",\"data-i18n\":\"legend\"}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"tab-content catalog-tab-content\"},[_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('div',{staticClass:\"tab-pane\",class:{ active: ('layers' === _vm.activeTab) },attrs:{\"id\":\"layers\",\"role\":\"tabpanel\"}},[_c('helpdiv',{attrs:{\"message\":\"catalog_items.helptext\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"margin\":\"2px\"},attrs:{\"id\":\"g3w-catalog-toc-layers-toolbar\"}},[_c('catalog-change-map-themes',{key:_vm.project.state.gid,attrs:{\"map_themes\":_vm.project.state.map_themes,\"layerstrees\":_vm.state.layerstrees},on:{\"change-map-theme\":_vm.changeMapTheme}})],1),_vm._v(\" \"),_vm._l((_vm.state.layerstrees),function(root){return _c('ul',{key:root.storeid,staticClass:\"tree-root root project-root\"},_vm._l((root.tree),function(tree){return _c('catalog-tristate-tree',{key:tree.id,staticClass:\"item\",attrs:{\"highlightlayers\":_vm.state.highlightlayers,\"layerstree\":tree,\"parentFolder\":false,\"root\":true,\"legendplace\":_vm.state.legend.place,\"parent_mutually_exclusive\":false,\"storeid\":root.storeid}})}),1)}),_vm._v(\" \"),(_vm.state.external.vector.length)?_c('ul',{staticClass:\"g3w-external_layers-group\"},_vm._l((_vm.state.external.vector),function(vector){return _c('catalog-tristate-tree',{key:vector.id,staticClass:\"item\",attrs:{\"externallayers\":_vm.state.external.vector,\"layerstree\":vector}})}),1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.state.layersgroups),function(group){return _c('ul',{staticClass:\"g3w-catalog-layers-group\"},[_c('div',[_c('h4',[_vm._v(_vm._s(group.title))]),_vm._v(\" \"),_vm._l((group.nodes),function(node){return _c('catalog-tristate-tree',{staticClass:\"item\",attrs:{\"layerstree\":node}})})],2)])})],2),_vm._v(\" \"),(_vm.state.external.wms.length)?_c('div',{staticClass:\"tab-pane\",class:{ active: ('externalwms' === _vm.activeTab) },attrs:{\"id\":\"externalwms\",\"role\":\"tabpanel\"}},[_c('ul',{staticClass:\"g3w-external_wms_layers-group\"},_vm._l((_vm.state.external.wms),function(wms){return _c('catalog-tristate-tree',{key:wms.id,staticClass:\"item\",attrs:{\"externallayers\":_vm.state.external.wms,\"layerstree\":wms}})}),1)]):_vm._e(),_vm._v(\" \"),(_vm.hasBaseLayers)?_c('div',{staticClass:\"tab-pane baselayers\",class:{ active: ('baselayers' === _vm.activeTab || !_vm.hasLayers) },attrs:{\"id\":\"baselayers\",\"role\":\"tabpanel\"}},[_c('ul',{class:{'mobile': _vm.isMobile()},style:({ gridTemplateColumns: (\"repeat(auto-fill, minmax(\" + (_vm.baselayers.length > 4 ? 80 : 120) + \"px, 1fr))\") }),attrs:{\"id\":\"baselayers-content\"}},[_vm._l((_vm.baselayers),function(base){return (!base.fixed)?_c('li',{key:base.title},[_c('img',{staticClass:\"img-responsive img-thumbnail baselayer\",style:({ opacity: _vm.currentBaseLayer === base.id ? 1 : 0.5 }),attrs:{\"src\":_vm.getSrcBaseLayerImage(base)},on:{\"click\":function($event){$event.stopPropagation();return _vm.setBaseLayer(base.id)}}}),_vm._v(\" \"),_c('div',{staticClass:\"baseselayer-text text-center g3w-long-text\"},[_vm._v(_vm._s(base.title))])]):_vm._e()}),_vm._v(\" \"),_c('li',{on:{\"click\":function($event){$event.stopPropagation();return _vm.setBaseLayer(null)}}},[_c('img',{staticClass:\"img-responsive img-thumbnail baselayer\",style:({ opacity: _vm.currentBaseLayer === null ? 1 : 0.5 }),attrs:{\"src\":_vm.getSrcBaseLayerImage(null)}}),_vm._v(\" \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('nobaselayer'),expression:\"'nobaselayer'\"}],staticClass:\"baseselayer-text text-center g3w-long-text\"})])],2)]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.state.layerstrees),function(tree){return ('tab' === _vm.state.legend.place)?_c('div',{key:tree.id,staticClass:\"tab-pane\",class:{ active: 'legend' === _vm.activeTab },attrs:{\"role\":\"tabpanel\",\"id\":\"legend\"}},_vm._l((tree.tree),function(t){return _c('div',{staticClass:\"legend-item\"},_vm._l((t.legendurls),function(url){return _c('figure',[_c('bar-loader',{attrs:{\"loading\":url.loading}}),_vm._v(\" \"),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!url.loading && !url.error),expression:\"!url.loading && !url.error\"}],attrs:{\"src\":url.url,\"alt\":\"\"},on:{\"error\":function($event){return _vm.onLegendError(url)},\"load\":function($event){return _vm.onLegendLoad(url)}}}),_vm._v(\" \"),_c('divider')],1)}),0)}),0):_vm._e()})],2)]),_vm._v(\" \"),_c('catalog-layer-context-menu',{attrs:{\"external\":_vm.state.external}}),_vm._v(\" \"),_c('catalog-project-context-menu')],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-f931b03a\"\n\n},{\"app/eventbus\":45,\"components/CatalogChangeMapThemes.vue\":121,\"components/CatalogLayerContextMenu.vue\":122,\"components/CatalogProjectContextMenu.vue\":124,\"components/CatalogTristateTree.vue\":125,\"services/application\":282,\"services/gui\":286,\"store/catalog-layers\":295,\"store/map-controls\":298,\"store/projects\":301,\"vueify/lib/insert-css\":2}],121:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#g3w-catalog-toc-views[data-v-06d0cd43]{margin-bottom:5px;border-bottom:2px solid}.g3w-map-theme-anchor[data-v-06d0cd43]{padding:0;margin-bottom:5px}.g3w-map-theme-anchor>section[data-v-06d0cd43]{display:flex;flex-wrap:wrap;align-items:center;padding:5px}.add-map-theme[data-v-06d0cd43]{border-top:2px solid;margin:5px 0}.add-map-theme-input[data-v-06d0cd43]{width:100%}#g3w-catalog-views[data-v-06d0cd43]{display:none}#g3w-catalog-views.menu-open[data-v-06d0cd43]{display:block}.current_map_theme[data-v-06d0cd43]{overflow:hidden;white-space:normal;text-overflow:ellipsis}.choose_map_theme[data-v-06d0cd43]{color:#ccc!important;font-weight:700}.project_map_theme[data-v-06d0cd43]{font-weight:700;padding:3px;border-bottom:1px solid #fff}.user_map_theme[data-v-06d0cd43]{font-weight:700;padding:5px 3px;display:flex;justify-content:space-between;align-self:baseline;border-bottom:1px solid #fff}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _projects = require(\"store/projects\");\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _InputText = require(\"./InputText.vue\");\n\nvar _InputText2 = _interopRequireDefault(_InputText);\n\nvar _gui = require(\"services/gui\");\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _applicationState = require(\"store/application-state\");\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar LAYERSTREES_ATTRIBUTES = {\n node: ['id', 'name', 'visible', 'expanded'],\n group: ['name', 'checked', 'expanded', 'mutually-exclusive']\n};\n\nexports.default = {\n\n name: \"changemapthemes\",\n\n components: {\n InputText: _InputText2.default\n },\n\n props: {\n\n map_themes: {\n type: Object,\n default: { project: [], custom: [] }\n },\n\n layerstrees: {\n type: Array\n }\n\n },\n\n data: function data() {\n var theme = Object.values(this.map_themes).flat().find(function (mt) {\n return mt.default;\n });\n return {\n active_theme: theme && theme.theme || null,\n collapsed: 'collapsed' === _projects2.default.getCurrentProject().state.toc_themes_init_status,\n\n custom_theme: {\n name: 'add-user-theme',\n label: 'sdk.catalog.choose_map_theme_input_label',\n i18nLabel: true,\n value: null,\n editable: true,\n type: 'varchar',\n input: { type: 'text', options: {} },\n visible: true,\n\n validate: {\n valid: false,\n required: true,\n error: 'sdk.catalog.invalid_map_theme_name'\n }\n },\n\n show_form: false\n };\n },\n\n\n methods: {\n _getMapThemeParams: function _getMapThemeParams() {\n var params = { layerstree: [], styles: {} };\n var treeItem = function treeItem(type, node) {\n return LAYERSTREES_ATTRIBUTES[type].reduce(function (acc, attr) {\n acc[attr] = node[attr];return acc;\n }, {});\n };\n var traverse = function traverse(nodes, tree) {\n nodes.forEach(function (node) {\n if (undefined !== node.id) {\n params.styles[node.id] = node.styles.find(function (s) {\n return s.current;\n }).name;\n tree.push(treeItem('node', node));\n }\n\n if (Array.isArray(node.nodes)) {\n var group = treeItem('group', node);\n group.nodes = [];\n tree.push(group);\n traverse(node.nodes, group.nodes);\n }\n });\n };\n\n traverse(this.layerstrees[0].tree[0].nodes, params.layerstree);\n\n return params;\n },\n saveTheme: function () {\n var _ref = _asyncToGenerator(function* () {\n try {\n var params = this._getMapThemeParams();\n var saved = yield _projects2.default.getCurrentProject().saveMapTheme(this.custom_theme.value, params);\n if (saved.result) {\n this.map_themes.custom.push({ theme: this.custom_theme.value, styles: params.styles });\n\n _gui2.default.showUserMessage({ type: 'success', message: 'sdk.catalog.saved_map_theme', autoclose: true });\n\n this.show_form = false;\n\n this.active_theme = this.custom_theme.value;\n\n yield this.$nextTick();\n\n this.custom_theme.value = null;\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n function saveTheme() {\n return _ref.apply(this, arguments);\n }\n\n return saveTheme;\n }(),\n updateTheme: function () {\n var _ref2 = _asyncToGenerator(function* (theme) {\n try {\n var params = this._getMapThemeParams();\n yield _projects2.default.getCurrentProject().saveMapTheme(theme, params);\n\n var c_theme = this.map_themes.custom.find(function (mt) {\n return theme === mt.theme;\n });\n c_theme.styles = params.styles;\n c_theme.layerstree = params.layerstree;\n\n _gui2.default.showUserMessage({ type: 'success', message: 'sdk.catalog.updated_map_theme', autoclose: true });\n } catch (e) {\n console.warn(e);\n }\n });\n\n function updateTheme(_x) {\n return _ref2.apply(this, arguments);\n }\n\n return updateTheme;\n }(),\n deleteTheme: function deleteTheme(theme) {\n var _this = this;\n\n _gui2.default.dialog.confirm(t('sdk.catalog.question_delete_map_theme'), function () {\n var _ref3 = _asyncToGenerator(function* (bool) {\n if (!bool) {\n return;\n }\n try {\n var deleted = yield _projects2.default.getCurrentProject().deleteMapTheme(theme);\n if (deleted.result) {\n _this.map_themes.custom = _this.map_themes.custom.filter(function (_ref4) {\n var t = _ref4.theme;\n return t !== theme;\n });\n\n _gui2.default.showUserMessage({ type: 'success', message: 'sdk.catalog.delete_map_theme', autoclose: true });\n\n if (theme === _this.active_theme) {\n _this.active_theme = null;\n }\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n },\n\n watch: {\n\n 'active_theme': {\n immediate: false,\n handler: function handler(map_theme) {\n if (null === map_theme || map_theme === this.custom_theme.value) {\n return;\n }\n this.$emit('change-map-theme', map_theme);\n }\n },\n\n 'custom_theme.value': function custom_themeValue(name) {\n var _this2 = this;\n\n setTimeout(function () {\n _this2.custom_theme.validate.valid = name ? !_this2.map_themes.custom.find(function (_ref5) {\n var theme = _ref5.theme;\n return theme === name.trim();\n }) : false;\n }, 200);\n },\n show_form: function () {\n var _ref6 = _asyncToGenerator(function* (bool) {\n this.custom_theme.value = null;\n\n if (bool) {\n yield this.$nextTick();\n Array.from(this.$refs.add_map_theme_input.$el.children).forEach(function (child) {\n return child.classList.remove('col-sm-12');\n });\n }\n });\n\n function show_form(_x3) {\n return _ref6.apply(this, arguments);\n }\n\n return show_form;\n }()\n },\n\n created: function created() {\n this.logged = undefined !== _applicationState2.default.user.id;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"sidebar-menu\"},[_c('li',{staticClass:\"treeview sidebaritem skin-border-color\",attrs:{\"id\":\"g3w-catalog-toc-views\"}},[_c('a',{staticClass:\"g3w-map-theme-anchor\",attrs:{\"href\":\"#\"}},[_c('section',[_c('i',{class:_vm.g3wtemplate.getFontClass('caret-down'),staticStyle:{\"padding\":\"3px\"}}),_vm._v(\" \"),_c('i',{class:_vm.g3wtemplate.getFontClass('eye'),staticStyle:{\"padding\":\"0 0 0 4px\"}}),_vm._v(\" \"),(_vm.active_theme)?_c('span',{staticClass:\"current_map_theme treeview-label g3w-long-text\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t:pre\",value:('sdk.catalog.current_map_theme_prefix'),expression:\"'sdk.catalog.current_map_theme_prefix'\",arg:\"pre\"}],staticStyle:{\"color\":\"#ccc !important\"}},[_vm._v(\":\")]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\",staticStyle:{\"font-size\":\"1.1em\"}},[_vm._v(_vm._s(_vm.active_theme))])]):_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.choose_map_theme'),expression:\"'sdk.catalog.choose_map_theme'\"}],staticClass:\"choose_map_theme treeview-label\"})])]),_vm._v(\" \"),(_vm.show_form)?_c('div',{staticClass:\"add-map-theme skin-border-color\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"end\",\"padding-top\":\"5px\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('close'),expression:\"'close'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"sidebar-button sidebar-button-icon\",class:_vm.g3wtemplate.getFontClass('close'),staticStyle:{\"padding\":\"2px\",\"margin\":\"2px\"},on:{\"click\":function($event){$event.stopPropagation();_vm.show_form = false}}})]),_vm._v(\" \"),_c('div',{staticClass:\"container add-map-theme-input\"},[_c('input-text',{ref:\"add_map_theme_input\",attrs:{\"state\":_vm.custom_theme}})],1),_vm._v(\" \"),_c('div',{staticStyle:{\"margin-top\":\"5px\"}},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('add'),expression:\"'add'\"},{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.custom_theme.validate.valid),expression:\"!custom_theme.validate.valid\"}],staticClass:\"sidebar-button-run btn btn-block\",on:{\"click\":function($event){$event.stopPropagation();return _vm.saveTheme($event)}}})])]):_c('ul',{staticClass:\"treeview-menu\",class:{'menu-open': !_vm.collapsed},attrs:{\"id\":\"g3w-catalog-views\"}},[((_vm.map_themes.project || []).length > 0)?_c('li',{attrs:{\"id\":\"g3w-catalog-views-project\"}},[_c('ul',{staticStyle:{\"padding\":\"0\"}},[_c('li',[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.project_map_theme'),expression:\"'sdk.catalog.project_map_theme'\"}],staticClass:\"project_map_theme\"})]),_vm._v(\" \"),_c('li',{staticStyle:{\"padding\":\"5px 5px 5px 17px\"}},_vm._l((_vm.map_themes.project),function(map_theme,i){return _c('div',{key:map_theme.theme},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.active_theme),expression:\"active_theme\"}],staticClass:\"magic-radio\",attrs:{\"type\":\"radio\",\"name\":\"radio\",\"id\":(\"g3w-map_theme-\" + i)},domProps:{\"value\":map_theme.theme,\"checked\":map_theme.default,\"checked\":_vm._q(_vm.active_theme,map_theme.theme)},on:{\"change\":function($event){_vm.active_theme=map_theme.theme}}}),_vm._v(\" \"),_c('label',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"},attrs:{\"for\":(\"g3w-map_theme-\" + i)}},[_c('span',{staticClass:\"g3w-long-text\"},[_vm._v(_vm._s(map_theme.theme))])])])}),0)])]):_vm._e(),_vm._v(\" \"),(_vm.logged)?_c('li',{attrs:{\"id\":\"g3w-catalog-views-user\"}},[_c('ul',{staticStyle:{\"padding\":\"0\"}},[_c('li',[_c('div',{staticClass:\"user_map_theme\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.user_map_theme'),expression:\"'sdk.catalog.user_map_theme'\"}]}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('add'),expression:\"'add'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action sidebar-button sidebar-button-icon\",class:_vm.g3wtemplate.getFontClass('plus'),staticStyle:{\"margin-left\":\"auto\",\"padding\":\"5px\"},on:{\"click\":function($event){$event.stopPropagation();_vm.show_form = !_vm.show_form}}})])]),_vm._v(\" \"),_c('li',{staticStyle:{\"padding\":\"5px 5px 5px 17px\"}},_vm._l((_vm.map_themes.custom),function(map_theme,i){return _c('div',{key:map_theme.theme,staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.active_theme),expression:\"active_theme\"}],staticClass:\"magic-radio\",attrs:{\"type\":\"radio\",\"name\":\"radio\",\"id\":(\"g3w-map_theme-\" + i + \"-user\")},domProps:{\"value\":map_theme.theme,\"checked\":map_theme.default,\"checked\":_vm._q(_vm.active_theme,map_theme.theme)},on:{\"change\":function($event){_vm.active_theme=map_theme.theme}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"g3w-map_theme-\" + i + \"-user\")}},[_c('span',{staticClass:\"g3w-long-text\"},[_vm._v(_vm._s(map_theme.theme))])])]),_vm._v(\" \"),_c('span',{staticClass:\"g3w-custom-map-theme-tools\"},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('update'),expression:\"'update'\",arg:\"top\",modifiers:{\"create\":true}},{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.active_theme !== map_theme.theme),expression:\"active_theme !== map_theme.theme\"}],staticClass:\"action sidebar-button sidebar-button-icon\",staticStyle:{\"padding\":\"5px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTheme(map_theme.theme)}}},[_c('i',{staticClass:\"skin-color\",class:_vm.g3wtemplate.getFontClass('save')})]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('cancel'),expression:\"'cancel'\",arg:\"top\",modifiers:{\"create\":true}}],staticClass:\"action sidebar-button sidebar-button-icon\",staticStyle:{\"padding\":\"5px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteTheme(map_theme.theme)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('trash'),staticStyle:{\"color\":\"red\"}})])])])}),0)])]):_vm._e()])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-06d0cd43\"\n\n},{\"./InputText.vue\":171,\"core/i18n/i18n.service\":12,\"services/gui\":286,\"store/application-state\":294,\"store/projects\":301,\"vueify/lib/insert-css\":2}],122:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"li .item-text[data-v-7828b5c0]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _vueColor = require('vue-color');\n\nvar _LayerOpacityPicker = require('components/LayerOpacityPicker.vue');\n\nvar _LayerOpacityPicker2 = _interopRequireDefault(_LayerOpacityPicker);\n\nvar _eventbus = require('app/eventbus');\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _downloadFile = require('utils/downloadFile');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar shpwrite = require('shp-write');\n\nvar OFFSETMENU = { top: 50, left: 15 };\n\nexports.default = {\n name: 'catalog-layer-context-menu',\n\n props: {\n external: {\n type: Object\n }\n },\n\n data: function data() {\n return {\n layerMenu: {\n show: false,\n top: 0,\n left: 0,\n tooltip: false,\n name: '',\n layer: null,\n loading: {\n shp: false,\n csv: false,\n gpx: false,\n gpkg: false,\n xls: false\n },\n\n colorMenu: {\n show: false,\n top: 0,\n left: 0,\n color: null\n },\n\n stylesMenu: {\n show: false,\n top: 0,\n left: 0,\n style: null,\n default: null\n },\n\n filtersMenu: {\n show: false,\n top: 0,\n left: 0,\n style: null,\n default: null\n },\n\n metadatainfoMenu: {\n show: false,\n top: 0,\n left: 0\n }\n }\n };\n },\n\n\n computed: {\n layers_url: function layers_url() {\n return _application2.default.getCurrentProject().getState().layers_url;\n }\n },\n\n components: {\n 'chrome-picker': _vueColor.Chrome,\n 'layer-opacity-picker': _LayerOpacityPicker2.default\n },\n\n methods: {\n addLayerMenuItem: function addLayerMenuItem() {\n var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.layerMenu = _extends({}, this.layerMenu, item);\n },\n _hideMenu: function _hideMenu() {\n this.layerMenu.show = false;\n this.layerMenu.styles = false;\n this.layerMenu.loading.shp = false;\n this.layerMenu.loading.csv = false;\n this.layerMenu.loading.gpx = false;\n this.layerMenu.loading.gpkg = false;\n this.layerMenu.loading.xls = false;\n this.layerMenu.loading.geotiff = false;\n\n this.layerMenu.loading.unknow = false;\n },\n closeLayerMenu: function closeLayerMenu() {\n var menu = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._hideMenu();\n this.showColorMenu(false);\n menu.show = false;\n },\n onbeforeDestroyChangeColor: function onbeforeDestroyChangeColor() {\n this.$refs.color_picker.$off();\n },\n onChangeColor: function onChangeColor(val) {\n var mapService = _gui2.default.getService('map');\n this.layerMenu.layer.color = val;\n var layer = mapService.getLayerByName(this.layerMenu.name);\n var style = layer.getStyle();\n style._g3w_options.color = val;\n\n layer.setStyle(style);\n },\n canShowWmsUrl: function canShowWmsUrl(layerId) {\n var originalLayer = _catalogLayers2.default.getLayerById(layerId);\n return originalLayer ? !!(!originalLayer.isType('table') && originalLayer.getFullWmsUrl()) : false;\n },\n canShowWfsUrl: function canShowWfsUrl(layerId) {\n var originalLayer = _catalogLayers2.default.getLayerById(layerId);\n return originalLayer && !originalLayer.isType('table') && originalLayer.isWfsActive();\n },\n canDownloadXls: function canDownloadXls(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isXlsDownlodable() : false;\n },\n canDownloadGpx: function canDownloadGpx(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isGpxDownlodable() : false;\n },\n canDownloadGpkg: function canDownloadGpkg(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isGpkgDownlodable() : false;\n },\n canDownloadCsv: function canDownloadCsv(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isCsvDownlodable() : false;\n },\n canDownloadGeoTIFF: function canDownloadGeoTIFF(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isGeoTIFFDownlodable() : false;\n },\n canDownloadShp: function canDownloadShp(layerId) {\n var layer = _catalogLayers2.default.getLayerById(layerId);\n return layer ? layer.isShpDownlodable() : false;\n },\n getWmsUrl: function getWmsUrl(layerId) {\n return _catalogLayers2.default.getLayerById(layerId).getCatalogWmsUrl();\n },\n getWfsUrl: function getWfsUrl(layerId) {\n return _catalogLayers2.default.getLayerById(layerId).getCatalogWfsUrl();\n },\n getWfs3Url: function getWfs3Url(layerId) {\n return _catalogLayers2.default.getLayerById(layerId).getCatalogWfs3Url();\n },\n copyUrl: function copyUrl() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n evt = _ref.evt,\n layerId = _ref.layerId,\n type = _ref.type;\n\n var url = this['get' + type + 'Url'](layerId);\n var ancorEement = document.createElement('a');\n ancorEement.href = url;\n var tempInput = document.createElement('input');\n tempInput.value = ancorEement.href;\n document.body.appendChild(tempInput);\n tempInput.select();\n document.execCommand(\"copy\");\n $(evt.target).attr('data-original-title', t('sdk.catalog.menu.wms.copied')).tooltip('show');\n $(evt.target).attr('title', this.copywmsurltooltip).tooltip('fixTitle');\n document.body.removeChild(tempInput);\n ancorEement = null;\n setTimeout(function () {\n $('[data-toggle=\"tooltip\"]').tooltip(\"destroy\");\n _this._hideMenu();\n }, 600);\n },\n downloadGeoTIFF: function downloadGeoTIFF(layerId) {\n var _this2 = this;\n\n var map_extent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.geotiff = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getGeoTIFF({\n data: map_extent ? {\n map_extent: _gui2.default.getService('map').getMapExtent().toString()\n } : undefined\n }).catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this2.layerMenu.loading.geotiff = false;\n _application2.default.setDownload(false, caller_download_id);\n _this2._hideMenu();\n });\n },\n downloadShp: function downloadShp(layerId) {\n var _this3 = this;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.shp = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getShp().catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this3.layerMenu.loading.shp = false;\n _application2.default.setDownload(false, caller_download_id);\n _this3._hideMenu();\n });\n },\n downloadCsv: function downloadCsv(layerId) {\n var _this4 = this;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.csv = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getCsv().catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this4.layerMenu.loading.csv = false;\n _application2.default.setDownload(false, caller_download_id);\n _this4._hideMenu();\n });\n },\n downloadXls: function downloadXls(layerId) {\n var _this5 = this;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.xls = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getXls().catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this5.layerMenu.loading.xls = false;\n _application2.default.setDownload(false, caller_download_id);\n _this5._hideMenu();\n });\n },\n downloadGpx: function downloadGpx(layerId) {\n var _this6 = this;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.gpx = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getGpx().catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this6.layerMenu.loading.gpx = false;\n _application2.default.setDownload(false, caller_download_id);\n _this6._hideMenu();\n });\n },\n downloadGpkg: function downloadGpkg(layerId) {\n var _this7 = this;\n\n var caller_download_id = _application2.default.setDownload(true);\n this.layerMenu.loading.gpkg = true;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n layer.getGpkg().catch(function (err) {\n return _gui2.default.notify.error(t(\"info.server_error\"));\n }).finally(function () {\n _this7.layerMenu.loading.gpkg = false;\n _application2.default.setDownload(false, caller_download_id);\n _this7._hideMenu();\n });\n },\n changeLayerMapPosition: function changeLayerMapPosition(_ref2) {\n var position = _ref2.position,\n layer = _ref2.layer;\n\n var changed = layer.position !== position;\n if (changed) {\n layer.position = position;\n _gui2.default.getService('map').changeLayerMapPosition({ id: layer.id, position: position });\n this._hideMenu();\n }\n },\n setWMSOpacity: function setWMSOpacity(_ref3) {\n var _ref3$id = _ref3.id,\n id = _ref3$id === undefined ? this.layerMenu.layer.id : _ref3$id,\n opacity = _ref3.value;\n\n this.layerMenu.layer.opacity = opacity;\n _gui2.default.getService('map').changeLayerOpacity({ id: id, opacity: opacity });\n },\n zoomToLayer: function zoomToLayer(layer) {\n _gui2.default.getService('map').goToBBox([layer.bbox.minx, layer.bbox.miny, layer.bbox.maxx, layer.bbox.maxy], layer.epsg);\n this._hideMenu();\n },\n canZoom: function canZoom(layer) {\n return layer.bbox && [layer.bbox.minx, layer.bbox.miny, layer.bbox.maxx, layer.bbox.maxy].find(function (coordinate) {\n return coordinate > 0;\n });\n },\n getGeometryType: function getGeometryType(layerId) {\n var external = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var geometryType = void 0;\n if (external) {\n var layer = this.external.vector.find(function (layer) {\n return layer.id === layerId;\n });\n if (layer) geometryType = layer.geometryType;\n } else {\n var originalLayer = _catalogLayers2.default.getLayerById(layerId);\n geometryType = originalLayer.config.geometrytype;\n }\n geometryType = geometryType && geometryType !== 'NoGeometry' ? geometryType : '';\n return geometryType;\n },\n downloadExternal: function downloadExternal(url) {\n this.layerMenu.loading.unknow = true;\n (0, _downloadFile.downloadFile)({ url: url });\n this.layerMenu.loading.unknow = false;\n },\n downloadExternalShapefile: function () {\n var _ref4 = _asyncToGenerator(function* (layer) {\n var EPSG4326 = 'EPSG:4326';\n this.layerMenu.loading.shp = true;\n var features = _gui2.default.getService('map').getLayerByName(layer.name).getSource().getFeatures();\n if (EPSG4326 !== layer.crs) {\n features = features.map(function (feature) {\n var clonefeature = feature.clone();\n clonefeature.getGeometry().transform(layer.crs, EPSG4326);\n return clonefeature;\n });\n }\n var name = layer.name.split('.' + layer.type)[0];\n shpwrite.download(new ol.format.GeoJSON().writeFeaturesObject(features, { featureProjection: EPSG4326 }), {\n folder: name,\n types: {\n point: name,\n mulipoint: name,\n polygon: name,\n multipolygon: name,\n line: name,\n polyline: name,\n multiline: name\n }\n });\n yield this.$nextTick();\n this.layerMenu.loading.shp = false;\n this._hideMenu();\n });\n\n function downloadExternalShapefile(_x6) {\n return _ref4.apply(this, arguments);\n }\n\n return downloadExternalShapefile;\n }(),\n showAttributeTable: function showAttributeTable(layerId) {\n _catalogLayers2.default.getLayerById(layerId).openAttributeTable();\n this._hideMenu();\n },\n startEditing: function startEditing() {\n var _this8 = this;\n\n var layer = void 0;\n _catalogLayers2.default.getLayersStores().forEach(function (layerStore) {\n layer = layerStore.getLayerById(_this8.layerMenu.layer.id);\n if (layer) {\n layer.getLayerForEditing();\n return false;\n }\n });\n },\n setCurrentLayerStyle: function setCurrentLayerStyle(index) {\n var _this9 = this;\n\n var changed = false;\n this.layerMenu.layer.styles.forEach(function (style, idx) {\n if (idx === index) {\n _this9.layerMenu.stylesMenu.style = style.name;\n changed = !style.current;\n style.current = true;\n } else {\n style.current = false;\n }\n });\n if (changed) {\n var layerId = this.layerMenu.layer.id;\n var layer = _catalogLayers2.default.getLayerById(layerId);\n if (layer) {\n _eventbus.CatalogEventBus.$emit('layer-change-style', {\n layerId: layerId,\n style: this.layerMenu.stylesMenu.style\n });\n layer.change();\n }\n }\n this.closeLayerMenu(this.layerMenu.stylesMenu);\n },\n setCurrentLayerFilter: function () {\n var _ref5 = _asyncToGenerator(function* (filter) {\n var changed = null === this.layerMenu.layer.filter.current || this.layerMenu.layer.filter.current.fid !== filter.fid;\n var layer = _catalogLayers2.default.getLayerById(this.layerMenu.layer.id);\n if (changed) {\n yield layer.applyFilter(filter);\n } else {\n yield layer.deleteFilterToken();\n }\n layer.change();\n this.closeLayerMenu(this.layerMenu.filtersMenu);\n });\n\n function setCurrentLayerFilter(_x7) {\n return _ref5.apply(this, arguments);\n }\n\n return setCurrentLayerFilter;\n }(),\n deleteFilter: function () {\n var _ref6 = _asyncToGenerator(function* (fid) {\n var layer = _catalogLayers2.default.getLayerById(this.layerMenu.layer.id);\n var change = fid === this.layerMenu.layer.fid;\n\n if (!layer) {\n return;\n }\n yield layer.deleteFilterToken(fid);\n if (change) {\n layer.change();\n }\n\n this.closeLayerMenu(this.layerMenu.filtersMenu);\n });\n\n function deleteFilter(_x8) {\n return _ref6.apply(this, arguments);\n }\n\n return deleteFilter;\n }(),\n showSubMenuContext: function () {\n var _ref8 = _asyncToGenerator(function* (_ref7) {\n var menu = _ref7.menu,\n bool = _ref7.bool,\n evt = _ref7.evt;\n\n if ('string' === typeof menu) {\n menu = this.layerMenu[menu];\n }\n\n if (bool) {\n var elem = $(evt.target);\n menu.top = elem.offset().top;\n menu.left = elem.offset().left + elem.width() + (elem.outerWidth() - elem.width()) / 2 + OFFSETMENU.left;\n var contextmenu = $(this.$refs['layer-menu']);\n var menuentry = $(evt.target);\n var submenu = menuentry.children('ul');\n var height = submenu.height();\n var maxH = contextmenu.height();\n menu.maxHeight = height >= maxH ? maxH : null;\n menu.overflowY = height >= maxH ? 'scroll' : null;\n menu.top = (height >= maxH ? contextmenu : menuentry).offset().top;\n menu.left = this.isMobile() ? 0 : menuentry.offset().left + menuentry.width() + (menuentry.outerWidth() - menuentry.width()) / 2 + OFFSETMENU.left;\n yield this.$nextTick();\n }\n menu.show = bool;\n });\n\n function showSubMenuContext(_x9) {\n return _ref8.apply(this, arguments);\n }\n\n return showSubMenuContext;\n }(),\n showStylesMenu: function () {\n var _ref9 = _asyncToGenerator(function* (bool, evt) {\n this.showSubMenuContext({ bool: bool, evt: evt, menu: this.layerMenu.stylesMenu });\n });\n\n function showStylesMenu(_x10, _x11) {\n return _ref9.apply(this, arguments);\n }\n\n return showStylesMenu;\n }(),\n showMetadataInfo: function () {\n var _ref10 = _asyncToGenerator(function* (bool, evt) {\n if (bool) {\n var elem = $(evt.target);\n this.layerMenu.metadatainfoMenu.top = elem.offset().top;\n this.layerMenu.metadatainfoMenu.left = elem.offset().left + elem.width() + (elem.outerWidth() - elem.width()) / 2 + OFFSETMENU.left;\n yield this.$nextTick();\n }\n this.layerMenu.metadatainfoMenu.show = bool;\n });\n\n function showMetadataInfo(_x12, _x13) {\n return _ref10.apply(this, arguments);\n }\n\n return showMetadataInfo;\n }(),\n showColorMenu: function showColorMenu(bool, evt) {\n if (bool) {\n var elem = $(evt.target);\n var contextmenu = $(this.$refs['layer-menu']);\n this.layerMenu.colorMenu.top = contextmenu.offset().top;\n this.layerMenu.colorMenu.left = elem.offset().left + elem.width() + (elem.outerWidth() - elem.width()) / 2 - OFFSETMENU.left;\n }\n this.layerMenu.colorMenu.show = bool;\n },\n onShowLayerContextMenu: function () {\n var _ref11 = _asyncToGenerator(function* (layerstree, evt) {\n this._hideMenu();\n yield this.$nextTick();\n this.layerMenu.left = evt.x;\n this.layerMenu.name = layerstree.name;\n this.layerMenu.layer = layerstree;\n this.layerMenu.show = true;\n this.layerMenu.colorMenu.color = layerstree.color;\n\n yield this.$nextTick();\n this.layerMenu.top = $(evt.target).offset().top - $(this.$refs['layer-menu']).height() + $(evt.target).height() / 2;\n $('.catalog-menu-wms[data-toggle=\"tooltip\"]').tooltip();\n });\n\n function onShowLayerContextMenu(_x14, _x15) {\n return _ref11.apply(this, arguments);\n }\n\n return onShowLayerContextMenu;\n }(),\n canOpenAttributeTable: function canOpenAttributeTable(layer) {\n return layer.openattributetable;\n },\n isExternalLayer: function isExternalLayer(layer) {\n return !layer.projectLayer;\n },\n getStyleName: function getStyleName(style) {\n return style.name + (style.name === this.layerMenu.layer.defaultstyle && this.layerMenu.layer.styles.length > 1 ? ' (' + t('default') + ')' : '');\n },\n isExternalWMSLayer: function isExternalWMSLayer(layer) {\n return !layer.projectLayer && 'wms' === layer._type;\n },\n isExternalVectorLayer: function isExternalVectorLayer(layer) {\n return !layer.projectLayer && 'wms' !== layer._type;\n },\n canShowStylesMenu: function canShowStylesMenu(layer) {\n return layer.geolayer && layer.styles && layer.styles.length > 1;\n },\n canShowFiltersMenu: function canShowFiltersMenu(layer) {\n return layer.filters && layer.filters.length > 0;\n },\n hasMetadataInfo: function hasMetadataInfo(layer) {\n return layer.metadata && layer.metadata.abstract;\n },\n canShowOpacityPicker: function canShowOpacityPicker(layer) {\n return layer.geolayer && layer.visible;\n }\n },\n\n created: function created() {\n _eventbus.CatalogEventBus.$on('show-layer-context-menu', this.onShowLayerContextMenu);\n _eventbus.CatalogEventBus.$on('hide-layer-context-menu', this._hideMenu);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.layerMenu.show)?_c('ul',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeLayerMenu),expression:\"closeLayerMenu\"}],ref:\"layer-menu\",staticClass:\"catalog-context-menu\",style:({\n top: _vm.layerMenu.top + 'px',\n left: _vm.layerMenu.left + 'px',\n }),attrs:{\"id\":\"layer-context-menu\",\"tabindex\":\"-1\"}},[_c('li',{staticClass:\"title\"},[_c('div',[_vm._v(_vm._s(_vm.layerMenu.layer.title))]),_vm._v(\" \"),_c('div',{staticStyle:{\"font-weight\":\"normal\",\"font-size\":\"0.8em\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getGeometryType(_vm.layerMenu.layer.id, _vm.layerMenu.layer.external))+\"\\n \")])]),_vm._v(\" \"),(_vm.isExternalLayer(_vm.layerMenu.layer))?_c('li',[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\"}},[_c('layerspositions',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"space-between\"},attrs:{\"position\":_vm.layerMenu.layer.position},on:{\"layer-position-change\":function($event){return _vm.changeLayerMapPosition({position:$event, layer: _vm.layerMenu.layer})}}})],1)]):_vm._e(),_vm._v(\" \"),(_vm.hasMetadataInfo(_vm.layerMenu.layer))?_c('li',{on:{\"mouseleave\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showMetadataInfo(false)},\"mouseover\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showMetadataInfo(true, $event)}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('info')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('Metadata'),expression:\"'Metadata'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.layerMenu.metadatainfoMenu.show),expression:\"layerMenu.metadatainfoMenu.show\"}],staticStyle:{\"position\":\"fixed\",\"background-color\":\"#FFFFFF\",\"color\":\"#000000\",\"padding-left\":\"0\",\"border-radius\":\"0 3px 3px 0\"},style:({\n top: _vm.layerMenu.metadatainfoMenu.top + 'px',\n left: (_vm.layerMenu.metadatainfoMenu.left + 1) + 'px',\n })},[_c('div',{staticClass:\"layer-menu-metadata-info\",staticStyle:{\"padding\":\"5px\"},domProps:{\"innerHTML\":_vm._s(_vm.layerMenu.layer.metadata.abstract)}})])]):_vm._e(),_vm._v(\" \"),(_vm.canShowStylesMenu(_vm.layerMenu.layer))?_c('li',{staticClass:\"menu-icon\",on:{\"mouseleave\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showStylesMenu(false, $event)},\"mouseover\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showStylesMenu(true, $event)}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('palette')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.styles'),expression:\"'catalog_items.contextmenu.styles'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon\",class:_vm.g3wtemplate.getFontClass('arrow-right'),staticStyle:{\"position\":\"absolute\",\"right\":\"0\",\"margin-top\":\"3px\"}}),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.layerMenu.stylesMenu.show),expression:\"layerMenu.stylesMenu.show\"}],staticStyle:{\"position\":\"fixed\",\"padding-left\":\"0\",\"background-color\":\"#FFFFFF\",\"color\":\"#000000\"},style:({\n top: _vm.layerMenu.stylesMenu.top + 'px',\n left: _vm.layerMenu.stylesMenu.left + 'px',\n maxHeight: _vm.layerMenu.stylesMenu.maxHeight + 'px',\n overflowY: _vm.layerMenu.stylesMenu.overflowY,\n })},_vm._l((_vm.layerMenu.layer.styles),function(style,index){return _c('li',{key:style.name,on:{\"click\":function($event){$event.stopPropagation();return _vm.setCurrentLayerStyle(index)}}},[(style.current)?_c('span',{class:_vm.g3wtemplate.getFontClass('circle'),staticStyle:{\"font-size\":\"0.8em\"}}):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.getStyleName(style)))])])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.canShowOpacityPicker(_vm.layerMenu.layer))?_c('li',{staticClass:\"menu-icon\",staticStyle:{\"padding-right\":\"0\"}},[_c('layer-opacity-picker',{attrs:{\"layer\":_vm.layerMenu.layer},on:{\"init-menu-item\":_vm.addLayerMenuItem,\"show-menu-item\":_vm.showSubMenuContext}})],1):_vm._e(),_vm._v(\" \"),(_vm.canZoom(_vm.layerMenu.layer))?_c('li',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.zoomToLayer(_vm.layerMenu.layer)}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('search')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.zoomtolayer'),expression:\"'catalog_items.contextmenu.zoomtolayer'\"}],staticClass:\"item-text\"})]):_vm._e(),_vm._v(\" \"),(_vm.canOpenAttributeTable(_vm.layerMenu.layer))?_c('li',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.showAttributeTable(_vm.layerMenu.layer.id)}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('list')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.open_attribute_table'),expression:\"'catalog_items.contextmenu.open_attribute_table'\"}],staticClass:\"item-text\"})]):_vm._e(),_vm._v(\" \"),(_vm.isExternalVectorLayer(_vm.layerMenu.layer))?_c('li',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();},\"mouseleave\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showColorMenu(false,$event)},\"mouseover\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showColorMenu(true,$event)}}},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.vector_color_menu'),expression:\"'catalog_items.contextmenu.vector_color_menu'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('arrow-right'),staticStyle:{\"position\":\"absolute\",\"right\":\"0\",\"margin-top\":\"3px\"}}),_vm._v(\" \"),(_vm.layerMenu.colorMenu.show)?_c('ul',{staticStyle:{\"position\":\"fixed\"},style:({\n top: _vm.layerMenu.colorMenu.top + 'px',\n left: _vm.layerMenu.colorMenu.left + 'px',\n })},[_c('li',{staticStyle:{\"padding\":\"0\"}},[_c('chrome-picker',{ref:\"color_picker\",staticStyle:{\"width\":\"100%\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();},\"hook:beforeDestroy\":_vm.onbeforeDestroyChangeColor,\"input\":_vm.onChangeColor},model:{value:(_vm.layerMenu.colorMenu.color),callback:function ($$v) {_vm.$set(_vm.layerMenu.colorMenu, \"color\", $$v)},expression:\"layerMenu.colorMenu.color\"}})],1)]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.isExternalVectorLayer(_vm.layerMenu.layer) && _vm.layerMenu.layer.downloadUrl)?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}],on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('div',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadExternal(_vm.layerMenu.layer.downloadUrl)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.unknow}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('download')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.unknow'),expression:\"'sdk.catalog.menu.download.unknow'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.isExternalVectorLayer(_vm.layerMenu.layer) && !_vm.layerMenu.layer.downloadUrl)?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}],on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('div',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadExternalShapefile(_vm.layerMenu.layer)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.shp}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('shapefile')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.shp'),expression:\"'sdk.catalog.menu.download.shp'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.isExternalWMSLayer(_vm.layerMenu.layer))?_c('li',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.setwmsopacity'),expression:\"'sdk.catalog.menu.setwmsopacity'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('span',{staticStyle:{\"font-weight\":\"bold\",\"margin-left\":\"5px\"}},[_vm._v(_vm._s(_vm.layerMenu.layer.opacity))])]),_vm._v(\" \"),_c('range',{attrs:{\"value\":_vm.layerMenu.layer.opacity,\"min\":0,\"max\":1,\"step\":0.1,\"sync\":true},on:{\"changed\":_vm._hideMenu,\"change-range\":_vm.setWMSOpacity}})],1):_vm._e(),_vm._v(\" \"),(_vm.canDownloadGeoTIFF(_vm.layerMenu.layer.id))?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}]},[_c('div',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadGeoTIFF(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.geotiff}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('geotiff')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.geotiff'),expression:\"'sdk.catalog.menu.download.geotiff'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadGeoTIFF(_vm.layerMenu.layer.id))?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}]},[_c('div',{staticStyle:{\"position\":\"relative\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadGeoTIFF(_vm.layerMenu.layer.id, true)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.geotiff}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('geotiff'),staticStyle:{\"color\":\"#777\"}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('crop'),staticStyle:{\"position\":\"absolute\",\"left\":\"-7px\",\"bottom\":\"8px\",\"font-size\":\"1.2em\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.geotiff_map_extent'),expression:\"'sdk.catalog.menu.download.geotiff_map_extent'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadShp(_vm.layerMenu.layer.id))?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}]},[_c('div',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadShp(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.shp}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('shapefile')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.shp'),expression:\"'sdk.catalog.menu.download.shp'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadGpx(_vm.layerMenu.layer.id))?_c('li',[_c('div',{directives:[{name:\"download\",rawName:\"v-download\"}],on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadGpx(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.gpx}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('gpx')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.gpx'),expression:\"'sdk.catalog.menu.download.gpx'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadGpkg(_vm.layerMenu.layer.id))?_c('li',[_c('div',{directives:[{name:\"download\",rawName:\"v-download\"}],on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadGpkg(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.gpkg}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('gpkg')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.gpkg'),expression:\"'sdk.catalog.menu.download.gpkg'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadCsv(_vm.layerMenu.layer.id))?_c('li',[_c('div',{directives:[{name:\"download\",rawName:\"v-download\"}],on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadCsv(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.csv}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('csv')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.csv'),expression:\"'sdk.catalog.menu.download.csv'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canDownloadXls(_vm.layerMenu.layer.id))?_c('li',{directives:[{name:\"download\",rawName:\"v-download\"}]},[_c('div',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.downloadXls(_vm.layerMenu.layer.id)}}},[_c('bar-loader',{attrs:{\"loading\":_vm.layerMenu.loading.xls}}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('xls')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.catalog.menu.download.xls'),expression:\"'sdk.catalog.menu.download.xls'\"}],staticClass:\"item-text\"})],1)]):_vm._e(),_vm._v(\" \"),(_vm.canShowFiltersMenu(_vm.layerMenu.layer))?_c('li',{staticClass:\"menu-icon\",on:{\"mouseleave\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showSubMenuContext({ menu: 'filtersMenu', bool: false, evt: $event })},\"mouseover\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showSubMenuContext({ menu: 'filtersMenu', bool: true, evt: $event })}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('filter')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.filters'),expression:\"'catalog_items.contextmenu.filters'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon\",class:_vm.g3wtemplate.getFontClass('arrow-right'),staticStyle:{\"position\":\"absolute\",\"right\":\"0\",\"margin-top\":\"3px\"}}),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.layerMenu.filtersMenu.show),expression:\"layerMenu.filtersMenu.show\"}],staticStyle:{\"position\":\"fixed\",\"padding-left\":\"0\",\"background-color\":\"#FFFFFF\",\"color\":\"#000000\"},style:({\n top: _vm.layerMenu.filtersMenu.top + 'px',\n left: _vm.layerMenu.filtersMenu.left + 'px',\n maxHeight: _vm.layerMenu.filtersMenu.maxHeight + 'px',\n overflowY: _vm.layerMenu.filtersMenu.overflowY\n })},_vm._l((_vm.layerMenu.layer.filters),function(filter){return _c('li',{key:filter.fid,staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"baseline\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.setCurrentLayerFilter(filter)}}},[(_vm.layerMenu.layer.filter.current && _vm.layerMenu.layer.filter.current.fid === filter.fid)?_c('span',{class:_vm.g3wtemplate.getFontClass('circle'),staticStyle:{\"font-size\":\"0.5em\",\"margin-right\":\"3px\",\"justify-self\":\"flex-start\"}}):_vm._e(),_vm._v(\" \"),_c('span',{staticStyle:{\"margin-right\":\"5px\"}},[_vm._v(_vm._s(filter.name))]),_vm._v(\" \"),_c('span',{staticClass:\"skin-border-color\",class:_vm.g3wtemplate.getFontClass('trash'),staticStyle:{\"color\":\"red\",\"right\":\"0\",\"padding-left\":\"10px\",\"border-left\":\"2px solid\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteFilter(filter.fid)}}})])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.canShowWmsUrl(_vm.layerMenu.layer.id))?_c('li',[_c('div',{staticStyle:{\"display\":\"flex\",\"max-width\":\"300px\",\"align-items\":\"center\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copyUrl({evt: $event, layerId:_vm.layerMenu.layer.id, type:'Wms'})}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('map')}),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"inline-flex\",\"justify-content\":\"space-between\",\"width\":\"100%\",\"align-items\":\"baseline\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.catalog.menu.wms.copy'),expression:\"'sdk.catalog.menu.wms.copy'\"}],staticClass:\"item-text catalog-menu-wms skin-tooltip-top\",attrs:{\"data-toggle\":\"tooltip\",\"data-container\":\"body\"}},[_vm._v(\"WMS URL\")]),_vm._v(\" \"),_c('span',{staticClass:\"bold catalog-menu-wms wms-url-tooltip skin-tooltip-top skin-color-dark\",class:_vm.g3wtemplate.getFontClass('eye'),attrs:{\"data-placement\":\"top\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\",\"title\":_vm.getWmsUrl(_vm.layerMenu.layer.id)}})])])]):_vm._e(),_vm._v(\" \"),(_vm.canShowWfsUrl(_vm.layerMenu.layer.id))?_c('li',[_c('div',{staticStyle:{\"display\":\"flex\",\"max-width\":\"300px\",\"align-items\":\"center\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copyUrl({evt: $event, layerId:_vm.layerMenu.layer.id, type:'Wfs'})}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('map')}),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"inline-flex\",\"justify-content\":\"space-between\",\"width\":\"100%\",\"align-items\":\"baseline\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.catalog.menu.wms.copy'),expression:\"'sdk.catalog.menu.wms.copy'\"}],staticClass:\"item-text catalog-menu-wms skin-tooltip-top\",attrs:{\"data-toggle\":\"tooltip\",\"data-container\":\"body\"}},[_vm._v(\"WFS URL\")]),_vm._v(\" \"),_c('span',{staticClass:\"bold catalog-menu-wms wms-url-tooltip skin-tooltip-top skin-color-dark\",class:_vm.g3wtemplate.getFontClass('eye'),attrs:{\"data-placement\":\"top\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\",\"title\":_vm.getWfsUrl(_vm.layerMenu.layer.id)}})])])]):_vm._e(),_vm._v(\" \"),(_vm.canShowWfsUrl(_vm.layerMenu.layer.id))?_c('li',[_c('div',{staticStyle:{\"display\":\"flex\",\"max-width\":\"300px\",\"align-items\":\"center\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copyUrl({evt: $event, layerId:_vm.layerMenu.layer.id, type:'Wfs3'})}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('map')}),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"inline-flex\",\"justify-content\":\"space-between\",\"width\":\"100%\",\"align-items\":\"baseline\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.catalog.menu.wms.copy'),expression:\"'sdk.catalog.menu.wms.copy'\"}],staticClass:\"item-text catalog-menu-wms skin-tooltip-top\",attrs:{\"data-toggle\":\"tooltip\",\"data-container\":\"body\"}},[_vm._v(\"WFS 3 URL\")]),_vm._v(\" \"),_c('span',{staticClass:\"bold catalog-menu-wms wms-url-tooltip skin-tooltip-top skin-color-dark\",class:_vm.g3wtemplate.getFontClass('eye'),attrs:{\"data-placement\":\"top\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\",\"title\":_vm.getWfs3Url(_vm.layerMenu.layer.id)}})])])]):_vm._e(),_vm._v(\" \"),(_vm.layers_url)?_c('li',[_c('div',[_c('span',{staticClass:\"menu-icon skin-color-dark\"},[_c('svg',{staticStyle:{\"height\":\"14px\",\"vertical-align\":\"-1.5px\",\"fill\":\"currentColor\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xml:space\":\"preserve\",\"viewBox\":\"0 0 32 32\"}},[_c('path',{attrs:{\"d\":\"m17.61 17.63 4.36-.02-4-3.98h-4.36v4l4 4.45z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"m31.61 27.22-7.62-7.6-4.38.01v4.33l7.24 7.67h4.76z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M18 25.18c-.68.16-1.17.2-1.9.2a9.77 9.77 0 0 1-9.68-9.88c0-5.57 4.4-9.78 9.68-9.78s9.48 4.2 9.48 9.78c0 .91-.15 1.96-.36 2.8l4.88 4.65a15 15 0 0 0 1.95-7.48C32.05 6.87 25.19.44 16 .44 6.86.44 0 6.84 0 15.47c0 8.68 6.86 15.2 16 15.2 2.36 0 4.23-.3 6.2-1.1L18 25.18z\"}})])]),_vm._v(\" \"),_c('b',[_c('a',{staticStyle:{\"color\":\"initial\"},attrs:{\"href\":_vm.layers_url,\"target\":\"_blank\"}},[_vm._v(\"Layers settings\")])])])]):_vm._e()]):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-7828b5c0\"\n\n},{\"app/eventbus\":45,\"components/LayerOpacityPicker.vue\":175,\"core/i18n/i18n.service\":12,\"services/application\":282,\"services/gui\":286,\"shp-write\":\"shp-write\",\"store/catalog-layers\":295,\"utils/downloadFile\":350,\"vue-color\":\"vue-color\",\"vueify/lib/insert-css\":2}],123:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".layer-legend[data-v-fc3d03ea]{padding-left:36px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _eventbus = require('app/eventbus');\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _click = require('mixins/click');\n\nvar _click2 = _interopRequireDefault(_click);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: \"catalog-layer-legend\",\n props: {\n legendplace: {\n type: String\n },\n layer: {\n type: Object\n }\n },\n data: function data() {\n return {\n loading: false,\n\n categories: [],\n\n currentstyle: this.layer.styles.find(function (style) {\n return true === style.current;\n }).name\n\n };\n },\n\n mixins: [_click2.default],\n computed: {\n showfeaturecount: function showfeaturecount() {\n return undefined !== this.layer.featurecount;\n },\n externallegend: function externallegend() {\n return 'wms' === this.layer.source.type;\n },\n legend: function legend() {\n return this.layer.legend;\n },\n show: function show() {\n return this.layer.expanded && this.layer.visible && ('toc' === this.legendplace || 'tab' === this.legendplace && this.layer.categories);\n }\n },\n\n methods: {\n onCategoryClick: function onCategoryClick() {\n this.handleClick({\n '1': function _() {\n console.info('TODO: select category (single click)');\n },\n '2': function _() {\n console.info('TODO: zoom to category (double click)');\n }\n }, this);\n },\n showCategoryMenu: function showCategoryMenu() {\n this.$emit('showmenucategory');\n },\n getWmsSourceLayerLegendUrl: function getWmsSourceLayerLegendUrl() {\n return this.getProjectLayer().getLegendUrl({\n width: 16,\n height: 16\n });\n },\n getProjectLayer: function getProjectLayer() {\n return _catalogLayers2.default.getLayerById(this.layer.id);\n },\n isDisabled: function isDisabled(index) {\n return this.categories[index].disabled;\n },\n showHideLayerCategory: function showHideLayerCategory(index) {\n this.categories[index].checked = !this.categories[index].checked;\n this.getProjectLayer().change();\n if ('tab' === this.legendplace) {\n this.layer.legend.change = true;\n } else if (this.categories[index].checked && this.mapReady) {\n this.setLayerCategories(false);\n }\n },\n setError: function setError() {\n this.legend.error = true;\n this.legend.loading = false;\n },\n urlLoaded: function () {\n var _ref = _asyncToGenerator(function* () {\n this.legend.loading = false;\n });\n\n function urlLoaded() {\n return _ref.apply(this, arguments);\n }\n\n return urlLoaded;\n }(),\n onChangeLayerLegendStyle: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.loading = true;\n\n if (this.externallegend) {\n return;\n }\n\n try {\n if (undefined !== options.style && options.layerId === this.layer.id) {\n yield this.setLayerCategories(true);\n yield this.getProjectLayer().getStyleFeatureCount(options.style);\n this.currentstyle = options.style;\n if (this.dynamic) {\n yield this.setLayerCategories(false);\n }\n }\n } catch (e) {\n console.warn('Error while changing layer style', e);\n }\n\n this.loading = false;\n });\n\n function onChangeLayerLegendStyle() {\n return _ref2.apply(this, arguments);\n }\n\n return onChangeLayerLegendStyle;\n }(),\n setLayerCategories: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var all = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n try {\n var projectLayer = this.getProjectLayer();\n var categories = projectLayer.getCategories();\n\n if (all && categories) {\n this.categories = categories;\n } else {\n var _ref4 = yield projectLayer.getLegendGraphic({ all: all }),\n _ref4$nodes = _ref4.nodes,\n nodes = _ref4$nodes === undefined ? [] : _ref4$nodes;\n\n if (all) {\n this._setAllLayerCategories(nodes);\n } else {\n this._updateLayerCategories(nodes, categories);\n }\n }\n } catch (err) {\n this.setError();\n }\n });\n\n function setLayerCategories() {\n return _ref3.apply(this, arguments);\n }\n\n return setLayerCategories;\n }(),\n _setAllLayerCategories: function _setAllLayerCategories(nodes) {\n var projectLayer = this.getProjectLayer();\n\n var categories = [];\n nodes.forEach(function (_ref5) {\n var icon = _ref5.icon,\n title = _ref5.title,\n ruleKey = _ref5.ruleKey,\n checked = _ref5.checked,\n _ref5$symbols = _ref5.symbols,\n symbols = _ref5$symbols === undefined ? [] : _ref5$symbols;\n\n if (icon) {\n categories.push({ icon: icon, title: title, ruleKey: ruleKey, checked: checked, disabled: false });\n } else {\n symbols.forEach(function (symbol) {\n symbol._checked = symbol.checked;\n symbol.disabled = false;\n categories.push(symbol);\n });\n }\n });\n projectLayer.setCategories(categories);\n this.categories = categories;\n },\n _updateLayerCategories: function _updateLayerCategories(nodes, categories) {\n var projectLayer = this.getProjectLayer();\n\n projectLayer.setCategories(categories);\n this.categories = categories;\n\n if (nodes.length) {\n nodes.forEach(function (_ref6) {\n var icon = _ref6.icon,\n title = _ref6.title,\n _ref6$symbols = _ref6.symbols,\n symbols = _ref6$symbols === undefined ? [] : _ref6$symbols;\n\n if (icon) {\n symbols = [{ icon: icon, title: title }];\n }\n categories.forEach(function (category) {\n var findSymbol = symbols.find(function (symbol) {\n return symbol.icon === category.icon && symbol.title === category.title;\n });\n var disabled = undefined !== category.checked ? category.checked : true;\n category.disabled = disabled && undefined === findSymbol;\n });\n });\n } else {\n categories.forEach(function (category) {\n return category.disabled = undefined !== category.checked ? category.checked : true;\n });\n }\n },\n onChangeMapLegendParams: function () {\n var _ref7 = _asyncToGenerator(function* () {\n this.mapReady = true;\n if (this.layer.visible && false === this.externallegend && ('toc' === this.legendplace || this.layer.categories)) {\n this.setLayerCategories(false);\n }\n });\n\n function onChangeMapLegendParams() {\n return _ref7.apply(this, arguments);\n }\n\n return onChangeMapLegendParams;\n }(),\n runInitLayerVisibleAction: function () {\n var _ref8 = _asyncToGenerator(function* () {\n yield this.setLayerCategories(true);\n if (this.dynamic) {\n yield this.setLayerCategories(false);\n _gui2.default.getService('map').on('change-map-legend-params', this.onChangeMapLegendParams);\n }\n this.initialize = true;\n });\n\n function runInitLayerVisibleAction() {\n return _ref8.apply(this, arguments);\n }\n\n return runInitLayerVisibleAction;\n }()\n },\n\n watch: {\n 'layer.visible': function () {\n var _ref9 = _asyncToGenerator(function* (visible) {\n var enabled = visible && false === this.externallegend;\n\n if (enabled && false === this.initialize) {\n yield this.runInitLayerVisibleAction();\n }\n\n if (enabled && false !== this.initialize) {\n yield this.setLayerCategories(!this.dynamic);\n }\n });\n\n function layerVisible(_x3) {\n return _ref9.apply(this, arguments);\n }\n\n return layerVisible;\n }()\n },\n\n created: function () {\n var _ref10 = _asyncToGenerator(function* () {\n this.initialize = false;\n\n this.dynamic = _projects2.default.getCurrentProject().getContextBaseLegend();\n\n this.mapReady = false;\n\n _eventbus.CatalogEventBus.$on('layer-change-style', this.onChangeLayerLegendStyle);\n\n if (false === this.externallegend && true === this.layer.visible) {\n yield this.runInitLayerVisibleAction();\n }\n });\n\n function created() {\n return _ref10.apply(this, arguments);\n }\n\n return created;\n }(),\n beforeDestroy: function beforeDestroy() {\n _eventbus.CatalogEventBus.$off('layer-change-style', this.onChangeLayerLegendStyle);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"layer-legend\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}},[(_vm.legend)?_c('bar-loader',{attrs:{\"loading\":_vm.legend.loading}}):_vm._e(),_vm._v(\" \"),(_vm.externallegend)?_c('figure',[_c('img',{attrs:{\"src\":_vm.getWmsSourceLayerLegendUrl()}})]):_c('figure',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.loading),expression:\"loading\"}]},[_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_vm._l((_vm.categories),function(category,index){return _c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(category.disabled),expression:\"category.disabled\"}],staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"width\":\"100%\"},on:{\"contextmenu\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.showCategoryMenu($event)}}},[(category.ruleKey)?_c('span',{class:_vm.g3wtemplate.getFontClass(category.checked ? 'check': 'uncheck'),staticStyle:{\"padding-right\":\"3px\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.showHideLayerCategory(index)}}}):_vm._e(),_vm._v(\" \"),(('toc' === _vm.legendplace))?_c('img',{attrs:{\"src\":category.icon && (\"data:image/png;base64,\" + (category.icon))},on:{\"error\":function($event){return _vm.setError()},\"load\":function($event){return _vm.urlLoaded()}}}):_vm._e(),_vm._v(\" \"),(('tab' === _vm.legendplace && category.ruleKey) || ('toc' === _vm.legendplace))?_c('span',{staticClass:\"g3w-long-text\",staticStyle:{\"padding-left\":\"3px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onCategoryClick($event)}}},[_c('span',[_vm._v(_vm._s(category.title))]),_vm._v(\" \"),(_vm.showfeaturecount && 'undefined' !== typeof category.ruleKey)?_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"\\n [\"+_vm._s(_vm.layer.stylesfeaturecount[_vm.currentstyle][category.ruleKey])+\"]\\n \")]):_vm._e()]):_vm._e()])})],2)],1):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-fc3d03ea\"\n\n},{\"app/eventbus\":45,\"mixins/click\":270,\"services/gui\":286,\"store/catalog-layers\":295,\"store/projects\":301,\"vueify/lib/insert-css\":2}],124:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#project-context-menu[data-v-5db8b798]{background:#fafafa;border:1px solid #bdbdbd;border-radius:3px;display:block;list-style:none;margin:0;padding:0;position:fixed;min-width:150px;z-index:999999;color:#000;outline:none}li .item-text[data-v-5db8b798]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _eventbus = require('app/eventbus');\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'catalog-project-context-menu',\n\n props: {\n external: {\n type: Object\n }\n },\n\n data: function data() {\n return {\n menu: {\n title: _projects2.default.getCurrentProject().getName(),\n show: false,\n top: 0,\n left: 0,\n\n layers: {\n show: false,\n top: 0,\n left: 0\n }\n }\n };\n },\n\n\n computed: {\n edit_url: function edit_url() {\n return _application2.default.getCurrentProject().getState().edit_url;\n }\n },\n\n methods: {\n _hideMenu: function _hideMenu() {\n this.menu.show = false;\n },\n closeLayerMenu: function closeLayerMenu() {\n this._hideMenu();\n },\n showAdminLayers: function showAdminLayers() {},\n onShowProjectContextMenu: function () {\n var _ref = _asyncToGenerator(function* (evt) {\n this._hideMenu();\n yield this.$nextTick();\n this.menu.left = evt.x;\n this.menu.show = true;\n yield this.$nextTick();\n this.menu.top = $(evt.target).offset().top - $(this.$refs['project-context-menu']).height() + $(evt.target).height() / 2;\n });\n\n function onShowProjectContextMenu(_x) {\n return _ref.apply(this, arguments);\n }\n\n return onShowProjectContextMenu;\n }()\n },\n\n created: function created() {\n _eventbus.CatalogEventBus.$on('show-project-context-menu', this.onShowProjectContextMenu);\n _eventbus.CatalogEventBus.$on('hide-project-context-menu', this._hideMenu);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.edit_url && _vm.menu.show)?_c('ul',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeLayerMenu),expression:\"closeLayerMenu\"}],ref:\"project-context-menu\",staticClass:\"catalog-context-menu\",style:({\n top: _vm.menu.top + 'px',\n left: _vm.menu.left + 'px'\n }),attrs:{\"id\":\"project-context-menu\",\"tabindex\":\"-1\"}},[_c('li',{staticClass:\"title\"},[_c('div',[_vm._v(\"G3W-ADMIN \"+_vm._s(_vm.menu.title))])]),_vm._v(\" \"),_c('li',[_c('div',[_c('span',{staticClass:\"menu-icon skin-color-dark\"},[_c('svg',{staticStyle:{\"height\":\"14px\",\"vertical-align\":\"-1.5px\",\"fill\":\"currentColor\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xml:space\":\"preserve\",\"viewBox\":\"0 0 32 32\"}},[_c('path',{attrs:{\"d\":\"m17.61 17.63 4.36-.02-4-3.98h-4.36v4l4 4.45z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"m31.61 27.22-7.62-7.6-4.38.01v4.33l7.24 7.67h4.76z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M18 25.18c-.68.16-1.17.2-1.9.2a9.77 9.77 0 0 1-9.68-9.88c0-5.57 4.4-9.78 9.68-9.78s9.48 4.2 9.48 9.78c0 .91-.15 1.96-.36 2.8l4.88 4.65a15 15 0 0 0 1.95-7.48C32.05 6.87 25.19.44 16 .44 6.86.44 0 6.84 0 15.47c0 8.68 6.86 15.2 16 15.2 2.36 0 4.23-.3 6.2-1.1L18 25.18z\"}})])]),_vm._v(\" \"),_c('b',[_c('a',{staticStyle:{\"color\":\"initial\"},attrs:{\"href\":_vm.edit_url,\"target\":\"_blank\"},on:{\"click\":function($event){$event.stopPropagation();return _vm._hideMenu($event)}}},[_vm._v(\"Project settings\")])])])])]):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-5db8b798\"\n\n},{\"app/eventbus\":45,\"services/application\":282,\"store/projects\":301,\"vueify/lib/insert-css\":2}],125:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eventbus = require('app/eventbus');\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _click = require('mixins/click');\n\nvar _click2 = _interopRequireDefault(_click);\n\nvar _CatalogLayerLegend = require('components/CatalogLayerLegend.vue');\n\nvar _CatalogLayerLegend2 = _interopRequireDefault(_CatalogLayerLegend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n downloadFile = _require.downloadFile;\n\nfunction _setAllLayersVisible(layers) {\n layers.nodes.forEach(function (n) {\n if (undefined === n.id) {\n _setAllLayersVisible({ nodes: n.nodes, visible: layers.visible && n.checked });\n } else if (n.parentGroup.checked && n.checked) {\n _catalogLayers2.default.getLayerById(n.id).setVisible(layers.visible);\n }\n });\n};\n\nexports.default = {\n name: 'catalog-tristate-tree',\n\n props: ['layerstree', 'storeid', 'legend', 'legendplace', 'highlightlayers', 'parent_mutually_exclusive', 'parentFolder', 'externallayers', 'root', 'parent'],\n\n components: {\n CatalogLayerLegend: _CatalogLayerLegend2.default\n },\n\n mixins: [_click2.default],\n\n data: function data() {\n return {\n expanded: this.layerstree.expanded,\n isGroupChecked: true,\n controltoggled: false,\n n_childs: null,\n filtered: false,\n logged: undefined !== _applicationState2.default.user.id };\n },\n\n\n computed: {\n showfeaturecount: function showfeaturecount() {\n return undefined !== this.layerstree.featurecount;\n },\n showLegendLayer: function showLegendLayer() {\n return !this.layerstree.exclude_from_legend;\n },\n showLayerTocLegend: function showLayerTocLegend() {\n return !this.isGroup && this.showLegendLayer && this.layerstree.geolayer;\n },\n isGroup: function isGroup() {\n return !!this.layerstree.nodes;\n },\n legendlayerposition: function legendlayerposition() {\n return this.showLegendLayer && this.layerstree.legend ? this.legendplace : 'tab';\n },\n showscalevisibilityclass: function showscalevisibilityclass() {\n return !this.isGroup && this.layerstree.scalebasedvisibility;\n },\n showScaleVisibilityToolip: function showScaleVisibilityToolip() {\n return this.showscalevisibilityclass && this.layerstree.disabled && this.layerstree.checked;\n },\n isTable: function isTable() {\n return !this.isGroup && !this.layerstree.geolayer && !this.layerstree.external;\n },\n isHidden: function isHidden() {\n return this.layerstree.hidden && true === this.layerstree.hidden;\n },\n selected: function selected() {\n this.layerstree.selected = this.layerstree.disabled && this.layerstree.selected ? false : this.layerstree.selected;\n },\n isHighLight: function isHighLight() {\n return this._isHighLightProjectLayer || this._isHighLightExternalLayer;\n },\n isInGrey: function isInGrey() {\n return !this.isGroup && !this.isTable && !this.layerstree.external && (!this.layerstree.visible || this.layerstree.disabled);\n },\n getFeatureCount: function getFeatureCount() {\n return Object.values(this.layerstree.featurecount).reduce(function (total, categoryFeatureCount) {\n return total + 1 * categoryFeatureCount;\n }, 0);\n },\n _isHighLightProjectLayer: function _isHighLightProjectLayer() {\n return this.highlightlayers && !this.isGroup && _catalogLayers2.default.getLayerById(this.layerstree.id).getTocHighlightable() && this.layerstree.visible;\n },\n _isHighLightExternalLayer: function _isHighLightExternalLayer() {\n return this.layerstree.external && this.layerstree.visible && \"vector\" && this.layerstree._type && true === this.layerstree.tochighlightable;\n }\n },\n\n watch: {\n 'layerstree.checked': function layerstreeChecked() {\n if (this.isGroup) {\n this.handleGroupChecked(this.layerstree);\n } else {\n this.handleLayerChecked(this.layerstree);\n }\n }\n },\n\n methods: {\n removeCurrentFilter: function removeCurrentFilter() {\n return _catalogLayers2.default.getLayerById(this.layerstree.id).deleteFilterToken();\n },\n handleGroupChecked: function handleGroupChecked(group) {\n if (!group.checked) {\n group.nodes.forEach(function (n) {\n if (undefined === n.id) {\n _setAllLayersVisible({ nodes: n.nodes, visible: false });\n } else if (n.checked) {\n _catalogLayers2.default.getLayerById(n.id).setVisible(false);\n }\n });\n return;\n }\n\n var visible = group.parentGroup ? group.parentGroup.checked : true;\n var mutually_exclusive = group.parentGroup && group.parentGroup.mutually_exclusive;\n\n if (!mutually_exclusive) {\n _setAllLayersVisible({ nodes: group.nodes, visible: visible });\n }\n\n if (mutually_exclusive) {\n group.parentGroup.nodes.forEach(function (n) {\n n.checked = n.groupId === group.groupId;\n if (n.checked) {\n _setAllLayersVisible({ nodes: n.nodes, visible: visible });\n }\n });\n }\n\n var g = group.parentGroup;\n while (g) {\n g.checked = g.root || g.checked;\n g = g.parentGroup;\n }\n },\n handleLayerChecked: function handleLayerChecked(layer) {\n if (!layer.projectLayer) {\n layer.visible = layer.checked;\n _gui2.default.getService('map').changeLayerVisibility({ id: layer.id, visible: layer.checked });\n return;\n }\n\n var qlayer = _catalogLayers2.default.getLayerById(layer.id);\n var checked = layer.checked;\n\n qlayer.setVisible(checked ? !layer.disabled : false);\n\n if (checked && layer.parentGroup.mutually_exclusive) {\n layer.parentGroup.nodes.forEach(function (n) {\n return n.checked = n.id === layer.id;\n });\n }\n\n var g = layer.parentGroup;\n while (checked && g) {\n g.checked = true;\n g = g.parentGroup;\n }\n\n _eventbus.CatalogEventBus.$emit('treenodevisible', qlayer);\n },\n saveFilter: function saveFilter(layerstree) {\n _catalogLayers2.default.getLayerById(layerstree.id).saveFilter();\n },\n toggleFilterLayer: function toggleFilterLayer() {\n _eventbus.CatalogEventBus.$emit('activefiltertokenlayer', this.storeid, this.layerstree);\n },\n clearSelection: function clearSelection() {\n _eventbus.CatalogEventBus.$emit('unselectionlayer', this.storeid, this.layerstree);\n },\n toggle: function toggle() {\n this.layerstree.checked = !this.layerstree.checked;\n },\n expandCollapse: function expandCollapse() {\n this.layerstree.expanded = !this.layerstree.expanded;\n },\n select: function select() {\n if (undefined === this.layerstree.selected) {\n return;\n }\n\n if (this.layerstree.external && false === this.layerstree.projectLayer) {\n _eventbus.CatalogEventBus.$emit('treenodeexternalselected', this.layerstree);\n } else if (!this.isGroup && !this.isTable) {\n _eventbus.CatalogEventBus.$emit('treenodeselected', this.storeid, this.layerstree);\n }\n },\n maybeZoomToLayer: function maybeZoomToLayer(layer) {\n if (this.canZoom(this.layerstree)) {\n _gui2.default.getService('map').goToBBox([layer.bbox.minx, layer.bbox.miny, layer.bbox.maxx, layer.bbox.maxy], layer.epsg);\n }\n },\n canZoom: function canZoom(layer) {\n return layer.bbox && [layer.bbox.minx, layer.bbox.miny, layer.bbox.maxx, layer.bbox.maxy].find(function (coordinate) {\n return coordinate > 0;\n });\n },\n onTreeItemClick: function onTreeItemClick() {\n var _this = this;\n\n this.handleClick({\n '1': function _() {\n return !_this.isTable && !_this.isGroup && _this.select();\n },\n '2': function _() {\n return !_this.isTable && _this.maybeZoomToLayer(_this.layerstree);\n }\n }, this);\n },\n triClass: function triClass() {\n return this.g3wtemplate.getFontClass(this.layerstree.checked ? 'check' : 'uncheck');\n },\n downloadExternalLayer: function downloadExternalLayer(download) {\n if (download.file) {\n downloadFile(download.file);\n } else if (download.url) {}\n },\n removeExternalLayer: function removeExternalLayer(name, type) {\n _gui2.default.getService('map').removeExternalLayer(name, wms);\n },\n showContextMenu: function showContextMenu(evt) {\n if (!this.isGroup && (this.layerstree.openattributetable || this.layerstree.downloadable || this.layerstree.geolayer || this.layerstree.external)) {\n _eventbus.CatalogEventBus.$emit('hide-project-context-menu');\n _eventbus.CatalogEventBus.$emit('show-layer-context-menu', this.layerstree, evt);\n } else if (this.isGroup && true === this.layerstree.root) {\n _eventbus.CatalogEventBus.$emit('hide-layer-context-menu');\n _eventbus.CatalogEventBus.$emit('show-project-context-menu', evt);\n }\n }\n },\n\n created: function created() {\n if (this.isGroup && !this.layerstree.checked) {\n this.handleGroupChecked(this.layerstree);\n }\n if (this.isGroup && !this.root && this.parent_mutually_exclusive && !this.layerstree.mutually_exclusive) {\n this.layerstree.nodes.forEach(function (node) {\n node.id && (node.uncheckable = true);\n });\n }\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n yield this.$nextTick();\n $('span.scalevisibility').tooltip();\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isGroup || !_vm.layerstree.projectLayer || _vm.layerstree.toc)?_c('li',{staticClass:\"tree-item\",class:{\n selected: !_vm.isGroup || !_vm.isTable ? _vm.layerstree.selected : false,\n itemmarginbottom: !_vm.isGroup,\n disabled: _vm.isInGrey,\n group: _vm.isGroup\n },style:({\n marginLeft: !_vm.isGroup ? '5px' : '0'\n }),on:{\"contextmenu\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.showContextMenu($event)},\"click\":function($event){$event.stopPropagation();return _vm.onTreeItemClick($event)}}},[(_vm.isGroup)?_c('span',{staticClass:\"root collapse-expande-collapse-icon\",class:[\n { bold : _vm.isGroup },\n _vm.g3wtemplate.getFontClass(_vm.layerstree.expanded ? 'caret-down' : 'caret-right')\n ],staticStyle:{\"padding-right\":\"2px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.expandCollapse($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('span',{class:[_vm.triClass()],staticStyle:{\"color\":\"#ffffff\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggle()}}}):(_vm.isTable)?_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.layerstree.hidden),expression:\"!layerstree.hidden\"}],class:[\n _vm.parentFolder ? 'child' : 'root',\n _vm.g3wtemplate.getFontClass('table')\n ],staticStyle:{\"padding-left\":\"18px\"}}):[(_vm.layerstree.external && _vm.layerstree.removable)?_c('span',{class:_vm.g3wtemplate.getFontClass('trash'),staticStyle:{\"color\":\"red\",\"padding-left\":\"1px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeExternalLayer(_vm.layerstree.name, _vm.layerstree._type)}}}):_vm._e(),_vm._v(\" \"),(_vm.layerstree.external && _vm.layerstree.download)?_c('span',{class:_vm.g3wtemplate.getFontClass('download'),staticStyle:{\"color\":\"#ffffff\",\"margin-left\":\"5px\"},on:{\"click\":function($event){return _vm.downloadExternalLayer(_vm.layerstree.download)}}}):_vm._e(),_vm._v(\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.layerstree.hidden),expression:\"!layerstree.hidden\"}],staticClass:\"checkbox-layer\",class:_vm.parentFolder ? 'child' : 'root'},[('toc' === _vm.legendlayerposition || !_vm.isGroup && _vm.layerstree.categories)?_c('span',{staticClass:\"collapse-expande-collapse-icon\",class:_vm.g3wtemplate.getFontClass(_vm.layerstree.visible && _vm.layerstree.expanded ? 'caret-down' : 'caret-right'),on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }$event.stopPropagation();return _vm.expandCollapse($event)}}}):_vm._e(),_vm._v(\" \"),_c('span',{class:[\n _vm.g3wtemplate.getFontClass(_vm.layerstree.checked ? 'check': 'uncheck'),\n { 'toc-added-external-layer': (!_vm.layerstree.legend && _vm.layerstree.external) }\n ],style:({\n paddingLeft: ('toc' === _vm.legendlayerposition)\n ? '5px'\n : !_vm.isGroup && _vm.layerstree.categories\n ? '5px'\n : (!_vm.layerstree.legend && _vm.layerstree.external)\n ? '1px'\n : '18px'\n }),on:{\"click\":function($event){$event.stopPropagation();return _vm.toggle()}}})])],_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.layerstree.hidden || _vm.isGroup),expression:\"!layerstree.hidden || isGroup\"}],staticClass:\"tree-node-title\",class:{\n disabled: !_vm.layerstree.external && (_vm.layerstree.disabled || (_vm.layerstree.id && !_vm.layerstree.visible)),\n bold: _vm.isGroup\n }},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.text\",value:(_vm.showScaleVisibilityToolip ? (\"minscale:\" + (_vm.layerstree.minscale) + \" - maxscale:\" + (_vm.layerstree.maxscale)) : ''),expression:\"showScaleVisibilityToolip ? `minscale:${layerstree.minscale} - maxscale:${layerstree.maxscale}` : ''\",modifiers:{\"text\":true}}],staticClass:\"skin-tooltip-top g3w-long-text\",class:{\n highlightlayer: _vm.isHighLight,\n scalevisibility: _vm.showscalevisibilityclass\n },attrs:{\"data-placement\":\"top\",\"current-tooltip\":_vm.showScaleVisibilityToolip ? (\"minscale:\" + (_vm.layerstree.minscale) + \" - maxscale: \" + (_vm.layerstree.maxscale)) : ''}},[(!_vm.isGroup && !_vm.layerstree.external && null !== _vm.layerstree.filter.current)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create.text\",value:(_vm.layerstree.filter.current.name),expression:\"layerstree.filter.current.name\",arg:\"top\",modifiers:{\"create\":true,\"text\":true}}],staticStyle:{\"cursor\":\"pointer\"},attrs:{\"current-tooltip\":_vm.layerstree.filter.current.name},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeCurrentFilter($event)}}},[_c('span',{class:_vm.g3wtemplate.getFontClass('filter'),staticStyle:{\"color\":\"red\"}})]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.layerstree.title))]),_vm._v(\" \"),(!_vm.isGroup && _vm.showfeaturecount)?_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"\\n [\"+_vm._s(_vm.getFeatureCount)+\"]\\n \")]):_vm._e()]),_vm._v(\" \"),((!_vm.isGroup && _vm.layerstree.selection))?_c('div',[(_vm.layerstree.selection.active)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.clear'),expression:\"'layer_selection_filter.tools.clear'\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left selection-filter-icon\",class:_vm.g3wtemplate.getFontClass('clear'),attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"caputure\",undefined,$event.key,undefined)){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.clearSelection($event)}}}):_vm._e(),_vm._v(\" \"),(!_vm.layerstree.external && (_vm.layerstree.selection.active || _vm.layerstree.filter.active))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.filter'),expression:\"'layer_selection_filter.tools.filter'\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left selection-filter-icon\",class:[\n _vm.g3wtemplate.getFontClass('filter'),\n _vm.layerstree.filter.active ? 'active' : '' ],attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"caputure\",undefined,$event.key,undefined)){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.toggleFilterLayer($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.logged && !_vm.layerstree.external && (_vm.layerstree.selection.active && _vm.layerstree.filter.active))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.savefilter'),expression:\"'layer_selection_filter.tools.savefilter'\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left selection-filter-icon\",class:_vm.g3wtemplate.getFontClass('save'),attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\"},on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"caputure\",undefined,$event.key,undefined)){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.saveFilter(_vm.layerstree)}}}):_vm._e()]):_vm._e()]),_vm._v(\" \"),(_vm.showLayerTocLegend)?_c('catalog-layer-legend',{attrs:{\"legendplace\":_vm.legendplace,\"layer\":_vm.layerstree}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.layerstree.expanded),expression:\"layerstree.expanded\"}],staticClass:\"tree-content-items group\",class:[(\"g3w-lendplace-\" + _vm.legendplace)]},_vm._l((_vm.layerstree.nodes),function(_layerstree){return _c('span',{key:_layerstree.id || _layerstree.groupId},[_c('catalog-tristate-tree',{attrs:{\"root\":false,\"legendConfig\":_vm.legend,\"legendplace\":_vm.legendplace,\"highlightlayers\":_vm.highlightlayers,\"parentFolder\":_vm.isGroup,\"layerstree\":_layerstree,\"storeid\":_vm.storeid,\"parent\":_vm.layerstree,\"parent_mutually_exclusive\":!!_vm.layerstree.mutually_exclusive}})],1)}),0):_vm._e()],2):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{\"app/eventbus\":45,\"components/CatalogLayerLegend.vue\":123,\"mixins/click\":270,\"services/gui\":286,\"store/application-state\":294,\"store/catalog-layers\":295,\"utils\":388}],126:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#g3w-change-map-menu[data-v-9eb2df56]{width:100%;position:relative}.g3w-change-map-menu-container[data-v-9eb2df56]{height:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(30%,1fr));grid-gap:1em;overflow-y:auto}.menu-item[data-v-9eb2df56]{margin-bottom:20px;margin-top:20px}.menu-item-image[data-v-9eb2df56]{cursor:pointer;position:relative;overflow:hidden;padding-bottom:50%;opacity:.7}.menu-item-image[data-v-9eb2df56]:hover{opacity:1}.menu-item-image img[data-v-9eb2df56]{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.menu-item-content[data-v-9eb2df56]{padding:15px;background:hsla(0,0%,100%,.3)}.menu-item-text[data-v-9eb2df56]{position:relative;overflow:hidden;height:100%;text-align:justify}.menu-item-title[data-v-9eb2df56]{text-align:center;font-weight:700;background:hsla(0,0%,100%,.5);padding:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar get_macro = function () {\n var _ref = _asyncToGenerator(function* (id) {\n get_macro[id] = get_macro[id] || (yield XHR.get({ url: encodeURI(\"/\" + _application2.default.getApplicationUser().i18n + _constant.API_BASE_URLS.ABOUT.group + id + \"/\") }));\n return get_macro[id];\n });\n\n return function get_macro(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar get_group = function () {\n var _ref2 = _asyncToGenerator(function* (id) {\n get_group[id] = get_group[id] || (yield XHR.get({ url: encodeURI(\"/\" + _application2.default.getApplicationUser().i18n + _constant.API_BASE_URLS.ABOUT.projects.replace('__G3W_GROUP_ID__', id)) }));\n return get_group[id];\n });\n\n return function get_group(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar _application = require(\"services/application\");\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _projects = require(\"store/projects\");\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _constant = require(\"app/constant\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Projections = require('g3w-ol/projection/projections');\n\nvar _require = require('utils'),\n XHR = _require.XHR;\n\nexports.default = {\n name: 'change-map-menu',\n\n data: function data() {\n return {\n state: null,\n\n loading: false,\n\n current: 'projects',\n\n items: [],\n\n parent: null,\n\n steps: [],\n\n curr_group: null\n\n };\n },\n\n\n methods: {\n back: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var last_step = this.steps.pop();\n var has_steps = this.steps.length > 0;\n var item = has_steps && this.steps[this.steps.length - 1];\n if (has_steps && undefined !== item.macrogroup_id || !has_steps && undefined === last_step && Array.isArray(this.parent.macrogroup_id) && this.parent.macrogroup_id.length > 0) {\n var macrogroup_id = has_steps ? item.macrogroup_id : this.parent.macrogroup_id;\n var add = !has_steps;\n return this.showMacroGroups(macrogroup_id, add);\n }\n\n if (has_steps && undefined === item.macrogroup_id) {\n return this.showGroups(item, false);\n }\n\n if (!has_steps) {\n return this.showRoot();\n }\n });\n\n function back() {\n return _ref3.apply(this, arguments);\n }\n\n return back;\n }(),\n showMacroGroups: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var macrogroup_id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var addStep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (1 === macrogroup_id.length) {\n this.parent = this.macrogroups.find(function (mg) {\n return mg.id === macrogroup_id[0];\n });\n return yield this.showGroups(this.parent);\n }\n\n this.items = this.macrogroups.filter(function (m) {\n return macrogroup_id.includes(m.id);\n });\n this.current = 'macrogroups';\n this.parent = {\n macrogroup_id: macrogroup_id,\n title: null,\n name: null };\n\n if (addStep) {\n this.steps.push(this.parent);\n }\n });\n\n function showMacroGroups() {\n return _ref4.apply(this, arguments);\n }\n\n return showMacroGroups;\n }(),\n showGroups: function () {\n var _ref5 = _asyncToGenerator(function* (item) {\n var addStep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n try {\n this.loading = true;\n this.parent = item;\n this.items = yield get_macro(item.id);\n this.current = 'groups';\n } catch (e) {\n console.warn(e);\n this.items = [];\n } finally {\n if (addStep) {\n this.steps.push(this.parent);\n }\n this.loading = false;\n }\n });\n\n function showGroups(_x6) {\n return _ref5.apply(this, arguments);\n }\n\n return showGroups;\n }(),\n showProjects: function () {\n var _ref6 = _asyncToGenerator(function* (item) {\n var _this = this;\n\n try {\n this.loading = true;\n this.parent = item;\n this.items = this.parent.id === this.curr_group ? _projects2.default.getListableProjects() : yield get_group(item.id, function (item) {\n return _this.setItemImageSrc({ item: item, type: 'project' });\n });\n this.current = 'projects';\n } catch (e) {\n console.warn(e);\n this.items = [];\n } finally {\n this.steps.push(this.parent);\n this.loading = false;\n }\n });\n\n function showProjects(_x7) {\n return _ref6.apply(this, arguments);\n }\n\n return showProjects;\n }(),\n showRoot: function showRoot() {\n this.current = 'root';\n this.items = [].concat(_toConsumableArray(this.macrogroups), _toConsumableArray(this.groups));\n this.steps = [];\n },\n changeMapProject: function () {\n var _ref7 = _asyncToGenerator(function* (item) {\n var url = void 0;\n var base_url = _projects2.default.getBaseUrl();\n var epsg = this.parent.srid ? \"EPSG:\" + this.parent.srid : this.parent.crs.epsg;\n yield Projections.registerProjection(epsg);\n try {\n new URL(base_url);\n url = \"\" + base_url + (item.url || item.map_url.replace(/^\\//, \"\"));\n } catch (e) {\n url = \"\" + location.origin + base_url + (item.url || item.map_url.replace(/^\\//, \"\"));\n }\n return _application2.default.changeMapProject({ url: url, epsg: epsg });\n });\n\n function changeMapProject(_x8) {\n return _ref7.apply(this, arguments);\n }\n\n return changeMapProject;\n }(),\n trigger: function () {\n var _ref8 = _asyncToGenerator(function* (item) {\n switch (this.current) {\n case 'root':\n return undefined === item.srid ? this.showGroups(item) : this.showProjects(item);\n case 'macrogroups':\n return this.showGroups(item);\n case 'groups':\n return yield this.showProjects(item);\n case 'projects':\n return yield this.changeMapProject(item);\n }\n });\n\n function trigger(_x9) {\n return _ref8.apply(this, arguments);\n }\n\n return trigger;\n }(),\n setItemImageSrc: function setItemImageSrc() {\n var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n item = _ref9.item,\n type = _ref9.type;\n\n switch (type) {\n case 'project':\n item.thumbnail = this._setSrc(item.thumbnail);break;\n case 'group':\n item.header_logo_img = this._setSrc(item.header_logo_img);break;\n case 'macrogroup':\n item.logo_img = this._setSrc(item.logo_img);break;\n\n case 'net_error':\n if (item.thumbnail || item.logo_img) {\n item.thumbnail = \"\" + _application2.default.getConfig().urls.clienturl + _constant.LOGO_GIS3W;\n } else if (item.header_logo_img) {\n item.header_logo_img = \"\" + _application2.default.getConfig().urls.clienturl + _constant.LOGO_GIS3W;\n }\n break;\n }\n },\n _setSrc: function _setSrc(src) {\n var imageSrc = void 0;\n var host = this.$options.host || '';\n var mediaurl = _projects2.default.config.mediaurl;\n var clienturl = _application2.default.getConfig().urls.clienturl;\n var has_media = src && -1 !== src.indexOf(mediaurl);\n var not_static = src && -1 === src.indexOf('static') && -1 === src.indexOf('media');\n\n if (!src) {\n imageSrc = \"\" + clienturl + _constant.LOGO_GIS3W;\n } else if (has_media) {\n imageSrc = src;\n } else if (not_static) {\n imageSrc = \"\" + mediaurl + src;\n } else {\n imageSrc = \"\" + clienturl + _constant.LOGO_GIS3W;\n }\n\n return \"\" + host + imageSrc;\n }\n },\n\n created: function () {\n var _ref10 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var config = _application2.default.getConfig();\n\n this.items = _projects2.default.getListableProjects();\n this.parent = _projects2.default.getCurrentProjectGroup();\n this.curr_group = this.parent.id;\n this.macrogroups = config.macrogroups;\n this.groups = config.groups;\n\n Object.entries({ 'project': this.items, 'magrocroup': this.macrogroups, 'group': this.groups }).forEach(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 2),\n type = _ref12[0],\n d = _ref12[1];\n\n return d.forEach(function (item) {\n return _this2.setItemImageSrc({ item: item, type: type });\n });\n });\n });\n\n function created() {\n return _ref10.apply(this, arguments);\n }\n\n return created;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"g3w-change-map-menu\"}},[('root' !== this.current)?[_c('div',{staticClass:\"skin-background-color\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"color\":\"#ffffff\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('change_session'),expression:\"'change_session'\",arg:\"bottom\",modifiers:{\"create\":true}},{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"font-size\":\"2em\",\"margin\":\"5px\",\"cursor\":\"pointer\",\"padding\":\"3px\",\"border\":\"2px solid #ffffff\",\"border-radius\":\"3px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.back($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('reply'),staticStyle:{\"color\":\"#FFFFFF\"}})]),_vm._v(\" \"),(_vm.parent)?_c('div',{staticStyle:{\"margin\":\"auto\"}},[_c('h3',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"\\n \"+_vm._s(_vm.parent.title || _vm.parent.name)+\"\\n \")])]):_vm._e()])]:_vm._e(),_vm._v(\" \"),(_vm.items.length)?_c('div',{staticClass:\"g3w-change-map-menu-container\"},_vm._l((_vm.items),function(item){return _c('div',{key:item.name,staticClass:\"menu-item\"},[_c('div',{staticClass:\"menu-item-image\",on:{\"click\":function($event){$event.stopPropagation();return _vm.trigger(item)}}},[_c('img',{staticClass:\"img-responsive\",attrs:{\"src\":item.thumbnail || item.header_logo_img || item.logo_img,\"alt\":\"logo\"},on:{\"error\":function($event){return _vm.setItemImageSrc({ item: item, type: 'net_error' })}}})]),_vm._v(\" \"),_c('div',{staticClass:\"menu-item-content\"},[_c('div',{staticClass:\"menu-item-text\"},[_c('h4',{staticClass:\"menu-item-title\"},[_vm._v(_vm._s(item.title))]),_vm._v(\" \"),_c('div',{domProps:{\"innerHTML\":_vm._s(item.description)}})])])])}),0):[_c('h3',{directives:[{name:\"t\",rawName:\"v-t\",value:((\" no_other_\" + _vm.current)),expression:\"` no_other_${current}`\"}],staticStyle:{\"font-weight\":\"bold\"}})]],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-9eb2df56\"\n\n},{\"app/constant\":5,\"g3w-ol/projection/projections\":62,\"services/application\":282,\"store/projects\":301,\"utils\":388,\"vueify/lib/insert-css\":2}],127:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".field[data-v-6783d4c4]{background-color:transparent!important;padding-top:3px;padding-bottom:3px;display:flex;align-items:center}.value[data-v-6783d4c4]{position:relative}.field div[data-v-6783d4c4]{padding-left:3px;padding-right:3px}.field_value[data-v-6783d4c4]{padding-left:0!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"field\",\n props: ['state']\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"field\"},[(_vm.state.label)?_c('div',{staticClass:\"col-sm-6 field_label\"},[_vm._t(\"label\",[_vm._v(_vm._s(_vm.state.label))])],2):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"field_value\",class:[_vm.state.label ? 'col-sm-6' : null ]},[_vm._t(\"field\",[_c('span',{staticStyle:{\"word-wrap\":\"break-word\"},domProps:{\"innerHTML\":_vm._s(_vm.state.value)}})])],2)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-6783d4c4\"\n\n},{\"vueify/lib/insert-css\":2}],128:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar fieldsService = require('gui/fields/fieldsservice');\nvar Fields = require('gui/fields/fields');\n\nexports.default = {\n name: \"g3w-field\",\n props: {\n state: {\n required: true\n },\n feature: {\n type: Object\n }\n },\n components: _extends({}, Fields),\n created: function created() {\n this.type = fieldsService.getType(this.state);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.type,{tag:\"component\",attrs:{\"feature\":_vm.feature,\"state\":_vm.state}})}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/fields/fields\":66,\"gui/fields/fieldsservice\":67}],129:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".show-hide-geo[data-v-3362679d]{color:#3c8dbc;cursor:pointer;font-size:1.2em}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require(\"mixins\");\n\nexports.default = {\n name: \"g3w-geospatial\",\n props: {\n data: {}\n },\n mixins: [_mixins.geoMixin],\n data: function data() {\n return {\n layerId: \"table_layer_\" + Date.now(),\n visible: false,\n id: \"geo_table_\" + Date.now()\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"geo-content\"},[_c('span',{staticClass:\"show-hide-geo\",class:[_vm.visible ? _vm.g3wtemplate.font['eye-close'] : _vm.g3wtemplate.font['eye']],on:{\"click\":function($event){$event.stopPropagation();return _vm.showLayer()}}})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-3362679d\"\n\n},{\"mixins\":274,\"vueify/lib/insert-css\":2}],130:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".img-responsive[data-v-70d2a0b2]{cursor:pointer}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Field = require('components/Field.vue');\n\nvar _Field2 = _interopRequireDefault(_Field);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('utils'),\n toRawType = _require.toRawType;\n\nexports.default = {\n name: \"field-image\",\n\n props: ['state'],\n data: function data() {\n return {\n galleryId: 'gallery_' + Date.now(),\n active: null,\n value: this.state.value.mime_type !== undefined ? this.state.value.value : this.state.value\n };\n },\n\n components: {\n Field: _Field2.default\n },\n computed: {\n values: function values() {\n return Array.isArray(this.value) ? this.value : [this.value];\n }\n },\n methods: {\n getSrc: function getSrc(value) {\n return toRawType(value) === 'Object' ? value.photo : value;\n },\n showGallery: function showGallery(index) {\n this.active = index;\n if (toRawType(this.value) === 'Object') this.value.active = true;\n $('#' + this.galleryId).modal('show');\n },\n getGalleryImages: function getGalleryImages() {\n var _this = this;\n\n return this.values.map(function (image) {\n return { src: _this.getSrc(image) };\n });\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('field',{attrs:{\"state\":_vm.state}},[_c('div',{staticStyle:{\"text-align\":\"left\"},attrs:{\"slot\":\"field\"},slot:\"field\"},[_vm._l((_vm.values),function(value,index){return _c('img',{staticClass:\"img-responsive\",staticStyle:{\"max-height\":\"50px\"},attrs:{\"alt\":\"\",\"src\":_vm.getSrc(value)},on:{\"click\":function($event){$event.stopPropagation();return _vm.showGallery(index)}}})}),_vm._v(\" \"),_c('g3w-images-gallery',{attrs:{\"id\":_vm.galleryId,\"active\":_vm.active,\"images\":_vm.getGalleryImages()}})],2)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-70d2a0b2\"\n\n},{\"components/Field.vue\":127,\"utils\":388,\"vueify/lib/insert-css\":2}],131:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".field_link[data-v-156f65de]{max-width:100%}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _Field = require('components/Field.vue');\n\nvar _Field2 = _interopRequireDefault(_Field);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"field-link\",\n\n props: ['state'],\n data: function data() {\n return {\n value: null\n };\n },\n\n components: {\n Field: _Field2.default\n },\n methods: {\n openLink: function openLink(link_url) {\n window.open(link_url, '_blank');\n }\n },\n created: function created() {\n this.value = this.state.value && _typeof(this.state.value) === 'object' ? this.state.value.value : this.state.value;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('field',{attrs:{\"state\":_vm.state}},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('info.link_button'),expression:\"'info.link_button'\"}],staticClass:\"btn skin-button field_link\",attrs:{\"slot\":\"field\",\"title\":_vm.value},on:{\"click\":function($event){$event.stopPropagation();return _vm.openLink(_vm.value)}},slot:\"field\"})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-156f65de\"\n\n},{\"components/Field.vue\":127,\"vueify/lib/insert-css\":2}],132:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require('mixins');\n\nexports.default = {\n name: \"g3w-media\",\n mixins: [_mixins.mediaMixin],\n props: ['state'],\n computed: {\n type: function type() {\n return this.getMediaType(this.state.mime_type).type;\n },\n value: function value() {\n return this.state.value;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.value)?_c('div',{staticClass:\"preview\"},[_c('a',{attrs:{\"href\":_vm.value,\"target\":\"_blank\"}},[_c('div',{staticClass:\"previewtype\",class:_vm.type},[_c('i',{staticClass:\"fa-2x\",class:_vm.g3wtemplate.font[_vm.type]})])]),_vm._v(\" \"),_c('div',{staticClass:\"filename\"},[_vm._v(_vm._s(_vm.filename))]),_vm._v(\" \"),_vm._t(\"default\")],2):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-7b8309b0\"\n\n},{\"mixins\":274}],133:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".field_text_table[data-v-db21acde]{background-color:transparent!important}.field_text_table .field_label[data-v-db21acde]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Field = require('components/Field.vue');\n\nvar _Field2 = _interopRequireDefault(_Field);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"field-text\",\n\n props: ['state'],\n\n components: {\n Field: _Field2.default\n },\n\n created: function created() {}\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('field',{attrs:{\"state\":_vm.state}})}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-db21acde\"\n\n},{\"components/Field.vue\":127,\"vueify/lib/insert-css\":2}],134:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Field = require(\"components/Field.vue\");\n\nvar _Field2 = _interopRequireDefault(_Field);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"vuefield\",\n props: {\n feature: {\n type: Object\n },\n state: {\n type: Object,\n default: {\n value: null,\n vueoptions: {\n component: {}\n }\n }\n }\n },\n components: {\n Field: _Field2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('field',{attrs:{\"state\":_vm.state}},[_c('div',{attrs:{\"slot\":\"field\"},slot:\"field\"},[_c(_vm.state.vueoptions.component,{tag:\"component\",attrs:{\"feature\":_vm.feature,\"value\":_vm.state.value}})],1)])}\n__vue__options__.staticRenderFns = []\n\n},{\"components/Field.vue\":127}],135:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _floatbar = require(\"services/floatbar\");\n\nvar _floatbar2 = _interopRequireDefault(_floatbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"Floatbar\",\n data: function data() {\n return {\n stack: _floatbar2.default.stack.state\n };\n },\n\n computed: {\n panelsinstack: function panelsinstack() {\n return this.stack.contentsdata.length > 0;\n },\n panelname: function panelname() {\n var name = void 0;\n if (this.stack.contentsdata.length) {\n name = this.stack.contentsdata.slice(-1)[0].content.getTitle();\n }\n return name;\n },\n closable: function closable() {\n return _floatbar2.default.closable;\n }\n },\n watch: {\n \"stack.contentsdata\": function stackContentsdata() {\n var children = $(\"#g3w-floatbarpanel-placeholder\").children();\n children.forEach(function (child, index) {\n if (index == children.length - 1) $(child).show();else $(child).hide();\n });\n }\n },\n methods: {\n closePanel: function closePanel() {\n _floatbar2.default.closePanel();\n }\n }\n\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',{staticClass:\"control-sidebar control-sidebar-light\"},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.panelsinstack),expression:\"panelsinstack\"}],staticClass:\"floatbar-aside-toggle\",attrs:{\"href\":\"#\",\"data-toggle\":\"control-sidebar\",\"role\":\"button\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Expand\")])]),_vm._v(\" \"),_c('div',{staticStyle:{\"position\":\"absolute\"},attrs:{\"id\":\"floatbar-spinner\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.panelsinstack),expression:\"panelsinstack\"}],staticClass:\"g3w-sidebarpanel\"},[(_vm.closable)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12 col-sm-12 col-md-12\"},[_c('button',{staticClass:\"pull-right close-panel-button\",class:_vm.g3wtemplate.getFontClass('close'),on:{\"click\":_vm.closePanel}})])]):_vm._e(),_vm._v(\" \"),(_vm.panelname)?_c('div',[_c('h4',{staticClass:\"g3w-floatbarpanel-name\"},[_vm._v(_vm._s(_vm.panelname))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"g3w-floatbarpanel-placeholder\",attrs:{\"id\":\"g3w-floatbarpanel-placeholder\"}})])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-29b017dd\"\n\n},{\"services/floatbar\":285}],136:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _FormHeader = require('components/FormHeader.vue');\n\nvar _FormHeader2 = _interopRequireDefault(_FormHeader);\n\nvar _FormFooter = require('components/FormFooter.vue');\n\nvar _FormFooter2 = _interopRequireDefault(_FormFooter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'g3w-form',\n\n data: function data() {\n return {\n state: {},\n switchcomponent: false,\n body: {\n components: {\n before: [],\n after: []\n }\n }\n };\n },\n\n components: {\n g3wformheader: _FormHeader2.default,\n G3wFormFooter: _FormFooter2.default\n },\n transitions: { 'addremovetransition': 'showhide' },\n methods: {\n isRootComponent: function isRootComponent(component) {\n return this.$options.service.isRootComponent(component);\n },\n backToRoot: function backToRoot() {\n this.$options.service.setRootComponent();\n },\n handleRelation: function handleRelation(relationId) {\n this.$options.service.handleRelation(relationId);\n },\n disableComponent: function disableComponent(_ref) {\n var id = _ref.id,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === undefined ? false : _ref$disabled;\n\n this.$options.service.disableComponent({\n id: id,\n disabled: disabled\n });\n },\n resizeForm: function resizeForm(perc) {\n this.$options.service.setCurrentFormPercentage(perc);\n },\n switchComponent: function switchComponent(id) {\n this.switchcomponent = true;\n this.$options.service.setCurrentComponentById(id);\n },\n changeInput: function changeInput(input) {\n return this.$options.service.changeInput(input);\n },\n addToValidate: function addToValidate(input) {\n this.$options.service.addToValidate(input);\n },\n removeToValidate: function removeToValidate(input) {\n this.$options.service.removeToValidate(input);\n },\n reloadLayout: function reloadLayout() {\n var height = $(this.$el).height();\n if (!height) {\n return;\n };\n var footerDOM = $(this.$refs.g3w_form_footer.$el);\n var bodyFromDOM = $(this.$refs.g3wform_body);\n var footerHeight = footerDOM.height() ? footerDOM.height() + 50 : 50;\n var bodyHeight = height - ($(this.$refs.g3wformheader.$el).height() + footerHeight);\n bodyFromDOM.height(bodyHeight);\n }\n },\n updated: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var _this = this;\n\n yield this.$nextTick();\n if (this.switchcomponent) {\n setTimeout(function () {\n return _this.switchcomponent = false;\n }, 0);\n }\n });\n\n function updated() {\n return _ref2.apply(this, arguments);\n }\n\n return updated;\n }(),\n created: function created() {\n var _this2 = this;\n\n this.$options.service.getEventBus().$on('set-main-component', function () {\n _this2.switchComponent(0);\n });\n this.$options.service.getEventBus().$on('component-validation', function (_ref3) {\n var id = _ref3.id,\n valid = _ref3.valid;\n\n _this2.$options.service.setValidComponent({ id: id, valid: valid });\n });\n this.$options.service.getEventBus().$on('addtovalidate', this.addToValidate);\n this.$options.service.getEventBus().$on('disable-component', this.disableComponent);\n },\n mounted: function mounted() {\n this.$options.service.isValid();\n this.$options.service.setReady(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.$options.service.clearAll();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g3wform_content\",staticStyle:{\"position\":\"relative\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.state.loading}}),_vm._v(\" \"),_c('g3wformheader',{ref:\"g3wformheader\",attrs:{\"currentid\":_vm.state.currentheaderid,\"headers\":_vm.state.headers,\"update\":_vm.state.update,\"valid\":_vm.state.valid},on:{\"resize-form\":_vm.resizeForm,\"clickheader\":_vm.switchComponent}}),_vm._v(\" \"),_c('div',{ref:\"g3wform_body\",staticClass:\"g3wform_body\"},[_vm._l((_vm.body.components.before),function(component){return _c(component,{tag:\"component\",attrs:{\"fields\":_vm.state.fields}})}),_vm._v(\" \"),_c('keep-alive',[_c(_vm.state.component,{tag:\"component\",attrs:{\"handleRelation\":_vm.handleRelation,\"state\":_vm.state},on:{\"hook:activated\":_vm.reloadLayout,\"addtovalidate\":_vm.addToValidate,\"removetovalidate\":_vm.removeToValidate,\"changeinput\":_vm.changeInput}})],1),_vm._v(\" \"),_vm._l((_vm.body.components.after),function(component){return _c(component,{tag:\"component\",attrs:{\"fields\":_vm.state.fields}})})],2),_vm._v(\" \"),_c('g3w-form-footer',{ref:\"g3w_form_footer\",attrs:{\"isRootComponent\":_vm.isRootComponent,\"backToRoot\":_vm.backToRoot,\"state\":_vm.state}})],1)}\n__vue__options__.staticRenderFns = []\n\n},{\"components/FormFooter.vue\":138,\"components/FormHeader.vue\":139}],137:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _InputG3WFormInputs = require('components/InputG3WFormInputs.vue');\n\nvar _InputG3WFormInputs2 = _interopRequireDefault(_InputG3WFormInputs);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = Vue.extend({\n name: 'form-body',\n\n props: ['state', 'handleRelation'],\n data: function data() {\n return {\n show: true\n };\n },\n\n components: {\n G3wFormInputs: _InputG3WFormInputs2.default\n },\n methods: {\n addToValidate: function addToValidate(input) {\n this.$emit('addtovalidate', input);\n },\n removeToValidate: function removeToValidate(input) {\n this.$emit('removetovalidate', input);\n },\n changeInput: function changeInput(input) {\n this.$emit('changeinput', input);\n }\n },\n computed: {\n hasFormStructure: function hasFormStructure() {\n return !!this.state.formstructure;\n }\n }\n});\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('form',{staticClass:\"form-horizontal g3w-form\"},[_c('div',{staticClass:\"box-primary\"},[_c('div',{staticClass:\"box-body\"},[(_vm.hasFormStructure)?[_c('tabs',{attrs:{\"layerid\":_vm.state.layerid,\"feature\":_vm.state.feature,\"handleRelation\":_vm.handleRelation,\"contenttype\":'editing',\"addToValidate\":_vm.addToValidate,\"changeInput\":_vm.changeInput,\"removeToValidate\":_vm.removeToValidate,\"tabs\":_vm.state.formstructure,\"fields\":_vm.state.fields}})]:[_c('g3w-form-inputs',{attrs:{\"state\":_vm.state,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate,\"changeInput\":_vm.changeInput},on:{\"changeinput\":_vm.changeInput,\"addinput\":_vm.addToValidate,\"removeinput\":_vm.removeToValidate}})]],2)])])])}\n__vue__options__.staticRenderFns = []\n\n},{\"components/InputG3WFormInputs.vue\":162}],138:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = Vue.extend({\n name: 'form-footer',\n\n props: {\n state: {\n type: Object\n },\n backToRoot: {\n type: Function,\n default: function _default() {}\n },\n isRootComponent: {\n type: Function\n }\n },\n data: function data() {\n this.originalbuttons = this.state.buttons.map(function (button) {\n return _extends({}, button);\n });\n return {\n id: \"footer\",\n active: true,\n show: true\n };\n },\n\n computed: {\n enableSave: function enableSave() {\n return this.state.valid && this.state.update;\n }\n },\n methods: {\n exec: function exec(cbk) {\n cbk instanceof Function ? cbk(this.state.fields) : function () {\n return this.state.fields;\n }();\n },\n btnEnabled: function btnEnabled(button) {\n var _button$enabled = button.enabled,\n enabled = _button$enabled === undefined ? true : _button$enabled,\n type = button.type;\n\n return enabled && (type !== 'save' || type === 'save' && this.enableSave);\n },\n isValid: function isValid() {\n return this.state.valid;\n }\n },\n watch: {\n 'state.component': function stateComponent(component) {\n this.show = this.isRootComponent(component);\n },\n\n 'state.update': {\n immediate: true,\n handler: function handler(value) {\n var _this = this;\n\n this.state.buttons.find(function (button, index) {\n if (button.eventButtons && button.eventButtons.update) {\n if (button.eventButtons.update[value]) {\n _this.state.buttons.splice(index, 1, _extends({}, button, button.eventButtons.update[value]));\n } else {\n _this.state.buttons.splice(index, 1, _this.originalbuttons[index]);\n }\n }\n });\n }\n }\n },\n activated: function activated() {\n this.active = true;\n },\n deactivated: function deactivated() {\n this.active = false;\n }\n});\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group g3wform_footer\"},[(_vm.show)?[_vm._t(\"default\",[_c('div',{staticStyle:{\"margin\":\"3px\",\"font-weight\":\"bold\"}},[_vm._v(\"\\n * \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.form.footer.required_fields'),expression:\"'sdk.form.footer.required_fields'\"}]}),_vm._v(\" \"),(_vm.state.footer.message)?_c('div',{style:([_vm.state.footer.style])},[_vm._v(\"\\n \"+_vm._s(_vm.state.footer.message)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_vm._l((_vm.state.buttons),function(button){return _c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.btnEnabled(button)),expression:\"!btnEnabled(button)\"},{name:\"t\",rawName:\"v-t\",value:(button.title),expression:\"button.title\"}],key:button.id,staticClass:\"btn \",class:[button.class],attrs:{\"update\":_vm.state.update,\"valid\":_vm.state.valid},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.exec(button.cbk)}}})})])]:[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('back'),expression:\"'back'\"}],staticClass:\"btn skin-button\",on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"prevet\",undefined,$event.key,undefined)){ return null; }$event.stopPropagation();return _vm.backToRoot($event)}}})]],2)}\n__vue__options__.staticRenderFns = []\n\n},{}],139:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Vue.extend({\n name: 'form-header',\n\n props: {\n headers: {\n type: Array,\n default: []\n },\n currentid: {\n type: String\n },\n update: {\n type: Boolean\n },\n valid: {\n type: Boolean\n }\n },\n methods: {\n click: function click(id) {\n if (id !== this.currentid && this.headers.length > 1) {\n this.$emit('clickheader', id);\n }\n },\n resizeForm: function resizeForm(perc) {\n this.$emit('resize-form', perc);\n }\n }\n});\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g3wform_header box-header with-border\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\"}},[_c('section',{staticClass:\"g3wform_header_content\"},_vm._l((_vm.headers),function(header){return _c('span',{key:header.id,staticClass:\"title\",class:[{item_selected: _vm.currentid === header.id && _vm.headers.length > 1},[_vm.headers.length > 1 ? 'tabs' : 'one' ]],staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\"},style:({fontSize: _vm.isMobile() && '1em !important'}),on:{\"click\":function($event){$event.stopPropagation();return _vm.click(header.id)}}},[(header.icon)?_c('span',{staticStyle:{\"margin-right\":\"5px\"}},[_c('i',{class:header.icon})]):_vm._e(),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t:pre\",value:(header.title),expression:\"header.title\",arg:\"pre\"}],staticClass:\"g3w-long-text\"},[_vm._v(_vm._s(header.name))]),_vm._v(\" \"),_c(header.component,{tag:\"component\",attrs:{\"valid\":_vm.valid,\"update\":_vm.update}})],1)}),0)])}\n__vue__options__.staticRenderFns = []\n\n},{}],140:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"bar-loader\",\n props: ['loading', 'color']\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('div',{staticClass:\"bar-loader\",style:({ backgroundColor: (_vm.color || '#FFFFFF'), border:0 })}):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{}],141:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: \"datetime\",\n props: {\n type: {\n type: String,\n default: 'date' },\n format: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n minDate: {\n default: false\n },\n maxDate: {\n default: false\n },\n enabledDates: {\n default: false\n },\n value: {},\n label: {\n default: 'Date'\n }\n },\n data: function data() {\n return {\n datetimevalue: this.value\n };\n },\n\n methods: {\n changeInput: function changeInput(e) {},\n change: function change(value) {\n var date = moment(value).format(this.format);\n this.$emit('change', date);\n }\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n yield this.$nextTick();\n this.datetimeinputelement = $(this.$refs.iddatetimepicker);\n this.datetimeinputelement.datetimepicker({\n minDate: this.minDate,\n maxDate: this.maxDate,\n defaultDate: this.datetimevalue,\n useCurrent: false,\n allowInputToggle: true,\n enabledDates: this.enabledDates,\n showClose: true,\n format: this.format,\n locale: _applicationState2.default.language,\n toolbarPlacement: 'top',\n widgetPositioning: { horizontal: 'right' }\n });\n this.datetimeinputelement.on(\"dp.change\", function (_ref2) {\n var date = _ref2.date;\n\n _this.change(date);\n });\n this.datetimeinputelement.on(\"dp.hide\", function (evt) {});\n if (_applicationState2.default.ismobile) {\n setTimeout(function () {\n return datetimeinputelement.blur();\n });\n }\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }(),\n\n watch: {\n value: function value(datetime) {\n this.datetimevalue = datetime;\n this.datetimeinputelement.data(\"DateTimePicker\").date(datetime);\n },\n minDate: function () {\n var _ref3 = _asyncToGenerator(function* (mindatetime) {\n this.datetimeinputelement.data(\"DateTimePicker\").minDate(mindatetime);\n });\n\n function minDate(_x) {\n return _ref3.apply(this, arguments);\n }\n\n return minDate;\n }(),\n maxDate: function () {\n var _ref4 = _asyncToGenerator(function* (maxdatetime) {\n this.datetimeinputelement.data(\"DateTimePicker\").maxDate(maxdatetime);\n });\n\n function maxDate(_x2) {\n return _ref4.apply(this, arguments);\n }\n\n return maxDate;\n }(),\n enabledDates: function enabledDates(dates) {\n this.datetimeinputelement.data(\"DateTimePicker\").enabledDates(dates);\n }\n },\n created: function created() {\n this.id = getUniqueDomId();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"datimecontainer\"},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.label),expression:\"label\"}],staticStyle:{\"display\":\"block\"},attrs:{\"for\":_vm.id}}),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{ref:\"iddatetimepicker\",staticClass:\"input-group date\"},[_c('input',{ref:\"idinputdatetimepiker\",staticClass:\"form-control\",attrs:{\"id\":_vm.id,\"type\":\"text\"},on:{\"change\":_vm.changeInput}}),_vm._v(\" \"),_c('span',{staticClass:\"input-group-addon caret\"},[_c('span',{staticClass:\"datetimeinput\",class:_vm.g3wtemplate.getFontClass('time' === _vm.type ? 'time': 'calendar')})])])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-e7683bf8\"\n\n},{\"store/application-state\":294,\"utils\":388}],142:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".divider[data-v-6409ddc0]{display:block;position:relative;padding:0;margin-bottom:5px;height:0;width:100%;max-height:0;font-size:1px;line-height:0;clear:both;border:none;border-bottom:2px solid #eee}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"divider\"\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"divider\"})}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-6409ddc0\"\n\n},{\"vueify/lib/insert-css\":2}],143:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".modal-content[data-v-38db7d79]{background:hsla(0,0%,100%,.6);border-radius:3px}.modal-dialog[data-v-38db7d79]{display:inline-block;text-align:left;vertical-align:middle}.modal[data-v-38db7d79]{text-align:center;padding:0!important}.modal[data-v-38db7d79]:before{content:\\\"\\\";display:inline-block;height:100%;vertical-align:middle;margin-right:-4px}.carousel .carousel-control span[data-v-38db7d79]{color:#3c8dbc}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"g3w-images-gallery\",\n props: {\n images: {\n type: Array,\n default: []\n },\n id: {\n type: String,\n default: 'gallery'\n },\n active: {\n type: Number\n }\n },\n data: function data() {\n return {\n carouselId: 'carousel_' + Date.now()\n };\n },\n\n methods: {\n isActive: function isActive(src) {\n return src === this.active;\n },\n isRelativePath: function isRelativePath(url) {\n if (!_.startsWith(url, '/') && !_.startsWith(url, 'http')) {\n return _projects2.default.getConfig().mediaurl + url;\n }\n return url;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal fade modal-fullscreen force-fullscreen\",attrs:{\"id\":_vm.id,\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-labelledby\":\"\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"carousel slide\",attrs:{\"id\":_vm.carouselId,\"data-interval\":\"false\"}},[_c('div',{staticClass:\"carousel-inner\"},_vm._l((_vm.images),function(image,index){return _c('div',{staticClass:\"item\",class:_vm.active == index ? 'active' : ''},[_c('img',{staticStyle:{\"margin\":\"auto\"},attrs:{\"src\":_vm.isRelativePath(image.src)}})])}),0),_vm._v(\" \"),(_vm.images.length > 1)?_c('a',{staticClass:\"left carousel-control\",attrs:{\"href\":(\"#\" + _vm.carouselId),\"role\":\"button\",\"data-slide\":\"prev\"}},[_c('span',{class:_vm.g3wtemplate.getFontClass('arrow-left')})]):_vm._e(),_vm._v(\" \"),(_vm.images.length > 1)?_c('a',{staticClass:\"right carousel-control\",attrs:{\"href\":(\"#\" + _vm.carouselId),\"role\":\"button\",\"data-slide\":\"next\"}},[_c('span',{class:_vm.g3wtemplate.getFontClass('arrow-left')})]):_vm._e()])])])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-38db7d79\"\n\n},{\"store/projects\":301,\"vueify/lib/insert-css\":2}],144:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".show-hide-geo[data-v-ea8dc510]{color:#3c8dbc;cursor:pointer;font-size:1.2em}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require(\"mixins\");\n\nexports.default = {\n name: \"g3w-geospatial\",\n props: {\n data: {}\n },\n mixins: [_mixins.geoMixin],\n data: function data() {\n return {\n layerId: \"table_layer_\" + Date.now(),\n visible: false,\n id: \"geo_table_\" + Date.now()\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"geo-content\"},[_c('span',{staticClass:\"show-hide-geo\",class:_vm.g3wtemplate.getFontClass(_vm.visible ? 'eye-close': 'eye'),on:{\"click\":function($event){$event.stopPropagation();return _vm.showLayer($event)}}})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-ea8dc510\"\n\n},{\"mixins\":274,\"vueify/lib/insert-css\":2}],145:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".help_div_container[data-v-5d3720b7]{color:#fff;text-align:justify;position:relative;border-radius:3px;margin:5px 2px;white-space:pre-line;background-color:#384246!important}.help_icon[data-v-5d3720b7]{text-align:center;font-size:.7em;margin-top:-4px;margin-left:-4px;background-color:#222d32;font-weight:700;color:#fff;position:absolute;top:0;left:0;width:15px;height:15px;box-shadow:0 3px 5px rgba(0,0,0,.5);border:1px solid #fff;border-radius:50%}.g3w-help-message-content[data-v-5d3720b7]{max-height:200px;padding:10px;overflow-y:auto}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"helpdiv\",\n props: {\n message: {\n type: String,\n required: true\n },\n type: {\n type: String,\n default: 'info' }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help_div_container\"},[_c('span',{staticClass:\"help_icon\"},[_vm._v(\"i\")]),_vm._v(\" \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.message),expression:\"message\"}],staticClass:\"g3w-help-message-content\"})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-5d3720b7\"\n\n},{\"vueify/lib/insert-css\":2}],146:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".img-responsive[data-v-b7d14a7c]{cursor:pointer}.g3w-image[data-v-b7d14a7c]{padding-left:0!important;min-width:100px;max-width:100%;cursor:pointer}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _GlobalGallery = require('components/GlobalGallery.vue');\n\nvar _GlobalGallery2 = _interopRequireDefault(_GlobalGallery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"g3w-image\",\n props: {\n value: {}\n },\n data: function data() {\n return {\n galleryId: 'gallery_' + Date.now(),\n active: null\n };\n },\n\n components: {\n 'g3w-images-gallery': _GlobalGallery2.default\n },\n computed: {\n values: function values() {\n return Array.isArray(this.value) ? this.value : [this.value];\n }\n },\n methods: {\n getSrc: function getSrc(value) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n return value.photo;\n }\n return value;\n },\n showGallery: function showGallery(index) {\n this.active = index;\n if (_typeof(this.value) === 'object') {\n this.value.active = true;\n }\n $('#' + this.galleryId).modal('show');\n },\n getGalleryImages: function getGalleryImages() {\n var _this = this;\n\n return this.values.map(function (image) {\n return { src: _this.getSrc(image) };\n });\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},_vm._l((_vm.values),function(value,index){return _c('div',{staticClass:\"g3w-image col-md-6 col-sm-12\"},[_c('img',{staticClass:\"img-thumbnail\",attrs:{\"src\":_vm.getSrc(value)},on:{\"click\":function($event){$event.stopPropagation();return _vm.showGallery(index)}}})])}),0),_vm._v(\" \"),_c('g3w-images-gallery',{attrs:{\"id\":_vm.galleryId,\"active\":_vm.active,\"images\":_vm.getGalleryImages()}})],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-b7d14a7c\"\n\n},{\"components/GlobalGallery.vue\":143,\"vueify/lib/insert-css\":2}],147:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-layer-positions[data-v-026784c2]{display:flex;flex-direction:column;margin:5px 0}.g3w-layer-positions-info-message[data-v-026784c2]{margin-bottom:5px;font-weight:700}.g3w-layer-positions-checkboxes[data-v-026784c2]{display:flex;justify-content:space-between}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constant = require('app/constant');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: \"layerspositions\",\n props: {\n position: {\n type: String,\n default: _constant.MAP_SETTINGS.LAYER_POSITIONS.default\n }\n },\n data: function data() {\n return {\n layerpositions: _constant.MAP_SETTINGS.LAYER_POSITIONS.getPositions()\n };\n },\n\n methods: {\n change: function change() {\n this.$emit('layer-position-change', this.position);\n }\n },\n created: function created() {\n var _this = this;\n\n this.ids = {\n layerpositions: getUniqueDomId()\n };\n this.layerpositions.forEach(function (lp) {\n return _this.ids[lp] = getUniqueDomId();\n });\n this.change();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g3w-layer-positions\",attrs:{\"id\":_vm.ids.layerpositions}},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(\"layer_position.message\"),expression:\"`layer_position.message`\"}],staticClass:\"g3w-layer-positions-info-message\"}),_vm._v(\" \"),_c('div',{staticClass:\"g3w-layer-positions-checkboxes\"},_vm._l((_vm.layerpositions),function(layerposition){return _c('div',{key:layerposition},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.position),expression:\"position\"}],staticClass:\"form-control magic-radio\",attrs:{\"type\":\"radio\",\"id\":_vm.ids[layerposition]},domProps:{\"value\":layerposition,\"checked\":_vm.position === layerposition,\"checked\":_vm._q(_vm.position,layerposition)},on:{\"change\":[function($event){_vm.position=layerposition},_vm.change]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:((\"layer_position.\" + layerposition)),expression:\"`layer_position.${layerposition}`\"}],attrs:{\"for\":_vm.ids[layerposition]}})])}),0)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-026784c2\"\n\n},{\"app/constant\":5,\"utils\":388,\"vueify/lib/insert-css\":2}],148:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"progressbar\",\n props: ['progress']\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return ((null !== _vm.progress && undefined !== _vm.progress))?_c('div',{staticStyle:{\"margin\":\"5px 0 5px 0\",\"width\":\"100%\",\"backgroundColor\":\"#FFFFFF\",\"border\":\"0\",\"borderRadius\":\"3px\"}},[_c('div',{staticClass:\"skin-background-color\",staticStyle:{\"display\":\"flex\",\"justifyContent\":\"center\",\"fontWeight\":\"bold\"},style:({ width: (_vm.progress < 10 ? 10 : _vm.progress) })},[_c('span',[_vm._v(_vm._s(_vm.progress))])])]):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{}],149:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".min-max-label[data-v-a8bbacb8]{align-self:end;font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n debounce = _require.debounce;\n\nexports.default = {\n name: \"range\",\n props: {\n id: {\n default: undefined\n },\n\n label: {\n type: String,\n default: ''\n },\n\n min: {\n type: Number,\n default: 0\n },\n\n max: {\n type: Number,\n default: 10\n },\n\n step: {\n type: Number,\n default: 1\n },\n\n labelValue: {},\n\n value: {\n default: 0\n },\n\n sync: {\n type: Boolean,\n default: false\n },\n\n showValue: {\n type: Boolean,\n default: false\n },\n\n unit: {\n type: String,\n default: ''\n }\n\n },\n data: function data() {\n return {\n state: { value: this.value }\n };\n },\n\n methods: {\n changeBackGround: function changeBackGround(value) {\n this.$refs['range-input'].style.backgroundSize = (value ? (value - this.min) * 100 / (this.max - this.min) : 0) + '% 100%';\n },\n setValue: function setValue(value) {\n this.changedValue(value);\n },\n change: function change(e) {\n this.changedValue(1 * e.target.value);\n },\n emitChangeValue: function emitChangeValue(value) {\n this.state.value = value;\n this.$emit('change-range', {\n id: this.id,\n value: value\n });\n }\n },\n watch: {\n 'value': function value(_value) {\n this.state.value = _value;\n },\n 'state.value': function stateValue(value) {\n this.changeBackGround(value);\n if (this.sync) {\n this.emitChangeValue(value);\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.changedValue = this.sync ? function () {\n return _this.$emit('changed');\n } : debounce(function (value) {\n _this.emitChangeValue(value);\n });\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n yield this.$nextTick();\n this.changeBackGround(this.value);\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('section',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"font-weight\":\"bold\"}},[_c('section',{staticStyle:{\"align-self\":\"flex-end\"}},[_c('span',{staticClass:\"min-max-label\"},[_vm._v(_vm._s(_vm.min))]),_vm._v(\" \"),_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.unit))])]),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"margin\":\"0 3px\"}},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.label),expression:\"label\"}],staticClass:\"skin-color\",staticStyle:{\"display\":\"block\"},attrs:{\"for\":_vm.id}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],ref:\"range-input\",attrs:{\"type\":\"range\",\"id\":_vm.id,\"min\":_vm.min,\"max\":_vm.max,\"step\":_vm.step},domProps:{\"value\":(_vm.state.value)},on:{\"change\":_vm.change,\"__r\":function($event){return _vm.$set(_vm.state, \"value\", $event.target.value)}}})]),_vm._v(\" \"),_c('section',{staticStyle:{\"align-self\":\"flex-end\"}},[_c('span',{staticClass:\"min-max-label\"},[_vm._v(_vm._s(_vm.max))]),_vm._v(\" \"),_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.unit))])])]),_vm._v(\" \"),(_vm.showValue)?[_c('span',[_vm._v(_vm._s(_vm.state.value))]),_vm._v(\" \"),_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.unit))])]:_vm._e()],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-a8bbacb8\"\n\n},{\"utils\":388,\"vueify/lib/insert-css\":2}],150:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n\n name: \"g3w-resize\",\n\n props: {\n\n show: {\n type: Boolean,\n required: true,\n default: true\n },\n\n orientation: {\n type: String,\n default: 'h'\n },\n\n where: {\n type: String,\n default: 'document'\n },\n\n moveFnc: {\n type: Function,\n default: function _default(e) {\n return console.log(e);\n }\n }\n },\n\n computed: {\n style: function style() {\n return {\n minWidth: '5px',\n backgroundColor: '#dddddd',\n cursor: this.orientation === 'v' ? 'ns-resize' : 'col-resize'\n };\n }\n },\n methods: {\n wrapMoveFnc: function wrapMoveFnc(e) {\n this.moveFnc(e);\n },\n start: function start() {\n this.domElementMoveListen.addEventListener('mousemove', this.wrapMoveFnc);\n this.domElementMoveListen.addEventListener('mouseup', this.stop, { once: true });\n },\n stop: function () {\n var _ref = _asyncToGenerator(function* () {\n this.domElementMoveListen.removeEventListener('mousemove', this.wrapMoveFnc);\n yield this.$nextTick();\n _gui2.default.emit('resize');\n });\n\n function stop() {\n return _ref.apply(this, arguments);\n }\n\n return stop;\n }()\n },\n\n mounted: function () {\n var _ref2 = _asyncToGenerator(function* () {\n this.domElementMoveListen = 'content' === this.where ? document.getElementById('g3w-view-content') : document;\n });\n\n function mounted() {\n return _ref2.apply(this, arguments);\n }\n\n return mounted;\n }(),\n destroyed: function destroyed() {\n this.domElementMoveListen = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],style:(_vm.style),attrs:{\"id\":_vm.$attrs.id},on:{\"mousedown\":function($event){$event.stopPropagation();return _vm.start($event)}}})}\n__vue__options__.staticRenderFns = []\n\n},{\"services/gui\":286}],151:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n\n name: 'resize-icon',\n\n props: {\n\n type: {\n type: String,\n default: 'h'\n }\n\n },\n\n data: function data() {\n return {\n show: undefined !== this.type\n };\n },\n\n\n watch: {\n type: function () {\n var _ref = _asyncToGenerator(function* () {\n this.show = false;\n yield this.$nextTick();\n this.show = true;\n });\n\n function type() {\n return _ref.apply(this, arguments);\n }\n\n return type;\n }()\n },\n\n methods: {\n toggleFull: function toggleFull() {\n _gui2.default.toggleFullViewContent();\n _gui2.default.emit('resize');\n },\n resetToDefault: function resetToDefault() {\n _gui2.default.resetToDefaultContentPercentage();\n _gui2.default.emit('resize');\n }\n }\n\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[(_vm.show)?_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('enlange_reduce'),expression:\"'enlange_reduce'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-color-dark\",class:_vm.g3wtemplate.getFontClass((\"resize-\" + (this.type))),staticStyle:{\"cursor\":\"pointer\",\"margin-right\":\"3px\"},on:{\"click\":_vm.toggleFull}}):_vm._e(),_vm._v(\" \"),_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('reset_default'),expression:\"'reset_default'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-color-dark\",class:_vm.g3wtemplate.getFontClass(\"resize-default\"),staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.resetToDefault}})])}\n__vue__options__.staticRenderFns = []\n\n},{\"services/gui\":286}],152:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".br[data-v-8413fc94]{border-radius:8px}.card[data-v-8413fc94]{width:80%;padding:10px 20px;margin:50px auto}.item[data-v-8413fc94]{height:15px;background:#ccc;margin-top:15px}.item-light[data-v-8413fc94]{background:#ddd}.text80[data-v-8413fc94]{width:80%}.chart-wrapper[data-v-8413fc94]{height:50px;display:flex;align-items:baseline;margin-bottom:20px}.chart-item[data-v-8413fc94]{height:100%;width:15px;background:#ccc;margin-right:10px}.chart-item-80[data-v-8413fc94]{height:80%}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"skeleton\"\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\n__vue__options__.staticRenderFns = [function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card br\"},[_c('div',{staticClass:\"chart-wrapper\"},[_c('div',{staticClass:\"chart-item br\"}),_vm._v(\" \"),_c('div',{staticClass:\"chart-item chart-item-80 item-light br\"}),_vm._v(\" \"),_c('div',{staticClass:\"chart-item br\"}),_vm._v(\" \"),_c('div',{staticClass:\"chart-item br chart-item-80\"})]),_vm._v(\" \"),_c('div',{staticClass:\"item br text80\"}),_vm._v(\" \"),_c('div',{staticClass:\"item item-light br\"}),_vm._v(\" \"),_c('div',{staticClass:\"item br\"}),_vm._v(\" \"),_c('div',{staticClass:\"item item-light br text80\"})])}]\n__vue__options__._scopeId = \"data-v-8413fc94\"\n\n},{\"vueify/lib/insert-css\":2}],153:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".formquerytabs[data-v-2cbd8ce7]{overflow:hidden!important;display:flex;flex-wrap:wrap}.formquerytabs>li[data-v-2cbd8ce7]{flex:1;display:flex}.formquerytabs>li>a[data-v-2cbd8ce7]{font-weight:700;flex:1}.tab-content[data-v-2cbd8ce7]{//margin-top:10px}.nav-tabs>li>a.mobile[data-v-2cbd8ce7]{padding:5px 10px}.tab_a[data-v-2cbd8ce7]{padding:5px;margin-right:0!important;//border:1px solid #eee;border-bottom:0;margin-bottom:3px;border-radius:3px 3px 0 0}.formquerytabs li a.tab_a.group-title[data-v-2cbd8ce7]{color:inherit!important;font-weight:500;font-size:1em!important;padding:.25em;cursor:pointer}.tabs-wrapper>.formquerytabs li a.tab_a.group-title[data-v-2cbd8ce7]:before{content:\\\"▾\\\"}.tabs-wrapper.collapsed>.formquerytabs li a.tab_a.group-title[data-v-2cbd8ce7]:before{content:\\\"▸\\\"}.tabs-wrapper.collapsed>.formquerytabs+.tab-content[data-v-2cbd8ce7]{display:none}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _GlobalTabsNode = require('components/GlobalTabsNode.vue');\n\nvar _GlobalTabsNode2 = _interopRequireDefault(_GlobalTabsNode);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _getFormDataExpressionRequestFromFeature = require('utils/getFormDataExpressionRequestFromFeature');\n\nvar _convertFeatureToGEOJSON = require('utils/convertFeatureToGEOJSON');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId,\n noop = _require.noop;\n\nexports.default = {\n name: \"tabs\",\n props: {\n group: {\n type: Boolean,\n default: false\n },\n contenttype: {\n default: 'query' },\n layerid: {\n required: true\n },\n tabs: {\n required: true\n },\n feature: {\n required: true\n },\n fields: {\n required: true\n },\n addToValidate: {\n type: Function,\n default: noop\n },\n removeToValidate: {\n type: Function,\n default: noop\n },\n changeInput: {\n type: Function,\n default: noop\n },\n showRelationByField: {\n type: Boolean,\n default: true\n },\n handleRelation: {\n type: Function,\n default: function _default() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n relation = _ref.relation,\n layerId = _ref.layerId,\n feature = _ref.feature;\n\n return _gui2.default.getService('queryresults').showRelation({ relation: relation, layerId: layerId, feature: feature });\n }\n }\n },\n data: function data() {\n return {\n ids: []\n };\n },\n\n computed: {\n required_fields: function required_fields() {\n return 'editing' === this.contenttype && this.fields.filter(function (f) {\n return f.validate.required;\n }).map(function (f) {\n return f.name;\n });\n },\n show: function show() {\n return this.tabs.reduce(function (a, t) {\n return a || t.visible === undefined || !!t.visible;\n }, false);\n }\n },\n methods: {\n setVisibility: function () {\n var _ref2 = _asyncToGenerator(function* (tab) {\n tab.visible = yield _data2.default.getData('expression:expression_eval', {\n inputs: {\n qgs_layer_id: this.layerid,\n form_data: ('editing' === this.contenttype ? _convertFeatureToGEOJSON.convertFeatureToGEOJSON : _getFormDataExpressionRequestFromFeature.getFormDataExpressionRequestFromFeature)(this.feature || {}),\n expression: tab.visibility_expression.expression,\n formatter: 'query' === this.contenttype ? 1 : 0\n },\n outputs: false\n });\n });\n\n function setVisibility(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return setVisibility;\n }(),\n setEditingRequireTab: function setEditingRequireTab(obj) {\n var _this = this;\n\n var required = false;\n if (undefined === obj.nodes) {\n required = this.required_fields.indexOf(obj.field_name) !== -1;\n } else {\n required = !!obj.nodes.find(function (n) {\n return _this.setEditingRequireTab(n);\n });\n }\n return required;\n },\n getField: function getField(fieldName) {\n return this.fields.find(function (f) {\n return fieldName === f.name;\n });\n },\n toggleGroup: function toggleGroup(e) {\n var wrapper = e.target.closest('.tabs-wrapper');\n wrapper.classList.toggle('collapsed');\n }\n },\n components: {\n Node: _GlobalTabsNode2.default\n },\n created: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n this.unwatch = [];\n this.tabs.forEach(function () {\n var _ref4 = _asyncToGenerator(function* (tab, i) {\n if (tab.visibility_expression) {\n if (undefined === tab.visible) {\n _this2.$set(tab, 'visible', 0);\n }\n yield _this2.setVisibility(tab);\n }\n if ('editing' === _this2.contenttype) {\n if (undefined === tab.required) {\n tab.required = _this2.setEditingRequireTab(tab);\n }\n if (tab.visibility_expression) {\n tab.visibility_expression.referenced_columns.forEach(function (c) {\n var field = _this2.fields.find(function (f) {\n return c === f.name;\n });\n _this2.unwatch.push(_this2.$watch(function () {\n return field.value;\n }, function () {\n var _ref5 = _asyncToGenerator(function* (v) {\n _this2.feature.set(field.name, v);\n yield _this2.setVisibility(tab);\n });\n\n return function (_x5) {\n return _ref5.apply(this, arguments);\n };\n }()));\n });\n }\n }\n _this2.ids.push('tab_' + getUniqueDomId());\n });\n\n return function (_x3, _x4) {\n return _ref4.apply(this, arguments);\n };\n }());\n\n this.root_tabs = [];\n if (!this.group) {\n var nodes = [];\n this.tabs.forEach(function (tab_node) {\n if (tab_node.nodes) {\n nodes.push(tab_node);\n } else {\n if (nodes.length) {\n _this2.root_tabs.push([].concat(nodes));\n nodes.splice(0);\n }\n _this2.root_tabs.push({ nodes: [tab_node] });\n }\n });\n if (nodes.length) {\n this.root_tabs.push(nodes);\n }\n } else {\n this.root_tabs = [this.tabs];\n }\n });\n\n function created() {\n return _ref3.apply(this, arguments);\n }\n\n return created;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.unwatch.forEach(function (unwatch) {\n return unwatch();\n });\n this.unwatch = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"tabs-wrapper\"},[_vm._l((_vm.root_tabs),function(root_tab){return [(Array.isArray(root_tab))?[_c('ul',{staticClass:\"formquerytabs nav nav-tabs\"},[_vm._l((root_tab),function(tab,index){return [(tab.visible === undefined || tab.visible)?_c('li',{class:{active: index === 0}},[_c('a',{staticClass:\"tab_a\",class:{'mobile': _vm.isMobile(), 'group-title': _vm.group},style:({fontSize: _vm.isMobile() ? '1.0em': ((_vm.group ? '1.1': '1.2') + \"em\")}),attrs:{\"data-toggle\":\"tab\",\"href\":(\"#\" + (_vm.ids[index]))},on:{\"click\":function($event){_vm.group && _vm.toggleGroup($event)}}},[_vm._v(\"\\n \"+_vm._s(tab.name)+\" \"),(_vm.contenttype === 'editing' && tab.required)?_c('span',{staticStyle:{\"padding-left\":\"3px\",\"font-size\":\"1.1em\"}},[_vm._v(\"*\")]):_vm._e()])]):_vm._e()]})],2),_vm._v(\" \"),_c('div',{staticClass:\"tab-content\",class:{editing: 'editing' === _vm.contenttype }},[_vm._l((root_tab),function(tab,index){return [(undefined === tab.visible || tab.visible)?_c('div',{staticClass:\"tab-pane fade\",class:{'in active': index === 0},attrs:{\"id\":_vm.ids[index]}},[_c('node',{attrs:{\"showRelationByField\":_vm.showRelationByField,\"handleRelation\":_vm.handleRelation,\"feature\":_vm.feature,\"layerid\":_vm.layerid,\"contenttype\":_vm.contenttype,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate,\"changeInput\":_vm.changeInput,\"fields\":_vm.fields,\"showTitle\":false,\"node\":tab}})],1):_vm._e()]})],2)]:_c('node',{attrs:{\"showRelationByField\":_vm.showRelationByField,\"handleRelation\":_vm.handleRelation,\"feature\":_vm.feature,\"layerid\":_vm.layerid,\"contenttype\":_vm.contenttype,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate,\"changeInput\":_vm.changeInput,\"fields\":_vm.fields,\"showTitle\":false,\"node\":root_tab}})]})],2):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-2cbd8ce7\"\n\n},{\"components/GlobalTabsNode.vue\":154,\"services/data\":284,\"services/gui\":286,\"utils\":388,\"utils/convertFeatureToGEOJSON\":316,\"utils/getFormDataExpressionRequestFromFeature\":366,\"vueify/lib/insert-css\":2}],154:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".tab-node[data-v-9685e2ee]{min-width:0;overflow:hidden}.title[data-v-9685e2ee]{font-weight:700;width:100%;color:#fff;padding:3px;margin-top:5px;margin-bottom:5px;border-radius:2px}.node-row[data-v-9685e2ee]{margin-bottom:0;column-gap:2px;margin-top:0;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}.row.mobile[data-v-9685e2ee]{margin-bottom:0!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _InputG3W = require('components/InputG3W.vue');\n\nvar _InputG3W2 = _interopRequireDefault(_InputG3W);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Fields = require('gui/fields/fields');\n\nexports.default = {\n name: \"node\",\n props: ['contenttype', 'node', 'fields', 'showTitle', 'addToValidate', 'removeToValidate', 'changeInput', 'layerid', 'feature', 'showRelationByField', 'handleRelation'],\n components: _extends({\n G3wInput: _InputG3W2.default\n }, Fields),\n data: function data() {\n return {\n context: this.contenttype,\n editing_required: false\n };\n },\n\n computed: {\n filterNodes: function filterNodes() {\n var _this = this;\n\n var filterNodes = this.node.nodes && this.node.nodes.filter(function (node) {\n if ('group' === _this.getNodeType(node)) {\n return true;\n } else if (!node.nodes && node.name && 'group' != _this.getNodeType(node)) {\n node.relation = true;\n return true;\n } else {\n return !!_this.fields.find(function (field) {\n return (node.field_name ? node.field_name.replace(/ /g, \"_\") : node.field_name) === field.name || node.relation;\n });\n }\n });\n return filterNodes || [];\n },\n nodesLength: function nodesLength() {\n return this.filterNodes.length;\n },\n rows: function rows() {\n var rowCount = 1;\n if (0 === this.nodesLength) {\n rowCount = 0;\n } else if (this.columnNumber <= this.nodesLength) {\n rowCount = Math.floor(this.nodesLength / this.columnNumber) + this.nodesLength % this.columnNumber;\n }\n return rowCount;\n },\n columnNumber: function columnNumber() {\n var columnCount = parseInt(this.node.columncount) ? parseInt(this.node.columncount) : 1;\n return columnCount > this.nodesLength ? this.nodesLength : columnCount;\n },\n showGroupTile: function showGroupTile() {\n return this.showTitle && this.node.showlabel && this.node.groupbox;\n }\n },\n methods: {\n loadingRelation: function loadingRelation(relation) {\n var layer = _projects2.default.getCurrentProject().getLayerById(this.layerid);\n\n return layer.getRelationById(relation.name) || { state: { loading: false } }.state;\n },\n isRelationDisabled: function isRelationDisabled(relation) {\n return this.getRelationName(relation.name) === undefined || 'editing' === this.contenttype && this.isRelationChildLayerNotEditable(relation);\n },\n getRelationName: function getRelationName(relationId) {\n var relation = _projects2.default.getCurrentProject().getRelationById(relationId);\n return relation && relation.name;\n },\n isRelationChildLayerNotEditable: function isRelationChildLayerNotEditable(relation) {\n var nmRelationId = relation.nmRelationId,\n name = relation.name;\n\n var currentProject = _projects2.default.getCurrentProject();\n var projectRelation = currentProject.getRelationById(name);\n var relationLayerId = projectRelation.referencingLayer;\n var relationLayer = currentProject.getLayerById(relationLayerId);\n\n return !relationLayer.isEditable();\n },\n getNodes: function getNodes(row) {\n var startIndex = (row - 1) * this.columnNumber;\n return this.filterNodes.slice(startIndex, this.columnNumber + startIndex);\n },\n getNode: function getNode(row, column) {\n return this.getNodes(row)[column - 1];\n },\n getField: function getField(node) {\n if (node.relation) {\n return node;\n }\n return this.fields.find(function (f) {\n return (node.field_name ? node.field_name.replace(/ /g, \"_\") : node.field_name) === f.name;\n });\n },\n getNodeType: function getNodeType(node) {\n var type = node.groupbox || node.nodes ? 'group' : node.relation ? 'relation' : 'field';\n if ('field' === type && [undefined, ''].includes(node.alias)) {\n node.alias = node.field_name;\n }\n return type;\n },\n getComponent: function getComponent(field) {\n if (field.relation) {\n return;\n } else if (field.query) {\n return field.input.type;\n } else {\n return 'g3w-input';\n }\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tab-node group\"},[(_vm.showGroupTile)?_c('h5',{staticClass:\"title group-title\",class:{'mobile': _vm.isMobile()},style:({fontSize: _vm.isMobile() ? '1em' : '1.1em'})},[_vm._v(_vm._s(_vm.node.name)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.rows),function(row){return _c('div',{staticClass:\"node-row\",class:{'mobile': _vm.isMobile()}},[_vm._l((_vm.columnNumber),function(column){return [(_vm.getNode(row, column))?[('field' === _vm.getNodeType(_vm.getNode(row, column)))?_c(_vm.getComponent(_vm.getField(_vm.getNode(row, column))),{tag:\"component\",staticStyle:{\"padding\":\"5px 3px 5px 3px\"},attrs:{\"state\":_vm.getField(_vm.getNode(row, column)),\"changeInput\":_vm.changeInput,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate,\"feature\":_vm.feature},on:{\"changeinput\":_vm.changeInput,\"addinput\":_vm.addToValidate,\"removeinput\":_vm.removeToValidate}}):[('group' === _vm.getNodeType(_vm.getNode(row, column)))?_c('tabs',_vm._b({staticClass:\"sub-group\",staticStyle:{\"width\":\"100% !important\"},attrs:{\"group\":true,\"tabs\":[_vm.getNode(row, column)]}},'tabs',_vm.$props,false)):[(_vm.showRelationByField)?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.isRelationDisabled(_vm.getNode(row, column)) || _vm.loadingRelation(_vm.getNode(row, column)).loading),expression:\"isRelationDisabled(getNode(row, column)) || loadingRelation(getNode(row, column)).loading\"}],style:({cursor: _vm.showRelationByField && 'pointer'}),on:{\"click\":function($event){$event.stopPropagation();_vm.handleRelation({relation: _vm.getNode(row, column), feature:_vm.feature, layerId: _vm.layerid})}}},[_c('bar-loader',{attrs:{\"loading\":_vm.loadingRelation(_vm.getNode(row, column)).loading}}),_vm._v(\" \"),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticClass:\"query_relation_field\"},[_c('i',{class:_vm.g3wtemplate.font[(\"\" + (_vm.context === 'query' ? 'relation' : 'pencil'))]})]),_vm._v(\" \"),_c('span',{staticClass:\"query_relation_field_message g3w-long-text\"},[_c('span',{staticStyle:{\"text-transform\":\"uppercase\"}},[_vm._v(\" \"+_vm._s(_vm.getRelationName(_vm.getNode(row, column).name)))])])])],1):_vm._e()]]]:_vm._e()]})],2)})],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-9685e2ee\"\n\n},{\"components/InputG3W.vue\":161,\"gui/fields/fields\":66,\"store/projects\":301,\"vueify/lib/insert-css\":2}],155:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'header-item',\n\n props: ['state'],\n methods: {\n showCustomModal: function showCustomModal(id) {\n this.$emit('show-custom-modal-content', id);\n }\n },\n created: function created() {\n this.state.type = this.state.type || 'link';\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"customheaderlink dropdown user user-menu\",attrs:{\"title\":_vm.state.title}},[('link' === _vm.state.type)?_c('a',{staticClass:\"dropdown-toggle\",class:{ imagelink : !!_vm.state.img},attrs:{\"href\":_vm.state.url,\"target\":_vm.state.target}},[(_vm.state.img)?_c('img',{staticStyle:{\"max-height\":\"20px\"},attrs:{\"src\":_vm.state.img}}):_c('span',[(_vm.state.i18n)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.state.title),expression:\"state.title\"}]}):_c('span',[_vm._v(_vm._s(_vm.state.title))])])]):('modal' === _vm.state.type)?_c('a',{staticClass:\"dropdown-toggle\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#custom_modal\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showCustomModal(_vm.state.id)}}},[_c('span',[_vm._v(_vm._s(_vm.state.title))])]):_vm._e()])}\n__vue__options__.staticRenderFns = []\n\n},{}],156:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".control-label[data-v-cb533ff6]{text-align:left!important;padding-top:0!important;margin-bottom:3px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _mixins = require('mixins');\n\nexports.default = _extends({\n name: \"InputBase\",\n props: ['state']\n}, _mixins.baseInputMixin);\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.state.visible)?_c('div',{staticClass:\"form-group\"},[_vm._t(\"label\",[_c('label',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],staticClass:\"col-sm-12 control-label\",attrs:{\"for\":_vm.state.name}},[(_vm.state.i18nLabel)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.state.label),expression:\"state.label\"}]}):_c('span',[_vm._v(_vm._s(_vm.state.label))]),_vm._v(\" \"),(_vm.state.validate && _vm.state.validate.required)?_c('span',[_vm._v(\"*\")]):_vm._e(),_vm._v(\" \"),(_vm.showhelpicon)?_c('i',{staticClass:\"skin-color\",class:_vm.g3wtemplate.font['info'],staticStyle:{\"margin-left\":\"3px\",\"cursor\":\"pointer\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showHideHelp($event)}}}):_vm._e(),_vm._v(\" \"),_vm._t(\"label-action\")],2)]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-12\"},[_vm._t(\"loading\",[(_vm.loadingState === 'loading')?_c('div',{staticStyle:{\"position\":\"relative\",\"width\":\"100%\"},attrs:{\"slot\":\"loading\"},slot:\"loading\"},[_c('bar-loader',{attrs:{\"loading\":\"true\"}})],1):_vm._e()]),_vm._v(\" \"),_vm._t(\"body\"),_vm._v(\" \"),_vm._t(\"message\",[(_vm.notvalid)?_c('p',{staticClass:\"g3w-long-text error-input-message\",staticStyle:{\"margin\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.state.validate.message)}}):(_vm.state.info)?_c('p',{staticStyle:{\"margin\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.state.info)}}):_vm._e()]),_vm._v(\" \"),(_vm.state.help && this.state.help.visible)?_c('div',{staticClass:\"g3w_input_help skin-background-color extralighten\",domProps:{\"innerHTML\":_vm._s(_vm.state.help.message)}}):_vm._e()],2)],2):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-cb533ff6\"\n\n},{\"mixins\":274,\"vueify/lib/insert-css\":2}],157:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require('mixins');\n\nvar Input = require('gui/inputs/input');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: 'input-checkbox',\n\n mixins: [Input, _mixins.widgetMixins],\n data: function data() {\n return {\n value: null,\n label: null,\n id: getUniqueDomId() };\n },\n\n methods: {\n setLabel: function setLabel() {\n this.label = this.service.convertCheckedToValue(this.value);\n },\n setValue: function setValue() {\n this.value = this.service.convertValueToChecked();\n },\n changeCheckBox: function changeCheckBox() {\n this.setLabel();\n this.widgetChanged();\n },\n stateValueChanged: function stateValueChanged() {\n this.setValue();\n this.setLabel();\n }\n },\n created: function created() {\n this.value = this.state.forceNull ? this.value : this.service.convertValueToChecked();\n },\n mounted: function mounted() {\n if (!this.state.forceNull) this.setLabel();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],staticStyle:{\"height\":\"20px\",\"margin-top\":\"8px\"},attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"magic-checkbox\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\"},attrs:{\"tabIndex\":_vm.tabIndex,\"type\":\"checkbox\",\"id\":_vm.id},domProps:{\"checked\":Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:(_vm.value)},on:{\"change\":[function($event){var $$a=_vm.value,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.value=$$a.concat([$$v]))}else{$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.value=$$c}},_vm.changeCheckBox]}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))])])])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"mixins\":274,\"utils\":388}],158:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-color',\n\n mixins: [Input]\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"cursor\":\"pointer\"},attrs:{\"slot\":\"body\",\"placeholder\":_vm.state.default,\"type\":\"color\",\"tabIndex\":_vm.tabIndex,\"field\":_vm.state.name,\"id\":_vm.state.name},domProps:{\"value\":(_vm.state.value)},on:{\"change\":_vm.change,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)}},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],159:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _mixins = require('mixins');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Input = require('gui/inputs/input');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: 'input-datetime-picker',\n\n mixins: [Input, _mixins.resizeMixin],\n\n data: function data() {\n var uniqueValue = getUniqueDomId();\n return {\n widget_container: {\n top: 0,\n left: 0\n },\n iddatetimepicker: 'datetimepicker_' + uniqueValue,\n idinputdatetimepiker: 'inputdatetimepicker_' + uniqueValue\n };\n },\n\n\n methods: {\n resize: function resize() {\n var domeDataPicker = $('#' + this.iddatetimepicker);\n if (domeDataPicker && domeDataPicker.data(\"DateTimePicker\")) {\n domeDataPicker.data(\"DateTimePicker\").hide();\n }\n },\n timeOnly: function timeOnly() {\n return !this.state.input.options.formats[0].date;\n },\n onDatePickerChange: function onDatePickerChange() {\n var newDate = $('#' + this.idinputdatetimepiker).val();\n this.state.value = _.isEmpty(_.trim(newDate)) ? null : moment(newDate, this.datetimedisplayformat).format(this.datetimefieldformat);\n this.change();\n },\n onDatePickerShow: function onDatePickerShow(evt) {\n var _this = this;\n\n this.widget_container.top = 0;\n this.widget_container.left = 0;\n\n setTimeout(function () {\n var container = _this.$refs.datetimepicker_body.getBoundingClientRect();\n var modal = _this.$refs.datimewidget_container.querySelector('.bootstrap-datetimepicker-widget').getBoundingClientRect();\n _this.widget_container.top = container.top + (container.top < modal.height ? container.height + Math.abs(container.top - modal.height) + 20 : 0);\n _this.widget_container.left = container.left - Math.max(container.width, modal.width);\n _this.$emit('datetimepickershow');\n });\n },\n onDatePickerHide: function onDatePickerHide(evt) {\n this.$emit('datetimepickershow');\n }\n },\n watch: {\n 'state.value': function () {\n var _ref = _asyncToGenerator(function* (value) {\n if (value !== $('#' + this.idinputdatetimepiker).val()) {\n var date = null !== value ? moment(value, this.datetimefieldformat).format(this.datetimedisplayformat) : value;\n yield this.$nextTick();\n $('#' + this.idinputdatetimepiker).val(date);\n }\n });\n\n function stateValue(_x) {\n return _ref.apply(this, arguments);\n }\n\n return stateValue;\n }()\n },\n\n mounted: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var _state$input$options = this.state.input.options,\n _state$input$options$ = _state$input$options.formats,\n formats = _state$input$options$ === undefined ? [] : _state$input$options$,\n _state$input$options$2 = _state$input$options.layout,\n layout = _state$input$options$2 === undefined ? {\n vertical: \"top\",\n horizontal: \"left\"\n } : _state$input$options$2;\n var _formats$ = formats[0],\n minDate = _formats$.minDate,\n maxDate = _formats$.maxDate,\n fieldformat = _formats$.fieldformat,\n enabledDates = _formats$.enabledDates,\n disabledDates = _formats$.disabledDates,\n displayformat = _formats$.displayformat,\n useCurrent = _formats$.useCurrent;\n\n\n yield this.$nextTick();\n\n this.datetimedisplayformat = this.service.convertQGISDateTimeFormatToMoment(displayformat);\n this.datetimefieldformat = this.service.convertQGISDateTimeFormatToMoment(fieldformat);\n\n this.service.setValidatorOptions({ fielddatetimeformat: this.datetimefieldformat });\n\n var date = moment(this.state.value, this.datetimefieldformat, true).isValid() ? moment(this.state.value, this.datetimefieldformat).toDate() : null;\n\n $('#' + this.iddatetimepicker).datetimepicker({\n defaultDate: date,\n format: this.datetimedisplayformat,\n ignoreReadonly: true,\n allowInputToggle: true,\n enabledDates: enabledDates,\n disabledDates: disabledDates,\n useCurrent: useCurrent,\n toolbarPlacement: 'top',\n minDate: minDate,\n maxDate: maxDate,\n widgetParent: $(this.$refs.datimewidget_container),\n widgetPositioning: {\n vertical: layout.vertical || 'top',\n horizontal: layout.horizontal || 'left'\n },\n showClose: true,\n locale: this.service.getLocale()\n });\n\n $('#' + this.iddatetimepicker).on(\"dp.change\", this.onDatePickerChange);\n $('#' + this.iddatetimepicker).on(\"dp.show\", this.onDatePickerShow);\n $('#' + this.iddatetimepicker).on(\"dp.hide\", this.onDatePickerHide);\n\n if (_applicationState2.default.ismobile) {\n setTimeout(function () {\n $('#' + _this2.idinputdatetimepiker).blur();\n });\n }\n });\n\n function mounted() {\n return _ref2.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{ref:\"datetimepicker_body\",attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('div',{ref:\"datimewidget_container\",style:({\n top: _vm.widget_container.top + 'px',\n left: _vm.widget_container.left + 'px',\n position: 'fixed',\n zIndex: 10000,\n })}),_vm._v(\" \"),_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],staticClass:\"input-group date\",attrs:{\"id\":_vm.iddatetimepicker}},[_c('input',{staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},attrs:{\"type\":\"text\",\"id\":_vm.idinputdatetimepiker,\"tabIndex\":_vm.tabIndex,\"readonly\":!_vm.editable || _vm.isMobile() ? 'readonly' : null}}),_vm._v(\" \"),_c('span',{staticClass:\"input-group-addon caret\"},[_c('span',{class:[ _vm.g3wtemplate.getFontClass(_vm.timeOnly() ? 'time' : 'calendar') ]})])])])])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"mixins\":274,\"store/application-state\":294,\"utils\":388}],160:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-float',\n\n mixins: [Input]\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\"},attrs:{\"slot\":\"body\",\"tabIndex\":_vm.tabIndex,\"type\":\"number\",\"step\":_vm.state.step || 1,\"placeholder\":_vm.state.default},domProps:{\"value\":(_vm.state.value)},on:{\"change\":_vm.change,\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)},_vm.change]},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],161:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar Inputs = require('gui/inputs/inputs');\n\nexports.default = {\n name: \"g3w-input\",\n props: {\n state: {\n required: true\n },\n addToValidate: {\n type: Function,\n required: true\n },\n removeToValidate: {\n type: Function,\n required: true\n },\n changeInput: {\n type: Function,\n required: true\n }\n },\n components: _extends({}, Inputs),\n computed: {\n type: function type() {\n if (this.state.type !== 'child') return this.state.input.type ? this.state.input.type + '_input' : this.state.type + '_input';\n }\n },\n created: function created() {\n if (this.state.type !== 'child' && !this.state.input.options) this.state.input.options = {};\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.state.visible)?_c('div',[(_vm.state.type !== 'child')?_c('div',[_c(_vm.type,{tag:\"component\",attrs:{\"changeInput\":_vm.changeInput,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate,\"state\":_vm.state},on:{\"changeinput\":_vm.changeInput,\"addinput\":_vm.addToValidate,\"removeinput\":_vm.removeToValidate}}),_vm._v(\" \"),_c('divider')],1):_c('div',{staticClass:\"skin-border-color field-child\",staticStyle:{\"border-top\":\"2px solid\"}},[_c('h4',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.state.label))]),_vm._v(\" \"),_c('div',[_vm._v(\" \"+_vm._s(_vm.state.description)+\" \")]),_vm._v(\" \"),_vm._l((_vm.state.fields),function(field){return _c('g3w-input',{key:field.name,attrs:{\"state\":field,\"changeInput\":_vm.changeInput,\"addToValidate\":_vm.addToValidate,\"removeToValidate\":_vm.removeToValidate},on:{\"changeinput\":_vm.changeInput,\"addinput\":_vm.addToValidate,\"removeinput\":_vm.removeToValidate}})})],2)]):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/inputs\":78}],162:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#g3w-for-inputs-required-inputs-message[data-v-06573254]{margin-bottom:5px;font-weight:700;text-align:center;display:flex;align-items:center;justify-content:center}.box-body[data-v-06573254]{padding:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _InputG3W = require(\"components/InputG3W.vue\");\n\nvar _InputG3W2 = _interopRequireDefault(_InputG3W);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"g3w-form-inputs\",\n props: {\n state: {\n type: Object,\n default: {\n fields: []\n }\n },\n addToValidate: {\n type: Function\n },\n changeInput: {\n type: Function\n },\n show_required_field_message: {\n type: Boolean,\n default: false\n },\n removeToValidate: {\n type: Function\n }\n\n },\n components: {\n G3wInput: _InputG3W2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"form-horizontal g3w-form\"},[_c('div',{staticClass:\"box-primary\"},[_c('div',{staticClass:\"box-body\"},[_vm._l((_vm.state.fields),function(field){return [_c('g3w-input',{attrs:{\"state\":field,\"removeToValidate\":_vm.removeToValidate,\"addToValidate\":_vm.addToValidate,\"changeInput\":_vm.changeInput},on:{\"addToValidate\":_vm.addToValidate,\"changeInput\":_vm.changeInput}})]})],2),_vm._v(\" \"),(_vm.show_required_field_message)?_c('div',{attrs:{\"id\":\"g3w-for-inputs-required-inputs-message\"}},[_c('span',{staticClass:\"hide-cursor-caret-color\"},[_vm._v(\"*\")]),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.form.footer.required_fields'),expression:\"'sdk.form.footer.required_fields'\"}],staticClass:\"hide-cursor-caret-color\"})]):_vm._e()])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-06573254\"\n\n},{\"components/InputG3W.vue\":161,\"vueify/lib/insert-css\":2}],163:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-integer',\n\n mixins: [Input]\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\"},attrs:{\"slot\":\"body\",\"placeholder\":_vm.state.default,\"tabIndex\":_vm.tabIndex,\"type\":\"number\"},domProps:{\"value\":(_vm.state.value)},on:{\"change\":_vm.change,\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)},_vm.change]},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],164:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-lonlat',\n\n mixins: [Input],\n data: function data() {\n return {\n lonId: getUniqueDomId(),\n latId: getUniqueDomId(),\n coordinatebutton: {\n active: false\n }\n };\n },\n\n computed: {\n getCoordinateActive: function getCoordinateActive() {\n return this.service.state.getCoordinateActive;\n }\n },\n methods: {\n toggleGetCoordinate: function toggleGetCoordinate() {\n this.service.toggleGetCoordinate();\n },\n changeLonLat: function changeLonLat() {\n this.change();\n this.setValue();\n },\n setValue: function setValue() {\n this.state.value = [[1 * this.state.values.lon, 1 * this.state.values.lat]];\n }\n },\n created: function created() {\n this.state.values = this.state.values || { lon: 0, lat: 0 };\n this.setValue();\n this.service.setCoordinateButtonReactiveObject(this.coordinatebutton);\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n yield this.$nextTick();\n this.$nextTick(function () {\n $(_this.$refs['g3w-input-lat-lon']).tooltip({\n trigger: 'hover'\n });\n });\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }(),\n destroyed: function destroyed() {\n this.service.clear();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"position\":\"relative\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"flex-end\",\"height\":\"35px\",\"margin-right\":\"12px\",\"margin-bottom\":\"5px\"}},[_c('button',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.form.inputs.tooltips.lonlat'),expression:\"'sdk.form.inputs.tooltips.lonlat'\"}],ref:\"g3w-input-lat-lon\",staticClass:\"action skin-tooltip-left skin-color skin-border-color\",class:_vm.g3wtemplate.font['crosshairs'],staticStyle:{\"border-radius\":\"5px\",\"font-weight\":\"bold\",\"font-size\":\"20px\",\"cursor\":\"pointer\"},style:({border: _vm.coordinatebutton.active ? '2px solid' : 0}),attrs:{\"data-placement\":\"left\",\"data-container\":\"body\",\"data-toggle\":\"tooltip\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleGetCoordinate($event)}}})]),_vm._v(\" \"),_c('baseinput',{attrs:{\"state\":_vm.state}},[_c('label',{staticClass:\"col-sm-4 control-label\",attrs:{\"slot\":\"label\",\"for\":_vm.lonId},slot:\"label\"},[_vm._v(_vm._s(_vm.state.labels.lon)+\"\\n \"),(_vm.state.validate && _vm.state.validate.required)?_c('span',[_vm._v(\"*\")]):_vm._e()]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.values.lon),expression:\"state.values.lon\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"5px\"},attrs:{\"id\":_vm.lonId,\"tabIndex\":_vm.tabIndex,\"type\":\"number\",\"min\":\"-180\",\"max\":\"180\",\"placeholder\":\"Lon\"},domProps:{\"value\":(_vm.state.values.lon)},on:{\"change\":_vm.changeLonLat,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.state.values, \"lon\", $event.target.value)}}})])]),_vm._v(\" \"),_c('baseinput',{attrs:{\"state\":_vm.state}},[_c('label',{staticClass:\"col-sm-4 control-label\",attrs:{\"slot\":\"label\",\"for\":_vm.latId},slot:\"label\"},[_vm._v(_vm._s(_vm.state.labels.lat)+\"\\n \"),(_vm.state.validate && _vm.state.validate.required)?_c('span',[_vm._v(\"*\")]):_vm._e()]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.values.lat),expression:\"state.values.lat\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"5px\"},attrs:{\"id\":_vm.latId,\"tabIndex\":_vm.tabIndex,\"type\":\"number\",\"min\":\"-90\",\"max\":\"90\",\"placeholder\":\"Lon\"},domProps:{\"value\":(_vm.state.values.lat)},on:{\"change\":_vm.changeLonLat,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.state.values, \"lat\", $event.target.value)}}})])])],1)}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"utils\":388}],165:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar InputMixins = require('gui/inputs/input');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nvar _require2 = require('core/i18n/i18n.service'),\n t = _require2.t;\n\nvar _require3 = require('gui/fields/fields'),\n MediaField = _require3.media_field;\n\nexports.default = {\n name: 'input-media',\n\n mixins: [InputMixins],\n components: {\n 'g3w-media': MediaField\n },\n data: function data() {\n return {\n data: {\n value: null,\n mime_type: null\n },\n mediaid: 'media_' + getUniqueDomId(),\n loading: false\n };\n },\n\n methods: {\n onClick: function onClick(e) {\n document.getElementById(this.mediaid).click();\n },\n createImage: function createImage(file, field) {\n var reader = new FileReader();\n reader.onload = function (e) {\n field.value = e.target.result;\n };\n reader.readAsDataURL(file);\n },\n checkFileSrc: function checkFileSrc(value) {\n if (_.isNil(value)) {\n value = '';\n }\n return value;\n },\n clearMedia: function clearMedia() {\n this.data.value = this.data.mime_type = this.state.value = null;\n this.change();\n }\n },\n created: function created() {\n if (this.state.value) {\n this.data.value = this.state.value.value;\n this.data.mime_type = this.state.value.mime_type;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n var fieldName = this.state.name;\n var formData = {\n name: fieldName,\n csrfmiddlewaretoken: this.$cookie.get('csrftoken')\n };\n this.$nextTick(function () {\n $('#' + _this.mediaid).fileupload({\n dataType: 'json',\n formData: formData,\n start: function start() {\n _this.loading = true;\n },\n done: function done(e, data) {\n var response = data.result[fieldName];\n if (response) {\n _this.data.value = response.value;\n _this.data.mime_type = response.mime_type;\n _this.state.value = _this.data;\n _this.change();\n }\n },\n fail: function fail() {\n _gui2.default.notify.error(t(\"info.server_error\"));\n },\n always: function always() {\n _this.loading = false;\n }\n });\n });\n },\n beforeDestroy: function beforeDestroy() {\n $('#' + this.mediaid).fileupload('destroy');\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('div',{staticClass:\"g3w_input_button skin-border-color\",staticStyle:{\"border-style\":\"solid\",\"border-width\":\"2px\",\"border-radius\":\"4px\",\"width\":\"100%\",\"cursor\":\"pointer\",\"text-align\":\"center\"},on:{\"click\":_vm.onClick}},[_c('i',{staticClass:\"fa-2x skin-color\",class:_vm.g3wtemplate.getFontClass('file-upload'),staticStyle:{\"padding\":\"5px\"}},[_c('input',{class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"display\":\"none\"},attrs:{\"id\":_vm.mediaid,\"name\":_vm.state.name,\"tabIndex\":_vm.tabIndex,\"data-url\":_vm.state.input.options.uploadurl,\"type\":\"file\"}})])]),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('g3w-media',{attrs:{\"state\":_vm.data}},[_c('div',{staticClass:\"clearmedia\",on:{\"click\":function($event){return _vm.clearMedia()}}},[_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['trash-o']})])])],1)])}\n__vue__options__.staticRenderFns = []\n\n},{\"core/i18n/i18n.service\":12,\"gui/fields/fields\":66,\"gui/inputs/input\":77,\"services/gui\":286,\"utils\":388}],166:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\nvar Service = require('gui/inputs/picklayer/service');\n\nexports.default = {\n name: 'input-picklayer',\n\n mixins: [Input],\n methods: {\n pickLayer: function pickLayer() {\n var _this = this;\n\n this.pickservice.pick().then(function (value) {\n return _this.state.value = value;\n }).catch(function () {});\n },\n unpick: function unpick() {\n var _this2 = this;\n\n setTimeout(function () {\n return !_this2.pickservice.isPicked() && _this2.pickservice.unpick();\n }, 200);\n }\n },\n created: function created() {\n this.pickservice = new Service(this.state.input.options);\n },\n beforeDestroy: function beforeDestroy() {\n this.pickservice.clear();\n this.pickservice = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('span',{staticClass:\"skin-color\",class:_vm.g3wtemplate.font['crosshairs'],staticStyle:{\"left\":\"0\",\"top\":\"7px\",\"position\":\"absolute\"}}),_vm._v(\" \"),_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\"},style:({cursor: _vm.editable ? 'pointer': null}),attrs:{\"readonly\":\"readonly\",\"tabIndex\":_vm.tabIndex},domProps:{\"value\":(_vm.state.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)},_vm.change],\"click\":_vm.pickLayer,\"blur\":_vm.unpick}})])])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"gui/inputs/picklayer/service\":85}],167:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: 'input-radio',\n\n mixins: [Input],\n data: function data() {\n return {\n ids: [getUniqueDomId(), getUniqueDomId()],\n name: 'name_' + getUniqueDomId(),\n radio_value: this.state.value\n };\n },\n\n watch: {\n 'radio_value': function radio_value() {\n this.state.value = this.radio_value;\n this.change();\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},_vm._l((_vm.state.input.options.values),function(value,index){return _c('span',{key:value.key},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.radio_value),expression:\"radio_value\"}],staticClass:\"magic-radio\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\"},attrs:{\"id\":_vm.ids[index],\"name\":_vm.name,\"tabIndex\":_vm.tabIndex,\"type\":\"radio\"},domProps:{\"value\":value.value,\"checked\":_vm._q(_vm.radio_value,value.value)},on:{\"change\":function($event){_vm.radio_value=value.value}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.ids[index]}},[_vm._v(_vm._s(value.key))])])}),0)])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"utils\":388}],168:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-range',\n\n mixins: [Input],\n data: function data() {\n var _state$input$options$ = this.state.input.options.values[0],\n min = _state$input$options$.min,\n max = _state$input$options$.max,\n step = _state$input$options$.Step;\n\n return {\n min: min,\n max: max,\n step: step\n };\n },\n\n methods: {\n checkValue: function checkValue() {\n var isEmpty = _.isEmpty(_.trim(this.state.value));\n\n if (isEmpty && !this.state.validate.required) {\n this.state.value = this.state.input.options.values[0].default;\n }\n\n this.state.validate.valid = !this.state.validate.required;\n\n if (!isEmpty) {\n this.state.validate.valid = this.service.getValidator().validate(this.state.value);\n }\n\n this.change();\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\",\"padding-right\":\"5px\"},attrs:{\"slot\":\"body\",\"tabIndex\":_vm.tabIndex,\"type\":\"number\",\"step\":_vm.step},domProps:{\"value\":(_vm.state.value)},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==69){ return null; }$event.preventDefault();},function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==13){ return null; }$event.stopPropagation();}],\"change\":_vm.checkValue,\"blur\":_vm.checkValue,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)}},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],169:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-input-pick-layer[data-v-6b3d29b0]{cursor:pointer;position:relative;top:2px;font-size:1.2em}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _mapLayers = require('store/map-layers');\n\nvar _mapLayers2 = _interopRequireDefault(_mapLayers);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _mixins = require('mixins');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n createSingleFieldParameter = _require.createSingleFieldParameter;\n\nvar PickLayerInputService = require('gui/inputs/picklayer/service');\nvar Layer = require('core/layers/layer');\nvar InputMixin = require('gui/inputs/input');\n\nvar G3W_SELECT2_NULL_VALUE = null;exports.default = {\n name: 'input-select',\n\n mixins: [InputMixin, _mixins.selectMixin, _mixins.select2Mixin],\n data: function data() {\n return {\n showPickLayer: false,\n picked: false,\n filterFields: [],\n isFilterFieldsReady: false };\n },\n\n computed: {\n showNullOption: function showNullOption() {\n return [undefined, true].includes(this.state.nullOption);\n },\n select2NullValue: function select2NullValue() {\n return this.showNullOption && G3W_SELECT2_NULL_VALUE;\n }\n },\n methods: {\n pickLayerValue: function () {\n var _ref = _asyncToGenerator(function* () {\n try {\n if (this.picked) {\n this.pickLayerInputService.unpick();\n this.picked = false;\n } else {\n this.picked = true;\n var values = yield this.pickLayerInputService.pick();\n\n if (this.autocomplete) {\n this.state.input.options.values.splice(0, this.state.input.options.values.length, {\n key: values[this.state.input.options.key],\n value: values[this.state.input.options.value]\n });\n yield this.$nextTick();\n }\n var field = this.state.input.options.value;\n\n var value = values[field];\n this.select2.val(value).trigger('change');\n yield this.changeSelect(value);\n _gui2.default.showUserMessage({ type: 'success', autoclose: true });\n this.picked = false;\n }\n } catch (err) {\n _gui2.default.showUserMessage({\n type: \"warning\",\n message: 'sdk.form.inputs.messages.errors.picklayer',\n autoclose: true\n });\n this.picked = false;\n }\n });\n\n function pickLayerValue() {\n return _ref.apply(this, arguments);\n }\n\n return pickLayerValue;\n }(),\n setAndListenSelect2Change: function setAndListenSelect2Change() {\n var _this = this;\n\n this.select2.on('select2:select', function (event) {\n var value = event.params.data.$value ? event.params.data.$value : event.params.data.id;\n\n value = _this.showNullOption ? value === G3W_SELECT2_NULL_VALUE ? null : value.toString() : value.toString();\n\n _this.changeSelect(value);\n });\n }\n },\n\n watch: {\n 'state.input.options.values': function () {\n var _ref2 = _asyncToGenerator(function* (values) {\n var _this2 = this;\n\n yield this.$nextTick();\n if (this.autocomplete) {\n return;\n }\n\n var value = void 0;\n if (values.length === 0) {\n value = G3W_SELECT2_NULL_VALUE;\n } else {\n var findvalue = values.find(function (keyvalue) {\n return keyvalue.value == _this2.state.value;\n });\n value = undefined === findvalue ? G3W_SELECT2_NULL_VALUE : findvalue.value;\n }\n\n var changed = value != this.state.value;\n this.state.value = value;\n this.setValue();\n\n if (changed) {\n this.change();\n }\n });\n\n function stateInputOptionsValues(_x) {\n return _ref2.apply(this, arguments);\n }\n\n return stateInputOptionsValues;\n }()\n },\n\n created: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n this.unwatch;\n this.filterFieldsUnwatches;\n\n var _state$input$options = this.state.input.options,\n _state$input$options$ = _state$input$options.filter_fields,\n filter_fields = _state$input$options$ === undefined ? [] : _state$input$options$,\n _state$input$options$2 = _state$input$options.relation_reference,\n relation_reference = _state$input$options$2 === undefined ? false : _state$input$options$2,\n relation_id = _state$input$options.relation_id,\n _state$input$options$3 = _state$input$options.chain_filters,\n chain_filters = _state$input$options$3 === undefined ? false : _state$input$options$3;\n\n if (relation_reference && Array.isArray(filter_fields) && filter_fields.length > 0) {\n this.setLoading(true);\n\n this.isFilterFieldsReady = false;\n\n var _ProjectsRegistry$get = _projects2.default.getCurrentProject().getRelationById(relation_id),\n referencedLayer = _ProjectsRegistry$get.referencedLayer,\n referencingLayer = _ProjectsRegistry$get.referencingLayer,\n _ProjectsRegistry$get2 = _ProjectsRegistry$get.fieldRef,\n referencingField = _ProjectsRegistry$get2.referencingField,\n referencedField = _ProjectsRegistry$get2.referencedField;\n\n var layer = _catalogLayers2.default.getLayerById(referencingLayer);\n\n var relationLayer = _catalogLayers2.default.getLayerById(referencedLayer);\n\n var relationLayerFields = relationLayer.getFields();\n\n if (null !== this.state.value) {\n try {\n var _ref4 = yield relationLayer.getFilterData({\n formatter: 0,\n field: createSingleFieldParameter({\n field: referencedField[0],\n value: this.state.value })\n }),\n _ref4$data = _ref4.data,\n data = _ref4$data === undefined ? [] : _ref4$data;\n\n this.state.input.options.values = ((yield layer.getFilterData({\n fformatter: referencingField[0],\n order: referencingField[0],\n\n ffield: filter_fields.map(function (f, i) {\n var value = undefined === data[0].features[0].get(f) ? '' + G3W_SELECT2_NULL_VALUE : data[0].features[0].get(f);\n\n _this3.filterFields.push({\n id: f,\n values: [{\n key: '[' + relationLayerFields.find(function (_f) {\n return _f.name === f;\n }).label + ']',\n value: '' + G3W_SELECT2_NULL_VALUE }],\n value: value,\n disabled: chain_filters && i > 0 && '' + G3W_SELECT2_NULL_VALUE === _this3.filterFields[filter_fields[i - 1]]\n });\n return createSingleFieldParameter({\n field: f,\n value: value\n });\n }).join('|AND,')\n })).data || []).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n value = _ref6[0],\n key = _ref6[1];\n\n return { key: key, value: value };\n });\n\n if (chain_filters) {\n (yield relationLayer.getFilterData({\n unique: filter_fields[0],\n ordering: filter_fields[0],\n formatter: 0\n })).forEach(function (v) {\n return _this3.filterFields[0].values.push({ key: v, value: v });\n });\n\n (yield Promise.allSettled(filter_fields.slice(1).map(function (f, i) {\n return relationLayer.getFilterData({\n unique: filter_fields[i + 1],\n ordering: filter_fields[i + 1],\n formatter: 0,\n field: _this3.filterFields.slice(0, i + 1).filter(function (f) {\n return 'null' !== f.value;\n }).map(function (f) {\n return createSingleFieldParameter({\n field: f.id,\n value: f.value\n });\n }).join('|AND,')\n });\n }))).forEach(function (_ref7, i) {\n var status = _ref7.status,\n data = _ref7.value;\n\n if ('fulfilled' === status) {\n data.forEach(function (v) {\n return _this3.filterFields[i + 1].values.push({ key: v, value: v });\n });\n }\n });\n } else {\n (yield Promise.allSettled(filter_fields.map(function (f) {\n return relationLayer.getFilterData({ unique: f, ordering: f, formatter: 0 });\n }))).forEach(function (_ref8, index) {\n var status = _ref8.status,\n data = _ref8.value;\n\n if ('fulfilled' === status) {\n data.forEach(function (v) {\n return _this3.filterFields[index].values.push({ key: v, value: v });\n });\n }\n });\n }\n } catch (err) {\n console.warn(err);\n }\n } else {\n (yield Promise.allSettled(filter_fields.map(function (f, i) {\n _this3.filterFields.push({\n id: f,\n values: [{\n key: '[' + relationLayerFields.find(function (_f) {\n return _f.name === f;\n }).label + ']',\n value: '' + G3W_SELECT2_NULL_VALUE }],\n value: '' + G3W_SELECT2_NULL_VALUE,\n disabled: chain_filters && i > 0\n });\n return relationLayer.getFilterData({\n unique: f,\n formatter: 0,\n ordering: f\n });\n }))).forEach(function (_ref9, i) {\n var status = _ref9.status,\n data = _ref9.value;\n\n if ('fulfilled' === status) {\n data.forEach(function (v) {\n return _this3.filterFields[i].values.push({ key: v, value: v });\n });\n }\n });\n }\n\n this.filterFieldsUnwatches = this.filterFields.map(function (f, index) {\n return _this3.$watch(function () {\n return f.value;\n }, function () {\n var _ref10 = _asyncToGenerator(function* (value) {\n _this3.setLoading(true);\n\n if (chain_filters) {\n for (var i = index + 1; i < _this3.filterFields.length; i++) {\n _this3.filterFields[i].value = '' + G3W_SELECT2_NULL_VALUE;\n _this3.filterFields[i].values = [_this3.filterFields[i].values[0]];\n _this3.filterFields[i].disabled = '' + G3W_SELECT2_NULL_VALUE === value;\n }\n try {\n var filter = _this3.filterFields.slice(0, index + 1).filter(function (f) {\n return '' + G3W_SELECT2_NULL_VALUE !== f.value;\n }).map(function (f) {\n return createSingleFieldParameter({\n field: f.id,\n value: f.value\n });\n }).join('|AND,');\n\n var _ref11 = yield relationLayer.getFilterData({ field: filter }),\n _ref11$data = _ref11.data,\n rdata = _ref11$data === undefined ? [] : _ref11$data;\n\n if (rdata[0] && rdata[0].features) {\n var filterReferencedFieldValues = [];\n rdata[0].features.forEach(function (f) {\n filterReferencedFieldValues.push(f.get(referencedField));\n if (index < _this3.filterFields.length - 1) {\n var _value = f.get(_this3.filterFields[index + 1].id);\n _this3.filterFields[index + 1].values.push({ key: _value, value: _value });\n }\n });\n }\n } catch (err) {\n console.warn(err);\n }\n }\n _this3.state.input.options.values = ((yield layer.getFilterData({\n fformatter: referencingField[0],\n ordering: referencingField[0],\n ffield: _this3.filterFields.filter(function (f) {\n return '' + G3W_SELECT2_NULL_VALUE !== f.value;\n }).map(function (f) {\n return createSingleFieldParameter({ field: f.id, value: f.value });\n }).join('|AND,')\n })).data || []).map(function (_ref12) {\n var _ref13 = _slicedToArray(_ref12, 2),\n value = _ref13[0],\n key = _ref13[1];\n\n return { key: key, value: value };\n });\n\n if (_this3.state.input.options.values.length > 0) {\n _this3.state.value = _this3.state.input.options.values[0].value;\n _this3.select2.val(_this3.state.value).trigger('change');\n yield _this3.changeSelect(_this3.state.value);\n }\n\n _this3.setLoading(false);\n });\n\n return function (_x2) {\n return _ref10.apply(this, arguments);\n };\n }());\n });\n\n this.setLoading(false);\n\n this.isFilterFieldsReady = true;\n }\n\n if ('select_autocomplete' === this.state.input.type) {\n var dependencyLayerId = this.state.input.options.layer_id;\n try {\n var dependencyLayer = _mapLayers2.default.getLayerById(dependencyLayerId).getEditingLayer() || _catalogLayers2.default.getLayerById(dependencyLayerId);\n\n this.showPickLayer = dependencyLayer && Layer.LayerTypes.TABLE !== dependencyLayer.getType();\n if (this.showPickLayer) {\n var _state$input$options2 = this.state.input.options,\n key = _state$input$options2.key,\n value = _state$input$options2.value,\n layer_id = _state$input$options2.layer_id;\n\n this.pickLayerInputService = new PickLayerInputService({\n layer_id: layer_id,\n fields: [value, key],\n pick_type: dependencyLayer.isStarted && dependencyLayer.isStarted() ? 'map' : null\n });\n }\n } catch (err) {}\n }\n });\n\n function created() {\n return _ref3.apply(this, arguments);\n }\n\n return created;\n }(),\n mounted: function () {\n var _ref14 = _asyncToGenerator(function* () {\n var _this4 = this;\n\n yield this.$nextTick();\n\n var selectElement = $(this.$refs.select);\n var language = this.getLanguage();\n var dropdownParent = undefined === this.state.dropdownParent && $('#g3w-view-content');\n\n if (this.autocomplete) {\n this.select2 = selectElement.select2({\n minimumInputLength: 1,\n dropdownParent: dropdownParent,\n allowClear: this.showNullOption,\n placeholder: '',\n language: language,\n ajax: {\n delay: 250,\n transport: function transport(params, success, failure) {\n var search = params.data.term;\n\n $('.select2-results__option.loading-results').siblings().hide();\n _this4.resetValues();\n _this4.service.getData({ search: search }).then(function (values) {\n return success(values);\n }).catch(function (err) {\n return failure(err);\n });\n },\n processResults: function processResults(data, params) {\n params.page = params.page || 1;\n return {\n results: data,\n pagination: {\n more: false\n }\n };\n } }\n });\n\n if (this.state.value) {\n this.state.input.options.values.splice(0);\n\n yield this.service.getKeyByValue({\n search: this.state.value\n });\n }\n if (this.showNullOption) {\n this.select2.on('select2:unselect', function () {\n _this4.changeSelect(null);\n });\n }\n } else {\n this.select2 = selectElement.select2({\n language: language,\n dropdownParent: dropdownParent,\n minimumResultsForSearch: this.isMobile() ? -1 : null\n });\n }\n this.setAndListenSelect2Change();\n this.setValue();\n });\n\n function mounted() {\n return _ref14.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n if (this.pickLayerInputService) {\n this.pickLayerInputService.clear();\n this.pickLayerInputService = null;\n }\n if (this.unwatch) {\n this.unwatch();\n this.unwatch = null;\n }\n\n if (this.filterFieldsUnwatches) {\n this.filterFieldsUnwatches.forEach(function (uw) {\n return uw();\n });\n this.filterFieldsUnwatches = null;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[(_vm.showPickLayer)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.form.inputs.tooltips.picklayer'),expression:\"'sdk.form.inputs.tooltips.picklayer'\",arg:\"top\",modifiers:{\"create\":true}},{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disabled),expression:\"disabled\"}],staticClass:\"g3w-input-pick-layer skin-color\",attrs:{\"slot\":\"label-action\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.pickLayerValue($event)}},slot:\"label-action\"},[_c('i',{class:_vm.g3wtemplate.font['crosshairs']})]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disabled),expression:\"disabled\"}],attrs:{\"slot\":\"body\",\"tabIndex\":_vm.tabIndex},slot:\"body\"},[(_vm.filterFields.length > 0 && _vm.isFilterFieldsReady)?_c('div',{staticClass:\"g3w-relation-reference-fields-content\"},[_vm._l((_vm.filterFields),function(rf,index){return [_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('filterFields'),expression:\"'filterFields'\"}],ref:(\"filterField_\" + (rf.id)),refInFor:true,staticClass:\"form-control\",staticStyle:{\"width\":\"100%\"},attrs:{\"select2_value\":rf.value,\"indexItem\":index,\"id\":rf.id,\"disabled\":rf.disabled}},_vm._l((rf.values),function(ref){\nvar key = ref.key;\nvar value = ref.value;\nreturn _c('option',{domProps:{\"value\":_vm.getValue(value)}},[_vm._v(\"\\n \"+_vm._s(key)+\"\\n \")])}),0)]}),_vm._v(\" \"),_c('divider')],2):_vm._e(),_vm._v(\" \"),_c('select',{ref:\"select\",staticClass:\"form-control\",staticStyle:{\"width\":\"100%\"}},[(_vm.showNullOption)?_c('option',{domProps:{\"value\":_vm.select2NullValue}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.state.input.options.values),function(ref){\nvar key = ref.key;\nvar value = ref.value;\nreturn _c('option',{key:_vm.getValue(value),domProps:{\"value\":_vm.getValue(value)}},[_vm._v(\"\\n \"+_vm._s(key)+\"\\n \")])})],2)]),_vm._v(\" \"),('error' === _vm.loadingState )?_c('p',{directives:[{name:\"t\",rawName:\"v-t\",value:('server_error'),expression:\"'server_error'\"}],staticClass:\"error-input-message\",attrs:{\"slot\":\"message\"},slot:\"message\"}):_vm._e()])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-6b3d29b0\"\n\n},{\"core/layers/layer\":20,\"gui/inputs/input\":77,\"gui/inputs/picklayer/service\":85,\"mixins\":274,\"services/gui\":286,\"store/catalog-layers\":295,\"store/map-layers\":299,\"store/projects\":301,\"utils\":388,\"vueify/lib/insert-css\":2}],170:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: 'input-slider-range',\n\n mixins: [Input],\n watch: {\n 'state.input.options.min': function stateInputOptionsMin() {\n this.service.changeInfoMessage();\n },\n 'state.input.options.max': function stateInputOptionsMax() {\n this.service.changeInfoMessage();\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.state.value))]),_vm._v(\" \"),_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"width\":\"100%\",\"padding-right\":\"5px\"},attrs:{\"slot\":\"body\",\"tabIndex\":_vm.tabIndex,\"min\":_vm.state.input.options.min,\"max\":_vm.state.input.options.max,\"type\":\"range\",\"step\":_vm.state.input.options.step},domProps:{\"value\":(_vm.state.value)},on:{\"change\":_vm.change,\"__r\":function($event){return _vm.$set(_vm.state, \"value\", $event.target.value)}},slot:\"body\"})])])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],171:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: \"input-text\",\n\n mixins: [Input]\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],staticClass:\"form-control\",class:{'input-error-validation' : _vm.notvalid},attrs:{\"slot\":\"body\",\"placeholder\":_vm.state.default,\"tabIndex\":_vm.tabIndex,\"field\":_vm.state.name,\"id\":_vm.state.name},domProps:{\"value\":(_vm.state.value)},on:{\"keyup\":function($event){_vm.isMobile() ? _vm.mobileChange($event) : _vm.change()},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)}},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77}],172:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"textarea[data-v-3ac5abe4]{resize:none;border:1px solid #ccc}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: \"input-textarea\",\n\n mixins: [Input]\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('textarea',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.value),expression:\"state.value\"}],class:{'input-error-validation' : _vm.notvalid},staticStyle:{\"max-width\":\"100%\",\"min-width\":\"100%\"},attrs:{\"slot\":\"body\",\"placeholder\":_vm.state.default,\"rows\":\"3\",\"tabIndex\":_vm.tabIndex},domProps:{\"value\":(_vm.state.value)},on:{\"keydown\":function($event){$event.stopPropagation();},\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"value\", $event.target.value)},_vm.change],\"change\":_vm.change},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-3ac5abe4\"\n\n},{\"gui/inputs/input\":77,\"vueify/lib/insert-css\":2}],173:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"button.ql-html{width:40px!important}button.ql-html:after{content:\\\"html\\\"}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nvar Input = require('gui/inputs/input');\n\nexports.default = {\n name: \"input-html\",\n\n mixins: [Input],\n methods: {\n setupTableCustomTools: function setupTableCustomTools() {\n var buttonColumnLeft = this.$el.querySelector('.ql-column-left');\n buttonColumnLeft.innerHTML = '
';\n buttonColumnLeft.title = \"Add column left\";\n\n var buttonColumnRight = this.$el.querySelector('.ql-column-right');\n buttonColumnRight.innerHTML = '
';\n buttonColumnRight.title = \"Add column right\";\n\n var buttonColumnRemove = this.$el.querySelector('.ql-column-remove');\n buttonColumnRemove.innerHTML = '
';\n buttonColumnRemove.title = \"Remove column\";\n\n var buttonRowAbove = this.$el.querySelector('.ql-row-above');\n buttonRowAbove.innerHTML = '
';\n buttonRowAbove.title = \"Add row above\";\n\n\n var buttonRowBelow = this.$el.querySelector('.ql-row-below');\n buttonRowBelow.innerHTML = '
';\n buttonRowBelow.title = \"Add row below\";\n\n var buttonRowRemove = this.$el.querySelector('.ql-row-remove');\n buttonRowRemove.innerHTML = '
';\n buttonRowRemove.title = \"Remove row\";\n }\n },\n created: function created() {\n this.edit_state = {\n edit: false,\n show_html: false\n };\n\n if (!this.state.edit_states) this.state.edit_states = [];\n this.state.edit_states.push(this.edit_state);\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n var toolbarOptions = [[{ header: [1, 2, 3, 4, 5, 6, false] }], [{ 'align': '' }, { 'align': 'center' }, { 'align': 'right' }, { 'align': 'justify' }], [{ 'color': [] }, { 'background': [] }], ['bold', 'italic', 'underline', { 'list': 'ordered' }, { 'list': 'bullet' }, 'link', 'clean', 'html'], ['table', 'column-left', 'column-right', 'column-remove', 'row-above', 'row-below', 'row-remove']];\n yield this.$nextTick();\n this.quill = new Quill(this.$refs.quill_editor, {\n modules: {\n table: true,\n toolbar: {\n container: toolbarOptions,\n handlers: {\n html: function html() {\n _this.edit_state.show_html = !_this.edit_state.show_html;\n if (_this.edit_state.show_html) _this.quill.container.firstChild.innerText = _this.quill.container.firstChild.innerHTML;else _this.quill.container.firstChild.innerHTML = _this.quill.container.firstChild.innerText;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = _this.$el.querySelectorAll('.ql-formats')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var qlformat = _step.value;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = qlformat.children[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var child = _step2.value;\n\n if (!child.classList.contains('ql-html')) child.classList.toggle('g3w-disabled');else child.classList.toggle('skin-color');\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n 'column-left': function columnLeft() {\n return _this.table.insertColumnLeft();\n },\n 'column-right': function columnRight() {\n return _this.table.insertColumnRight();\n },\n 'column-remove': function columnRemove() {\n return _this.table.deleteColumn();\n },\n 'row-above': function rowAbove() {\n return _this.table.insertRowAbove();\n },\n 'row-below': function rowBelow() {\n return _this.table.insertRowBelow();\n },\n 'row-remove': function rowRemove() {\n return _this.table.deleteRow();\n }\n }\n\n }\n },\n theme: 'snow'\n });\n this.quill.container.firstChild.innerHTML = this.state.value;\n\n this.table = this.quill.getModule('table');\n this.setupTableCustomTools();\n\n this.handler = function () {\n _this.state.value = _this.edit_state.show_html ? _this.quill.container.firstChild.innerText : _this.quill.container.firstChild.innerHTML;\n _this.edit_state.edit = true;\n _this.change();\n setTimeout(function () {\n return _this.edit_state.edit = false;\n });\n };\n\n this.quill.on('text-change', this.handler);\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }(),\n\n watch: {\n 'state.value': function stateValue(value) {\n if (!this.edit_state.edit) {\n if (this.edit_state.show_html) this.quill.container.firstChild.innerText = value;else this.quill.container.firstChild.innerHTML = value;\n }\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.quill.off('text-change', this.handler);\n this.handler = null;\n this.quill = null;\n this.edit_state.edit = false;\n this.edit_state.show_html = false;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],attrs:{\"state\":_vm.state}},[_c('div',{ref:\"quill_editor\",staticClass:\"form-control\",style:({border: _vm.novalid ? '1px solid reed' : '1px solid #ccc'}),attrs:{\"slot\":\"body\"},on:{\"keydown\":function($event){$event.stopPropagation();}},slot:\"body\"})])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"utils\":388,\"vueify/lib/insert-css\":2}],174:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require('mixins');\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Input = require('gui/inputs/input');\n\nvar _require = require('utils'),\n getUniqueDomId = _require.getUniqueDomId;\n\nexports.default = {\n name: \"input-unique\",\n\n mixins: [Input, _mixins.selectMixin],\n data: function data() {\n var id = 'unique_' + getUniqueDomId();\n return { id: id };\n },\n\n watch: {\n 'state.input.options.values': function () {\n var _ref = _asyncToGenerator(function* (values) {\n this.state.value = this.state.value ? this.state.value : null;\n this.state.value !== null && values.indexOf(this.state.value) === -1 && this.service.addValueToValues(this.state.value);\n yield this.$nextTick();\n this.state.value && this.select2.val(this.state.value).trigger('change');\n });\n\n function stateInputOptionsValues(_x) {\n return _ref.apply(this, arguments);\n }\n\n return stateInputOptionsValues;\n }()\n },\n mounted: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var _this = this;\n\n yield this.$nextTick();\n if (this.state.input.options.editable) {\n this.select2 = $('#' + this.id).select2({\n dropdownParent: $('#g3w-view-content'),\n tags: true,\n language: this.getLanguage()\n });\n this.select2.val(this.state.value).trigger('change');\n this.select2.on('select2:select', function (event) {\n var value = event.params.data.$value ? event.params.data.$value : event.params.data.id;\n _this.changeSelect(value);\n });\n }\n });\n\n function mounted() {\n return _ref2.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baseinput',{attrs:{\"state\":_vm.state}},[_c('select',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.editable),expression:\"!editable\"}],staticClass:\"form-control\",staticStyle:{\"width\":\"100%\"},attrs:{\"slot\":\"body\",\"id\":_vm.id,\"tabIndex\":_vm.tabIndex},slot:\"body\"},[_c('option',{attrs:{\"value\":\"null\"}}),_vm._v(\" \"),_vm._l((_vm.state.input.options.values),function(value){return _c('option',{key:value,domProps:{\"value\":_vm.getValue(value)}},[_vm._v(_vm._s(_vm.getValue(value)))])})],2)])}\n__vue__options__.staticRenderFns = []\n\n},{\"gui/inputs/input\":77,\"mixins\":274,\"utils\":388}],175:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"li .item-text[data-v-41231f64]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _eventbus = require('app/eventbus');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'Layeropacitypicker',\n\n props: {\n layer: {\n type: Object,\n required: true\n }\n },\n\n data: function data() {\n return {\n menu: {\n show: false,\n top: 0,\n left: 0,\n overflowY: 'none',\n style: null,\n default: null\n }\n };\n },\n\n methods: {\n setLayerOpacity: function setLayerOpacity(_ref) {\n var _ref$id = _ref.id,\n id = _ref$id === undefined ? this.layer.id : _ref$id,\n opacity = _ref.value;\n\n if (this.layer.opacity == opacity) {\n return;\n }\n this.layer.opacity = opacity;\n var layer = _catalogLayers2.default.getLayerById(id);\n if (layer) {\n _eventbus.CatalogEventBus.$emit('layer-change-opacity', { layerId: id });\n layer.change();\n }\n },\n showLayerOpacityMenu: function () {\n var _ref2 = _asyncToGenerator(function* (bool, evt) {\n this.$emit('show-menu-item', { menu: this.menu, bool: bool, evt: evt });\n });\n\n function showLayerOpacityMenu(_x, _x2) {\n return _ref2.apply(this, arguments);\n }\n\n return showLayerOpacityMenu;\n }()\n },\n\n created: function created() {\n this.$emit('init-menu-item', { layerOpacity: this.menu });\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"mouseleave\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showLayerOpacityMenu(false, $event)},\"mouseover\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.showLayerOpacityMenu(true, $event)}}},[_c('span',{staticClass:\"menu-icon skin-color-dark\",class:_vm.g3wtemplate.getFontClass('slider')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('catalog_items.contextmenu.layer_opacity'),expression:\"'catalog_items.contextmenu.layer_opacity'\"}],staticClass:\"item-text\"}),_vm._v(\" \"),_c('span',{staticClass:\"menu-icon\",class:_vm.g3wtemplate.getFontClass('arrow-right'),staticStyle:{\"position\":\"absolute\",\"right\":\"0\",\"margin-top\":\"3px\"}}),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.layer && _vm.menu.show),expression:\"layer && menu.show\"}],style:({\n top: _vm.menu.top + 'px',\n left: _vm.menu.left - 15 + 'px',\n maxHeight: _vm.menu.maxHeight + 'px',\n overflowY: _vm.menu.overflowY,\n paddingLeft: 0,\n position: 'fixed',\n backgroundColor: '#FFF',\n color: '#000',\n })},[_c('li',[_c('range',{attrs:{\"value\":_vm.layer.opacity,\"min\":0,\"max\":100,\"step\":1,\"sync\":false,\"showValue\":true,\"unit\":'%'},on:{\"change-range\":_vm.setLayerOpacity}})],1)])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-41231f64\"\n\n},{\"app/eventbus\":45,\"store/catalog-layers\":295,\"vueify/lib/insert-css\":2}],176:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#marker[data-v-70e886b4]{width:15px;height:15px;border:2px solid #ff0;border-radius:10px;background-color:#ff0;opacity:.8}.g3w-map-controls-left-bottom[data-v-70e886b4]{position:absolute;bottom:75px;left:10px;z-index:1}#g3w-map-info[data-v-70e886b4]{position:absolute;top:60px;left:5px;font-weight:700;z-index:100;background:hsla(0,0%,100%,.6);padding:5px;border-radius:3px}#g3w-maps[data-v-70e886b4]{position:relative;width:100%;height:100%}.g3w-map[data-v-70e886b4]{position:absolute;width:100%;height:100%}.g3w-map.show[data-v-70e886b4]{display:block}.g3w-map.hide[data-v-70e886b4]{display:none}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _MapAddLayer = require('components/MapAddLayer.vue');\n\nvar _MapAddLayer2 = _interopRequireDefault(_MapAddLayer);\n\nvar _MapFooter = require('components/MapFooter.vue');\n\nvar _MapFooter2 = _interopRequireDefault(_MapFooter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'g3w-map',\n\n data: function data() {\n var service = this.$options.service;\n\n return {\n target: this.$options.service.target,\n maps_container: this.$options.service.maps_container,\n hidemaps: service.state.hidemaps,\n map_info: service.state.map_info,\n service: service\n };\n },\n\n components: {\n 'addlayer': _MapAddLayer2.default,\n MapFooter: _MapFooter2.default\n },\n computed: {\n mapcontrolsalignement: function mapcontrolsalignement() {\n return this.service.state.mapcontrolsalignement;\n },\n disableMapControls: function disableMapControls() {\n return this.service.state.mapControl.disabled;\n }\n },\n methods: {\n showHideControls: function showHideControls() {\n this.service.getMapControls().forEach(function (c) {\n return \"scaleline\" !== c.type && c.control.showHide();\n });\n }\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n this.crs = this.service.getCrs();\n yield this.$nextTick();\n this.service.setMapControlsContainer($(this.$refs['g3w-map-controls']));\n\n this.service.onafter('addHideMap', _asyncToGenerator(function* () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n ratio = _ref3.ratio,\n _ref3$layers = _ref3.layers,\n layers = _ref3$layers === undefined ? [] : _ref3$layers,\n _ref3$mainview = _ref3.mainview,\n mainview = _ref3$mainview === undefined ? false : _ref3$mainview,\n _ref3$switchable = _ref3.switchable,\n switchable = _ref3$switchable === undefined ? false : _ref3$switchable;\n\n yield _this.$nextTick();\n _this.service._addHideMap({ ratio: ratio, layers: layers, mainview: mainview, switchable: switchable });\n }));\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }(),\n destroyed: function destroyed() {\n this.service.clear();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":_vm.maps_container}},[_vm._l((_vm.hidemaps),function(hidemap){return _c('div',{key:hidemap.id,staticClass:\"g3w-map hidemap\",attrs:{\"id\":hidemap.id}})}),_vm._v(\" \"),_c('div',{staticClass:\"g3w-map\",attrs:{\"id\":_vm.target}},[_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disableMapControls),expression:\"disableMapControls\"}],ref:\"g3w-map-controls\",staticClass:\"g3w-map-controls\",class:_vm.mapcontrolsalignement,staticStyle:{\"display\":\"flex\"}}),_vm._v(\" \"),(_vm.map_info.info)?_c('div',{ref:\"g3w-map-info\",style:(_vm.map_info.style),attrs:{\"id\":\"g3w-map-info\"}},[_vm._v(\"\\n \"+_vm._s(_vm.map_info.info)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('addlayer',{attrs:{\"service\":_vm.service}}),_vm._v(\" \"),_c('div',{staticClass:\"g3w-map-controls-left-bottom\"})],1),_vm._v(\" \"),_c('map-footer',{attrs:{\"service\":_vm.service}})],2)}\n__vue__options__.staticRenderFns = [function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"none\"}},[_c('div',{attrs:{\"id\":\"marker\"}})])}]\n__vue__options__._scopeId = \"data-v-70e886b4\"\n\n},{\"components/MapAddLayer.vue\":177,\"components/MapFooter.vue\":180,\"vueify/lib/insert-css\":2}],177:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#addcustomlayer[data-v-2e549814]{margin:10px 0;position:relative;border:2px dashed #97a1a8}#addcustomlayer h4[data-v-2e549814],#addcustomlayer p[data-v-2e549814]{text-align:center;line-height:30px;color:#97a1a8;font-family:Arial}#addcustomlayer div[data-v-2e549814]{text-align:center;line-height:30px;color:#97a1a8}#addcustomlayer input[data-v-2e549814]{position:absolute;margin:0;padding:0;width:100%;height:100%;outline:none;opacity:0;cursor:pointer}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vueColor = require('vue-color');\n\nvar _constant = require('app/constant');\n\nvar _createVectorLayerFromFile = require('utils/createVectorLayerFromFile');\n\nvar _createStyleFunctionToVectorLayer = require('utils/createStyleFunctionToVectorLayer');\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Projections = require('g3w-ol/projection/projections');\n\nvar SUPPORTED_FORMAT = ['zip', 'geojson', 'GEOJSON', 'kml', 'kmz', 'KMZ', 'KML', 'json', 'gpx', 'gml', 'csv'];\nvar CSV_SEPARATORS = [',', ';'];\n\n_vueColor.Chrome.mounted = _asyncToGenerator(function* () {\n yield this.$nextTick();\n $('.vue-color__chrome__toggle-btn').remove();\n $('.vue-color__editable-input__label').remove();\n $('.vue-color__chrome__saturation-wrap').css('padding-bottom', '100px');\n $('.vue-color__chrome').css({\n 'box-shadow': '0 0 0 0',\n 'border': '1px solid #97A1A8'\n });\n});\n\nexports.default = {\n name: 'map-add-layer',\n\n props: ['service'],\n data: function data() {\n var MAPEPSG = this.service.getCrs();\n _constant.EPSG.find(function (epsg) {\n return MAPEPSG === epsg;\n }) === undefined && _constant.EPSG.unshift(MAPEPSG);\n return {\n vectorLayer: null,\n options: _constant.EPSG,\n error: false,\n error_message: null,\n position: null,\n loading: false,\n fields: [],\n field: null,\n accepted_extension: SUPPORTED_FORMAT.map(function (f) {\n return '.' + f;\n }).join(','),\n csv: {\n valid: false,\n loading: false,\n headers: [],\n x: null,\n y: null,\n separators: CSV_SEPARATORS,\n separator: CSV_SEPARATORS[0]\n },\n layer: {\n name: null,\n type: null,\n crs: null,\n mapCrs: null,\n color: {\n hex: '#194d33',\n rgba: {\n r: 25,\n g: 77,\n b: 51,\n a: 1\n },\n a: 1\n },\n data: null,\n visible: true,\n title: null,\n id: null,\n external: true\n }\n };\n },\n\n components: {\n 'chrome-picker': _vueColor.Chrome\n },\n computed: {\n csv_extension: function csv_extension() {\n return 'csv' === this.layer.type;\n },\n add: function add() {\n return this.layer.data || this.csv.valid;\n }\n },\n methods: {\n setLayerMapPosition: function setLayerMapPosition(position) {\n this.position = position;\n },\n setError: function setError(type) {\n this.error_message = 'sdk.errors.' + type;\n this.error = true;\n },\n clearError: function clearError() {\n this.error = false;\n this.error_message = null;\n },\n onChangeColor: function onChangeColor(val) {\n this.layer.color = val;\n },\n onAddLayer: function () {\n var _ref2 = _asyncToGenerator(function* (evt) {\n var _this = this;\n\n var reader = new FileReader();\n var name = evt.target.files[0].name;\n var type = evt.target.files[0].name.split('.');\n type = type[type.length - 1].toLowerCase();\n var input_file = $(this.$refs.input_file);\n if (SUPPORTED_FORMAT.includes(type)) {\n this.clearError();\n this.layer.mapCrs = this.service.getEpsg();\n this.layer.name = name;\n this.layer.title = name;\n this.layer.id = name;\n this.layer.type = type;\n if ('csv' === this.layer.type) {\n reader.onload = function (evt) {\n input_file.val(null);\n var csv_data = evt.target.result.split(/\\r\\n|\\n/).filter(function (row) {\n return row;\n });\n\n var _csv_data = _toArray(csv_data),\n headers = _csv_data[0],\n values = _csv_data.slice(1);\n\n var handle_csv_headers = function handle_csv_headers(separator) {\n var data = null;\n _this.csv.loading = true;\n var csv_headers = headers.split(separator);\n var headers_length = csv_headers.length;\n if (headers_length > 1) {\n _this.csv.headers = csv_headers;\n _this.fields = csv_headers;\n _this.csv.x = csv_headers[0];\n _this.csv.y = csv_headers[1];\n data = {\n headers: csv_headers,\n separator: separator,\n x: _this.csv.x,\n y: _this.csv.y,\n values: values\n };\n _this.csv.valid = true;\n } else {\n _this.csv.headers = _this.fields = [];\n _this.vectorLayer = null;\n _this.csv.valid = false;\n _this.fields.splice(0);\n }\n _this.csv.loading = false;\n return data;\n };\n _this.layer.data = handle_csv_headers(_this.csv.separator);\n _this.$watch('csv.separator', function (s) {\n return _this.layer.data = handle_csv_headers(s);\n });\n };\n reader.readAsText(evt.target.files[0]);\n } else {\n var promiseData = new Promise(function (resolve, reject) {\n if (['zip', 'kmz'].includes(_this.layer.type)) {\n var data = evt.target.files[0];\n input_file.val(null);\n resolve(data);\n } else {\n reader.onload = function (evt) {\n var data = evt.target.result;\n input_file.val(null);\n resolve(data);\n };\n reader.readAsText(evt.target.files[0]);\n }\n });\n this.layer.data = yield promiseData;\n try {\n this.fields.splice(0);\n yield this.createVectorLayer();\n this.fields = this.vectorLayer.get('_fields');\n } catch (e) {\n console.warn(e);\n }\n }\n } else {\n this.setError('unsupported_format');\n }\n });\n\n function onAddLayer(_x) {\n return _ref2.apply(this, arguments);\n }\n\n return onAddLayer;\n }(),\n createVectorLayer: function () {\n var _ref3 = _asyncToGenerator(function* () {\n try {\n this.vectorLayer = yield (0, _createVectorLayerFromFile.createVectorLayerFromFile)(this.layer);\n yield this.$nextTick();\n } catch (e) {\n console.warn(e);this.setError('add_external_layer');\n }\n });\n\n function createVectorLayer() {\n return _ref3.apply(this, arguments);\n }\n\n return createVectorLayer;\n }(),\n addLayer: function () {\n var _ref4 = _asyncToGenerator(function* () {\n if (this.layer.data || this.csv.valid) {\n var crs = this.layer.crs;\n\n try {\n try {\n yield Projections.registerProjection(crs);\n } catch (e) {\n this.setError(e);\n console.warn(e);\n return;\n }\n\n this.loading = true;\n this.vectorLayer = yield (0, _createVectorLayerFromFile.createVectorLayerFromFile)(this.layer);\n this.vectorLayer.setStyle((0, _createStyleFunctionToVectorLayer.createStyleFunctionToVectorLayer)({\n color: this.layer.color,\n field: this.field\n }));\n yield this.service.addExternalLayer(this.vectorLayer, {\n crs: this.layer.crs,\n type: this.layer.type,\n position: this.position\n });\n $(this.$refs.modal_addlayer).modal('hide');\n this.clear();\n } catch (err) {\n this.setError('add_external_layer');\n }\n this.loading = false;\n }\n });\n\n function addLayer() {\n return _ref4.apply(this, arguments);\n }\n\n return addLayer;\n }(),\n clear: function clear() {\n this.clearError();\n this.loading = false;\n this.layer.name = null;\n this.layer.title = null;\n this.layer.id = null;\n this.layer.type = null;\n this.layer.crs = this.service.getCrs();\n this.layer.color = {\n hex: '#194d33',\n rgba: { r: 25, g: 77, b: 51, a: 1 },\n a: 1\n };\n this.layer.data = null;\n this.vectorLayer = null;\n this.fields = [];\n this.field = null;\n this.csv.valid = false;\n },\n clearLayer: function clearLayer() {\n this.clear();\n }\n },\n watch: {\n 'csv.x': function csvX(value) {\n if (![undefined, null].includes(value)) {\n this.layer.data.x = value;\n }\n },\n 'csv.y': function csvY(value) {\n if (![undefined, null].includes(value)) {\n this.layer.data.y = value;\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n this.layer.crs = this.service.getCrs();\n this.service.on('addexternallayer', function () {\n return _this2.modal.modal('show');\n });\n },\n mounted: function () {\n var _ref5 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n yield this.$nextTick();\n this.modal = $('#modal-addlayer').modal('hide');\n this.modal.on('hide.bs.modal', function () {\n return _this3.clear();\n });\n });\n\n function mounted() {\n return _ref5.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.clear();\n this.modal.modal('hide');\n this.modal.remove();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"modal_addlayer\",staticClass:\"modal fade\",attrs:{\"id\":\"modal-addlayer\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"×\")]),_vm._v(\" \"),_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.header'),expression:\"'mapcontrols.add_layer_control.header'\"}],staticClass:\"modal-title\",staticStyle:{\"font-weight\":\"bold\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_projection'),expression:\"'mapcontrols.add_layer_control.select_projection'\"}],attrs:{\"for\":\"projection-layer\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.layer.crs),expression:\"layer.crs\"}],staticClass:\"form-control\",attrs:{\"id\":\"projection-layer\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.layer, \"crs\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.options),function(option){return _c('option',{domProps:{\"value\":option}},[_vm._v(_vm._s(option))])}),0)]),_vm._v(\" \"),_c('layerspositions',{on:{\"layer-position-change\":function($event){return _vm.setLayerMapPosition($event)}}}),_vm._v(\" \"),_c('p',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_color'),expression:\"'mapcontrols.add_layer_control.select_color'\"}],staticStyle:{\"font-weight\":\"700\"}}),_vm._v(\" \"),_c('chrome-picker',{staticStyle:{\"width\":\"100%\",\"margin\":\"auto\"},on:{\"input\":_vm.onChangeColor},model:{value:(_vm.layer.color),callback:function ($$v) {_vm.$set(_vm.layer, \"color\", $$v)},expression:\"layer.color\"}}),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('form',{attrs:{\"id\":\"addcustomlayer\"}},[_c('input',{ref:\"input_file\",attrs:{\"type\":\"file\",\"title\":\" \",\"accept\":_vm.accepted_extension},on:{\"change\":function($event){return _vm.onAddLayer($event)}}}),_vm._v(\" \"),_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.drag_layer'),expression:\"'mapcontrols.add_layer_control.drag_layer'\"}]}),_vm._v(\" \"),(_vm.layer.name)?_c('h4',{staticClass:\"skin-color\",staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.layer.name))]):_vm._e(),_vm._v(\" \"),_c('div',[_c('i',{staticClass:\"fa-5x\",class:_vm.g3wtemplate.getFontClass('cloud-upload'),attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('p',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"[.gml, .geojson, .kml, .kmz ,.gpx, .csv, .zip(shapefile)]\")])]),_vm._v(\" \"),(_vm.csv_extension)?_c('div',{staticStyle:{\"padding\":\"15px\",\"border\":\"1px solid grey\",\"border-radius\":\"3px\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.csv.loading}}),_vm._v(\" \"),_c('div',{staticClass:\"select_field\"},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_csv_separator'),expression:\"'mapcontrols.add_layer_control.select_csv_separator'\"}],attrs:{\"for\":\"g3w-select-field-layer\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.csv.separator),expression:\"csv.separator\"}],staticClass:\"form-control\",attrs:{\"id\":\"g3w-select-separator\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.csv, \"separator\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.csv.separators),function(separator){return _c('option',{key:separator,domProps:{\"value\":separator}},[_vm._v(_vm._s(separator))])}),0),_vm._v(\" \"),_c('div',{staticClass:\"select_field\",class:{'g3w-disabled': !_vm.csv.headers || 0 === _vm.csv.headers.length }},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_csv_x_field'),expression:\"'mapcontrols.add_layer_control.select_csv_x_field'\"}],attrs:{\"for\":\"g3w-select-x-field\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.csv.x),expression:\"csv.x\"}],staticClass:\"form-control\",attrs:{\"id\":\"g3w-select-x-field\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.csv, \"x\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.csv.headers),function(header){return _c('option',{key:header,domProps:{\"value\":header}},[_vm._v(_vm._s(header))])}),0)]),_vm._v(\" \"),_c('div',{staticClass:\"select_field\",class:{ 'g3w-disabled': !_vm.csv.headers || 0 === _vm.csv.headers.length }},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_csv_y_field'),expression:\"'mapcontrols.add_layer_control.select_csv_y_field'\"}],attrs:{\"for\":\"g3w-select-y-field\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.csv.y),expression:\"csv.y\"}],staticClass:\"form-control\",attrs:{\"id\":\"g3w-select-y-field\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.csv, \"y\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.csv.headers),function(header){return _c('option',{key:header,domProps:{\"value\":header}},[_vm._v(_vm._s(header))])}),0)])])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"select_field\",class:{ 'g3w-disabled': !_vm.fields || 0 === _vm.fields.length }},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('mapcontrols.add_layer_control.select_field_to_show'),expression:\"'mapcontrols.add_layer_control.select_field_to_show'\"}],attrs:{\"for\":\"g3w-select-field-layer\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.field),expression:\"field\"}],staticClass:\"form-control\",attrs:{\"id\":\"g3w-select-field-layer\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.field=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\"---\")]),_vm._v(\" \"),_vm._l((_vm.fields),function(field){return _c('option',{key:field,domProps:{\"value\":field}},[_vm._v(_vm._s(field))])})],2)]),_vm._v(\" \"),(_vm.error)?_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.error_message),expression:\"error_message\"}],staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"1.2em\",\"background-color\":\"orange\",\"padding\":\"10px\",\"text-align\":\"center\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('add'),expression:\"'add'\"}],staticClass:\"btn btn-success pull-left\",attrs:{\"type\":\"button\",\"disabled\":!_vm.add},on:{\"click\":function($event){$event.stopPropagation();return _vm.addLayer($event)}}}),_vm._v(\" \"),_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('close'),expression:\"'close'\"}],staticClass:\"btn btn-default\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}})])],1)])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-2e549814\"\n\n},{\"app/constant\":5,\"g3w-ol/projection/projections\":62,\"utils/createStyleFunctionToVectorLayer\":338,\"utils/createVectorLayerFromFile\":340,\"vue-color\":\"vue-color\",\"vueify/lib/insert-css\":2}],178:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"li[data-v-547bdae4]:not(.skin-background-color){display:flex;align-items:center;gap:10px}li.gcd-icon-poi .gcd-city[data-v-547bdae4],li.gcd-icon-poi .gcd-country[data-v-547bdae4],li.gcd-icon-poi .gcd-road[data-v-547bdae4],li.gcd-icon-road .gcd-icon[data-v-547bdae4],li.gcd-icon-road .gcd-name[data-v-547bdae4],li.gcd-icon-road .gcd-type[data-v-547bdae4]{display:none}#gcd-search[data-v-547bdae4]{z-index:1;width:2.5em;height:100%;border-radius:0;background-color:var(--skin-color,#fff)}#gcd-trash[data-v-547bdae4],#markers-visibility-layer[data-v-547bdae4],#show-markers-results[data-v-547bdae4]{z-index:1;border-radius:0!important;color:#fff;border-left:1px solid #fff}#gcd-trash[data-v-547bdae4]{color:red}#gcd-input-query[data-v-547bdae4]{font-weight:700}.gcd-txt-reset[data-v-547bdae4]:after{content:\\\"\\\\d7\\\";display:inline-block;font-weight:700;font-size:2em;cursor:pointer;color:var(--skin-color)}.gcd-txt-reset[data-v-547bdae4]{z-index:1;width:2.5em;height:100%;line-height:100%;border:none;background-color:transparent;display:inline-block;vertical-align:middle;outline:0;cursor:pointer}.gcd-txt-input[data-v-547bdae4]:focus{outline:none}.gcd-txt-input[data-v-547bdae4]{z-index:1;border:0;width:100%;height:100%;padding:5px;text-indent:6px;background-color:transparent;font-family:inherit;font-size:1em}.gcd-txt-control[data-v-547bdae4]{position:relative;display:flex;justify-content:flex-end;height:40px;background-color:#fff;overflow:hidden;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.2);width:100%;border:2px solid var(--skin-color)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gcd-road[data-v-547bdae4]{font-size:.875em;font-weight:500}.gcd-city[data-v-547bdae4]{font-size:1em;font-weight:700}.gcd-country[data-v-547bdae4]{font-size:.75em}.gcd-spin[data-v-547bdae4]:after{animation:spin .7s linear infinite}.gcd-hidden[data-v-547bdae4]{display:none!important}li.skin-background-color[data-v-547bdae4]{position:sticky;top:0}li.selected[data-v-547bdae4]{background-color:#f7fabf!important}li.gcd-noresult[data-v-547bdae4]:hover{background-color:transparent!important}li.gcd-noresult[data-v-547bdae4]{font-weight:700;color:#384247;margin:10px;border-bottom:0!important}\\n.ol-geocoder{box-sizing:border-box;position:absolute;max-width:300px;height:4.375em;top:7px;left:45px;width:50%;height:6px;font-size:1.1em}@media (max-width:767px){.ol-geocoder{left:10px}}.ol-geocoder>ul>li:hover{background-color:#eee}.ol-geocoder>ul>li{width:100%;overflow:hidden;padding:0;min-height:30px;padding-left:3px;border-bottom:2px solid var(--skin-color);min-height:20px;padding:10px}.ol-geocoder>ul{box-shadow:0 3px 5px rgba(0,0,0,.3);border-radius:3px!important;width:100%;max-height:200px;padding:0;margin-top:3px;background-color:#fff;border-top:none;overflow-x:hidden;overflow-y:auto;transition:max-height .3s ease-in;margin-bottom:0}.ol-geocoder>ul>li>a{display:block;text-decoration:none;padding:3px 5px;color:#000}.ol-geocoder>ul>li:last-child{border-bottom:0!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _QueryResultsActionChooseLayer = require('components/QueryResultsActionChooseLayer.vue');\n\nvar _QueryResultsActionChooseLayer2 = _interopRequireDefault(_QueryResultsActionChooseLayer);\n\nvar _store = require('store');\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _utils = require('utils');\n\nvar _flattenObject = require('utils/flattenObject');\n\nvar _addZValueToOLFeatureGeometry = require('utils/addZValueToOLFeatureGeometry');\n\nvar _isPointGeometryType = require('utils/isPointGeometryType');\n\nvar _convertSingleMultiGeometry = require('utils/convertSingleMultiGeometry');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Projections = require('g3w-ol/projection/projections');\n\nvar PROVIDERS = window.initConfig.group.mapcontrols.geocoding ? window.initConfig.group.mapcontrols.geocoding.providers : {};\nObject.keys(PROVIDERS).forEach(function (p) {\n var script = document.createElement('script');\n script.src = window.initConfig.staticurl + 'client/geocoding-providers/' + p + '.js';\n script.async = true;\n document.head.appendChild(script);\n});\n\nvar LAYER = new ol.layer.Vector({\n id: '__g3w_marker',\n name: 'Geocoding',\n source: new ol.source.Vector(),\n style: function style(feature) {\n if ('__g3w_marker_coordinates' === feature.getId()) {\n return new ol.style.Style({\n text: new ol.style.Text({\n offsetY: -15,\n text: '\\uF3C5',\n font: '900 3em \"Font Awesome 5 Free\"',\n stroke: new ol.style.Stroke({\n color: 'red',\n width: 3\n }),\n fill: new ol.style.Fill({\n color: 'rgba(255, 0,0, 0.7)'\n })\n })\n });\n } else {\n return [new ol.style.Style({\n image: new ol.style.Icon({\n opacity: 1,\n src: '/static/client/images/pushpin.svg',\n scale: 0.8\n })\n }), new ol.style.Style({\n image: new ol.style.RegularShape({\n stroke: new ol.style.Stroke({ color: [0, 0, 0, 0] }),\n points: 4,\n radius: 50,\n angle: Math.PI / 4\n })\n })];\n }\n }\n});\n\nvar is_clearing = false;\n\nexports.default = {\n data: function data() {\n return {\n results: [],\n\n disabled: false,\n results_panel_open: false };\n },\n\n\n props: {\n\n placeholder: {\n type: String,\n required: true\n },\n\n noresults: {\n type: String,\n required: true\n },\n\n limit: {\n type: Number,\n required: true\n },\n\n viewbox: {\n required: true\n },\n\n mapCrs: {\n required: true\n },\n\n providers: {\n type: Object,\n default: {}\n }\n\n },\n\n computed: {\n is_layer_visible: function is_layer_visible() {\n return LAYER.getVisible();\n },\n features: function features() {\n return LAYER.getSource().getFeatures();\n },\n has_providers: function has_providers() {\n return Object.keys(this.providers).length > 0;\n },\n extent: function extent() {\n return ol.proj.transformExtent(Object.keys(this.providers).filter(function (p) {\n return 'nominatim' != p;\n }).length > 0 ? _gui2.default.getService('map').getMapExtent() : this.viewbox, this.mapCrs, 'EPSG:4326');\n }\n },\n\n methods: {\n _showMarker: function _showMarker(coords) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var map = _gui2.default.getService('map');\n coords = transform ? ol.proj.transform(coords, 'EPSG:4326', map.getEpsg()) : coords;\n map.zoomToGeometry(new ol.geom.Point(coords));\n },\n _hideMarker: function _hideMarker() {\n LAYER.getSource().clear();\n\n if (false === this.is_layer_visible) {\n this.toggleLayerVisibility();\n }\n },\n toggleLayerVisibility: function toggleLayerVisibility() {\n LAYER.setVisible(!this.is_layer_visible);\n },\n clearResults: function clearResults() {\n this.$data.results.splice(0);\n\n if (LAYER.getSource().getFeatureById('__g3w_marker_coordinates')) {\n LAYER.getSource().removeFeature(LAYER.getSource().getFeatureById('__g3w_marker_coordinates'));\n }\n },\n clearMarkers: function clearMarkers() {\n is_clearing = true;\n this._hideMarker();\n\n this.$data.results.forEach(function (i) {\n return i.__selected = false;\n });\n var layer = _gui2.default.getService('queryresults').getState().layers.find(function (l) {\n return l.id === LAYER.get('id');\n });\n\n if (layer) {\n layer.features.forEach(function (f) {\n _gui2.default.getService('queryresults').removeFeatureLayerFromResult(layer, f);\n });\n }\n is_clearing = false;\n },\n clear: function clear() {\n this.clearResults();\n this.clearMarkers();\n },\n query: function query(q) {\n var _this = this;\n\n return new Promise(function () {\n var _ref = _asyncToGenerator(function* (resolve, reject) {\n var isNumber = function isNumber(value) {\n return 'Number' === (0, _utils.toRawType)(value) && !Number.isNaN(value);\n };\n var coordinates = null;\n var transform = false;\n\n var _split = (q || '').split(','),\n _split2 = _slicedToArray(_split, 3),\n x = _split2[0],\n y = _split2[1],\n epsg = _split2[2];\n\n var projection = epsg && (yield Projections.registerProjection('EPSG:' + epsg.trim()));\n\n if (isNumber(1 * x) && isNumber(1 * y)) {\n coordinates = [1 * x, 1 * y];\n }\n\n try {\n if (projection) {\n coordinates = ol.proj.transform(coordinates, projection.getCode(), 'EPSG:4326');\n transform = true;\n }\n } catch (e) {\n console.warn(e);\n }\n\n if (coordinates) {\n var source = LAYER.getSource();\n\n if (source.getFeatureById('__g3w_marker_coordinates')) {\n source.removeFeature(source.getFeatureById('__g3w_marker_coordinates'));\n }\n\n var feature = new ol.Feature({\n geometry: new ol.geom.Point(transform ? ol.proj.transform(coordinates, 'EPSG:4326', _gui2.default.getService('map').getEpsg()) : coordinates),\n\n lon: coordinates[0],\n lat: coordinates[1]\n });\n\n feature.setId('__g3w_marker_coordinates');\n\n LAYER.getSource().addFeature(feature);\n _this._showMarker(coordinates, transform);\n resolve(coordinates);\n }\n\n if (!coordinates) {\n _this.clearResults();\n _this.$refs.reset.classList.add(\"gcd-spin\");\n\n var results = yield Promise.allSettled(Object.entries(_this.providers).map(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n p = _ref3[0],\n _ref3$ = _ref3[1],\n config = _ref3$ === undefined ? {} : _ref3$;\n\n return PROVIDERS[p].fetch({\n url: config.url,\n icon: config.icon,\n query: q,\n lang: _applicationState2.default.language || 'it-IT',\n\n limit: _this.limit,\n extent: _this.extent\n });\n }));\n\n _this._showResults(results.filter(function (p) {\n return 'fulfilled' === p.status;\n }));\n _this.$refs.reset.classList.remove(\"gcd-spin\");\n }\n });\n\n return function (_x2, _x3) {\n return _ref.apply(this, arguments);\n };\n }());\n },\n _showResults: function _showResults() {\n var _this2 = this;\n\n var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n results.forEach(function (p) {\n _this2.$data.results.push({\n __heading: true,\n provider: p.value.provider,\n label: _this2.providers[p.value.provider].label || p.value.label\n });\n\n if (!(p.value.results && p.value.results.length)) {\n _this2.$data.results.push({\n __no_results: !(p.value.results && p.value.results.length)\n });\n return;\n }\n\n p.value.results.forEach(function (item) {\n _this2.$data.results.push((0, _flattenObject.flattenObject)(_extends({}, item, {\n provider: p.value.provider,\n __uid: (0, _utils.uniqueId)(),\n __icon: _this2.providers[p.value.provider].icon || p.value.icon,\n __selected: false\n })));\n });\n });\n },\n onQuery: function onQuery(evt) {\n if ('Enter' === evt.key || 13 === evt.which || 13 === evt.keyCode) {\n evt.preventDefault();\n this.query(evt.target.value.trim());\n }\n },\n onValue: function onValue(e) {\n this.$refs.reset.classList.toggle(\"gcd-hidden\", 0 === e.target.value.trim().length);\n },\n onReset: function onReset() {\n this.$refs.input.focus();\n this.$refs.input.value = '';\n this.$refs.reset.classList.add(\"gcd-hidden\");\n this.clearResults();\n },\n _removeItem: function _removeItem(uid) {\n var item = (this.$data.results || []).find(function (r) {\n return uid === r.__uid;\n });\n\n if (this.features.length) {\n var source = LAYER.getSource();\n source.removeFeature(source.getFeatureById(uid));\n }\n\n if (item) {\n item.__selected = false;\n }\n\n if (0 === this.features.length) {\n this._hideMarker();\n }\n\n if (!is_clearing) {\n this.showMarkerResults(undefined, 0 === this.features.length);\n }\n },\n _createOlMarker: function _createOlMarker(item) {\n var __uid = item.__uid,\n __icon = item.__icon,\n __selected = item.__selected,\n _item = _objectWithoutProperties(item, ['__uid', '__icon', '__selected']);\n\n var feature = new ol.Feature(_extends({\n geometry: new ol.geom.Point(ol.proj.transform([parseFloat(item.lon), parseFloat(item.lat)], 'EPSG:4326', _gui2.default.getService('map').getEpsg()))\n }, _item));\n\n feature.setId(__uid);\n return feature;\n },\n onItemClick: function onItemClick(evt, item) {\n if (!item.lat || !item.lon) {\n return;\n }\n evt.preventDefault();\n try {\n var source = LAYER.getSource();\n\n if (source.getFeatureById(item.__uid)) {\n this._removeItem(item.__uid);\n } else {\n var feature = this._createOlMarker(item);\n source.addFeature(feature);\n _gui2.default.getService('map').zoomToFeatures([feature]);\n item.__selected = true;\n this.showMarkerResults([feature]);\n }\n } catch (e) {\n console.warn(e);\n }\n },\n showMarkerResults: function showMarkerResults(features) {\n var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (this.$data.results_panel_open && toggle) {\n _gui2.default.closeContent();\n return;\n }\n\n if (_gui2.default.getCurrentContent()) {\n _gui2.default.closeContent();\n }\n _gui2.default.showQueryResults('Geocoding', { data: [{ layer: LAYER, features: features || LAYER.getSource().getFeatures() }] });\n this.$data.results_panel_open = true;\n },\n _editItem: function () {\n var _ref4 = _asyncToGenerator(function* (layerId, feature) {\n var editing = _store.PluginsRegistry.getPlugin('editing');\n\n if (!editing) {\n return;\n }\n\n this.$data.disabled = true;\n try {\n var type = _catalogLayers2.default.getLayerById(layerId).getGeometryType();\n\n var _feature = (0, _addZValueToOLFeatureGeometry.addZValueToOLFeatureGeometry)({\n geometryType: type,\n feature: new ol.Feature(_extends({}, Object.entries(feature.attributes).reduce(function (acc, attr) {\n return _extends({}, acc, _defineProperty({}, attr[0].replace(feature.attributes.provider + '_', '').toLowerCase(), attr[1]));\n }, {}), feature.attributes, {\n geometry: (0, _convertSingleMultiGeometry.convertSingleMultiGeometry)(feature.geometry, type)\n }))\n });\n\n yield editing.getApi().addLayerFeature({ layerId: layerId, feature: _feature });\n } catch (e) {\n console.warn(e);\n }\n this.$data.disabled = false;\n });\n\n function _editItem(_x6, _x7) {\n return _ref4.apply(this, arguments);\n }\n\n return _editItem;\n }()\n },\n\n created: function created() {\n var _this3 = this;\n\n var queryresults = _gui2.default.getService('queryresults');\n var mapService = _gui2.default.getService('map');\n var map = mapService.getMap();\n\n map.addLayer(LAYER);\n\n mapService.on('set-layer-zindex', function (_ref5) {\n var layer = _ref5.layer,\n zindex = _ref5.zindex;\n\n if (layer.get('id') !== LAYER.get('id')) {\n LAYER.setZIndex(zindex + 1);\n }\n });\n\n queryresults.registerVectorLayer(LAYER);\n\n _gui2.default.on('closecontent', function () {\n _this3.$data.results_panel_open = false;\n });\n _gui2.default.onafter('setContent', function () {\n if (_this3.$data.results_panel_open) _this3.$data.results_panel_open = false;\n });\n\n queryresults.onafter('removeFeatureLayerFromResult', function (layer, feature) {\n if (LAYER.get('id') === layer.id) {\n _this3._removeItem(feature.id);\n }\n });\n\n queryresults.onafter('addActionsForLayers', function (actions, layers) {\n\n var layer = layers.find(function (l) {\n return LAYER.get('id') === l.id;\n });\n\n if (!layer) {\n return;\n }\n\n var editablePointLayers = _catalogLayers2.default.getLayers({ EDITABLE: true, GEOLAYER: true }).filter(function (l) {\n return (0, _isPointGeometryType.isPointGeometryType)(l.getGeometryType());\n }).map(function (l) {\n return { id: l.getId(), name: l.getName(), inediting: l.isInEditing() };\n });\n\n if (editablePointLayers.find(function (l) {\n return l.inediting;\n })) {\n return;\n }\n\n queryresults.addCurrentActionToolsLayer({\n id: _QueryResultsActionChooseLayer2.default.name,\n layer: layer,\n action: {\n id: 'choose_layer',\n class: _gui2.default.getFontClass('pencil'),\n state: queryresults.createActionState({ layer: layer }),\n toggleable: true,\n hint: 'Choose a layer',\n cbk: function cbk(layer, feature, action, index) {\n if (1 === editablePointLayers.length) {\n _this3._editItem(editablePointLayers[0].id, feature);\n return;\n }\n\n action.state.toggled[index] = !action.state.toggled[index];\n queryresults.setCurrentActionLayerFeatureTool({\n layer: layer,\n index: index,\n action: action,\n component: action.state.toggled[index] ? _QueryResultsActionChooseLayer2.default : null\n });\n }\n },\n config: {\n layers: editablePointLayers,\n icon: 'pencil',\n label: 'mapcontrols.geocoding.choose_layer',\n nolayers: 'mapcontrols.geocoding.nolayers',\n cbk: _this3._editItem\n }\n });\n });\n },\n destroyed: function destroyed() {\n _gui2.default.getService('queryresults').unregisterVectorLayer(LAYER);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.has_providers)?_c('div',{class:[ 'ol-geocoder', { 'g3w-disabled': _vm.$data.disabled }]},[_c('div',{staticClass:\"gcd-txt-control\"},[_c('input',{directives:[{name:\"t-placeholder\",rawName:\"v-t-placeholder\",value:(_vm.placeholder),expression:\"placeholder\"}],ref:\"input\",staticClass:\"gcd-txt-input\",attrs:{\"type\":\"text\",\"id\":\"gcd-input-query\",\"autocomplete\":\"off\"},on:{\"keyup\":_vm.onQuery,\"input\":_vm.onValue}}),_vm._v(\" \"),_c('button',{ref:\"reset\",staticClass:\"gcd-txt-reset gcd-hidden\",attrs:{\"type\":\"button\",\"id\":\"gcd-input-reset\",\"title\":\"Reset search\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onReset($event)}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"id\":\"gcd-search\",\"title\":\"Submit search\"},on:{\"click\":function($event){$event.stopPropagation();return (function () { return _vm.query(_vm.$refs.input.value); })($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('search'),staticStyle:{\"color\":\"#fff\"},attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),(_vm.features.length > 0)?_c('button',{staticClass:\"btn skin-background-color\",attrs:{\"type\":\"button\",\"id\":\"gcd-trash\",\"title\":\"Clear markers selection\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearMarkers($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('trash'),attrs:{\"aria-hidden\":\"true\"}})]):_vm._e(),_vm._v(\" \"),(_vm.features.length > 0)?_c('button',{staticClass:\"btn skin-background-color\",attrs:{\"type\":\"button\",\"id\":\"markers-visibility-layer\",\"title\":\"Toggle markers visibility\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleLayerVisibility($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass(_vm.is_layer_visible ? 'eye-close': 'eye'),attrs:{\"aria-hidden\":\"true\"}})]):_vm._e(),_vm._v(\" \"),(_vm.features.length > 0)?_c('button',{staticClass:\"btn skin-background-color\",attrs:{\"type\":\"button\",\"id\":\"show-markers-results\",\"title\":\"Toggle sidebar panel\"},on:{\"click\":function($event){$event.stopPropagation();return (function () { return _vm.showMarkerResults(undefined, true); })($event)}}},[_c('code',{style:({ opacity: _vm.$data.results_panel_open ? 0.5 : undefined })},[_vm._v(\"\\n \"+_vm._s(_vm.features.length > 99 ? '99+' : _vm.features.length)+\"\\n \")])]):_vm._e()]),_vm._v(\" \"),_c('ul',{ref:\"result\",staticClass:\"gcd-txt-result\"},_vm._l((_vm.$data.results),function(item,i){return _c('li',{key:item.__uid,class:[\n item.provider,\n item.__icon ? 'gcd-icon-' + item.__icon : '',\n item.__heading ? 'skin-background-color' : '',\n item.__no_results ? 'gcd-noresult' : '',\n item.__selected ? 'selected' : '' ],on:{\"click\":function($event){$event.stopPropagation();return _vm.onItemClick($event, item)}}},[(item.__heading)?_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"padding\":\"5px\"}},[_c('span',{staticStyle:{\"color\":\"#FFF\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(item.label))])]):(item.__no_results)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.noresults),expression:\"noresults\"}]}):[_c('span',{class:_vm.g3wtemplate.getFontClass(item.__selected ? 'check' : 'uncheck'),staticStyle:{\"color\":\"#000\",\"padding\":\"5px\"}}),_vm._v(\" \"),('road' === item.__icon)?_c('i',{staticClass:\"fa fa-road\",staticStyle:{\"color\":\"black\"},attrs:{\"aria-hidden\":\"true\"}}):('poi' === item.__icon)?_c('img',{staticClass:\"gcd-icon\",attrs:{\"src\":\"/static/client/images/pushpin.svg\",\"width\":\"24\",\"height\":\"24\"}}):_vm._e(),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"\",\"draggable\":\"false\"}},[(item.type)?_c('div',{staticClass:\"gcd-type\"},[_vm._v(_vm._s(item.type))]):_vm._e(),_vm._v(\" \"),(item.name)?_c('div',{staticClass:\"gcd-name\"},[_vm._v(_vm._s(item.name))]):_vm._e(),_vm._v(\" \"),(item.address_name)?_c('div',{staticClass:\"gcd-road\"},[_vm._v(_vm._s(item.address_name))]):_vm._e(),_vm._v(\" \"),(item.address_road || item.address_building || item.address_house_number)?_c('div',{staticClass:\"gcd-road\"},[_vm._v(_vm._s(item.address_building)+\" \"+_vm._s(item.address_road)+\" \"+_vm._s(item.address_house_number))]):_vm._e(),_vm._v(\" \"),(item.address_city || item.address_town || item.address_village)?_c('div',{staticClass:\"gcd-city\"},[_vm._v(_vm._s(item.address_postcode)+\" \"+_vm._s(item.address_city)+\" \"+_vm._s(item.address_town)+\" \"+_vm._s(item.address_village))]):_vm._e(),_vm._v(\" \"),(item.address_state || item.address_country)?_c('div',{staticClass:\"gcd-country\"},[_vm._v(_vm._s(item.address_state)+\" \"+_vm._s(item.address_country))]):_vm._e()])]],2)}),0)]):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-547bdae4\"\n\n},{\"components/QueryResultsActionChooseLayer.vue\":200,\"g3w-ol/projection/projections\":62,\"services/gui\":286,\"store\":297,\"store/application-state\":294,\"store/catalog-layers\":295,\"utils\":388,\"utils/addZValueToOLFeatureGeometry\":304,\"utils/convertSingleMultiGeometry\":319,\"utils/flattenObject\":352,\"utils/isPointGeometryType\":395,\"vueify/lib/insert-css\":2}],179:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".ol-zoom-history[data-v-5ba4faea]{display:flex!important;gap:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('utils'),\n debounce = _require.debounce;\n\nexports.default = {\n name: \"MapControlZoomHistory\",\n data: function data() {\n return {\n history: {\n index: 0,\n items: []\n }\n };\n },\n\n methods: {\n last: function last() {\n this.history.index--;\n this.setMapExtent();\n },\n next: function next() {\n this.history.index++;\n this.setMapExtent();\n },\n setMapExtent: function setMapExtent() {\n _gui2.default.getService('map').getMap().getView().fit(this.history.items[this.history.index]);\n }\n },\n computed: {\n hasEmptyHistory: function hasEmptyHistory() {\n return 0 === this.history.index && 1 === this.history.items.length || this.history.items.length - 1 === this.history.index;\n }\n },\n\n created: function created() {\n var _this = this;\n\n var map = _gui2.default.getService('map').getMap();\n var view = map.getView();\n\n this.history.items.push(view.calculateExtent(map.getSize()));\n\n this.changeKeyEvent = view.on('change', debounce(function (evt) {\n if (_this.history.index !== _this.history.items.length - 1) {\n _this.history.items.splice(_this.history.index - _this.history.items.length + 1);\n }\n _this.history.items.push(evt.target.calculateExtent(map.getSize()));\n _this.history.index++;\n }, 600));\n },\n beforeDestroy: function beforeDestroy() {\n ol.Observable.unByKey(this.changeKeyEvent);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ol-zoom-history ol-unselectable ol-control\"},[_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.mapcontrols.zoomhistory.zoom_last'),expression:\"'sdk.mapcontrols.zoomhistory.zoom_last'\",arg:\"top\",modifiers:{\"create\":true}}]},[_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(0 === _vm.history.index),expression:\"0 === history.index\"}],attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.last($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('reply')})])]),_vm._v(\" \"),_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.mapcontrols.zoomhistory.zoom_next'),expression:\"'sdk.mapcontrols.zoomhistory.zoom_next'\",arg:\"top\",modifiers:{\"create\":true}}]},[_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.hasEmptyHistory),expression:\"hasEmptyHistory\"}],attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.next($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('share')})])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-5ba4faea\"\n\n},{\"services/gui\":286,\"utils\":388,\"vueify/lib/insert-css\":2}],180:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#map_footer[data-v-4a09c661]{position:absolute;bottom:0;height:30px;width:100%;display:flex;justify-content:space-between;background-color:hsla(0,0%,100%,.7)}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _MapFooterRight = require('components/MapFooterRight.vue');\n\nvar _MapFooterRight2 = _interopRequireDefault(_MapFooterRight);\n\nvar _MapFooterLeft = require('components/MapFooterLeft.vue');\n\nvar _MapFooterLeft2 = _interopRequireDefault(_MapFooterLeft);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'Mapfooter',\n props: {\n service: {\n type: Object\n }\n },\n components: {\n MapFooterRight: _MapFooterRight2.default,\n MapFooterLeft: _MapFooterLeft2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"skin-border-color\",attrs:{\"id\":\"map_footer\"}},[_c('map-footer-left'),_vm._v(\" \"),_c('map-footer-right',{attrs:{\"service\":_vm.service}})],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-4a09c661\"\n\n},{\"components/MapFooterLeft.vue\":181,\"components/MapFooterRight.vue\":182,\"vueify/lib/insert-css\":2}],181:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'Mapfooter',\n computed: {\n version: function version() {\n return 'Powered by G3W-SUITE ' + initConfig.version;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"flex\"},attrs:{\"id\":\"map_footer_left\"}},[_c('a',{staticStyle:{\"margin-left\":\"5px\",\"align-self\":\"center\",\"box-shadow\":\"0 1px 4px 0 rgba(0,0,0,.1), 0 4px 8px 0 rgba(0,0,0,.3)\"},attrs:{\"href\":\"https://g3wsuite.it/\",\"target\":\"_blank\",\"title\":_vm.version}},[_c('img',{attrs:{\"height\":\"15\",\"src\":\"/static/client/images/g3wsuite_logo.png\",\"alt\":\"\"}})])])}\n__vue__options__.staticRenderFns = []\n\n},{}],182:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#permalink[data-v-5a4def2a]{font-weight:700;font-size:1.2em;padding:5px;cursor:pointer;background-color:#eee}#switch-mouse-coordinate[data-v-5a4def2a]{display:flex;height:100%;margin-left:8px;align-items:center;cursor:pointer}#switch-mouse-coordinate span[data-v-5a4def2a]{padding:3px;text-shadow:0 2px 5px rgba(0,0,0,.3)}#map_footer_right[data-v-5a4def2a]{flex-shrink:0}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'map-footer-right',\n\n props: {\n service: {\n type: Object\n }\n },\n data: function data() {\n return {\n mouse: {\n visible: true,\n switch_icon: false,\n epsg_4326: false,\n tooltip: null\n },\n mapunit: _applicationState2.default.map.unit\n };\n },\n\n computed: {\n showmapunits: function showmapunits() {\n return this.service.state.mapunits.length > 1;\n }\n },\n methods: {\n createCopyMapExtentUrl: function createCopyMapExtentUrl() {\n this.service.createCopyMapExtentUrl();\n },\n switchMapsCoordinateTo4326: function switchMapsCoordinateTo4326() {\n this.mouse.epsg_4326 = !this.mouse.epsg_4326;\n this.service.getMapControlByType({ type: 'mouseposition' }).dispatchEvent({\n type: 'change:epsg',\n epsg: this.mouse.epsg_4326 ? 'EPSG:4326' : this.service.getEpsg()\n });\n }\n },\n watch: {\n 'mapunit': function mapunit(unit) {\n _applicationState2.default.map.unit = unit;\n this.service.changeScaleLineUnit(unit);\n }\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n this.service.once('ready', function () {\n if (_this.service.getMapControlByType({ type: 'mouseposition' })) {\n _this.mouse.switch_icon = _this.service.getMapControlByType({ type: 'mouseposition' }) && 'EPSG:4326' !== _this.service.getEpsg();\n _this.mouse.tooltip = 'ESPG ' + _this.service.getCrs().split(':')[1] + ' <--> WGS84';\n } else {\n _this.mouse.visible = false;\n }\n });\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"flex\"},attrs:{\"id\":\"map_footer_right\"}},[_c('div',{attrs:{\"id\":\"scale-control\"}}),_vm._v(\" \"),(_vm.mouse.visible && _vm.mouse.switch_icon && !_vm.isMobile())?_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:(_vm.mouse.tooltip),expression:\"mouse.tooltip\",arg:\"top\",modifiers:{\"create\":true}}],attrs:{\"id\":\"switch-mouse-coordinate\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.switchMapsCoordinateTo4326($event)}}},[_c('span',{staticClass:\"skin-color-dark hide-cursor-caret-color\",class:_vm.g3wtemplate.getFontClass('mouse')})]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mouse.visible),expression:\"mouse.visible\"}],attrs:{\"id\":\"mouse-position-control\"}}),_vm._v(\" \"),(_vm.showmapunits)?_c('div',{attrs:{\"id\":\"scale-line-units\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mapunit),expression:\"mapunit\"}],staticClass:\"skin-color-dark\",staticStyle:{\"padding\":\"5px 2px\",\"font-weight\":\"bold\",\"border\":\"0\",\"cursor\":\"pointer\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.mapunit=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.service.state.mapunits),function(unit){return _c('option',{directives:[{name:\"t\",rawName:\"v-t\",value:((\"sdk.mapcontrols.scaleline.units.\" + unit)),expression:\"`sdk.mapcontrols.scaleline.units.${unit}`\"}],staticStyle:{\"font-weight\":\"bold\"},domProps:{\"value\":unit,\"selected\":_vm.mapunit === unit}})}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.tooltips.copy_map_extent_url'),expression:\"'sdk.tooltips.copy_map_extent_url'\",arg:\"top\",modifiers:{\"create\":true}}],attrs:{\"id\":\"permalink\"}},[_c('span',{staticClass:\"skin-color-dark\",class:_vm.g3wtemplate.getFontClass('link'),on:{\"click\":function($event){$event.stopPropagation();return _vm.createCopyMapExtentUrl($event)}}})])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-5a4def2a\"\n\n},{\"store/application-state\":294,\"vueify/lib/insert-css\":2}],183:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'metadata',\n\n data: function data() {\n return {\n state: null\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\n__vue__options__.staticRenderFns = []\n\n},{}],184:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".layer_header[data-v-fee105a8]{padding:5px;margin-bottom:0;margin-top:0;cursor:pointer}.layer-name[data-v-fee105a8]{font-weight:700}.layer-header-icon[data-v-fee105a8]{margin-right:10px;color:#999}.layer_header span.open-close[data-v-fee105a8]{position:absolute;right:5px;color:#999}.metadata-label[data-v-fee105a8]{font-weight:700;font-size:1.1em}.row[data-v-fee105a8]{padding:10px;border-bottom:1px solid #e2e2e2}.nav-tabs[data-v-fee105a8]{border-bottom:0 solid #ddd}.nav-tabs>li.active>a[data-v-fee105a8],.nav-tabs>li.active>a[data-v-fee105a8]:focus,.nav-tabs>li.active>a[data-v-fee105a8]:hover{border-width:0}.nav-tabs>li>a[data-v-fee105a8]{border:none;color:#aeaeae}.nav-tabs>li.active>a[data-v-fee105a8],.nav-tabs>li>a[data-v-fee105a8]:hover{border:none;background:transparent}.nav-tabs>li>a[data-v-fee105a8]:after{content:\\\"\\\";height:2px;position:absolute;width:100%;left:0;bottom:-1px;transition:all .25s ease 0s;transform:scale(0)}.nav-tabs>li.active>a[data-v-fee105a8]:after,.nav-tabs>li:hover>a[data-v-fee105a8]:after{transform:scale(1)}.tab-nav>li>a[data-v-fee105a8]:after{background:#21527d none repeat scroll 0 0;color:#fff}.tab-content[data-v-fee105a8]{margin:10px;background-color:#eee;overflow:auto}.spatial-tab[data-v-fee105a8]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mixins = require('mixins');\n\nexports.default = {\n name: \"layer\",\n mixins: [_mixins.metadataMixin],\n props: {\n state: {}\n },\n data: function data() {\n return {\n show: false\n };\n },\n\n computed: {\n isSpatial: function isSpatial() {\n return 'NoGeometry' !== this.state.geometrytype;\n }\n },\n methods: {\n showHideInfo: function showHideInfo() {\n this.show = !this.show;\n }\n },\n mounted: function mounted() {}\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row-info\"},[_c('h4',{staticClass:\"layer_header\",attrs:{\"data-toggle\":\"collapse\",\"data-target\":(\"#\" + (_vm.state.id))},on:{\"click\":_vm.showHideInfo}},[_c('i',{staticClass:\"layer-header-icon action-button nohover\",class:_vm.g3wtemplate.font[_vm.isSpatial ? 'map': 'table'],attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{staticClass:\"layer-name\"},[_vm._v(_vm._s(_vm.state.name))]),_vm._v(\" \"),_c('span',{staticClass:\"action-button nohover open-close\",class:_vm.g3wtemplate.getFontClass(_vm.show ? 'minus': 'plus')})]),_vm._v(\" \"),_c('div',{staticClass:\"collapse\",attrs:{\"id\":_vm.state.id}},[_c('ul',{staticClass:\"metadata-nav-tabs nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"active spatial-tab\",attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.groups.general'),expression:\"'sdk.metadata.groups.layers.groups.general'\"}],attrs:{\"href\":(\"#layer_general_\" + (_vm.state.id)),\"aria-controls\":\"general\",\"role\":\"tab\",\"data-toggle\":\"tab\"}})]),_vm._v(\" \"),(_vm.isSpatial)?_c('li',{staticClass:\"spatial-tab\",attrs:{\"role\":\"presentation\"}},[_c('a',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.groups.spatial'),expression:\"'sdk.metadata.groups.layers.groups.spatial'\"}],attrs:{\"href\":(\"#layer_spatial_\" + (_vm.state.id)),\"aria-controls\":\"profile\",\"role\":\"tab\",\"data-toggle\":\"tab\"}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"tab-pane active\",attrs:{\"role\":\"tabpanel\",\"id\":(\"layer_general_\" + (_vm.state.id))}},[_c('div',{staticClass:\"container-fluid\"},[(_vm.findAttributeFormMetadataAttribute('title'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.title'),expression:\"'sdk.metadata.groups.layers.fields.subfields.title'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\"},[_vm._v(_vm._s(_vm.state.metadata.title))])]):_vm._e(),_vm._v(\" \"),(_vm.findMetadataAttribute('name'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.name'),expression:\"'sdk.metadata.groups.layers.fields.subfields.name'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\"},[_vm._v(_vm._s(_vm.state.name))])]):_vm._e(),_vm._v(\" \"),(_vm.findMetadataAttribute('source'))?_c('div',{staticClass:\"row metadata-layer-source\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.source'),expression:\"'sdk.metadata.groups.layers.fields.subfields.source'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label metadata-layer-source-value-key\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value metadata-layer-source-value\"},[_vm._v(_vm._s(_vm.state.source.type))])]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('abstract'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.abstract'),expression:\"'sdk.metadata.groups.layers.fields.subfields.abstract'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\",domProps:{\"innerHTML\":_vm._s(_vm.state.metadata.abstract)}})]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('keywords'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.keywords'),expression:\"'sdk.metadata.groups.layers.fields.subfields.keywords'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\"},[_c('div',[_vm._v(_vm._s(_vm.state.metadata.keywords.join(', ')))])])]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('metadataurl') && _vm.state.metadata.metadataurl.onlineresources)?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.metadataurl'),expression:\"'sdk.metadata.groups.layers.fields.subfields.metadataurl'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\"},[_c('a',{attrs:{\"href\":_vm.state.metadata.metadataurl.onlineresources}},[_vm._v(_vm._s(_vm.state.metadata.metadataurl.onlineresources))])])]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('dataurl') && _vm.state.metadata.dataurl.onlineresources)?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.dataurl'),expression:\"'sdk.metadata.groups.layers.fields.subfields.dataurl'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\"},[_c('a',{attrs:{\"href\":_vm.state.metadata.dataurl.onlineresources}},[_vm._v(_vm._s(_vm.state.metadata.dataurl.onlineresources))])])]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('attributes'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.attributes'),expression:\"'sdk.metadata.groups.layers.fields.subfields.attributes'\"}],staticClass:\"col-md-2 col-sm-12 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-md-10 col-sm-12 value\",staticStyle:{\"overflow\":\"auto\"}},[_c('table',{staticClass:\"table table-striped\",staticStyle:{\"background-color\":\"#eeeeee !important\"}},[_c('thead',[_c('tr',_vm._l((_vm.state.metadata.attributes[0]),function(value,header){return _c('th',[_vm._v(_vm._s(header))])}),0)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.state.metadata.attributes),function(attribute){return _c('tr',_vm._l((attribute),function(value,header){return _c('td',[_vm._v(_vm._s(value))])}),0)}),0)])])]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"tab-pane\",attrs:{\"role\":\"tabpanel\",\"id\":(\"layer_spatial_\" + (_vm.state.id))}},[_c('div',{staticClass:\"container-fluid\"},[(_vm.findMetadataAttribute('crs'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.crs'),expression:\"'sdk.metadata.groups.layers.fields.subfields.crs'\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\"},[_vm._v(_vm._s(_vm.state.crs.epsg))])]):_vm._e(),_vm._v(\" \"),(_vm.findMetadataAttribute('geometrytype'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.geometrytype'),expression:\"'sdk.metadata.groups.layers.fields.subfields.geometrytype'\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\"},[_vm._v(_vm._s(_vm.state.geometrytype))])]):_vm._e(),_vm._v(\" \"),(_vm.findMetadataAttribute('bbox'))?_c('div',{staticClass:\"row\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.fields.subfields.bbox'),expression:\"'sdk.metadata.groups.layers.fields.subfields.bbox'\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\"},_vm._l((_vm.state.bbox),function(value,key){return _c('p',[_c('span',{staticStyle:{\"font-weight\":\"bold\",\"margin-right\":\"5px\"}},[_vm._v(_vm._s(key))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(value))])])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.findAttributeFormMetadataAttribute('crs'))?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2 metadata-label\"},[_vm._v(\"CRS\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\"},_vm._l((_vm.state.metadata.crs),function(crs){return _c('div',[_c('span',[_vm._v(_vm._s(crs))])])}),0)]):_vm._e()])])])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-fee105a8\"\n\n},{\"mixins\":274,\"vueify/lib/insert-css\":2}],185:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".metadata-nav-bar li a[data-v-0e556a34]{text-align:center}.metadata-nav-bar li a i[data-v-0e556a34]{margin-right:5px}.metadata-item-tab[data-v-0e556a34]{margin-right:10px;border-radius:3px;margin-bottom:10px}.metadata-body[data-v-0e556a34]{overflow-y:auto;overflow-x:hidden;padding-left:0;padding-right:0}.tab-title[data-v-0e556a34]{position:absolute;bottom:10px;right:auto}.row-info[data-v-0e556a34]{margin:0!important;padding-top:10px;padding-bottom:10px;border-bottom:1px solid #eee}.row-info .label[data-v-0e556a34]{font-weight:700}.h_90[data-v-0e556a34]{height:90%}.h_100[data-v-0e556a34]{height:100%}#project-catalog[data-v-0e556a34]{position:relative;overflow:auto}.nav-tabs-wrapper[data-v-0e556a34]{display:inline-block;margin-bottom:-6px;margin-left:1.25%;margin-right:1.25%;position:relative;width:100%}.nav-tabs[data-v-0e556a34]{border-bottom:0 none}.nav-stacked[data-v-0e556a34]{font-size:1.2em;font-weight:700;padding:10px 0}.nav-stacked li a[data-v-0e556a34]{color:#fff}.left-vertical-tabs[data-v-0e556a34]{padding-left:0!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _MetadataLayer = require('components/MetadataLayer.vue');\n\nvar _MetadataLayer2 = _interopRequireDefault(_MetadataLayer);\n\nvar _MetadataProjectTabContent = require('components/MetadataProjectTabContent.vue');\n\nvar _MetadataProjectTabContent2 = _interopRequireDefault(_MetadataProjectTabContent);\n\nvar _MetadataProjectBBoxContent = require('components/MetadataProjectBBoxContent.vue');\n\nvar _MetadataProjectBBoxContent2 = _interopRequireDefault(_MetadataProjectBBoxContent);\n\nvar _MetadataProjectContactsContent = require('components/MetadataProjectContactsContent.vue');\n\nvar _MetadataProjectContactsContent2 = _interopRequireDefault(_MetadataProjectContactsContent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"project\",\n data: function data() {\n return {\n state: this.$options.state,\n iconsClass: {\n info: this.g3wtemplate.getFontClass(\"info-circle\"),\n globe: this.g3wtemplate.getFontClass(\"globe\"),\n bars: this.g3wtemplate.getFontClass(\"bars\")\n }\n };\n },\n\n components: {\n 'metadata-layer': _MetadataLayer2.default,\n 'metadata-tab-content': _MetadataProjectTabContent2.default,\n 'metadata-bbox-content': _MetadataProjectBBoxContent2.default,\n 'metadata-contacts-content': _MetadataProjectContactsContent2.default\n },\n methods: {\n isArrayorObject: function isArrayorObject(value) {\n return Array.isArray(value) || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n },\n setComponent: function setComponent(key) {\n var component = void 0;\n switch (key) {\n case 'extent':\n component = 'metadata-bbox-content';\n break;\n case 'contactinformation':\n component = 'metadata-contacts-content';\n break;\n default:\n component = 'metadata-tab-content';\n }\n return component;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"project-catalog\"}},[_c('div',{class:_vm.isMobile() ? 'mobile' : null,staticStyle:{\"padding\":\"0\"},attrs:{\"id\":\"project-catalog-container\"}},[_c('ul',{staticClass:\"nav nav-tabs metadata-nav-bar\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"active\"},[_c('a',{staticClass:\"metadata-item-tab general\",attrs:{\"data-toggle\":\"tab\",\"href\":\"#general\"}},[_c('i',{staticClass:\"action-button nohover\",class:_vm.g3wtemplate.getFontClass('info'),attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.general.title'),expression:\"'sdk.metadata.groups.general.title'\"}],staticStyle:{\"font-weight\":\"bold\"}})])]),_vm._v(\" \"),_c('li',[_c('a',{staticClass:\"metadata-item-tab spatial\",attrs:{\"data-toggle\":\"tab\",\"href\":\"#spatial\"}},[_c('i',{staticClass:\"action-button nohover\",class:_vm.iconsClass.globe,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.spatial.title'),expression:\"'sdk.metadata.groups.spatial.title'\"}],staticStyle:{\"font-weight\":\"bold\"}})])]),_vm._v(\" \"),_c('li',[_c('a',{staticClass:\"metadata-item-tab layers\",attrs:{\"data-toggle\":\"tab\",\"href\":\"#metadata_layers\"}},[_c('i',{staticClass:\"action-button nohover\",class:_vm.iconsClass.bars,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.metadata.groups.layers.title'),expression:\"'sdk.metadata.groups.layers.title'\"}],staticStyle:{\"font-weight\":\"bold\"}})])])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-12 metadata-body tab-content\"},[_c('div',{staticClass:\"tab-pane fade in active\",attrs:{\"id\":\"general\"}},[_vm._l((_vm.state.groups.general),function(data,key){return _c('div',{staticClass:\"row h_100 row-info\"},[_c(_vm.setComponent(key),{tag:\"component\",attrs:{\"data\":data,\"fieldName\":key}})],1)})],2),_vm._v(\" \"),_c('div',{staticClass:\"tab-pane fade\",attrs:{\"id\":\"spatial\"}},[_c('div',[_vm._l((_vm.state.groups.spatial),function(data,key){return _c('div',{staticClass:\"row row-info\"},[_c(_vm.setComponent(key),{tag:\"component\",attrs:{\"data\":data,\"fieldName\":key}})],1)})],2)]),_vm._v(\" \"),_c('div',{staticClass:\"tab-pane fade\",attrs:{\"id\":\"metadata_layers\"}},_vm._l((_vm.state.groups.layers.layers.value),function(layer){return _c('metadata-layer',{attrs:{\"state\":layer}})}),1)])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-0e556a34\"\n\n},{\"components/MetadataLayer.vue\":184,\"components/MetadataProjectBBoxContent.vue\":186,\"components/MetadataProjectContactsContent.vue\":187,\"components/MetadataProjectTabContent.vue\":188,\"vueify/lib/insert-css\":2}],186:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".metadata-label[data-v-b715e0e8]{font-weight:700;font-size:1.1em}.bbox-labels[data-v-b715e0e8]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: \"metadata-bbox\",\n\n props: {\n data: {}\n },\n data: function data() {\n return {\n bboxlabels: ['MINX', 'MINY', 'MAXX', 'MAXY']\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrap-content-tab\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.data.label),expression:\"data.label\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},_vm._l((_vm.data.value),function(value,index){return _c('div',[_c('span',{staticClass:\"bbox-labels\"},[_vm._v(_vm._s(_vm.bboxlabels[index]))]),_vm._v(\" \"+_vm._s(value)+\"\\n \")])}),0)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-b715e0e8\"\n\n},{\"vueify/lib/insert-css\":2}],187:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".metadata-label[data-v-60ad65fc]{font-weight:700;font-size:1.1em}.metadata-contact-label[data-v-60ad65fc]{font-weight:700}.contact-icon[data-v-60ad65fc]{margin-right:3px}.row[data-v-60ad65fc]{margin-bottom:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = {\n name: \"metadatacontatcs\",\n props: {\n data: {}\n },\n data: function data() {\n return {\n iconsClass: {\n contactelectronicmailaddress: this.g3wtemplate.getFontClass(\"mail\"),\n personprimary: this.g3wtemplate.getFontClass(\"user\"),\n contactvoicetelephone: this.g3wtemplate.getFontClass(\"mobile\")\n }\n };\n },\n\n methods: {\n sanitizeValue: function sanitizeValue(value) {\n if (value !== null && value !== undefined) {\n if ((typeof value === \"undefined\" ? \"undefined\" : _typeof(value)) === 'object') {\n value = Object.keys(value).length ? value : '';\n } else if (Array.isArray(value)) {\n value = value.length ? value : '';\n }\n }\n return value;\n },\n geti18n: function geti18n(key) {}\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrap-content-tab\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.data.label),expression:\"data.label\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},_vm._l((_vm.data.value),function(value,key){return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2 metadata-contact-label\"},[_c('i',{staticClass:\"contact-icon\",class:_vm.iconsClass[key],attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:((\"sdk.metadata.groups.general.fields.subfields.contactinformation.\" + key)),expression:\"`sdk.metadata.groups.general.fields.subfields.contactinformation.${key}`\"}]})]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[('personprimary' === key)?_vm._l((value),function(subvalue,key){return _c('div',[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:((\"sdk.metadata.groups.general.fields.subfields.contactinformation.\" + key)),expression:\"`sdk.metadata.groups.general.fields.subfields.contactinformation.${key}`\"}],staticClass:\"metadata-contact-label\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(subvalue))])])}):_c('div',[('contactelectronicmailaddress' === key )?[_c('a',{staticStyle:{\"font-weight\":\"bold\"},attrs:{\"href\":(\"mailto: \" + (_vm.sanitizeValue(value)))}},[_vm._v(_vm._s(_vm.sanitizeValue(value)))])]:[_vm._v(\"\\n \"+_vm._s(_vm.sanitizeValue(value))+\"\\n \")]],2)],2)])])}),0)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-60ad65fc\"\n\n},{\"vueify/lib/insert-css\":2}],188:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".metadata-label[data-v-6b130710]{font-weight:700;font-size:1.1em}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = {\n name: \"metadata-tab-content\",\n\n props: {\n data: {},\n fieldName: {}\n },\n computed: {\n arrayToString: function arrayToString() {\n return this.data.value.join(', ');\n }\n },\n methods: {\n isArrayorObject: function isArrayorObject(value) {\n return Array.isArray(value) || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrap-content-tab\"},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.data.label),expression:\"data.label\"}],staticClass:\"col-sm-2 metadata-label\"}),_vm._v(\" \"),('keywords' === _vm.fieldName )?_c('div',{staticClass:\"col-sm-10 value\"},[_vm._v(\"\\n \"+_vm._s(_vm.arrayToString)+\"\\n \")]):('wms_url' === _vm.fieldName )?_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},[_c('span',[_vm._v(_vm._s(_vm.data.value))])]):(!_vm.isArrayorObject(_vm.data.value))?_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.data.value)}})]):('abstract' === _vm.fieldName)?_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.data.value)}})]):_c('div',{staticClass:\"col-sm-10 value\",staticStyle:{\"margin-top\":\"0\"}},_vm._l((_vm.data.value),function(value,key){return _c('div',[_c('span',[_vm._v(_vm._s(value))])])}),0)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-6b130710\"\n\n},{\"vueify/lib/insert-css\":2}],189:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _navbaritems = require(\"services/navbaritems\");\n\nvar _navbaritems2 = _interopRequireDefault(_navbaritems);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"NavbaritemLeft\",\n data: function data() {\n return {\n items: _navbaritems2.default.state.items.right\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"nav navbar-nav navbar-left\"},_vm._l((_vm.items),function(item){return _c(item,{key:item.id,tag:\"li\"})}),1)}\n__vue__options__.staticRenderFns = []\n\n},{\"services/navbaritems\":288}],190:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _navbaritems = require(\"services/navbaritems\");\n\nvar _navbaritems2 = _interopRequireDefault(_navbaritems);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"navbar-item-right\",\n\n data: function data() {\n return {\n items: _navbaritems2.default.state.items.right\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"nav navbar-nav navbar-right\"},_vm._l((_vm.items),function(item){return _c(item,{key:item.id,tag:\"li\"})}),1)}\n__vue__options__.staticRenderFns = []\n\n},{\"services/navbaritems\":288}],191:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'download-notify'\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"download\",rawName:\"v-download.show\",modifiers:{\"show\":true}}],staticClass:\"skin-color\",attrs:{\"id\":\"download_notification\",\"title\":\"DOWNLOAD\"}},[_c('bar-loader',{attrs:{\"loading\":\"true\"}}),_vm._v(\" \"),_c('i',{class:_vm.g3wtemplate.getFontClass('download'),staticStyle:{\"padding\":\"3px\"}})],1)}\n__vue__options__.staticRenderFns = []\n\n},{}],192:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'online-notify'\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"online\",rawName:\"v-online:hide\",arg:\"hide\"}],staticStyle:{\"color\":\"#999\"},attrs:{\"id\":\"offline_notification\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('wifi')}),_vm._v(\" \"),_c('div',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"0.4em\"}},[_vm._v(\"offline\")])])}\n__vue__options__.staticRenderFns = []\n\n},{}],193:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'plugins-notify'\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"plugins\",rawName:\"v-plugins\"}],staticStyle:{\"color\":\"#994b10\"},attrs:{\"id\":\"plugins_notification\"}},[_c('bar-loader',{attrs:{\"loading\":\"true\"}}),_vm._v(\" \"),_c('i',{class:_vm.g3wtemplate.getFontClass('plugin')})],1)}\n__vue__options__.staticRenderFns = []\n\n},{}],194:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#print .select2-container--open{width:100%}#print .select2-container--open input.select2-search__field{color:#555;width:100%}#print.treeview-menu .select2.select2-container{display:block}\\n.print-labels-content[data-v-9e025612]{margin-top:5px;color:#fff}.print-labels-content>span.skin-color[data-v-9e025612]{font-weight:700;font-size:1.1em;display:block;border-bottom:2px solid #fff;margin-bottom:5px}.print-labels-content>.labels-input-content[data-v-9e025612]{max-height:120px;overflow-y:auto}label[data-v-9e025612]{color:#fff}.box-footer[data-v-9e025612]{background-color:transparent}#printbutton[data-v-9e025612]{width:100%;font-weight:700;background-color:var(--skin-color)}#fid-print-atals-instruction[data-v-9e025612]{margin-top:5px;color:#fff}#fids_intruction[data-v-9e025612]{white-space:pre-line}#fids_examples_values[data-v-9e025612]{margin-top:3px;font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _constant = require('app/constant');\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _getScaleFromResolution = require('utils/getScaleFromResolution');\n\nvar _getResolutionFromScale = require('utils/getResolutionFromScale');\n\nvar _getMetersFromDegrees = require('utils/getMetersFromDegrees');\n\nvar _downloadFile = require('utils/downloadFile');\n\nvar _printAtlas = require('utils/printAtlas');\n\nvar _print2 = require('utils/print');\n\nvar _promisify = require('utils/promisify');\n\nvar _resize = require('mixins/resize');\n\nvar _resize2 = _interopRequireDefault(_resize);\n\nvar _PrintPage = require('components/PrintPage.vue');\n\nvar vueComp = _interopRequireWildcard(_PrintPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n name: 'print',\n\n mixins: [_resize2.default],\n\n data: function data() {\n this.init();\n return {\n state: this.state || {},\n disabled: false,\n\n atlas_values: []\n };\n },\n\n\n computed: {\n has_maps: function has_maps() {\n return (this.state.maps || []).length > 0;\n },\n has_autocomplete: function has_autocomplete() {\n return !!(this.state.atlas && this.state.atlas.field_name);\n },\n lang: function lang() {\n return _applicationState2.default.language;\n }\n },\n\n methods: {\n init: function init() {\n this._init = undefined !== this._init ? this._init : false;\n this._moveKey = this._moveKey || null;\n this._page = this._page || null;\n this._resolutions = this._resolutions || {};\n\n var print = _projects2.default.getCurrentProject().getPrint() || [];\n var visible = print.length > 0;\n this.state = Object.assign(this.state || {}, {\n visible: visible,\n print: print,\n loading: false,\n downloading: false,\n url: null,\n layers: true,\n maps: visible ? print[0].maps : undefined,\n labels: visible ? print[0].labels : undefined,\n template: visible ? print[0].name : undefined,\n atlas: visible ? print[0].atlas : undefined,\n rotation: visible ? 0 : undefined,\n inner: [0, 0, 0, 0],\n scales: [],\n scale: visible ? null : undefined,\n dpis: _constant.PRINT_RESOLUTIONS,\n dpi: _constant.PRINT_RESOLUTIONS[0],\n formats: _constant.PRINT_FORMATS,\n format: _constant.PRINT_FORMATS[0].value\n });\n\n this.print_extent = null;\n },\n resize: function resize() {\n if (this.select2 && !_applicationState2.default.ismobile) {\n this.select2.select2('close');\n }\n },\n changeTemplate: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n if (!this.state.template) {\n return;\n }\n\n yield this.$nextTick();\n\n if (this.select2) {\n this.select2.select2('destroy');\n this.select2.off();\n this.select2 = null;\n }\n\n this.disabled = false;\n\n var has_previous = this.state.atlas || 0 === this.state.maps.length;\n var print = this.state.print.find(function (p) {\n return p.name === _this.state.template;\n });\n\n Object.assign(this.state, {\n maps: print.maps,\n atlas: print.atlas,\n labels: print.labels\n });\n\n this.atlas_values = [];\n\n if (this.state.atlas) {\n this._clearPrint();\n this.initSelect2Field();\n } else if (has_previous) {\n this.showPrintArea(true);\n } else {\n this._setPrintArea();\n }\n\n yield this.$nextTick();\n });\n\n function changeTemplate() {\n return _ref.apply(this, arguments);\n }\n\n return changeTemplate;\n }(),\n changeScale: function changeScale() {\n\n try {\n if (this.state.scale.indexOf(':') >= 0) {\n var scale = Number(this.state.scale.split(':')[1].trim());\n\n this.$refs.scales.children[this.$refs.scales.children.length - 1].value = scale;\n\n this.state.scale = scale;\n }\n } catch (e) {\n console.warn(e);\n this.state.scale = this.state.scales[0].value;\n }\n\n if (Number.isNaN(Number(this.state.scale)) || this.state.scale > this.state.scales[0].value) {\n this.state.scale = this.state.scales[0].value;\n }\n\n if (this.state.scale < 0) {\n this.state.scale = this.state.scales[this.state.scales.length - 1].value;\n }\n\n $(this.$refs.scales).val(this.state.scale).trigger('change');\n\n if (this.state.scale) {\n this._setPrintArea();\n }\n },\n changeDpi: function changeDpi() {\n if (Number.isNaN(Number(this.state.dpi))) {\n this.state.dpi = this.state.dpis[0];\n\n $(this.$refs.dpi).val(this.state.dpi).trigger('change');\n }\n },\n changeRotation: function changeRotation() {\n this.state.rotation = this.state.rotation >= 0 ? Math.min(this.state.rotation || 0, 360) : Math.max(this.state.rotation || 0, -360);\n _gui2.default.getService('map').setInnerGreyCoverBBox({ rotation: this.state.rotation });\n },\n getOverviewExtent: function getOverviewExtent() {\n var extent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var xmin = extent.xmin,\n xmax = extent.xmax,\n ymin = extent.ymin,\n ymax = extent.ymax;\n\n return (_gui2.default.getService('map').isAxisOrientationInverted() ? [ymin, xmin, ymax, xmax] : [xmin, ymin, xmax, ymax]).join();\n },\n getPrintExtent: function getPrintExtent() {\n var map = _gui2.default.getService('map').viewer.map;\n\n try {\n var _map$getCoordinateFro = map.getCoordinateFromPixel([this.state.inner[0], this.state.inner[1]]),\n _map$getCoordinateFro2 = _slicedToArray(_map$getCoordinateFro, 2),\n xmin = _map$getCoordinateFro2[0],\n ymin = _map$getCoordinateFro2[1];\n\n var _map$getCoordinateFro3 = map.getCoordinateFromPixel([this.state.inner[2], this.state.inner[3]]),\n _map$getCoordinateFro4 = _slicedToArray(_map$getCoordinateFro3, 2),\n xmax = _map$getCoordinateFro4[0],\n ymax = _map$getCoordinateFro4[1];\n\n this.print_extent = (_gui2.default.getService('map').isAxisOrientationInverted() ? [ymin, xmin, ymax, xmax] : [xmin, ymin, xmax, ymax]).join();\n } catch (e) {\n console.warn(e);\n }\n\n return this.print_extent;\n },\n print: function () {\n var _ref2 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var has_atlas = !!this.state.atlas;\n var err = void 0,\n download_id = void 0;\n\n this.state.loading = true;\n\n try {\n _gui2.default.disableSideBar(true);\n\n if (this._page) {\n yield (0, _promisify.promisify)(_gui2.default.closeContent());\n }\n\n if (has_atlas) {\n download_id = _application2.default.setDownload(true);\n yield (0, _downloadFile.downloadFile)({\n url: (yield (0, _printAtlas.printAtlas)({\n template: this.state.template,\n field: this.state.atlas.field_name || '$id',\n values: this.atlas_values,\n download: true\n })).url,\n filename: this.state.template,\n mime_type: 'application/pdf'\n });\n }\n\n if (!has_atlas) {\n this.state.url = null;\n this.state.layers = true;\n\n this._page = new _g3wComponent2.default({ service: { state: this.state }, vueComponentObject: vueComp });\n\n _gui2.default.setContent({\n content: this._page,\n title: 'print',\n perc: 100\n });\n\n var output = yield (0, _print2.print)({\n rotation: this.state.rotation,\n dpi: this.state.dpi,\n template: this.state.template,\n scale: this.state.scale,\n format: this.state.format,\n labels: this.state.labels,\n is_maps_preset_theme: this.state.maps.some(function (m) {\n return undefined !== m.preset_theme;\n }),\n maps: this.state.maps.map(function (m) {\n return {\n name: m.name,\n preset_theme: m.preset_theme,\n scale: m.overview ? m.scale : _this2.state.scale,\n extent: m.overview ? _this2.getOverviewExtent(m.extent) : _this2.getPrintExtent()\n };\n })\n }, _projects2.default.getCurrentProject().getOwsMethod());\n this.state.url = output.url;\n this.state.layers = output.layers;\n\n this._page.getInternalComponent().$on('hook:mounted', function () {\n return _this2.state.loading = false;\n });\n\n this._page.unmount = function () {\n _gui2.default.getService('map').viewer.map.once('postrender', _this2._setPrintArea.bind(_this2));\n var promise = _g3wComponent2.default.prototype.unmount.call(_this2._page);\n _this2._page = null;\n return promise;\n };\n }\n } catch (e) {\n err = e;\n this.state.loading = false;\n\n _gui2.default.disableSideBar(false);\n console.warn(e);\n }\n\n this.state.loading = false;\n\n if (download_id) {\n _application2.default.setDownload(false, download_id);\n }\n\n if (has_atlas || !this.state.layers) {\n _gui2.default.disableSideBar(false);\n }\n\n if (err) {\n console.warn(err);\n _gui2.default.notify.error(err || t(\"info.server_error\"));\n _gui2.default.closeContent();\n }\n });\n\n function print() {\n return _ref2.apply(this, arguments);\n }\n\n return print;\n }(),\n showPrintArea: function showPrintArea(show) {\n var _this3 = this;\n\n var reset = !show;\n if (reset && this.select2) {\n this.select2.val(null).trigger('change');\n }\n if (reset) {\n this.atlas_values = [];this.print_extent = null;\n }\n _gui2.default.closeContent().then(function (component) {\n setTimeout(function () {\n var map = component.getService();\n map.getMap().once('postrender', function (e) {\n if (!show) {\n return _this3._clearPrint();\n }\n _this3._moveKey = map.viewer.map.on('moveend', _this3._setPrintArea.bind(_this3));\n _this3._initPrintConfig();\n\n if (undefined === _this3.state.atlas) {\n _this3._setPrintArea();\n map.startDrawGreyCover();\n }\n });\n map.getMap().renderSync();\n });\n });\n },\n _setPrintArea: function _setPrintArea() {\n if (!this.has_maps) {\n return this._clearPrint();\n }\n var map = _gui2.default.getService('map').viewer.map;\n var size = map.getSize();\n var resolution = map.getView().getResolution();\n\n var _state$maps$find = this.state.maps.find(function (m) {\n return !m.overview;\n }),\n h = _state$maps$find.h,\n w = _state$maps$find.w;\n\n var res = _gui2.default.getService('map').getMapUnits() === 'm' ? resolution : (0, _getMetersFromDegrees.getMetersFromDegrees)(resolution);\n var w2 = w / 1000.0 * parseFloat(this.state.scale) / res / 2;\n var h2 = h / 1000.0 * parseFloat(this.state.scale) / res / 2;\n var x = size[0] / 2,\n y = size[1] / 2;\n\n this.state.inner = [x - w2, y + h2, x + w2, y - h2];\n _gui2.default.getService('map').setInnerGreyCoverBBox({\n type: 'pixel',\n inner: this.state.inner,\n rotation: this.state.rotation\n });\n },\n _clearPrint: function _clearPrint() {\n ol.Observable.unByKey(this._moveKey);\n this._moveKey = null;\n _gui2.default.getService('map').stopDrawGreyCover();\n },\n _setScales: function _setScales(maxRes) {\n var _this4 = this;\n\n var units = _gui2.default.getService('map').getMapUnits();\n var mapScale = (0, _getScaleFromResolution.getScaleFromResolution)(maxRes, units);\n var scales = _constant.PRINT_SCALES.sort(function (a, b) {\n return b.value - a.value;\n });\n var below = scales.filter(function (s) {\n return s.value < mapScale;\n });\n var above = scales.findLast(function (s) {\n return s.value >= mapScale;\n });\n this.state.scales = (above ? [above] : []).concat(below);\n this.state.scales.forEach(function (s) {\n return _this4._resolutions[s.value] = (0, _getResolutionFromScale.getResolutionFromScale)(s.value, units);\n });\n },\n _initPrintConfig: function _initPrintConfig() {\n var _this5 = this;\n\n var view = _gui2.default.getService('map').viewer.map.getView();\n if (!this._initialized) {\n this._setScales(view.getMaxResolution());\n this._initialized = true;\n }\n var resolution = view.getResolution();\n\n Object.entries(this._resolutions).find(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n scala = _ref4[0],\n res = _ref4[1];\n\n if (resolution <= res) {\n _this5.state.scale = scala;\n return true;\n }\n });\n },\n reload: function reload() {\n var _this6 = this;\n\n this.state.print = _projects2.default.getCurrentProject().state.print || [];\n var visible = this.state.print.length > 0;\n var init = this._initialized;\n this.state.template = visible ? this.state.print[0].name : this.state.template;\n if (visible && !init) {\n this.init();\n }\n if (visible) {\n this._initPrintConfig();\n var map = _gui2.default.getService('map');\n map.on('changeviewaftercurrentproject', function () {\n _this6.state.scales = _constant.PRINT_SCALES;\n _this6._setScales(map.viewer.map.getView().getMaxResolution());\n });\n } else {\n this._clearPrint();\n }\n },\n initSelect2Field: function initSelect2Field() {\n var _this7 = this;\n\n this.select2 = $('#print_atlas_autocomplete').select2({\n width: '100%',\n multiple: true,\n dropdownParent: $(this.$refs.print_atlas),\n minimumInputLength: 1,\n ajax: {\n delay: 500,\n transport: function () {\n var _ref5 = _asyncToGenerator(function* (d, ok, ko) {\n try {\n ok({\n results: (yield _catalogLayers2.default.getLayerById(_this7.state.atlas.qgs_layer_id).getFilterData({\n suggest: _this7.state.atlas.field_name + '|' + d.data.q,\n unique: _this7.state.atlas.field_name\n })).map(function (v) {\n return { id: v, text: v };\n })\n });\n } catch (e) {\n console.warn(e);\n ko(e);\n }\n });\n\n function transport(_x2, _x3, _x4) {\n return _ref5.apply(this, arguments);\n }\n\n return transport;\n }()\n },\n\n matcher: function matcher(params, data) {\n var search = params.term ? params.term.toLowerCase() : params.term;\n if ('' === (search || '').toString().trim()) return data;\n if (data.text.toLowerCase().includes(search) && undefined !== data.text) return _extends({}, data);\n return null;\n },\n language: {\n noResults: function noResults() {\n return t(\"sdk.search.no_results\");\n },\n errorLoading: function errorLoading() {\n return t(\"sdk.search.error_loading\");\n },\n searching: function searching() {\n return t(\"sdk.search.searching\");\n },\n inputTooShort: function inputTooShort(d) {\n return t(\"sdk.search.autocomplete.inputshort.pre\") + ' ' + (d.minimum - d.input.length) + ' ' + t(\"sdk.search.autocomplete.inputshort.post\");\n }\n }\n });\n this.select2.on('select2:select', function (e) {\n _this7.atlas_values.push(e.params.data.id);\n });\n this.select2.on('select2:unselect', function (e) {\n _this7.atlas_values = _this7.atlas_values.filter(function (v) {\n return v != e.params.data.id;\n });\n });\n }\n },\n\n watch: {\n has_autocomplete: function () {\n var _ref6 = _asyncToGenerator(function* (b) {\n if (!b) return;\n yield this.$nextTick();\n this.initSelect2Field();\n });\n\n function has_autocomplete(_x5) {\n return _ref6.apply(this, arguments);\n }\n\n return has_autocomplete;\n }(),\n\n\n atlas_values: {\n immediate: true,\n handler: function () {\n var _ref7 = _asyncToGenerator(function* (vals) {\n var _this8 = this;\n\n if (this._skip_atlas_check || !this.state.atlas) {\n return;\n }\n if (this.has_autocomplete) {\n this.disabled = 0 === vals.length;\n return;\n }\n var validate = function validate(n) {\n return n && Number.isInteger(1 * n) && 1 * n >= 0 && 1 * n < _this8.state.atlas.feature_count || null;\n };\n var values = new Set();\n var value = (vals ? vals[0] : '') || '';\n value.split(',').filter(function (v) {\n return v;\n }).forEach(function (value) {\n if (-1 === value.indexOf('-') && validate(value) !== null) {\n values.add(value);\n return;\n }\n var _values = value.split('-');\n var range = _values.filter(function (v) {\n return validate(v) !== null;\n });\n if (range.length === _values.length && range.reduce(function (bool, value, i) {\n return bool && (0 === i || range[i - 1] <= value);\n }, true)) {\n for (var i = 1; i < range.length; i++) {\n for (var j = range[i - 1]; j < range[i]; j++) {\n values.add(j + '');\n }\n }\n values.add(range[range.length - 1]);\n }\n });\n this._skip_atlas_check = true;\n this.atlas_values = Array.from(values);\n yield this.$nextTick();\n this._skip_atlas_check = false;\n this.disabled = '' === value.trim();\n });\n\n function handler(_x6) {\n return _ref7.apply(this, arguments);\n }\n\n return handler;\n }()\n },\n\n 'state.url': function () {\n var _ref8 = _asyncToGenerator(function* (url) {\n var _this9 = this;\n\n if (!url) {\n return;\n }\n var timeout = void 0;\n\n try {\n\n yield this.$nextTick();\n\n timeout = setTimeout(function () {\n _gui2.default.disableSideBar(false);\n _this9.state.downloading = false;\n _gui2.default.showUserMessage({ type: 'alert', message: 'timeout' });\n }, _constant.TIMEOUT);\n\n var response = yield fetch(url);\n\n if (!response.ok) {\n throw response.statusText;\n }\n } catch (e) {\n console.warn(e);\n _gui2.default.notify.error(e || t(\"info.server_error\"));\n _gui2.default.closeContent();\n } finally {\n clearTimeout(timeout);\n _gui2.default.disableSideBar(false);\n this.state.downloading = false;\n }\n });\n\n function stateUrl(_x7) {\n return _ref8.apply(this, arguments);\n }\n\n return stateUrl;\n }()\n\n }\n\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"treeview-menu\",attrs:{\"id\":\"print\"}},[_c('li',[(_vm.state.print.length)?_c('form',{staticClass:\"g3w-search-form form-horizonal\"},[_c('div',{staticClass:\"box-body\"},[_c('transition',{attrs:{\"duration\":500,\"name\":\"fade\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.state.loading}})],1),_vm._v(\" \"),_c('helpdiv',{attrs:{\"message\":\"sdk.print.help\"}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.template'),expression:\"'sdk.print.template'\"}],attrs:{\"for\":\"templates\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('state.template'),expression:\"'state.template'\"}],staticClass:\"form-control\",style:({ marginBottom: this.state.atlas && '10px' }),attrs:{\"id\":\"templates\",\"select2_value\":_vm.state.template},on:{\"change\":_vm.changeTemplate}},_vm._l((_vm.state.print),function(print){return _c('option',{domProps:{\"value\":print.name}},[_vm._v(_vm._s(print.name))])}),0),_vm._v(\" \"),(!_vm.state.atlas)?[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.scale'),expression:\"'sdk.print.scale'\"}],attrs:{\"for\":\"scale\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.has_maps),expression:\"!has_maps\"},{name:\"select2\",rawName:\"v-select2\",value:('state.scale'),expression:\"'state.scale'\"}],ref:\"scales\",staticClass:\"form-control\",attrs:{\"id\":\"scale\",\"select2_value\":_vm.state.scale,\"createTag\":true},on:{\"change\":_vm.changeScale}},_vm._l((_vm.state.scales),function(scale){return _c('option',{domProps:{\"value\":scale.value}},[_vm._v(_vm._s(scale.label))])}),0),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"dpi\"}},[_vm._v(\"dpi\")]),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('state.dpi'),expression:\"'state.dpi'\"}],ref:\"dpi\",staticClass:\"form-control\",attrs:{\"id\":\"dpi\",\"select2_value\":_vm.state.dpi,\"createTag\":true},on:{\"change\":_vm.changeDpi}},_vm._l((_vm.state.dpis),function(dpi){return _c('option',[_vm._v(_vm._s(dpi))])}),0),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.rotation'),expression:\"'sdk.print.rotation'\"}],attrs:{\"for\":\"rotation\"}}),_vm._v(\" \"),_c('input',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.has_maps),expression:\"!has_maps\"},{name:\"model\",rawName:\"v-model\",value:(_vm.state.rotation),expression:\"state.rotation\"}],staticClass:\"form-control\",attrs:{\"id\":\"rotation\",\"min\":\"-360\",\"max\":\"360\",\"type\":\"number\"},domProps:{\"value\":(_vm.state.rotation)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.state, \"rotation\", $event.target.value)},_vm.changeRotation]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.format'),expression:\"'sdk.print.format'\"}],attrs:{\"for\":\"format\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('state.format'),expression:\"'state.format'\"}],staticClass:\"form-control\",attrs:{\"id\":\"format\",\"select2_value\":_vm.state.format}},_vm._l((_vm.state.formats),function(format){return _c('option',{domProps:{\"value\":format.value}},[_vm._v(_vm._s(format.label))])}),0)]:_vm._e(),_vm._v(\" \"),(_vm.state.atlas)?_c('div',{ref:\"print_atlas\",staticClass:\"form-group\",staticStyle:{\"width\":\"100%\"}},[(_vm.has_autocomplete)?[_c('label',{attrs:{\"for\":\"print_atlas_autocomplete\"}},[_c('span',[_vm._v(_vm._s(_vm.state.atlas.field_name))])]),_vm._v(\" \"),_c('select',{staticClass:\"form-control\",attrs:{\"id\":\"print_atlas_autocomplete\",\"name\":_vm.state.atlas.field_name}})]:[_c('label',[_c('span',[_vm._v(\"fids [max: \"+_vm._s(_vm.state.atlas.feature_count - 1)+\"]\")])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.atlas_values),expression:\"atlas_values\"}],staticClass:\"form-control\",domProps:{\"value\":(_vm.atlas_values)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();},\"input\":function($event){if($event.target.composing){ return; }_vm.atlas_values=$event.target.value}}}),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"fid-print-atals-instruction\"}},[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.fids_instruction'),expression:\"'sdk.print.fids_instruction'\"}],attrs:{\"id\":\"fids_intruction\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.fids_example'),expression:\"'sdk.print.fids_example'\"}],attrs:{\"id\":\"fids_examples_values\"}})])]],2):_vm._e(),_vm._v(\" \"),(_vm.state.labels && _vm.state.labels.length > 0)?_c('div',{staticClass:\"print-labels-content\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.labels'),expression:\"'sdk.print.labels'\"}],staticClass:\"skin-color\"}),_vm._v(\" \"),_c('div',{staticClass:\"labels-input-content\"},_vm._l((_vm.state.labels),function(label){return _c('span',{key:label.id},[_c('label',{attrs:{\"for\":(\"g3w_label_id_input_\" + (label.id))}},[_vm._v(\" \"+_vm._s(label.id))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(label.text),expression:\"label.text\"}],staticClass:\"form-control\",attrs:{\"id\":(\"g3w_label_id_input_\" + (label.id))},domProps:{\"value\":(label.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(label, \"text\", $event.target.value)}}})])}),0)]):_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"box-footer\"},[_c('span',[_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disabled),expression:\"disabled\"},{name:\"download\",rawName:\"v-download\"},{name:\"t\",rawName:\"v-t\",value:('create_print'),expression:\"'create_print'\"}],staticClass:\"sidebar-button-run btn\",attrs:{\"id\":\"printbutton\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.print($event)}}})])])]):_vm._e(),_vm._v(\" \"),_c('div',{staticStyle:{\"padding\":\"1em\",\"text-align\":\"center\"}},[_c('b',[_c('a',{attrs:{\"href\":(\"https://docs.qgis.org/3.34/\" + _vm.lang + \"/docs/training_manual/map_composer/map_composer.html\"),\"target\":\"_blank\",\"title\":\"QGIS Docs\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('external-link')}),_vm._v(\" Edit in QGIS\\n \")])])])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-9e025612\"\n\n},{\"app/constant\":5,\"components/PrintPage.vue\":195,\"core/g3w-component\":8,\"core/i18n/i18n.service\":12,\"mixins/resize\":277,\"services/application\":282,\"services/gui\":286,\"store/application-state\":294,\"store/catalog-layers\":295,\"store/projects\":301,\"utils/downloadFile\":350,\"utils/getMetersFromDegrees\":371,\"utils/getResolutionFromScale\":378,\"utils/getScaleFromResolution\":379,\"utils/print\":410,\"utils/printAtlas\":411,\"utils/promisify\":412,\"vueify/lib/insert-css\":2}],195:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#print-output[data-v-184574a6]{height:100%;position:relative}#print-output>iframe[data-v-184574a6]{border:0;width:100%;height:100%}.g3w-print-image-output[data-v-184574a6]{display:flex;flex-direction:column;position:relative;height:100%}#g3w-print-header[data-v-184574a6]{display:flex;justify-content:flex-end;align-items:flex-end;margin-top:5px;margin-bottom:5px}#g3w-print-header button[data-v-184574a6]{font-weight:700}.g3w-print-url[data-v-184574a6]{height:100%;width:100%;position:relative;overflow-y:auto}.g3w-print-url>img[data-v-184574a6]{height:auto;max-width:100%}#print-output>h4[data-v-184574a6]{font-weight:700}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _imageToDataURL = require('utils/imageToDataURL');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'print-page',\n\n data: function data() {\n var state = this.$options.service.state || {};\n return {\n state: state,\n\n format: state.format\n };\n },\n\n\n methods: {\n downloadImage: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n try {\n _gui2.default.disableSideBar(true);\n this.state.downloading = true;\n if (['jpg', 'png', 'svg'].includes(this.format)) {\n yield (0, _imageToDataURL.imageToDataURL)({ src: this.state.url, type: 'image/' + this.format });\n setTimeout(function () {\n _gui2.default.disableSideBar(false);\n _this.state.downloading = false;\n });\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n function downloadImage() {\n return _ref.apply(this, arguments);\n }\n\n return downloadImage;\n }()\n },\n\n beforeDestroy: function beforeDestroy() {\n if (this.state.url && 'POST' === _projects2.default.getCurrentProject().getOwsMethod()) {\n window.URL.revokeObjectURL(this.state.url);\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"print-output\"}},[_c('transition',{attrs:{\"duration\":500,\"name\":\"fade\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.state.loading && _vm.state.layers}})],1),_vm._v(\" \"),(_vm.state.layers)?[(['pdf', 'geopdf'].includes(_vm.format))?_c('iframe',{ref:\"out\",attrs:{\"src\":_vm.state.url}}):_c('div',{staticClass:\"g3w-print-image-output\"},[_c('div',{attrs:{\"id\":\"g3w-print-header\"}},[_c('div',{class:{ 'g3w-disabled': !!(_vm.state.downloading && _vm.state.layers) }},[_c('a',{attrs:{\"href\":_vm.state.url,\"download\":(\"download.\" + _vm.format)}},[_c('button',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('sdk.print.download_image'),expression:\"'sdk.print.download_image'\",modifiers:{\"create\":true}}],staticClass:\"btn skin-button skin-tooltip-left\",class:_vm.g3wtemplate.getFontClass('download'),attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\",\"role\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.downloadImage($event)}}})])])]),_vm._v(\" \"),(_vm.state.url)?_c('div',{staticClass:\"g3w-print-url\"},[_c('img',{ref:\"out\",attrs:{\"src\":_vm.state.url}})]):_vm._e()])]:_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.print.no_layers'),expression:\"'sdk.print.no_layers'\"}]})],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-184574a6\"\n\n},{\"services/gui\":286,\"store/projects\":301,\"utils/imageToDataURL\":387,\"vueify/lib/insert-css\":2}],196:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".project-menu[data-v-4c9dd89f]{cursor:pointer;margin-bottom:20px;margin-top:20px}.project-menu-item-image[data-v-4c9dd89f]{position:relative;overflow:hidden;padding-bottom:50%}.project-menu-item-image img[data-v-4c9dd89f]{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.project-menu-item-content[data-v-4c9dd89f]{padding:15px;background:hsla(0,0%,100%,.3)}.project-menu-item-text[data-v-4c9dd89f]{position:relative;overflow:hidden;height:100%;text-align:justify}.project-menu-item-title[data-v-4c9dd89f]{text-align:center;font-weight:700;background:hsla(0,0%,100%,.5);padding:5px}#menu-projects[data-v-4c9dd89f]{width:100%;overflow-y:auto}#menu-projects .row-equal[data-v-4c9dd89f]{display:flex;flex-wrap:wrap}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar fakeImage = '/static/client/images/FakeProjectThumb.png';\n\nexports.default = {\n name: 'projects-menu',\n\n data: function data() {\n return {\n state: null,\n loading: false\n };\n },\n\n\n methods: {\n trigger: function trigger(item) {\n if (item.cbk) this._initCallback(item);else if (item.href) window.open(item.href, '_blank');else if (item.route) _gui2.default.goto(item.route);else console.log(\"No action for \" + item.title);\n },\n _initCallback: function _initCallback(item) {\n var _this = this;\n\n this._toggleModal(true);\n item.cbk.call(item, { gid: item.gid }).then(function (promise) {\n promise.then(function (project) {\n if (project) document.title = project.state.html_page_title;\n }).fail(function () {\n _gui2.default.notify.error(\"
\" + t(\"error_map_loading\") + \" \" + \"
\" + t(\"check_internet_connection_or_server_admin\") + \" \");\n }).always(function () {\n _this._toggleModal(false);\n });\n });\n },\n _toggleModal: function _toggleModal(state) {\n _gui2.default.showFullModal({ show: state });\n _gui2.default.setLoadingContent(state);\n },\n logoSrc: function logoSrc(src) {\n var imageSrc = void 0;\n var host = this.$options.host || '';\n var has_media = src && -1 !== src.indexOf(_projects2.default.config.mediaurl);\n var not_static = src && -1 === src.indexOf('static') && -1 === src.indexOf('media');\n\n if (!src) {\n imageSrc = fakeImage;\n } else if (has_media) {\n imageSrc = src;\n } else if (not_static) {\n imageSrc = '' + _projects2.default.config.mediaurl + src;\n } else {\n imageSrc = fakeImage;\n }\n\n return '' + host + imageSrc;\n }\n }\n\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",attrs:{\"id\":\"menu-projects\"}},[_c('div',{staticClass:\"row row-equal\"},[_vm._l((_vm.state.menuitems),function(menuitem){return _c('div',{key:menuitem.title,staticClass:\"col-xs-12 col-sm-4 project-menu\",on:{\"click\":function($event){return _vm.trigger(menuitem)}}},[_c('div',{staticClass:\"project-menu-item-image\"},[_c('img',{staticClass:\"img-responsive\",attrs:{\"src\":_vm.logoSrc(menuitem.thumbnail)}})]),_vm._v(\" \"),_c('div',{staticClass:\"project-menu-item-content\"},[_c('div',{staticClass:\"project-menu-item-text\"},[_c('h4',{staticClass:\"project-menu-item-title\"},[_vm._v(_vm._s(menuitem.title))]),_vm._v(\" \"),_c('div',{domProps:{\"innerHTML\":_vm._s(menuitem.description)}})])])])}),_vm._v(\" \"),(!_vm.state.menuitems.length)?_c('div',{staticStyle:{\"margin-left\":\"15px\"}},[_c('h2',{directives:[{name:\"t\",rawName:\"v-t\",value:('no_other_projects'),expression:\"'no_other_projects'\"}]})]):_vm._e()],2)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-4c9dd89f\"\n\n},{\"core/i18n/i18n.service\":12,\"services/gui\":286,\"store/projects\":301,\"vueify/lib/insert-css\":2}],197:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#query_builder[data-v-81e8d74e]{font-family:monospace;margin-bottom:0;height:100%;display:flex;flex-wrap:nowrap;flex-direction:column}#query_builder .select2.select2-container[data-v-81e8d74e]{font-weight:700}.querybuilder-title[data-v-81e8d74e]{color:#fff;font-weight:700}select[data-v-81e8d74e]{background-color:#fff;color:#000;border:none}option[data-v-81e8d74e]{padding:8px;cursor:pointer}option[data-v-81e8d74e]:checked{background:var(--skin-color) linear-gradient(0deg,var(--skin-color),var(--skin-color));color:#fff}option[data-v-81e8d74e]:nth-of-type(odd){background-color:#f9f9f9}.query_builder_button[data-v-81e8d74e]{margin:1px;flex-basis:78px;flex-grow:1;color:#000}.content-wrap[data-v-81e8d74e]{display:flex;flex-wrap:wrap}.content-end[data-v-81e8d74e]{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:5px}.margin-between-element[data-v-81e8d74e]{margin-bottom:5px}#query_builder_expression_content[data-v-81e8d74e]{width:100%;resize:none;height:100px;color:#000}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constant = require('app/constant');\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _getUniqueDomId = require('utils/getUniqueDomId');\n\nvar _createFilterFromString = require('utils/createFilterFromString');\n\nvar _XHR = require('utils/XHR');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n name: 'query-builder',\n\n data: function data() {\n return {\n edit: undefined !== this.$options.options,\n currentlayer: null,\n message: '',\n filter: undefined !== this.$options.options ? this.$options.options.filter : '',\n loading: {\n test: false,\n values: false\n },\n values: [],\n manual: true,\n manualvalue: null,\n select: {\n field: null,\n value: null\n }\n };\n },\n\n\n computed: {\n fields: function fields() {\n return this.currentlayer ? this.currentlayer.fields : [];\n },\n disabled: function disabled() {\n return !this.filter;\n }\n },\n\n watch: {\n 'select.field': function selectField() {\n this.values = [];\n this.manual = true;\n }\n },\n\n methods: {\n addToExpression: function addToExpression() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n value = _ref.value,\n type = _ref.type;\n\n switch (type) {\n case 'operator':\n value = ' ' + value + ' ';break;\n case 'field':\n value = '\"' + value + '\"';break;\n case 'value':\n value = '\\'' + value + '\\'';break;\n }\n if (value) this.filter = '' + this.filter + value;\n },\n all: function () {\n var _ref2 = _asyncToGenerator(function* () {\n this.loading.values = true;\n try {\n var layerId = this.currentlayer.id;\n var field = this.select.field;\n var CACHE = _applicationState2.default.querybuilder.cache;\n CACHE[layerId] = CACHE[layerId] || {};\n if (undefined !== CACHE[layerId][field]) {\n this.values = CACHE[layerId][field];\n } else {\n var response = yield _XHR.XHR.get({\n url: _catalogLayers2.default.getLayerById(layerId).getUrl('data'),\n params: { ordering: field, formatter: 1, fformatter: field }\n });\n if (response.result) {\n CACHE[layerId][field] = CACHE[layerId][field] || response.data;\n }\n this.values = CACHE[layerId][field] || [];\n }\n } catch (e) {\n console.warn(e);\n }\n this.loading.values = false;\n yield this.$nextTick();\n this.manualvalue = null;\n this.manual = false;\n });\n\n function all() {\n return _ref2.apply(this, arguments);\n }\n\n return all;\n }(),\n reset: function reset() {\n this.filter = '';\n this.message = '';\n this.filterElement.previous = null;\n this.filterElement.current = null;\n this.filterElement.operator = null;\n this.select.field = null;\n if (this.$refs.search_fields) this.$refs.search_fields.selectedIndex = -1;\n if (this.$refs.search_values) this.$refs.search_values.selectedIndex = -1;\n },\n run: function () {\n var _ref3 = _asyncToGenerator(function* () {\n try {\n this.loading.test = true;\n var layer = _catalogLayers2.default.getLayerById(this.currentlayer.id);\n\n var _ref4 = yield _data2.default.getData('search:features', {\n inputs: {\n layer: layer,\n filter: (0, _createFilterFromString.createFilterFromString)({ layer: layer, filter: this.filter }),\n feature_count: 100\n },\n outputs: true\n }),\n data = _ref4.data;\n\n var n = data.length && data[0].features.length;\n this.message = undefined !== n ? ' ' + n : '';\n return data;\n } catch (e) {\n console.warn(e);\n } finally {\n this.loading.test = false;\n }\n });\n\n function run() {\n return _ref3.apply(this, arguments);\n }\n\n return run;\n }(),\n save: function () {\n var _ref5 = _asyncToGenerator(function* () {\n var id = this.projectId || _projects2.default.getCurrentProject().getId();\n var edit_id = this.edit && this.$options.options.id;\n var searches = _application2.default.getLocalItem('QUERYBUILDERSEARCHES');\n var query = void 0;\n\n try {\n query = {\n layerId: this.currentlayer.id,\n filter: this.filter,\n layerName: _catalogLayers2.default.getLayerById(this.currentlayer.id).getName(),\n name: edit_id ? this.edit && this.$options.options.name : yield new Promise(function (res, rej) {\n _gui2.default.dialog.prompt(t('sdk.querybuilder.additem'), function (d) {\n return d ? res(d) : rej();\n });\n }),\n id: edit_id || (0, _getUniqueDomId.getUniqueDomId)()\n };\n\n if (edit_id) {\n var i = searches[id].findIndex(function (s) {\n return s.id === query.id;\n });\n if (-1 !== i) {\n searches[id][i] = query;\n }\n } else {\n _gui2.default.getService('search').addQueryBuilderSearch(query);\n if (undefined === searches) {\n searches = _defineProperty({}, id, [query]);\n } else {\n searches[id] = [].concat(_toConsumableArray(searches[id] || []), [query]);\n }\n }\n } catch (e) {\n console.warn(e);\n return;\n }\n\n var ITEMS = _applicationState2.default.querybuilder.searches;\n _application2.default.setLocalItem({ id: 'QUERYBUILDERSEARCHES', data: searches });\n setTimeout(function () {\n searches[id].forEach(function (q) {\n return ITEMS[id].push(q);\n });\n }, 0);\n ITEMS[id].splice(0);\n _gui2.default.showUserMessage({ type: 'success', message: t(\"sdk.querybuilder.messages.changed\"), autoclose: true });\n });\n\n function save() {\n return _ref5.apply(this, arguments);\n }\n\n return save;\n }()\n },\n\n created: function created() {\n var _this = this;\n\n this.filterElement = {\n current: null,\n previous: null,\n operator: null\n };\n\n var project = _projects2.default.getCurrentProject();\n\n this.layers = project.getLayers().filter(function (l) {\n return !l.baselayer && Array.isArray(l.fields);\n }).map(function (layer) {\n var exclude = [];\n project.getRelationsByLayerId({ layerId: layer.id, type: 'ONE' }).forEach(function (r) {\n var l = project.getLayerById(r.referencingLayer);\n r.customPrefix = r.customPrefix === undefined ? l.getName() + '_' : r.customPrefix;\n exclude = [].concat(_toConsumableArray(exclude), _toConsumableArray(l.getFields().map(function (field) {\n return '' + r.customPrefix + field.name;\n })));\n });\n return {\n id: layer.id,\n label: layer.title,\n fields: layer.fields.filter(function (f) {\n return f.show;\n }).map(function (f) {\n return { label: f.label, name: f.name };\n }).filter(function (f) {\n return -1 === exclude.indexOf(f);\n })\n };\n });\n\n this.operators = Object.values(_constant.FILTER_OPERATORS);\n\n this.currentlayer = this.edit ? this.layers.find(function (l) {\n return l.id === _this.$options.options.layerId;\n }) : this.layers[0];\n },\n mounted: function () {\n var _ref6 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n yield this.$nextTick();\n\n this.select2 = $('#query_builder_layers_select').select2({ width: '100%' });\n\n if (this.edit) {\n this.select2.val(this.layers.indexOf(this.currentlayer));\n this.select2.trigger('change');\n }\n\n this.select2.on('select2:select', function (e) {\n _this2.currentlayer = _this2.layers[e.params.data.id];\n _this2.select.field = null;\n _this2.select.value = null;\n _this2.reset();\n });\n });\n\n function mounted() {\n return _ref6.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.select2.select2('destroy');\n this.select2 = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\",attrs:{\"id\":\"query_builder\"}},[_c('div',{staticClass:\"margin-between-element\",attrs:{\"id\":\"query_builder_layers\"}},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.expression'),expression:\"'sdk.querybuilder.panel.expression'\"}],staticClass:\"querybuilder-title\"}),_vm._v(\" \"),_c('a',{staticStyle:{\"float\":\"right\"},attrs:{\"href\":\"https://g3w-suite.readthedocs.io/en/v3.7.x/g3wsuite_client.html#search-and-query-builder\",\"target\":\"_blank\",\"title\":\"Docs\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('external-link')})]),_vm._v(\" \"),_c('select',{staticClass:\"form-control\",attrs:{\"id\":\"query_builder_layers_select\"}},_vm._l((_vm.layers),function(layer,i){return _c('option',{key:layer.label,staticClass:\"bold\",domProps:{\"value\":i}},[_vm._v(_vm._s(layer.label))])}),0)]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter),expression:\"filter\"}],attrs:{\"id\":\"query_builder_expression_content\"},domProps:{\"value\":(_vm.filter)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.filter=$event.target.value}}}),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading.test}}),_vm._v(\" \"),_c('b',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.message),expression:\"message\"}],staticClass:\"skin-color\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.messages.number_of_features'),expression:\"'sdk.querybuilder.messages.number_of_features'\"}]}),_vm._v(_vm._s(_vm.message))]),_vm._v(\" \"),_c('div',{staticClass:\"content-end\"},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.button.run'),expression:\"'sdk.querybuilder.panel.button.run'\"}],staticClass:\"query_builder_button btn btn-secondary bold\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.run}},[_c('i',{class:_vm.g3wtemplate.getFontClass('run'),staticStyle:{\"color\":\"green\"}})]),_vm._v(\" \"),_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.button.clear'),expression:\"'sdk.querybuilder.panel.button.clear'\"}],staticClass:\"query_builder_button btn btn-secondary bold\",on:{\"click\":_vm.reset}},[_c('i',{class:_vm.g3wtemplate.getFontClass('clear')})]),_vm._v(\" \"),_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.button.save'),expression:\"'sdk.querybuilder.panel.button.save'\"}],staticClass:\"query_builder_button btn btn-secondary bold\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.save}},[_c('i',{class:_vm.g3wtemplate.getFontClass('save')})])]),_vm._v(\" \"),_c('hr'),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.fields'),expression:\"'sdk.querybuilder.panel.fields'\"}]}),_vm._v(\" \"),_c('select',{ref:\"search_fields\",staticClass:\"margin-between-element\",attrs:{\"size\":\"4\"}},[_c('option',{attrs:{\"selected\":\"\",\"hidden\":\"\"}}),_vm._v(\" \"),_vm._l((_vm.fields),function(field){return _c('option',{key:field.name,on:{\"click\":function($event){_vm.select.field = field.name; _vm.addToExpression({ value: field.name, type: 'field' })}}},[_vm._v(_vm._s(field.label))])})],2),_vm._v(\" \"),_c('div',{staticClass:\"content-wrap margin-between-element\"},_vm._l((_vm.operators),function(operator){return _c('button',{key:operator,staticClass:\"query_builder_button btn btn-secondary bold\",on:{\"click\":function($event){return _vm.addToExpression({ value: operator, type: 'operator' })}}},[_vm._v(_vm._s(operator))])}),0),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading.values}}),_vm._v(\" \"),(!_vm.manual)?_c('select',{ref:\"search_values\",staticClass:\"margin-between-element\",attrs:{\"size\":\"4\"}},[_c('option',{attrs:{\"selected\":\"\",\"hidden\":\"\"}}),_vm._v(\" \"),_vm._l((_vm.values),function(ref){\nvar key = ref[0];\nvar value = ref[1];\nreturn _c('option',{key:key,on:{\"click\":function($event){_vm.select.value = key; _vm.addToExpression({ value: key, type: 'value' })}}},[_vm._v(_vm._s(value))])})],2):_vm._e(),_vm._v(\" \"),(_vm.select.field !== null && !_vm.values.length)?_c('button',{staticClass:\"btn btn-secondary bold\",class:{'skin-border-color' : !_vm.manual },staticStyle:{\"color\":\"#000\"},on:{\"click\":_vm.all}},[_c('i',{class:_vm.g3wtemplate.getFontClass('search')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.querybuilder.panel.button.all'),expression:\"'sdk.querybuilder.panel.button.all'\"}]})]):_vm._e()],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-81e8d74e\"\n\n},{\"app/constant\":5,\"core/i18n/i18n.service\":12,\"services/application\":282,\"services/data\":284,\"services/gui\":286,\"store/application-state\":294,\"store/catalog-layers\":295,\"store/projects\":301,\"utils/XHR\":303,\"utils/createFilterFromString\":329,\"utils/getUniqueDomId\":381,\"vueify/lib/insert-css\":2}],198:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".feature_attributes tr[data-v-09a18998]{line-height:1.8em}.featurebox-body+tr[data-v-09a18998]{border-top:2px groove #000}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _mixins = require('mixins');\n\nvar _QueryResultsTableAttributeFieldValue = require('components/QueryResultsTableAttributeFieldValue.vue');\n\nvar _QueryResultsTableAttributeFieldValue2 = _interopRequireDefault(_QueryResultsTableAttributeFieldValue);\n\nvar _QueryResultsActionInfoFormats = require('components/QueryResultsActionInfoFormats.vue');\n\nvar _QueryResultsActionInfoFormats2 = _interopRequireDefault(_QueryResultsActionInfoFormats);\n\nvar _QueryResultsHeaderFeatureBody = require('components/QueryResultsHeaderFeatureBody.vue');\n\nvar _QueryResultsHeaderFeatureBody2 = _interopRequireDefault(_QueryResultsHeaderFeatureBody);\n\nvar _QueryResultsHeaderFeatureActionsBody = require('components/QueryResultsHeaderFeatureActionsBody.vue');\n\nvar _QueryResultsHeaderFeatureActionsBody2 = _interopRequireDefault(_QueryResultsHeaderFeatureActionsBody);\n\nvar _utils = require('utils');\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar MAX_SUBSET_LENGTH = 3;\nvar headerExpandActionCellWidth = 10;\nvar headerActionsCellWidth = 10;\nvar HEADERTYPESFIELD = ['varchar', 'integer', 'float', 'bigint', 'date'];\n\nexports.default = {\n name: 'queryresults',\n\n data: function data() {\n return {\n state: this.$options.service.state,\n headerExpandActionCellWidth: headerExpandActionCellWidth,\n headerActionsCellWidth: headerActionsCellWidth\n };\n },\n\n mixins: [_mixins.fieldsMixin],\n components: {\n TableAttributeFieldValue: _QueryResultsTableAttributeFieldValue2.default,\n 'infoformats': _QueryResultsActionInfoFormats2.default,\n 'header-feature-body': _QueryResultsHeaderFeatureBody2.default,\n HeaderFeatureActionsBody: _QueryResultsHeaderFeatureActionsBody2.default\n },\n computed: {\n onelayerresult: function onelayerresult() {\n return 1 === this.state.layers.length;\n },\n hasLayers: function hasLayers() {\n return this.hasResults || !!this.state.components.length;\n },\n hasResults: function hasResults() {\n return this.state.layers.length > 0;\n },\n info: function info() {\n if (this.state.query) {\n var query = this.state.query;\n\n var decimalNumber = 'degrees' === _gui2.default.getService('map').getMapUnits() ? 4 : 2;\n switch (query.type) {\n case 'coordinates':\n return {\n icon: 'marker',\n message: ' ' + query.coordinates[0].toFixed(decimalNumber) + ', ' + query.coordinates[1].toFixed(decimalNumber)\n };\n case 'bbox':\n return {\n icon: 'square',\n message: ' [' + query.bbox.map(function (c) {\n return c.toFixed(decimalNumber);\n }).join(' , ') + ']'\n };\n case 'polygon':\n case 'drawpolygon':\n return {\n icon: 'draw',\n message: query.layerName ? query.layerName + ' ' + (undefined !== query.fid ? ' - Feature Id: ' + query.fid : '') : ' ' };\n default:\n console.warn('Unsupported query type: ' + query.type);\n break;\n }\n } else if (this.state.search) {}\n\n return { icon: null, message: null };\n }\n },\n methods: {\n getLayerDownloads: function getLayerDownloads() {\n var downloads = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return downloads.filter(function (d) {\n return 'pdf' !== d;\n });\n },\n showLayer: function showLayer(layer) {\n return layer.show && (this.layerHasFeatures(layer) || layer.rawdata || Array.isArray(layer.infoformats) && layer.infoformats.length > 0);\n },\n getLayerCustomComponents: function getLayerCustomComponents(layerId) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'feature';\n var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'after';\n\n return this.state.layerscustomcomponents[layerId] && this.state.layerscustomcomponents[layerId][type] && this.state.layerscustomcomponents[layerId][type][position] || [];\n },\n getLayerField: function getLayerField(_ref) {\n var layer = _ref.layer,\n feature = _ref.feature,\n fieldName = _ref.fieldName;\n\n var layerField = layer.attributes.find(function (a) {\n return fieldName === a.name;\n });\n return _extends({}, layerField, {\n label: null,\n value: feature.attributes[fieldName]\n });\n },\n getQueryFields: function getQueryFields(layer, feature) {\n var fields = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = layer.formStructure.fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n\n var _field = _extends({}, field);\n _field.query = true;\n _field.value = feature.attributes[field.name];\n _field.input = {\n type: '' + this.getFieldType(_field)\n };\n fields.push(_field);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return fields;\n },\n getColSpan: function getColSpan(layer) {\n return this.attributesSubsetLength(layer) + !this.hasLayerOneFeature(layer) * 1;\n },\n getDownloadActions: function getDownloadActions(layer) {\n return this.state.layersactions[layer.id].find(function (a) {\n return a.formats;\n });\n },\n addLayerFeaturesToResults: function addLayerFeaturesToResults(layer) {\n this.$options.service.addLayerFeaturesToResultsAction(layer);\n },\n showDownloadAction: function showDownloadAction(evt) {\n evt.target.children[0].style.display = evt.target.children[0].style.display === 'none' ? 'inline-block' : 'none';\n },\n printAtlas: function printAtlas(layer) {\n this.$options.service.printAtlas(layer);\n },\n showLayerDownloadFormats: function showLayerDownloadFormats(layer) {\n this.$options.service.showLayerDownloadFormats(layer);\n },\n saveLayerResult: function saveLayerResult(layer) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"csv\";\n\n this.$options.service.saveLayerResult({ layer: layer, type: type });\n },\n hasLayerOneFeature: function hasLayerOneFeature(layer) {\n return layer.features.length === 1;\n },\n saveFilter: function saveFilter(layer) {\n this.$options.service.saveFilter(layer);\n },\n addRemoveFilter: function addRemoveFilter(layer) {\n this.$options.service.addRemoveFilter(layer);\n },\n getContainerFromFeatureLayer: function getContainerFromFeatureLayer() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layer = _ref2.layer,\n index = _ref2.index;\n\n return $('#' + layer.id + '_' + index + ' > td');\n },\n hasOneLayerAndOneFeature: function hasOneLayerAndOneFeature(layer) {\n return this.hasLayerOneFeature(layer);\n },\n hasFormStructure: function hasFormStructure(layer) {\n return !!layer.formStructure;\n },\n layerHasFeatures: function layerHasFeatures(layer) {\n return Array.isArray(layer.features) && layer.features.length > 0;\n },\n selectionFeaturesLayer: function selectionFeaturesLayer(layer) {\n this.$options.service.selectionFeaturesLayer(layer);\n },\n layerHasActions: function layerHasActions(layer) {\n return this.state.layersactions[layer.id].length > 0;\n },\n featureHasActions: function featureHasActions(layer, feature) {\n return this.geometryAvailable(feature);\n },\n geometryAvailable: function geometryAvailable(feature) {\n return !!feature.geometry;\n },\n extractAttributesFromFirstTabOfFormStructureLayers: function extractAttributesFromFirstTabOfFormStructureLayers(layer) {\n var _this = this;\n\n var attributes = new Set();\n var traverseStructure = function traverseStructure(item) {\n if (item.nodes) {\n item.nodes.forEach(function (node) {\n return traverseStructure(node);\n });\n } else {\n var field = layer.formStructure.fields.find(function (field) {\n return field.name === item.field_name;\n });\n if (field) {\n if (_this.state.type === 'ows') {\n field = _extends({}, field);\n field.name = field.name.replace(/ /g, '_');\n }\n attributes.add(field);\n }\n }\n };\n if (layer.formStructure.structure.length) {\n layer.formStructure.structure.forEach(function (structure) {\n return traverseStructure(structure);\n });\n }\n return Array.from(attributes);\n },\n attributesSubset: function attributesSubset(layer) {\n var attributes = this.hasFormStructure(layer) ? this.extractAttributesFromFirstTabOfFormStructureLayers(layer) : layer.attributes;\n var _attributes = attributes.filter(function (attribute) {\n return attribute.show && HEADERTYPESFIELD.indexOf(attribute.type) !== -1;\n });\n\n var end = Math.min(MAX_SUBSET_LENGTH, attributes.length);\n return _attributes.slice(0, end);\n },\n relationsAttributesSubset: function relationsAttributesSubset(relationAttributes) {\n var attributes = [];\n _.forEach(relationAttributes, function (value, attribute) {\n if (Array.isArray(value)) return;\n attributes.push({ label: attribute, value: value });\n });\n var end = Math.min(MAX_SUBSET_LENGTH, attributes.length);\n return attributes.slice(0, end);\n },\n relationsAttributes: function relationsAttributes(relationAttributes) {\n var attributes = [];\n _.forEach(relationAttributes, function (value, attribute) {\n attributes.push({ label: attribute, value: value });\n });\n return attributes;\n },\n attributesSubsetLength: function attributesSubsetLength(layer) {\n return this.attributesSubset(layer).length;\n },\n cellWidth: function cellWidth(index, layer) {\n var headerLength = MAX_SUBSET_LENGTH + this.state.layersactions[layer.id].length;\n var subsetLength = this.attributesSubsetLength(layer);\n var diff = headerLength - subsetLength;\n var actionsCellWidth = layer.hasgeometry ? headerActionsCellWidth : 0;\n var headerAttributeCellTotalWidth = 100 - headerExpandActionCellWidth - actionsCellWidth;\n var baseCellWidth = headerAttributeCellTotalWidth / MAX_SUBSET_LENGTH;\n if (index === subsetLength - 1 && diff > 0) {\n return baseCellWidth * (diff + 1);\n } else {\n return baseCellWidth;\n }\n },\n featureBoxColspan: function featureBoxColspan(layer) {\n var colspan = this.attributesSubsetLength(layer);\n if (layer.expandable) {\n colspan += 1;\n }\n if (layer.hasgeometry) {\n colspan += 1;\n }\n return colspan;\n },\n relationsAttributesSubsetLength: function relationsAttributesSubsetLength(elements) {\n return this.relationsAttributesSubset(elements).length;\n },\n getLayerFormStructure: function getLayerFormStructure(layer) {\n return layer.formStructure.structure.map(function (n) {\n return Vue.observable(structuredClone(n));\n });\n },\n isAttributeOrTab: function isAttributeOrTab(layer, item) {\n var isField = undefined !== item.field_name;\n return {\n type: isField && 'field' || 'tab',\n item: isField && this.getLayerAttributeFromStructureItem(layer, item.field_name) || [item]\n };\n },\n getLayerAttributeFromStructureItem: function getLayerAttributeFromStructureItem(layer, field_name) {\n return layer.attributes.find(function (a) {\n return field_name === a.name;\n });\n },\n getLayerFeatureBox: function getLayerFeatureBox(layer, feature, relation_index) {\n var _this2 = this;\n\n var boxid = this.getBoxId(layer, feature, relation_index);\n if (undefined === this.state.layersFeaturesBoxes[boxid]) {\n this.state.layersFeaturesBoxes[boxid] = Vue.observable({\n collapsed: true\n });\n this.$watch(function () {\n return _this2.state.layersFeaturesBoxes[boxid].collapsed;\n }, function (collapsed) {\n var index = layer.features.findIndex(function (_feature) {\n return feature.id === _feature.id;\n });\n var container = _this2.getContainerFromFeatureLayer({ layer: layer, index: index });\n _this2.$options.service.openCloseFeatureResult({ open: !collapsed, layer: layer, feature: feature, container: container });\n });\n this.state.layersFeaturesBoxes[boxid].collapsed = layer.features.length > 1;\n }\n return this.state.layersFeaturesBoxes[boxid];\n },\n collapsedFeatureBox: function collapsedFeatureBox(layer, feature, relation_index) {\n var box = this.state.layersFeaturesBoxes[this.getBoxId(layer, feature, relation_index)];\n return box ? box.collapsed : true;\n },\n showFeatureInfo: function showFeatureInfo(layer, boxid) {\n var box = this.state.layersFeaturesBoxes[boxid];\n this.$options.service.emit('show-query-feature-info', {\n layer: layer,\n tabs: this.hasFormStructure(layer),\n show: box ? !box.collapsed : false\n });\n },\n getBoxId: function getBoxId(layer, feature, relation_index) {\n return this.$options.service.getBoxId(layer, feature, relation_index);\n },\n toggleFeatureBox: function () {\n var _ref3 = _asyncToGenerator(function* (layer, feature, relation_index) {\n var boxid = this.getBoxId(layer, feature, relation_index);\n this.state.layersFeaturesBoxes[boxid].collapsed = !this.state.layersFeaturesBoxes[boxid].collapsed;\n yield this.$nextTick();\n this.showFeatureInfo(layer, boxid);\n });\n\n function toggleFeatureBox(_x6, _x7, _x8) {\n return _ref3.apply(this, arguments);\n }\n\n return toggleFeatureBox;\n }(),\n toggleFeatureBoxAndZoom: function toggleFeatureBoxAndZoom(layer, feature, relation_index) {\n if (!this.hasLayerOneFeature(layer)) {\n this.toggleFeatureBox(layer, feature, relation_index);\n }\n },\n trigger: function () {\n var _ref4 = _asyncToGenerator(function* (action, layer, feature, index) {\n if (action.opened && 'none' === $('#' + layer.id + '_' + index).css('display')) {\n this.toggleFeatureBox(layer, feature);\n yield this.$nextTick();\n }\n yield this.$options.service.trigger(action.id, layer, feature, index, this.getContainerFromFeatureLayer({ layer: layer, index: index }));\n });\n\n function trigger(_x9, _x10, _x11, _x12) {\n return _ref4.apply(this, arguments);\n }\n\n return trigger;\n }(),\n showFullPhoto: function showFullPhoto(url) {\n this.$options.service.showFullPhoto(url);\n },\n openLink: function openLink(link_url) {\n window.open(link_url, '_blank');\n },\n isJSON: function isJSON(field) {\n return !this.isVue(field) && this.isSimple(field) && 'Object' === (0, _utils.toRawType)(field.value);\n },\n openAttributeTable: function openAttributeTable(layer) {\n _catalogLayers2.default.getLayerById(layer.id).openAttributeTable({ perc: 100 });\n }\n },\n\n watch: {\n 'state.layers': function () {\n var _ref5 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n layers.forEach(function (layer) {\n if (layer.attributes.length <= MAX_SUBSET_LENGTH && !layer.hasImageField) {\n layer.expandable = false;\n }\n layer.features.forEach(function (feature) {\n _this3.getLayerFeatureBox(layer, feature);\n if (feature.attributes.relations) {\n feature.attributes.relations.forEach(function (relation) {\n relation.elements.forEach(function (element, index) {\n return _this3.state.layersFeaturesBoxes[layer.id + '_' + feature.id + '_' + relation.name + index] = { collapsed: true };\n });\n });\n }\n });\n });\n\n if (this.onelayerresult && this.hasLayerOneFeature(layers[0])) {\n var layer = layers[0];\n var feature = layer.features[0];\n var boxid = this.getBoxId(layer, feature);\n this.$options.service.onceafter('postRender', function () {\n _this3.showFeatureInfo(layer, boxid);\n });\n }\n requestAnimationFrame(function () {\n return _this3.$options.service.postRender(_this3.$el);\n });\n yield this.$nextTick();\n });\n\n function stateLayers() {\n return _ref5.apply(this, arguments);\n }\n\n return stateLayers;\n }(),\n onelayerresult: function onelayerresult(bool) {\n if (bool) {\n this.$options.service.highlightFeaturesPermanently(this.state.layers[0]);\n }\n }\n },\n created: function created() {\n var _this4 = this;\n\n this.zoomToLayerFeaturesExtent = (0, _utils.throttle)(function (layer) {\n _this4.$options.service.zoomToLayerFeaturesExtent(layer, {\n highlight: true\n });\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.state.zoomToResult = true;\n },\n destroyed: function destroyed() {\n this.$options.service.clear();\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"queryresults-wrapper\",attrs:{\"id\":\"search-results\"}},[(_vm.info.message)?_c('div',{staticClass:\"skin-color\",staticStyle:{\"font-weight\":\"bold\",\"margin-bottom\":\"3px\",\"font-size\":\"1.1em\"}},[(_vm.info.icon)?_c('span',{staticClass:\"action-button skin-tooltip-bottom\",class:_vm.g3wtemplate.getFontClass(_vm.info.icon)}):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.info.message))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"queryresults-container\"},[(_vm.state.layers.length)?[(_vm.hasLayers)?_c('ul',{staticClass:\"queryresults\",staticStyle:{\"position\":\"relative\"},attrs:{\"id\":\"queryresults\"}},[_vm._l((_vm.state.layers),function(layer){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLayer(layer)),expression:\"showLayer(layer)\"}]},[_c('bar-loader',{attrs:{\"loading\":layer.loading}}),_vm._v(\" \"),_c('div',{staticClass:\"box box-primary\"},[_c('div',{staticClass:\"box-header with-border\",class:{'mobile': _vm.isMobile()},attrs:{\"data-widget\":\"collapse\"}},[_c('div',{staticClass:\"box-title query-layer-title\",style:({fontSize: _vm.isMobile() && '1em !important'})},[(!layer.external)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('catalog_items.contextmenu.open_attribute_table'),expression:\"'catalog_items.contextmenu.open_attribute_table'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openAttributeTable(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('list')})]):_vm._e(),_vm._v(\"\\n \"+_vm._s(layer.title)+\"\\n \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!layer.rawdata),expression:\"!layer.rawdata\"}],staticClass:\"query-layer-feature-count\"},[_vm._v(\"(\"+_vm._s(layer.features.length)+\")\")])]),_vm._v(\" \"),_c('div',{staticClass:\"box-features-action\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('infoformats',{attrs:{\"layer\":layer}}),_vm._v(\" \"),(layer.features.length > 1)?[(layer.hasgeometry)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('sdk.mapcontrols.query.actions.zoom_to_features_extent.hint'),expression:\"'sdk.mapcontrols.query.actions.zoom_to_features_extent.hint'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.zoomToLayerFeaturesExtent(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('marker')})]):_vm._e(),_vm._v(\" \"),(layer.atlas.length)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('sdk.mapcontrols.query.actions.atlas.hint'),expression:\"'sdk.mapcontrols.query.actions.atlas.hint'\",arg:\"left\",modifiers:{\"create\":true}},{name:\"download\",rawName:\"v-download\"}],staticClass:\"action-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.printAtlas(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('print')})]):_vm._e(),_vm._v(\" \"),(1 === _vm.getLayerDownloads(layer.downloads).length )?[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:((\"sdk.mapcontrols.query.actions.download_features_\" + (layer.downloads[0]) + \".hint\")),expression:\"`sdk.mapcontrols.query.actions.download_features_${layer.downloads[0]}.hint`\",arg:\"left\",modifiers:{\"create\":true}},{name:\"download\",rawName:\"v-download\"}],staticClass:\"action-button\",class:{'toggled': layer.downloadformats.active}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('download'),on:{\"click\":function($event){$event.stopPropagation();_vm.saveLayerResult(layer, _vm.getLayerDownloads(layer.downloads)[0])}}})])]:(_vm.getLayerDownloads(layer.downloads).length > 1)?[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('Downloads'),expression:\"'Downloads'\",arg:\"left\",modifiers:{\"create\":true}},{name:\"download\",rawName:\"v-download\"}],staticClass:\"action-button\",class:{'toggled': layer.downloadformats.active}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('download'),on:{\"click\":function($event){$event.stopPropagation();return _vm.showLayerDownloadFormats(layer)}}})])]:_vm._e()]:_vm._e(),_vm._v(\" \"),(layer.external || (layer.source && 'wms' !== layer.source.type ))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('sdk.mapcontrols.query.actions.add_features_to_results.hint'),expression:\"'sdk.mapcontrols.query.actions.add_features_to_results.hint'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button\",class:{'toggled': layer.addfeaturesresults.active},on:{\"click\":function($event){$event.stopPropagation();return _vm.addLayerFeaturesToResults(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('plus-square')})]):_vm._e(),_vm._v(\" \"),(\n layer.toc &&\n layer.id !== '__g3w_marker' &&\n layer.features.length > 1 &&\n (layer.external || (layer.source && layer.source.type !== 'wms'))\n )?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('sdk.mapcontrols.query.actions.add_selection.hint'),expression:\"'sdk.mapcontrols.query.actions.add_selection.hint'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left\",class:{'toggled': layer.selection.active},on:{\"click\":function($event){$event.stopPropagation();return _vm.selectionFeaturesLayer(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('success')})]):_vm._e(),_vm._v(\" \"),(!layer.external && layer.selection.active)?[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('layer_selection_filter.tools.filter'),expression:\"'layer_selection_filter.tools.filter'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left\",class:{'toggled': layer.filter.active},on:{\"click\":function($event){$event.stopPropagation();return _vm.addRemoveFilter(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('filter')})]),_vm._v(\" \"),(\n _vm.state.logged\n && layer.filter.active\n && (null === layer.filter.current || layer.selection.active)\n )?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('layer_selection_filter.tools.savefilter'),expression:\"'layer_selection_filter.tools.savefilter'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button skin-tooltip-left\",on:{\"click\":function($event){$event.stopPropagation();return _vm.saveFilter(layer)}}},[_c('span',{staticClass:\"action-button-icon\",class:_vm.g3wtemplate.getFontClass('save')})]):_vm._e()]:_vm._e()],2),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-box-tool\",attrs:{\"data-widget\":\"collapse\"}},[_c('i',{staticClass:\"btn-collapser skin-color\",class:_vm.g3wtemplate.font['minus']})])]),_vm._v(\" \"),(_vm.state.layeractiontool[layer.id].component)?[_c('div',{staticClass:\"g3w-layer-action-tools with-border\",class:{'mobile': _vm.isMobile()},staticStyle:{\"padding\":\"5px\"}},[_c(_vm.state.layeractiontool[layer.id].component,{tag:\"component\",attrs:{\"layer\":layer,\"config\":_vm.state.layeractiontool[layer.id].config}})],1)]:_vm._e(),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'layer', 'before')),function(ref){\n var component = ref.component;\nreturn _c(component,{tag:\"component\",attrs:{\"layer\":layer}})}),_vm._v(\" \"),_c('div',{staticClass:\"box-body\",class:{'mobile': _vm.isMobile()}},[(layer.rawdata)?[_c('div',{staticClass:\"queryresults-text-html\",class:{text: layer.infoformat === 'text/plain'},domProps:{\"innerHTML\":_vm._s(layer.rawdata)}})]:(_vm.hasFormStructure(layer))?[_c('table',{staticClass:\"table\",class:{'mobile': _vm.isMobile()}},[_c('tbody',[_vm._l((layer.features),function(feature,index){return (feature.show)?[_c('header-feature-actions-body',{attrs:{\"colspan\":_vm.getColSpan(layer),\"actions\":_vm.state.layersactions[layer.id],\"layer\":layer,\"feature\":feature,\"index\":index,\"onelayerresult\":_vm.onelayerresult,\"trigger\":_vm.trigger,\"toggleFeatureBoxAndZoom\":_vm.toggleFeatureBoxAndZoom,\"hasLayerOneFeature\":_vm.hasLayerOneFeature,\"boxLayerFeature\":_vm.getLayerFeatureBox(layer, feature),\"attributesSubset\":_vm.attributesSubset,\"getLayerField\":_vm.getLayerField}}),_vm._v(\" \"),_c('tr',{staticClass:\"g3w-feature-result-action-tools\"},[(_vm.state.currentactiontools[layer.id][index])?[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer)}},[_c(_vm.state.currentactiontools[layer.id][index],{tag:\"component\",attrs:{\"colspan\":_vm.getColSpan(layer),\"layer\":layer,\"feature\":feature,\"featureIndex\":index,\"config\":_vm.state.actiontools[_vm.state.currentactiontools[layer.id][index].name][layer.id]}})],1)]:_vm._e()],2),_vm._v(\" \"),(!_vm.hasLayerOneFeature(layer))?_c('tr',{staticStyle:{\"font-weight\":\"bold\",\"text-align\":\"center\"}},[_vm._l((_vm.attributesSubset(layer)),function(attribute,index){return _c('td',{staticClass:\"centered\"},[_vm._v(\"\\n \"+_vm._s(_vm.getLayerFeatureBox(layer, feature).collapsed ? attribute.label : '')+\"\\n \")])}),_vm._v(\" \"),_c('td',{staticClass:\"collapsed\",class:{noAttributes: _vm.attributesSubset(layer).length === 0},staticStyle:{\"text-align\":\"end\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleFeatureBoxAndZoom(layer,feature)}}},[_c('span',{staticClass:\"fa link morelink skin-color\",class:_vm.g3wtemplate.font[_vm.getLayerFeatureBox(layer, feature).collapsed ? 'plus': 'minus']})])],2):_vm._e(),_vm._v(\" \"),(!_vm.hasLayerOneFeature(layer) && _vm.getLayerFeatureBox(layer, feature).collapsed)?_c('header-feature-body',{attrs:{\"actions\":_vm.state.layersactions[layer.id],\"layer\":layer,\"feature\":feature,\"index\":index,\"onelayerresult\":_vm.onelayerresult,\"trigger\":_vm.trigger,\"toggleFeatureBoxAndZoom\":_vm.toggleFeatureBoxAndZoom,\"hasLayerOneFeature\":_vm.hasLayerOneFeature,\"boxLayerFeature\":_vm.getLayerFeatureBox(layer, feature),\"attributesSubset\":_vm.attributesSubset,\"getLayerField\":_vm.getLayerField}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'feature', 'before')),function(ref){\n var component = ref.component;\nreturn _c('tr',[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer)}},[_c(component,{tag:\"component\",attrs:{\"layer\":layer,\"feature\":feature}})],1)])}),_vm._v(\" \"),_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.collapsedFeatureBox(layer,feature) || _vm.hasOneLayerAndOneFeature(layer)),expression:\"!collapsedFeatureBox(layer,feature) || hasOneLayerAndOneFeature(layer)\"}],staticClass:\"featurebox-body\",attrs:{\"id\":((layer.id) + \"_\" + index)}},[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer),\"feature-html-content\":((layer.id) + \"_\" + index)}},[_c('tabs',{attrs:{\"fields\":_vm.getQueryFields(layer, feature),\"layerid\":layer.id,\"feature\":feature,\"tabs\":_vm.getLayerFormStructure(layer)}})],1)]),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'feature', 'after')),function(ref){\n var component = ref.component;\nreturn _c('tr',[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer)}},[_c(component,{tag:\"component\",attrs:{\"layer\":layer,\"feature\":feature}})],1)])})]:_vm._e()})],2)])]:[_c('table',{staticClass:\"table\",class:{'mobile': _vm.isMobile()}},_vm._l((layer.features),function(feature,index){return (feature.show)?_c('tbody',{key:feature.id},[_c('header-feature-actions-body',{attrs:{\"colspan\":_vm.getColSpan(layer),\"actions\":_vm.state.layersactions[layer.id],\"layer\":layer,\"feature\":feature,\"index\":index,\"onelayerresult\":_vm.onelayerresult,\"trigger\":_vm.trigger,\"toggleFeatureBoxAndZoom\":_vm.toggleFeatureBoxAndZoom,\"hasLayerOneFeature\":_vm.hasLayerOneFeature,\"boxLayerFeature\":_vm.getLayerFeatureBox(layer, feature),\"attributesSubset\":_vm.attributesSubset,\"getLayerField\":_vm.getLayerField}}),_vm._v(\" \"),_c('tr',{staticClass:\"g3w-feature-result-action-tools\"},[(_vm.state.currentactiontools[layer.id][index])?[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer)}},[_c(_vm.state.currentactiontools[layer.id][index],{tag:\"component\",attrs:{\"colspan\":_vm.getColSpan(layer),\"layer\":layer,\"feature\":feature,\"featureIndex\":index,\"config\":_vm.state.actiontools[_vm.state.currentactiontools[layer.id][index].name][layer.id]}})],1)]:_vm._e()],2),_vm._v(\" \"),(!_vm.hasLayerOneFeature(layer))?_c('tr',{staticStyle:{\"font-weight\":\"bold\",\"text-align\":\"center\"}},[_vm._l((_vm.attributesSubset(layer)),function(attribute,index){return _c('td',{staticClass:\"centered\"},[_vm._v(\"\\n \"+_vm._s(_vm.getLayerFeatureBox(layer, feature).collapsed ? attribute.label : '')+\"\\n \")])}),_vm._v(\" \"),_c('td',{staticClass:\"collapsed\",class:{ noAttributes: 0 === _vm.attributesSubset(layer).length },staticStyle:{\"text-align\":\"end\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleFeatureBoxAndZoom(layer,feature)}}},[_c('span',{staticClass:\"fa link morelink skin-color\",class:_vm.g3wtemplate.font[_vm.getLayerFeatureBox(layer, feature).collapsed ? 'plus': 'minus']})])],2):_vm._e(),_vm._v(\" \"),(!_vm.hasLayerOneFeature(layer) && _vm.getLayerFeatureBox(layer, feature).collapsed)?_c('header-feature-body',{attrs:{\"actions\":_vm.state.layersactions[layer.id],\"layer\":layer,\"feature\":feature,\"index\":index,\"onelayerresult\":_vm.onelayerresult,\"trigger\":_vm.trigger,\"toggleFeatureBoxAndZoom\":_vm.toggleFeatureBoxAndZoom,\"hasLayerOneFeature\":_vm.hasLayerOneFeature,\"boxLayerFeature\":_vm.getLayerFeatureBox(layer, feature),\"attributesSubset\":_vm.attributesSubset,\"getLayerField\":_vm.getLayerField}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'feature', 'before')),function(ref){\n var component = ref.component;\nreturn _c('tr',[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer)}},[_c(component,{tag:\"component\",staticClass:\"box-body\",attrs:{\"layer\":layer,\"feature\":feature}})],1)])}),_vm._v(\" \"),_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.collapsedFeatureBox(layer,feature) || _vm.hasOneLayerAndOneFeature(layer)),expression:\"!collapsedFeatureBox(layer,feature) || hasOneLayerAndOneFeature(layer)\"}],staticClass:\"featurebox-body\",attrs:{\"id\":((layer.id) + \"_\" + index)}},[_c('td',{attrs:{\"colspan\":_vm.getColSpan(layer),\"feature-html-content\":((layer.id) + \"_\" + index)}},[_c('table',{staticClass:\"feature_attributes\"},[_vm._l((layer.attributes.filter(function (attribute) { return attribute.show; })),function(attribute){return [(_vm.isJSON(_vm.getLayerField({layer: layer, feature: feature, fieldName: attribute.name})))?[_vm._l((_vm.getLayerField({layer: layer, feature: feature, fieldName: attribute.name}).value),function(v,k){\n var _obj;\nreturn _vm._l((('object' === typeof v ? v : ( _obj = {}, _obj[k] = v, _obj ))),function(v2,k2){return _c('tr',{staticStyle:{\"padding-top\":\"10px\",\"padding-bottom\":\"10px\"}},[_c('td',{staticClass:\"attr-label\"},[_vm._v(_vm._s(attribute.label)+\".\"),(('object' === typeof v))?[_vm._v(_vm._s(k)+\".\")]:_vm._e(),_vm._v(_vm._s(k2))],2),_vm._v(\" \"),_c('td',{staticClass:\"attr-value\"},[_vm._v(_vm._s(v2))])])})})]:_c('tr',[_c('td',{staticClass:\"attr-label\"},[_vm._v(_vm._s(attribute.label))]),_vm._v(\" \"),_c('td',{staticClass:\"attr-value\",attrs:{\"attribute\":attribute.name}},[_c('table-attribute-field-value',{attrs:{\"feature\":feature,\"field\":_vm.getLayerField({layer: layer, feature: feature, fieldName: attribute.name})}})],1)])]})],2)])]),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'feature', 'after')),function(ref){\n var component = ref.component;\nreturn _c('tr',[_c('td',{attrs:{\"colspan\":\"getColSpan(layer)\"}},[_c(component,{tag:\"component\",staticClass:\"box-body\",attrs:{\"layer\":layer,\"feature\":feature}})],1)])})],2):_c('tbody')}),0)]],2),_vm._v(\" \"),_vm._l((_vm.getLayerCustomComponents(layer.id, 'layer', 'after')),function(ref){\n var component = ref.component;\nreturn _c('div',{staticClass:\"box-body\",class:{'mobile': _vm.isMobile()}},[_c(component,{tag:\"component\",attrs:{\"layer\":layer}})],1)})],2)],1)}),_vm._v(\" \"),_vm._l((_vm.state.components),function(component){return _c('li',[_c(component,{tag:\"component\",on:{\"showresults\":function($event){return _vm.showResults()}}})],1)})],2):_vm._e()]:[(_vm.state.changed)?_c('div',{staticClass:\"query-results-not-found\"},[_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:('info.no_results'),expression:\"'info.no_results'\"}],staticClass:\"skin-color\",staticStyle:{\"font-weight\":\"bold\",\"text-align\":\"center\"}})]):_vm._e()]],2)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-09a18998\"\n\n},{\"components/QueryResultsActionInfoFormats.vue\":202,\"components/QueryResultsHeaderFeatureActionsBody.vue\":205,\"components/QueryResultsHeaderFeatureBody.vue\":206,\"components/QueryResultsTableAttributeFieldValue.vue\":207,\"mixins\":274,\"services/gui\":286,\"store/catalog-layers\":295,\"utils\":388,\"vueify/lib/insert-css\":2}],199:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n name: \"action\",\n data: function data() {\n return {\n show: true\n };\n },\n\n props: {\n featureIndex: {\n type: Number\n },\n feature: {\n type: Object\n },\n layer: {\n type: Object\n },\n trigger: {\n type: Function\n },\n action: {\n type: Object,\n required: true\n }\n },\n methods: {\n clickAction: function () {\n var _ref = _asyncToGenerator(function* (action, layer, feature, featureIndex, event) {\n yield this.trigger(action, layer, feature, featureIndex);\n if (action.hint_change) {\n var element = $(event.target).parent();\n var originalDataTitle = element.attr('data-original-title');\n element.attr('data-original-title', t(action.hint_change.hint));\n element.tooltip('show');\n setTimeout(function () {\n element.attr('data-original-title', originalDataTitle);\n element.tooltip('show');\n }, action.hint_change.duration || 600);\n }\n this.$emit('action-clicked', action);\n });\n\n function clickAction(_x, _x2, _x3, _x4, _x5) {\n return _ref.apply(this, arguments);\n }\n\n return clickAction;\n }()\n },\n created: function () {\n var _ref2 = _asyncToGenerator(function* () {\n if (this.action.init) {\n this.action.init({ layer: this.layer, feature: this.feature, index: this.featureIndex, action: this.action });\n }\n if (typeof this.action.condition === 'function') {\n var show = this.action.condition({ layer: this.layer, feature: this.feature });\n this.show = show instanceof Promise ? yield show : show;\n }\n });\n\n function created() {\n return _ref2.apply(this, arguments);\n }\n\n return created;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('span',{directives:[{name:\"download\",rawName:\"v-download\",value:(_vm.action.download),expression:\"action.download\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:(_vm.action.hint),expression:\"action.hint\",arg:\"top\",modifiers:{\"create\":true}}],staticClass:\"action-button\",class:{'toggled': _vm.action.state && _vm.action.state.toggled[_vm.featureIndex] },on:{\"contextmenu\":function($event){$event.preventDefault();$event.stopPropagation();},\"click\":function($event){$event.stopPropagation();return _vm.clickAction(_vm.action, _vm.layer, _vm.feature, _vm.featureIndex, $event)}}},[_c('span',{class:(\"action-button-icon \" + (_vm.action.class)),staticStyle:{\"padding\":\"2px\"},style:(_vm.action.style)})]):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{\"core/i18n/i18n.service\":12}],200:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'choose_layer',\n\n props: {\n featureIndex: {\n type: Number\n },\n feature: {\n type: Object\n },\n layer: {\n type: Object\n },\n config: {\n type: Object,\n default: {\n icon: 'pencil',\n label: 'Choose a Layer',\n nolayers: 'No layers found',\n layers: [],\n cbk: function cbk() {}\n }\n }\n },\n\n data: function data() {\n return {\n layerId: null\n };\n },\n\n\n computed: {\n has_layers: function has_layers() {\n return this.config.layers && this.config.layers.length > 0;\n }\n },\n\n created: function created() {\n if (this.has_layers) {\n this.layerId = this.config.layers[0].id;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"action-choose-layer\"},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.config.label),expression:\"config.label\"}]}),_vm._v(\" \"),_c('div',{staticStyle:{\"width\":\"100%\",\"display\":\"flex\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('layerId'),expression:\"'layerId'\"}],staticClass:\"form-control\",staticStyle:{\"flex-grow\":\"1\"},attrs:{\"search\":false,\"disabled\":!_vm.has_layers}},[_vm._l((_vm.config.layers),function(layer){return _c('option',{key:layer.id,domProps:{\"value\":layer.id}},[_c('b',[_vm._v(_vm._s(layer.name))])])}),_vm._v(\" \"),(!_vm.has_layers)?_c('option',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.config.nolayers),expression:\"config.nolayers\"}]}):_vm._e()],2),_vm._v(\" \"),(_vm.has_layers)?_c('button',{staticClass:\"btn skin-button\",staticStyle:{\"border-radius\":\"0 3px 3px 0\"},on:{\"click\":function($event){$event.stopPropagation();return (function () { return _vm.config.cbk(_vm.layerId, _vm.feature); })($event)}}},[_c('span',{class:_vm.g3wtemplate.getFontClass(_vm.config.icon)})]):_vm._e()])])}\n__vue__options__.staticRenderFns = []\n\n},{}],201:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: \"downloadformats\",\n\n data: function data() {\n return {\n download_format: this.config.downloads[0].format\n };\n },\n\n props: {\n featureIndex: {\n type: Number\n },\n feature: {\n type: Object\n },\n layer: {\n type: Object\n },\n config: {\n type: Object,\n default: null\n }\n },\n methods: {\n download: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n try {\n var _download = this.config.downloads.find(function (action) {\n return action.format === _this.download_format;\n });\n yield _download.cbk(this.layer, this.feature ? this.feature : this.layer.features, _download, this.featureIndex, 'pdf' === _download.format ? document.querySelector(\"[feature-html-content=\\\"\" + this.layer.id + \"_\" + this.featureIndex + \"\\\"]\").innerHTML : null);\n } catch (e) {\n console.warn(e);\n }\n });\n\n function download() {\n return _ref.apply(this, arguments);\n }\n\n return download;\n }()\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g3w-download-formats-content\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('download_format'),expression:\"'download_format'\"}],staticClass:\"form-control\",staticStyle:{\"flex-grow\":\"1\"},attrs:{\"search\":false}},_vm._l((_vm.config.downloads),function(download){return _c('option',{directives:[{name:\"download\",rawName:\"v-download\"}],key:download.id,domProps:{\"value\":download.format}},[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(download.format))])])}),0),_vm._v(\" \"),_c('button',{directives:[{name:\"download\",rawName:\"v-download\"}],staticClass:\"btn skin-button\",staticStyle:{\"border-radius\":\"0 3px 3px 0\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.download($event)}}},[_c('span',{class:_vm.g3wtemplate.getFontClass('download')})])])}\n__vue__options__.staticRenderFns = []\n\n},{}],202:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _getAlphanumericPropertiesFromFeature = require('utils/getAlphanumericPropertiesFromFeature');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils/parsers'),\n responseParser = _require.response;\n\nexports.default = {\n name: 'Infoformats',\n\n props: {\n layer: {\n type: Object,\n required: true\n }\n },\n\n data: function data() {\n return {\n infoformat: this.layer.infoformat\n };\n },\n\n\n computed: {\n infoformats: function infoformats() {\n return this.layer.infoformats || [];\n },\n hasInfo: function hasInfo() {\n return this.infoformats.length;\n }\n },\n\n methods: {\n reloadLayerDataWithChangedContentType: function () {\n var _ref = _asyncToGenerator(function* (contenttype) {\n this.layer.loading = true;\n\n this.$el.disabled = true;\n try {\n var response = yield this.projectLayer.changeProxyDataAndReloadFromServer('wms', {\n headers: { 'Content-Type': contenttype },\n params: { INFO_FORMAT: contenttype }\n });\n this.layer.infoformat = contenttype;\n this.projectLayer.setInfoFormat(this.layer.infoformat);\n\n var _responseParser$get = responseParser.get(contenttype)({ layers: [this.projectLayer], response: response }),\n _responseParser$get2 = _slicedToArray(_responseParser$get, 1),\n data = _responseParser$get2[0];\n\n if (data.features) {\n this.__parsedata(data);\n } else {\n this.__parserawdata(data);\n }\n } catch (e) {\n console.warn(e);\n }\n this.layer.loading = false;\n\n this.$el.disabled = false;\n });\n\n function reloadLayerDataWithChangedContentType(_x) {\n return _ref.apply(this, arguments);\n }\n\n return reloadLayerDataWithChangedContentType;\n }(),\n __parsedata: function __parsedata(data) {\n var _this = this;\n\n var queryService = _gui2.default.getService('queryresults');\n this.layer.rawdata = null;\n\n data.features.forEach(function (feature) {\n var _queryService$getFeat = queryService.getFeaturePropertiesAndGeometry(feature),\n fid = _queryService$getFeat.id,\n geometry = _queryService$getFeat.geometry,\n attributes = _queryService$getFeat.properties;\n\n if (0 === _this.layer.attributes.length) {\n _this.layer.hasgeometry = !!geometry;\n\n queryService.setActionsForLayers([_this.layer]);\n (0, _getAlphanumericPropertiesFromFeature.getAlphanumericPropertiesFromFeature)(attributes).forEach(function (name) {\n _this.layer.attributes.push({\n name: name,\n label: name,\n show: true\n });\n });\n }\n\n _this.layer.features.push({ id: fid, attributes: attributes, geometry: geometry, show: true });\n });\n },\n __parserawdata: function () {\n var _ref2 = _asyncToGenerator(function* (data) {\n this.layer.features.splice(0);\n yield this.$nextTick();\n this.layer.rawdata = data.rawdata;\n });\n\n function __parserawdata(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return __parserawdata;\n }()\n },\n\n watch: {\n 'infoformat': function infoformat(value) {\n this.reloadLayerDataWithChangedContentType(value);\n }\n },\n\n created: function created() {\n this.projectLayer = _catalogLayers2.default.getLayerById(this.layer.id);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.projectLayer) {\n this.projectLayer.clearProxyData('wms');\n }\n this.projectLayer = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hasInfo)?_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('infoformat'),expression:\"'infoformat'\"}],staticClass:\"skin-color\",attrs:{\"select2_value\":_vm.infoformat,\"search\":false}},_vm._l((_vm.infoformats),function(infoformat){return _c('option',{key:infoformat,domProps:{\"value\":infoformat}},[_vm._v(\"\\n \"+_vm._s(infoformat)+\"\\n \")])}),0):_vm._e()}\n__vue__options__.staticRenderFns = []\n\n},{\"services/gui\":286,\"store/catalog-layers\":295,\"utils/getAlphanumericPropertiesFromFeature\":358,\"utils/parsers\":409}],203:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-polygonattributes-types-title[data-v-7fd19c11]{font-weight:700;padding:3px;color:#fff;margin:0 0 5px}.g3w-polygonattributes-types-content[data-v-7fd19c11]{display:flex;justify-content:space-between;padding:3px;border-radius:3px;border:1px solid #f4f4f4}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n name: \"queryresults-querypolygonaddattributes\",\n\n props: {\n layer: {\n type: Object\n },\n config: {\n type: Object,\n default: null\n }\n },\n data: function data() {\n return {\n type: this.config.choices[0].type\n };\n },\n created: function created() {\n var _this = this;\n\n this.unwatch = this.$watch(function () {\n return _applicationState2.default.language;\n }, function () {\n _this.config.choices.forEach(function (c) {\n return $(_this.$refs[c.type]).text(t(c.label));\n });\n $(_this.$refs.g3w_select_feature_featurepolygon).select2().trigger('change');\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.unwatch && this.unwatch();\n this.unwatch = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h5',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.mapcontrols.querybypolygon.download.title'),expression:\"'sdk.mapcontrols.querybypolygon.download.title'\"}],staticClass:\"skin-background-color g3w-polygonattributes-types-title\"}),_vm._v(\" \"),_c('div',{staticClass:\"g3w-polygonattributes-types-content\"},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('type'),expression:\"'type'\"}],ref:\"g3w_select_feature_featurepolygon\",staticClass:\"form-control\",staticStyle:{\"width\":\"100%\"},attrs:{\"search\":false}},_vm._l((_vm.config.choices),function(choice){return _c('option',{directives:[{name:\"t\",rawName:\"v-t\",value:(choice.label),expression:\"choice.label\"}],key:choice.type,ref:choice.type,refInFor:true,domProps:{\"value\":choice.type}})}),0),_vm._v(\" \"),_c('button',{staticClass:\"btn skin-button\",staticStyle:{\"border-radius\":\"0 3px 3px 0\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.config.download(_vm.type)}}},[_c('span',{class:_vm.g3wtemplate.getFontClass('download')})])])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-7fd19c11\"\n\n},{\"core/i18n/i18n.service\":12,\"store/application-state\":294,\"vueify/lib/insert-css\":2}],204:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-feature-actions[data-v-ec80a64e]{padding:3px;background-color:rgba(34,45,50,.1)!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _QueryResultsAction = require(\"components/QueryResultsAction.vue\");\n\nvar _QueryResultsAction2 = _interopRequireDefault(_QueryResultsAction);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"actions\",\n props: {\n featureIndex: {\n type: Number\n },\n feature: {\n type: Object\n },\n layer: {\n type: Object\n },\n trigger: {\n type: Function\n },\n actions: {\n type: Array,\n default: []\n },\n colspan: {\n type: Number\n }\n },\n components: {\n action: _QueryResultsAction2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.actions.length)?_c('td',{staticClass:\"g3w-feature-actions\",staticStyle:{\"padding\":\"3px\"},attrs:{\"colspan\":_vm.colspan}},_vm._l((_vm.actions),function(action){return _c('action',_vm._b({key:action.id,attrs:{\"action\":action}},'action',_vm.$props,false))}),1):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-ec80a64e\"\n\n},{\"components/QueryResultsAction.vue\":199,\"vueify/lib/insert-css\":2}],205:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".noAttributes[data-v-164045ac]{display:flex;justify-content:flex-end}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _QueryResultsActions = require('components/QueryResultsActions.vue');\n\nvar _QueryResultsActions2 = _interopRequireDefault(_QueryResultsActions);\n\nvar _mixins = require('mixins');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"headerfeaturebody\",\n mixins: [_mixins.fieldsMixin],\n props: {\n toggleFeatureBoxAndZoom: {\n type: Function\n },\n trigger: {\n type: Function\n },\n hasLayerOneFeature: {\n type: Function\n },\n boxLayerFeature: {\n type: Object\n },\n getLayerField: {\n type: Function\n },\n attributesSubset: {\n type: Function\n },\n layer: {\n type: Object\n },\n feature: {\n type: Object\n },\n index: {\n type: Number\n },\n actions: {\n type: Array\n },\n colspan: {\n type: Number\n }\n },\n components: {\n actions: _QueryResultsActions2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"featurebox-header\",on:{\"mouseover\":function($event){return _vm.trigger({id:'highlightgeometry'}, _vm.layer, _vm.feature, _vm.index)},\"mouseout\":function($event){return _vm.trigger({id:'clearHighlightGeometry'}, _vm.layer, _vm.feature, _vm.index)}}},[_c('actions',{attrs:{\"colspan\":_vm.colspan,\"layer\":_vm.layer,\"featureIndex\":_vm.index,\"trigger\":_vm.trigger,\"feature\":_vm.feature,\"actions\":_vm.actions}})],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-164045ac\"\n\n},{\"components/QueryResultsActions.vue\":204,\"mixins\":274,\"vueify/lib/insert-css\":2}],206:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".noAttributes[data-v-137530c7]{display:flex;justify-content:flex-end}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _QueryResultsActions = require('components/QueryResultsActions.vue');\n\nvar _QueryResultsActions2 = _interopRequireDefault(_QueryResultsActions);\n\nvar _mixins = require('mixins');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"headerfeaturebody\",\n mixins: [_mixins.fieldsMixin],\n props: {\n toggleFeatureBoxAndZoom: {\n type: Function\n },\n trigger: {\n type: Function\n },\n hasLayerOneFeature: {\n type: Function\n },\n boxLayerFeature: {\n type: Object\n },\n getLayerField: {\n type: Function\n },\n attributesSubset: {\n type: Function\n },\n layer: {\n type: Object\n },\n feature: {\n type: Object\n }\n\n },\n components: {\n actions: _QueryResultsActions2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_vm._l((_vm.attributesSubset(_vm.layer)),function(attribute){return _c('td',{staticClass:\"attribute\"},[(_vm.isLink(_vm.getLayerField({layer: _vm.layer, feature: _vm.feature, fieldName: attribute.name})))?_c('span',{staticClass:\"skin-color\",class:_vm.g3wtemplate.getFontClass('link')}):(_vm.isPhoto(_vm.getLayerField({layer: _vm.layer, feature: _vm.feature, fieldName: attribute.name})))?_c('span',{staticClass:\"skin-color\",class:_vm.g3wtemplate.getFontClass('image')}):(_vm.isImage(_vm.getLayerField({layer: _vm.layer, feature: _vm.feature, fieldName: attribute.name})))?_c('span',{staticClass:\"skin-color\",class:_vm.g3wtemplate.getFontClass('image')}):_c('span',[_vm._v(_vm._s(_vm.feature.attributes[attribute.name]))])])}),_vm._v(\" \"),(!_vm.hasLayerOneFeature(_vm.layer))?_c('td'):_vm._e()],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-137530c7\"\n\n},{\"components/QueryResultsActions.vue\":204,\"mixins\":274,\"vueify/lib/insert-css\":2}],207:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _FieldLink = require('components/FieldLink.vue');\n\nvar _FieldLink2 = _interopRequireDefault(_FieldLink);\n\nvar _FieldVue = require('components/FieldVue.vue');\n\nvar _FieldVue2 = _interopRequireDefault(_FieldVue);\n\nvar _mixins = require('mixins');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"tableattributefieldvalue\",\n props: {\n field: {\n type: Object\n },\n feature: {\n type: Object\n }\n },\n mixins: [_mixins.fieldsMixin],\n components: {\n 'g3w-link': _FieldLink2.default,\n 'g3w-vue': _FieldVue2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVue(_vm.field))?_c('g3w-vue',{attrs:{\"feature\":_vm.feature,\"state\":_vm.field}}):(_vm.isSimple(_vm.field))?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.field.value)}}):(_vm.isPhoto(_vm.field))?_c('g3w-image',{attrs:{\"value\":_vm.field.value}}):(_vm.isImage(_vm.field))?_c('g3w-image',{attrs:{\"value\":_vm.field.value}}):(_vm.isLink(_vm.field))?_c('g3w-link',{attrs:{\"state\":{value: _vm.field.value}}}):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-0a32e30e\"\n\n},{\"components/FieldLink.vue\":131,\"components/FieldVue.vue\":134,\"mixins\":274}],208:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".query-relation[data-v-20ddbb22]{margin-top:3px}.query-relation>.header[data-v-20ddbb22]{padding:3px;display:flex;justify-content:space-between;align-items:center;width:100%;margin:0!important}.query-relation>.header>.g3w-long-text[data-v-20ddbb22]{border-radius:3px;font-size:1.3em}.query-relation.mobile>.header>.g3w-long-text[data-v-20ddbb22]{font-size:1em}.relations-table-tools[data-v-20ddbb22]{font-size:1.1em;margin-bottom:3px}.relations-table-tools>.action-button[data-v-20ddbb22]{padding:5px}.relation-wrapper[data-v-20ddbb22]{display:flex;justify-content:space-between;margin-bottom:5px;margin-top:3px;height:95%}.back-button[data-v-20ddbb22]{font-size:.8em}.header-component[data-v-20ddbb22]{width:100%;display:flex;margin-left:auto;margin-bottom:5px;margin-right:4px}.table-tools[data-v-20ddbb22]{display:flex;justify-content:space-between}.relationtable .table-tools .action-button[data-v-20ddbb22]:hover{background-color:transparent}.relationtable.dataTable tbody tr.selected[data-v-20ddbb22]{background-color:#e4e4e4!important}.relationtable.dataTable tbody tr.selected .row-wrap-tabs .tabs-wrapper[data-v-20ddbb22]{background-color:#fff!important}#chart_content[data-v-20ddbb22]{padding-bottom:5px;margin-bottom:5px;margin-left:8px}.dataTables_scrollBody[data-v-20ddbb22]{font-weight:700;margin-top:10px;font-size:1.1em;display:flex;justify-content:space-between}\\n.relation-wrapper .dataTables_length select{border:1px solid #ccc;background:#fff;height:27px}.relation-wrapper .paginate_button{background:transparent!important;color:currentColor!important;box-shadow:none!important}.relation-wrapper .paginate_button.disabled{opacity:.25!important}.relation-wrapper .dataTables_scroll{background:#fff}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constant = require('app/constant');\n\nvar _FieldG3W = require('components/FieldG3W.vue');\n\nvar _FieldG3W2 = _interopRequireDefault(_FieldG3W);\n\nvar _QueryResultsActionDownloadFormats = require('components/QueryResultsActionDownloadFormats.vue');\n\nvar _QueryResultsActionDownloadFormats2 = _interopRequireDefault(_QueryResultsActionDownloadFormats);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _mixins = require('mixins');\n\nvar _eventbus = require('app/eventbus');\n\nvar _utils = require('utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar SIDEBARWIDTH = void 0;\n\nexports.default = {\n name: 'relation',\n\n props: {\n table: {},\n feature: { default: null },\n relation: {},\n previousview: {},\n showChartButton: {},\n cardinality: {}\n },\n\n inject: ['relationnoback'],\n\n mixins: [_mixins.fieldsMixin, _mixins.resizeMixin],\n\n components: {\n Field: _FieldG3W2.default\n },\n\n data: function data() {\n return {\n fields: null,\n chart: false,\n headercomponent: null,\n downloadButton: null,\n downloadLayer: {\n state: null,\n config: {\n downloads: []\n }\n }\n };\n },\n\n\n computed: {\n showTools: function showTools() {\n return [!!this.isEditable, !!this.table.formStructure, !!this.isGeoLayer].filter(Boolean).length;\n },\n showrelationslist: function showrelationslist() {\n return 'relations' === this.previousview && !this.relationnoback;\n },\n one: function one() {\n return 'ONE' === this.relation.type;\n }\n },\n\n methods: {\n zoomToGeometry: function zoomToGeometry(geometry) {\n if (geometry) {\n _gui2.default.getService('map').zoomToGeometry(new ol.geom[geometry.type](geometry.coordinates), { highlight: true });\n }\n },\n createTable: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n var layer = _catalogLayers2.default.getLayerById(this.table.layerId);\n\n this.isEditable = layer.isEditable() && !layer.isInEditing();\n\n this.isGeoLayer = undefined !== this.table.features.find(function (f) {\n return f.geometry;\n });\n\n var downloadformats = layer.getDownloadableFormats();\n\n if (downloadformats.length > 0) {\n this.downloadButton = {\n toggled: false,\n tooltip: downloadformats.length > 1 ? 'Downloads' : 'sdk.tooltips.download_' + downloadformats[0],\n handler: downloadformats.length > 1 ? _asyncToGenerator(function* () {\n _this.downloadButton.toggled = !_this.downloadButton.toggled;\n _this.downloadLayer.state = _this.downloadLayer.state || layer.state;\n _this.downloadLayer.config.downloads = _this.downloadLayer.config.downloads.length ? _this.downloadLayer.config.downloads : downloadformats.map(function (format) {\n return {\n id: format,\n format: format,\n cbk: function cbk() {\n _this.saveRelation(layer.getDownloadUrl(format));\n _this.headercomponent = null;\n },\n download: true\n };\n });\n _this.headercomponent = _this.downloadButton.toggled ? _QueryResultsActionDownloadFormats2.default : null;\n }) : function () {\n return _this.saveRelation(layer.getDownloadUrl(downloadformats[0]));\n }\n };\n }\n\n _eventbus.RelationEventBus.$on('reload', function () {\n _this.reloadLayout();\n });\n\n this.showChart = (0, _utils.throttle)(_asyncToGenerator(function* () {\n _this.chart = !_this.chart;\n yield _this.$nextTick();\n _this.chartContainer = _this.chartContainer || $('#chart_content');\n _this.$emit(_this.chart ? 'show-chart' : 'hide-chart', _this.chartContainer, { relations: [_this.relation], fid: _this.feature.attributes[_constant.G3W_FID] });\n }));\n\n yield this.$nextTick();\n\n SIDEBARWIDTH = _gui2.default.getSize({ element: 'sidebar', what: 'width' });\n\n this.relation.title = this.relation.name;\n\n if (!this.one) {\n this.relationDataTable = $(this.$refs.relationtable).DataTable({\n autoWidth: false,\n bLengthChange: true,\n dom: 'ltip',\n columnDefs: [this.showTools ? { orderable: false, targets: 0, width: '1%' } : { orderable: true, targets: 0 }],\n order: [this.showTools ? 1 : 0, 'asc'],\n pageLength: 10,\n responsive: true,\n scrollResize: true,\n scrollCollapse: true,\n scrollX: true\n });\n this.tableHeaderHeight = $('.query-relation div.dataTables_scrollHeadInner').height();\n }\n\n _gui2.default.on('pop-content', function () {\n return setTimeout(function () {\n return _this.resize();\n });\n });\n\n this.resize();\n });\n\n function createTable() {\n return _ref.apply(this, arguments);\n }\n\n return createTable;\n }(),\n resize: function () {\n var _ref4 = _asyncToGenerator(function* () {\n if (!this.$refs.query_relation || 'none' === this.$refs.query_relation.parentNode.style.display) {\n return;\n }\n\n var table = $(this.$refs.query_relation).find('div.dataTables_scrollBody');\n table.height($(\".content\").height() - this.tableHeaderHeight - $('.content_breadcrumb').outerHeight() - $('.navbar-header').outerHeight() - $('.close-panel-block').outerHeight() - $(this.$refs['relation-header']).outerHeight() - $('.dataTables_filter').last().outerHeight() - $('.dataTables_paginate.paging_simple_numbers').outerHeight() - $('.dataTables_scrollHead').last().outerHeight());\n\n if (this.table.rowFormStructure) {\n $('.row-wrap-tabs > .tabs-wrapper').width(table.width() - $(this.$refs.relationtable).find('tr.selected > td').outerWidth() - 20);\n }\n\n this.reloadLayout();\n });\n\n function resize() {\n return _ref4.apply(this, arguments);\n }\n\n return resize;\n }(),\n saveRelation: function saveRelation(type) {\n this.$emit('save-relation', type);\n this.downloadButton.toggled = false;\n },\n showFormStructureRow: function () {\n var _ref5 = _asyncToGenerator(function* (event, row) {\n this.table.rowFormStructure = this.table.rowFormStructure === row ? null : row;\n this.fields = this.getRowFields(row);\n yield this.$nextTick();\n $('#relationtable_wrapper div.dataTables_scrollBody').css('overflow-x', this.table.rowFormStructure ? 'hidden' : 'auto');\n this.resize();\n });\n\n function showFormStructureRow(_x, _x2) {\n return _ref5.apply(this, arguments);\n }\n\n return showFormStructureRow;\n }(),\n editFeature: function editFeature(index) {\n _gui2.default.getService('queryresults').editFeature({\n layer: {\n id: this.table.layerId,\n attributes: this.table.fields\n },\n feature: this.table.features[index]\n });\n },\n getRowFields: function getRowFields(row) {\n var _this2 = this;\n\n return this.table.fields.map(function (field, index) {\n field.value = row[index];\n field.query = true;\n field.input = { type: '' + _this2.getFieldType(field) };\n return field;\n });\n },\n reloadLayout: function reloadLayout() {\n if (this.relationDataTable) {\n this.relationDataTable.columns.adjust();\n }\n },\n back: function back() {\n this.$parent.setRelationsList();\n },\n fieldIs: function fieldIs(type, value) {\n return this.getFieldType(value) === type;\n },\n is: function is(type, value) {\n return this.fieldIs(type, value);\n },\n moveFnc: function moveFnc(evt) {\n var sidebarHeaderSize = $('.sidebar-collapse').length ? 0 : SIDEBARWIDTH;\n var size = evt.pageX + 2 - sidebarHeaderSize;\n this.$refs.tablecontent.style.width = size + 'px';\n this.$refs.chartcontent.style.width = $(this.$refs.relationwrapper).width() - size - 10 + 'px';\n }\n },\n\n watch: {\n table: {\n immediate: true,\n handler: function handler(table) {\n if (table && table.rows.length) {\n this.createTable();\n }\n }\n },\n\n chart: function () {\n var _ref6 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n this.resize();\n });\n\n function chart() {\n return _ref6.apply(this, arguments);\n }\n\n return chart;\n }(),\n headercomponent: function () {\n var _ref7 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n this.resize();\n });\n\n function headercomponent() {\n return _ref7.apply(this, arguments);\n }\n\n return headercomponent;\n }()\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n },\n beforeDestroy: function () {\n var _ref8 = _asyncToGenerator(function* () {\n if (!this.relationDataTable) {\n return;\n }\n this.relationDataTable.destroy();\n this.relationDataTable = null;\n if (this.chartContainer) {\n this.$emit('hide-chart', this.chartContainer);\n }\n this.chartContainer = null;\n this.tableHeaderHeight = null;\n _gui2.default.off('pop-content', this.resize);\n });\n\n function beforeDestroy() {\n return _ref8.apply(this, arguments);\n }\n\n return beforeDestroy;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.table)?_c('div',{ref:\"query_relation\",staticClass:\"query-relation\",class:_vm.isMobile() ? 'mobile' : null},[_c('div',{ref:\"relation-header\",staticClass:\"header skin-background-color lighten\"},[_c('div',{staticClass:\"g3w-long-text\"},[(_vm.showrelationslist)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('sdk.relations.back_to_relations'),expression:\"'sdk.relations.back_to_relations'\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"action-button-icon action-button back-button\",class:_vm.g3wtemplate.getFontClass('exit'),on:{\"click\":function($event){$event.stopPropagation();return _vm.back($event)}}}):_vm._e(),_vm._v(\" \"),_c('b',{staticClass:\"relation-tile skin-color\"},[_vm._v(\" \"+_vm._s(_vm.relation.name)+\" \")])]),_vm._v(\" \"),(_vm.table.rows.length)?_c('div',{staticClass:\"relations-table-tools\"},[(_vm.downloadButton)?_c('span',{directives:[{name:\"download\",rawName:\"v-download\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:(_vm.downloadButton.tooltip),expression:\"downloadButton.tooltip\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action-button-icon action-button\",class:[\n _vm.g3wtemplate.getFontClass('download'),\n { 'toggled-white': _vm.downloadButton.toggled } ],on:{\"click\":function($event){$event.stopPropagation();return _vm.downloadButton.handler($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.showChartButton)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('sdk.tooltips.show_chart'),expression:\"'sdk.tooltips.show_chart'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"action-button-icon action-button\",class:[\n _vm.g3wtemplate.getFontClass('chart'),\n _vm.chart ? 'toggled-white' : '' ],on:{\"click\":function($event){$event.stopPropagation();return _vm.showChart($event)}}}):_vm._e()]):_vm._e()]),_vm._v(\" \"),(_vm.table.rows.length)?_c('div',{ref:\"relationwrapper\",staticClass:\"relation-wrapper\"},[_c('div',{ref:\"tablecontent\",style:({\n width: _vm.chart ? '70%' : '100%',\n marginRight: _vm.chart ? '8px' : '3px',\n position: 'relative',\n }),attrs:{\"id\":\"table_content\"}},[(_vm.headercomponent)?_c('div',{staticClass:\"header-component\"},[_c(_vm.headercomponent,{tag:\"component\",attrs:{\"layer\":_vm.downloadLayer.state,\"config\":_vm.downloadLayer.config}})],1):_vm._e(),_vm._v(\" \"),_c('table',{ref:\"relationtable\",staticClass:\"hover relationtable table table-striped row-border\"},[_c('thead',[_c('tr',{staticStyle:{\"height\":\"0! important\"}},[(_vm.showTools)?_c('th',{style:({\n minWidth: this.showTools * 30 + 'px',\n padding: '0 !important',\n })}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.table.columns),function(column){return _c('th',[_vm._v(_vm._s(column))])})],2)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.table.rows),function(row,index){return _c('tr',{key:_vm.table.rows_fid[index],class:{\n 'selected': _vm.table.rowFormStructure === row,\n }},[(_vm.showTools)?_c('td',{staticClass:\"table-tools\"},[(_vm.table.features[index].geometry)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('sdk.tooltips.relations.zoomtogeometry'),expression:\"'sdk.tooltips.relations.zoomtogeometry'\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"action-button row-form skin-color\",class:_vm.g3wtemplate.getFontClass('marker'),on:{\"click\":function($event){$event.stopPropagation();return _vm.zoomToGeometry(_vm.table.features[index].geometry)}}}):_vm._e(),_vm._v(\" \"),(_vm.table.formStructure)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:((\"sdk.tooltips.relations.\" + (_vm.table.rowFormStructure === row ? 'form_to_row' : 'row_to_form'))),expression:\"`sdk.tooltips.relations.${table.rowFormStructure === row ? 'form_to_row' : 'row_to_form'}`\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"action-button row-form skin-color\",class:_vm.g3wtemplate.getFontClass(_vm.table.rowFormStructure === row ? 'minus' : 'table'),attrs:{\"current-tooltip\":(\"sdk.tooltips.relations.\" + (_vm.table.rowFormStructure === row ? 'form_to_row' : 'row_to_form'))},on:{\"click\":function($event){$event.stopPropagation();return _vm.showFormStructureRow($event, row)}}}):_vm._e(),_vm._v(\" \"),(_vm.isEditable)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('Edit'),expression:\"'Edit'\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"action-button row-form skin-color\",class:_vm.g3wtemplate.getFontClass('pencil'),on:{\"click\":function($event){$event.stopPropagation();return _vm.editFeature(index)}}}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.table.formStructure && _vm.table.rowFormStructure === row)?_c('td',{staticClass:\"row-wrap-tabs\",attrs:{\"colspan\":_vm.table.columns.length}},[_c('tabs',{attrs:{\"layerid\":_vm.table.layerId,\"feature\":_vm.table.features[index],\"fields\":_vm.fields,\"tabs\":_vm.table.formStructure}})],1):_vm._l((row),function(value){return _c('td',[_c('field',{attrs:{\"state\":{value:value}}})],1)})],2)}),0)])]),_vm._v(\" \"),_c('g3w-resize',{staticClass:\"skin-border-color lighten\",staticStyle:{\"border-style\":\"solid\",\"border-width\":\"0 1px 0 1px\"},attrs:{\"show\":_vm.chart,\"moveFnc\":_vm.moveFnc,\"where\":'content'}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.chart),expression:\"chart\"}],ref:\"chartcontent\",style:({ width: _vm.chart ? '30%' : '0' }),attrs:{\"id\":\"chart_content\"}})],1):_c('div',{staticClass:\"dataTables_scrollBody\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.relations.no_relations_found'),expression:\"'sdk.relations.no_relations_found'\"}]})])]):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-20ddbb22\"\n\n},{\"app/constant\":5,\"app/eventbus\":45,\"components/FieldG3W.vue\":128,\"components/QueryResultsActionDownloadFormats.vue\":201,\"mixins\":274,\"services/gui\":286,\"store/catalog-layers\":295,\"utils\":388,\"vueify/lib/insert-css\":2}],209:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".relation-grid-item[data-v-02f56b7e]{min-width:0;min-height:80px;border:2px solid;cursor:pointer;border-radius:4px;background-color:#fff;display:flex;align-items:center}.relation-grid-item[data-v-02f56b7e]:hover{background-color:transparent}.query-relations[data-v-02f56b7e]{overflow-y:auto}.query-relations>.header[data-v-02f56b7e]{margin-bottom:10px;border-radius:4px;padding:5px}.query-relations>.query-relations-content[data-v-02f56b7e]{display:grid;grid-template-columns:repeat(2,auto);grid-column-gap:5px;grid-row-gap:5px}.relation-grid-item>.g3w-long-text[data-v-02f56b7e]{font-weight:700;padding:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nexports.default = {\n name: 'relations',\n\n props: ['relations', 'feature', 'loading'],\n\n methods: {\n showRelation: function () {\n var _ref = _asyncToGenerator(function* (relation) {\n yield this.$parent.showRelation(relation);\n });\n\n function showRelation(_x) {\n return _ref.apply(this, arguments);\n }\n\n return showRelation;\n }(),\n featureInfo: function featureInfo() {\n var infoFeatures = [];\n var index = 0;\n Object.entries(this.feature.attributes).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n\n if (index > 2) {\n return false;\n }\n\n if (value && _.isString(value) && -1 === value.indexOf('/')) {\n infoFeatures.push({ key: key, value: value });\n index++;\n }\n });\n return infoFeatures;\n }\n },\n\n mounted: function () {\n var _ref4 = _asyncToGenerator(function* () {\n if (1 === this.relations.length) {\n this.relations[0].noback = true;\n yield this.showRelation(this.relations[0]);\n }\n });\n\n function mounted() {\n return _ref4.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n if (1 === this.relations.length) {\n delete this.relations[0].noback;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"query-relations\"},[_c('div',{staticClass:\"header skin-background-color lighten\"},[_c('div',{staticClass:\"skin-color-dark\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t:pre\",value:('sdk.relations.list_of_relations_feature'),expression:\"'sdk.relations.list_of_relations_feature'\",arg:\"pre\"}],staticStyle:{\"font-size\":\"1.1em\"}}),_vm._v(\" \"),_vm._l((_vm.featureInfo()),function(info){return _c('span',[_c('b',[_vm._v(_vm._s(info.key))]),_vm._v(\": \"+_vm._s(info.value))])})],2)]),_vm._v(\" \"),_c('div',{staticClass:\"query-relations-content\"},_vm._l((_vm.relations),function(relation){return _c('div',{staticClass:\"skin-border-color relation-grid-item\",on:{\"click\":function($event){$event.stopPropagation();return _vm.showRelation(relation)}}},[_c('span',{staticClass:\"skin-color g3w-long-text\"},[_vm._v(_vm._s(relation.name))])])}),0)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-02f56b7e\"\n\n},{\"vueify/lib/insert-css\":2}],210:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require(\"services/gui\");\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _Relations = require(\"components/Relations.vue\");\n\nvar _Relations2 = _interopRequireDefault(_Relations);\n\nvar _Relation = require(\"components/Relation.vue\");\n\nvar _Relation2 = _interopRequireDefault(_Relation);\n\nvar _constant = require(\"app/constant\");\n\nvar _eventbus = require(\"app/eventbus\");\n\nvar _getFeaturesFromResponseVectorApi = require(\"utils/getFeaturesFromResponseVectorApi\");\n\nvar _relations = require(\"services/relations\");\n\nvar _relations2 = _interopRequireDefault(_relations);\n\nvar _application = require(\"services/application\");\n\nvar _application2 = _interopRequireDefault(_application);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _options = void 0;\n\nfunction _buildRelationTable() {\n var relations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var id = arguments[1];\n\n relations = relations || [];\n var layer = _application2.default.getCurrentProject().getLayerById(id);\n var attrs = Object.keys(relations[0] ? relations[0].attributes : {});\n var cols = layer.getTableHeaders().filter(function (h) {\n return -1 !== attrs.indexOf(h.name);\n });\n return {\n columns: cols.map(function (c) {\n return c.label;\n }),\n rows: relations.map(function (r) {\n return cols.map(function (c) {\n return r.attributes[c.name];\n });\n }),\n rows_fid: relations.map(function (r) {\n return r.attributes[_constant.G3W_FID];\n }),\n features: relations,\n fields: cols.length ? cols : null,\n formStructure: layer.getLayerEditingFormStructure(),\n rowFormStructure: null,\n layerId: layer.getId()\n };\n}\n\nexports.default = {\n name: 'relation-page',\n\n data: function data() {\n var _$options = this.$options,\n _$options$table = _$options.table,\n table = _$options$table === undefined ? null : _$options$table,\n _$options$relation = _$options.relation,\n relation = _$options$relation === undefined ? null : _$options$relation,\n _$options$relations = _$options.relations,\n relations = _$options$relations === undefined ? [] : _$options$relations,\n nmRelation = _$options.nmRelation,\n _$options$feature = _$options.feature,\n feature = _$options$feature === undefined ? null : _$options$feature,\n _$options$currentview = _$options.currentview,\n currentview = _$options$currentview === undefined ? 'relations' : _$options$currentview,\n _$options$chartRelati = _$options.chartRelationIds,\n chartRelationIds = _$options$chartRelati === undefined ? [] : _$options$chartRelati,\n layer = _$options.layer;\n\n return {\n loading: false,\n state: null,\n error: false,\n table: table ? _buildRelationTable(table) : null,\n previousview: currentview,\n showChartButton: false,\n feature: feature,\n currentview: currentview,\n relation: relation,\n relations: relations,\n nmRelation: nmRelation,\n chartRelationIds: chartRelationIds,\n layer: layer\n };\n },\n provide: function provide() {\n return {\n relationnoback: 1 === this.$options.relations.length\n };\n },\n\n components: {\n 'relations': _Relations2.default,\n 'relation': _Relation2.default\n },\n methods: {\n saveRelations: function () {\n var _ref = _asyncToGenerator(function* (type) {\n var id = _application2.default.setDownload(true);\n try {\n yield _relations2.default.save(Object.assign(_options, { type: type }));\n } catch (e) {\n console.warn(e);_gui2.default.showUserMessage({ type: 'alert', message: e || 'info.server_error', closable: true });\n }\n _application2.default.setDownload(false, id);\n });\n\n function saveRelations(_x2) {\n return _ref.apply(this, arguments);\n }\n\n return saveRelations;\n }(),\n reloadLayout: function reloadLayout() {\n _eventbus.RelationEventBus.$emit('reload');\n },\n showChart: function showChart(container, relationData) {\n _gui2.default.getService('queryresults').showChart([this.relation.referencingLayer], container, relationData);\n },\n hideChart: function hideChart(container) {\n _gui2.default.getService('queryresults').hideChart(container);\n },\n showRelation: function () {\n var _ref2 = _asyncToGenerator(function* (relation) {\n _gui2.default.setLoadingContent(true);\n this.loading = true;\n this.relation = relation;\n var relationLayerId = relation.referencingLayer;\n try {\n _options = {\n layer: this.$options.layer,\n fid: this.feature.attributes[_constant.G3W_FID],\n relation: relation\n };\n var response = yield _relations2.default.getRelations(_options);\n var relations = (0, _getFeaturesFromResponseVectorApi.getFeaturesFromResponseVectorApi)(response, { type: 'result' });\n if (this.nmRelation) {\n relationLayerId = this.nmRelation.referencedLayer;\n relations = yield _relations2.default.getRelationsNM({\n nmRelation: this.nmRelation,\n features: relations\n });\n }\n this.showChartButton = !!this.chartRelationIds.find(function (id) {\n return relationLayerId === id;\n });\n this.table = _buildRelationTable(relations, relationLayerId);\n\n _gui2.default.changeCurrentContentOptions({\n title: relation.name,\n crumb: { title: relation.name }\n });\n\n yield this.$nextTick();\n this.previousview = this.currentview;\n this.currentview = 'relation';\n } catch (e) {\n console.warn(e);\n }\n _gui2.default.setLoadingContent(false);\n this.loading = true;\n });\n\n function showRelation(_x3) {\n return _ref2.apply(this, arguments);\n }\n\n return showRelation;\n }(),\n setRelationsList: function setRelationsList() {\n this.previousview = 'relation';\n this.currentview = 'relations';\n _gui2.default.changeCurrentContentOptions({ crumb: { title: _constant.LIST_OF_RELATIONS_TITLE } });\n this.loading = false;\n }\n },\n beforeMount: function beforeMount() {\n if ('relation' === this.currentview || 1 === this.relations.length && 'ONE' === this.relations[0].type) {\n this.showRelation(this.relations[0]);\n }\n },\n mounted: function () {\n var _ref3 = _asyncToGenerator(function* () {\n this.relations.sort(function (_ref4, _ref5) {\n var relationName1 = _ref4.name;\n var relationName2 = _ref5.name;\n\n if (relationName1 < relationName2) return -1;\n if (relationName1 > relationName2) return 1;\n return 0;\n });\n yield this.$nextTick();\n if (this.error) {\n requestAnimationFrame(function () {\n return _gui2.default.popContent();\n });\n }\n this.error = false;\n });\n\n function mounted() {\n return _ref3.apply(this, arguments);\n }\n\n return mounted;\n }(),\n created: function created() {\n this.$on('resize-component', this.reloadLayout);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"query-relations-page\"},[_c(_vm.currentview,{ref:_vm.currentview,tag:\"component\",attrs:{\"loading\":_vm.loading,\"previousview\":_vm.previousview,\"showChartButton\":_vm.showChartButton,\"relations\":_vm.relations,\"relation\":_vm.relation,\"nmRelation\":_vm.nmRelation,\"feature\":_vm.feature,\"table\":_vm.table},on:{\"save-relation\":_vm.saveRelations,\"show-chart\":_vm.showChart,\"hide-chart\":_vm.hideChart}})],1)}\n__vue__options__.staticRenderFns = []\n\n},{\"app/constant\":5,\"app/eventbus\":45,\"components/Relation.vue\":208,\"components/Relations.vue\":209,\"services/application\":282,\"services/gui\":286,\"services/relations\":289,\"utils/getFeaturesFromResponseVectorApi\":365}],211:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"li.menu-item[data-v-3edc3c4e]{padding-right:20px!important}li.menu-item span[data-v-3edc3c4e]{display:inline-flex;white-space:pre-wrap}.search-action[data-v-3edc3c4e]{text-shadow:0 2px 5px rgba(0,0,0,.3);padding:0 4px}#g3w-search li i[data-v-3edc3c4e]{width:20px}.search-tools[data-v-3edc3c4e]{display:flex;align-items:baseline}.search-tools>span[data-v-3edc3c4e]{white-space:pre-wrap}.search-tools>div[data-v-3edc3c4e]{margin-left:auto}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _g3wPanel = require('core/g3w-panel');\n\nvar _g3wPanel2 = _interopRequireDefault(_g3wPanel);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _createFilterFromString = require('utils/createFilterFromString');\n\nvar _Tool = require('components/Tool.vue');\n\nvar _Tool2 = _interopRequireDefault(_Tool);\n\nvar _QueryBuilder = require('components/QueryBuilder.vue');\n\nvar vueComp = _interopRequireWildcard(_QueryBuilder);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n name: 'search',\n\n data: function data() {\n return {\n state: this.state || {}\n };\n },\n\n\n components: {\n 'g3w-tool': _Tool2.default\n },\n\n computed: {\n show: function show() {\n return this.state.searches.length + this.state.tools.length + this.state.querybuildersearches.length > 0;\n }\n },\n\n methods: {\n showPanel: function showPanel() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.$options.service.showPanel(config);\n },\n remove: function () {\n var _ref = _asyncToGenerator(function* (search, index) {\n try {\n yield new Promise(function (res, rej) {\n _gui2.default.dialog.confirm(t('sdk.querybuilder.delete'), function (d) {\n return d ? res() : rej();\n });\n });\n var items = _application2.default.getLocalItem('QUERYBUILDERSEARCHES');\n var projectId = _projects2.default.getCurrentProject().getId();\n var searches = (items ? items[projectId] || [] : []).filter(function (item) {\n return item.id !== search.id;\n });\n if (searches.length) items[projectId] = searches;else delete items[projectId];\n if (Object.keys(items).length) _application2.default.setLocalItem({ id: 'QUERYBUILDERSEARCHES', data: items });else _application2.default.removeLocalItem('QUERYBUILDERSEARCHES');\n this.$options.service.removeItem({ type: 'querybuilder', index: index });\n } catch (e) {\n console.warn(e);\n }\n });\n\n function remove(_x2, _x3) {\n return _ref.apply(this, arguments);\n }\n\n return remove;\n }(),\n edit: function edit(search) {\n var opts = {\n id: search.id,\n name: search.name,\n layerId: search.layerId,\n filter: search.filter,\n title: t('sdk.querybuilder.title'),\n show: true\n };\n opts.internalPanel = new (Vue.extend(vueComp))({ options: opts });\n new _g3wPanel2.default(opts);\n },\n run: function () {\n var _ref2 = _asyncToGenerator(function* (search) {\n search.qbloading = true;\n try {\n var layer = _catalogLayers2.default.getLayerById(search.layerId);\n yield _data2.default.getData('search:features', {\n inputs: {\n layer: layer,\n filter: (0, _createFilterFromString.createFilterFromString)({ layer: layer, filter: search.filter }),\n feature_count: 100\n },\n outputs: true\n });\n } catch (e) {\n console.warn(e);\n _gui2.default.showUserMessage({ type: 'alert', message: 'sdk.querybuilder.error_run', autoclose: true });\n }\n search.qbloading = false;\n });\n\n function run(_x4) {\n return _ref2.apply(this, arguments);\n }\n\n return run;\n }()\n },\n\n mounted: function () {\n var _ref3 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n $('.search-action').tooltip();\n });\n\n function mounted() {\n return _ref3.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('ul',{staticClass:\"treeview-menu g3w-search g3w-tools menu-items\",attrs:{\"id\":\"g3w-search\"}},[_vm._l((_vm.state.searches),function(search){return _c('li',{staticClass:\"menu-item\",on:{\"click\":function($event){$event.stopPropagation();return _vm.showPanel(search)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('empty-circle')}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(search.name))])])}),_vm._v(\" \"),_vm._l((_vm.state.tools),function(searchtool){return _c('li',[_c('g3w-tool',{attrs:{\"tool\":searchtool}})],1)}),_vm._v(\" \"),_vm._l((_vm.state.querybuildersearches),function(search,i){return _c('li',{key:search.id},[_c('div',{staticStyle:{\"position\":\"relative\"},on:{\"click\":function($event){return _vm.edit(search)}}},[_c('bar-loader',{attrs:{\"loading\":search.qbloading}}),_vm._v(\" \"),_c('div',{staticClass:\"search-tools\"},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.querybuilder.search.delete'),expression:\"'sdk.querybuilder.search.delete'\"}],staticClass:\"search-action skin-tooltip-bottom\",class:_vm.g3wtemplate.getFontClass('trash'),staticStyle:{\"color\":\"red\",\"margin-right\":\"5px\"},attrs:{\"data-placement\":\"bottom\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(search, i)}}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(search.name))]),_vm._v(\" \"),_c('div',[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip\",value:('sdk.querybuilder.search.run'),expression:\"'sdk.querybuilder.search.run'\"}],staticClass:\"search-action skin-tooltip-bottom\",class:_vm.g3wtemplate.getFontClass('run'),staticStyle:{\"color\":\"green\"},attrs:{\"data-placement\":\"bottom\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.run(search)}}})])])],1)])})],2):_vm._e()}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-3edc3c4e\"\n\n},{\"components/QueryBuilder.vue\":197,\"components/Tool.vue\":221,\"core/g3w-panel\":10,\"core/i18n/i18n.service\":12,\"services/application\":282,\"services/data\":284,\"services/gui\":286,\"store/catalog-layers\":295,\"store/projects\":301,\"utils/createFilterFromString\":329,\"vueify/lib/insert-css\":2}],212:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-search-form label[data-v-51de5286]{color:#fff}.g3w-search-form .search-logicop[data-v-51de5286]{width:100%;position:relative;display:flex;justify-content:center;margin-bottom:15px;margin-top:30px;border-bottom:1px solid}.g3w-search-form .search-logicop h4[data-v-51de5286]{font-weight:700;position:absolute;padding:5px;top:-24px;background:#222d32}#dosearch[data-v-51de5286]{color:#fff;font-weight:700;margin-top:15px;background-color:var(--skin-color)}#dosearch[data-v-51de5286]:hover{color:#fff}.search-label[data-v-51de5286]{width:100%;display:flex;justify-content:space-between}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _constant = require('app/constant');\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _convertQGISDateTimeFormatToMoment = require('utils/convertQGISDateTimeFormatToMoment');\n\nvar _createSingleFieldParameter = require('utils/createSingleFieldParameter');\n\nvar _getDataForSearchInput = require('utils/getDataForSearchInput');\n\nvar _resize = require('mixins/resize');\n\nvar _resize2 = _interopRequireDefault(_resize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar SELECTS = [];\n\nexports.default = {\n\n mixins: [_resize2.default],\n\n data: function data() {\n return {\n state: this.$options.service.state,\n allvalue: _constant.SEARCH_ALLVALUE\n };\n },\n\n\n computed: {\n layers_url: function layers_url() {\n return _application2.default.getCurrentProject().getState().layers_url;\n },\n is_staff: function is_staff() {\n return _application2.default.getConfig().user.is_staff;\n }\n },\n\n methods: {\n resize: function resize() {\n SELECTS.forEach(function (select2) {\n return !_applicationState2.default.ismobile && select2.select2('close');\n });\n },\n getLabelOperator: function getLabelOperator(operator) {\n return '[ ' + _constant.FILTER_EXPRESSION_OPERATORS[operator] + ' ]';\n },\n onFocus: function () {\n var _ref = _asyncToGenerator(function* (e) {\n if (this.isMobile()) {\n var top = $(e.target).position().top - 10;\n yield this.$nextTick();\n setTimeout(function () {\n return $('.sidebar').scrollTop(top);\n }, 500);\n }\n });\n\n function onFocus(_x) {\n return _ref.apply(this, arguments);\n }\n\n return onFocus;\n }(),\n changeInput: function () {\n var _ref2 = _asyncToGenerator(function* (input) {\n var _this = this;\n\n var field = input.attribute;\n var deps = this.state.forminputs.filter(function (i) {\n return field === i.dependance;\n });\n var state = this.state;\n var value = input.value;\n\n var is_empty = function is_empty(v) {\n return [_constant.SEARCH_ALLVALUE, null, undefined].includes(v) || '' === v.toString().trim();\n };\n var has_autocomplete = function has_autocomplete(i) {\n return 'autocompletefield' === i.type;\n };\n\n try {\n this.state.searching = true;\n\n if ('numberfield' === input.type) {\n value = value || 0 === value ? value : null;\n }\n\n if (undefined === value) {\n value = _constant.SEARCH_ALLVALUE;\n }\n\n if (!['textfield', 'textField'].includes(input.type)) {\n value = value.trim();\n }\n\n input.value = value;\n\n yield Promise.allSettled(deps.map(function () {\n var _ref3 = _asyncToGenerator(function* (d) {\n var filter = _getDataForSearchInput.getDataForSearchInput.field({\n state: state,\n field: field,\n fields: [_constant.SEARCH_ALLVALUE, undefined].includes(value) ? [] : [(0, _createSingleFieldParameter.createSingleFieldParameter)({ field: field, value: value, operator: input.operator })]\n });\n\n var cached = d.dvalues[filter];\n\n d.value = 'selectfield' === d.type ? _constant.SEARCH_ALLVALUE : null;\n d.values = Array.from(new Set([].concat(_toConsumableArray(!has_autocomplete(d) && !is_empty(value) ? [d.values[0]] : []), _toConsumableArray(!has_autocomplete(d) && is_empty(value) ? d._values : []), _toConsumableArray(cached || []))));\n\n d.disabled = is_empty(value) ? d.dependance_strict : false;\n\n if (_this.state.forminputs.find(function (i) {\n return i.dependance === d.attribute;\n })) {\n _this.changeInput(d);\n }\n\n if (has_autocomplete(d) || is_empty(value) || cached) {\n return;\n }\n\n state.loading[d.attribute] = true;\n\n try {\n var data = yield state.search_layers[0].getFilterData({\n fformatter: d.attribute,\n ordering: d.attribute,\n field: filter\n });\n\n data.data = (data.data || []).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n value = _ref5[1];\n\n return { key: value, value: value };\n });\n\n if (!d.dependance_strict && 'selectfield' === d.type) {\n var _d$_values;\n\n (_d$_values = d._values).push.apply(_d$_values, _toConsumableArray(d.values));\n }\n\n if (1 === d.values.length) {\n var _d$values;\n\n (_d$values = d.values).push.apply(_d$values, _toConsumableArray(data.data));\n }\n\n d.dvalues[filter] = d.values.slice(1);\n } catch (e) {\n console.warn(e);\n } finally {\n d.disabled = false;\n _this.state.loading[d.attribute] = false;\n }\n });\n\n return function (_x3) {\n return _ref3.apply(this, arguments);\n };\n }()));\n } catch (e) {\n console.warn(e);\n } finally {\n this.state.searching = false;\n }\n });\n\n function changeInput(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return changeInput;\n }(),\n doSearch: function doSearch(e) {\n e.preventDefault();\n this.$options.service.run();\n },\n initDateTimeField: function () {\n var _ref6 = _asyncToGenerator(function* (input) {\n var _this2 = this;\n\n if ('datetimefield' !== input.type) {\n return;\n }\n\n yield this.$nextTick();\n\n input.options.format.fieldformat = (0, _convertQGISDateTimeFormatToMoment.convertQGISDateTimeFormatToMoment)(input.options.format.fieldformat);\n input.options.format.displayformat = (0, _convertQGISDateTimeFormatToMoment.convertQGISDateTimeFormatToMoment)(input.options.format.displayformat);\n\n $(this.$refs['date_' + input.id]).datetimepicker({\n defaultDate: null,\n format: input.options.format.displayformat,\n ignoreReadonly: true,\n allowInputToggle: true,\n toolbarPlacement: 'top',\n widgetPositioning: { vertical: 'bottom', horizontal: 'left' },\n showClose: true,\n locale: _applicationState2.default.language || 'en'\n });\n\n $(this.$refs['date_' + input.id]).on(\"dp.change\", function () {\n var newDate = $('#' + input.id).val();\n input.value = newDate.trim() ? moment(newDate, input.options.format.displayformat).format(input.options.format.fieldformat) : null;\n _this2.changeInput(input);\n });\n\n if (_applicationState2.default.ismobile) {\n setTimeout(function () {\n $('#' + input.id).blur();\n });\n }\n });\n\n function initDateTimeField(_x4) {\n return _ref6.apply(this, arguments);\n }\n\n return initDateTimeField;\n }(),\n initSelect2Field: function () {\n var _ref7 = _asyncToGenerator(function* (input) {\n var _this3 = this;\n\n if (!['selectfield', 'autocompletefield'].includes(input.type)) {\n return;\n }\n\n yield this.$nextTick();\n\n var numdigaut = input.options.numdigaut;\n var has_autocomplete = 'autocompletefield' === input.type;\n var ajax = has_autocomplete ? {\n delay: 500,\n transport: function () {\n var _ref8 = _asyncToGenerator(function* (d, ok, ko) {\n try {\n ok({\n results: (yield (0, _getDataForSearchInput.getDataForSearchInput)({\n state: _this3.state,\n field: input.attribute,\n suggest: input.attribute + '|' + d.data.q\n })).map(function (d) {\n return { id: d.value, text: d.key };\n })\n });\n } catch (e) {\n ko(e);\n }\n });\n\n function transport(_x6, _x7, _x8) {\n return _ref8.apply(this, arguments);\n }\n\n return transport;\n }()\n } : null;\n\n var select2 = $('#' + input.id).select2({\n ajax: ajax,\n width: '100%',\n dropdownParent: $('.g3w-search-form:visible'),\n minimumInputLength: has_autocomplete && (numdigaut && !Number.isNaN(1 * numdigaut) && 1 * numdigaut > 0 && 1 * numdigaut || 2) || 0,\n allowClear: has_autocomplete,\n placeholder: has_autocomplete ? '' : null,\n\n matcher: function matcher(params, data) {\n var search = params.term ? params.term.toLowerCase() : params.term;\n if ('' === (search || '').toString().trim()) {\n return data;\n }\n if (data.text.toLowerCase().includes(search) && undefined !== data.text) {\n return _extends({}, data);\n }\n return null;\n },\n language: {\n noResults: function noResults() {\n return t(\"sdk.search.no_results\");\n },\n errorLoading: function errorLoading() {\n return t(\"sdk.search.error_loading\");\n },\n searching: function searching() {\n return t(\"sdk.search.searching\");\n },\n inputTooShort: function inputTooShort(d) {\n return t(\"sdk.search.autocomplete.inputshort.pre\") + ' ' + (d.minimum - d.input.length) + ' ' + t(\"sdk.search.autocomplete.inputshort.post\");\n }\n }\n });\n SELECTS.push(select2);\n\n select2.on('select2:select select2:unselecting', function (e) {\n if ('select2:select' === e.type || has_autocomplete) {\n input.value = e.params.data ? '' + e.params.data.id : _constant.SEARCH_ALLVALUE;\n _this3.changeInput(input);\n }\n });\n\n this.$watch(function () {\n return input.value;\n }, function () {\n var _ref9 = _asyncToGenerator(function* (value, oldVal) {\n if (value !== oldVal && _constant.SEARCH_ALLVALUE === value) {\n select2.val(value).trigger('change');\n }\n });\n\n return function (_x9, _x10) {\n return _ref9.apply(this, arguments);\n };\n }());\n\n select2.val(input.value).trigger('change');\n });\n\n function initSelect2Field(_x5) {\n return _ref7.apply(this, arguments);\n }\n\n return initSelect2Field;\n }()\n },\n\n mounted: function () {\n var _ref10 = _asyncToGenerator(function* () {\n yield this.state.mounted;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.state.forminputs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var input = _step.value;\n\n yield this.initSelect2Field(input);\n yield this.initDateTimeField(input);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n\n function mounted() {\n return _ref10.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n SELECTS.forEach(function (select2) {\n select2.select2('destroy');\n select2.off();\n select2 = null;\n });\n\n SELECTS.splice(0);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.searching),expression:\"state.searching\"}],staticClass:\"g3w-search-panel form-group\"},[_c('h4',[_c('b',[_vm._v(_vm._s(_vm.state.title))])]),_vm._v(\" \"),_vm._t(\"tools\"),_vm._v(\" \"),_vm._t(\"form\",[_c('form',{staticClass:\" g3w-search-form\"},[_vm._l((_vm.state.forminputs),function(input){return _c('div',{key:input.id,staticClass:\"form-group\"},[('numberfield' === input.type || ('textfield' === input.type && 'Range' === input.widget_type))?_c('div',{staticClass:\"numeric\"},[_c('label',{staticClass:\"search-label\",attrs:{\"for\":input.id}},[_c('span',[_vm._v(_vm._s(input.label || input.attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(_vm.getLabelOperator(input.operator)))])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(input.value),expression:\"input.value\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":input.id},domProps:{\"value\":(input.value)},on:{\"change\":function($event){return _vm.changeInput(input)},\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(input, \"value\", $event.target.value)},function($event){return _vm.changeInput(input)}]}})]):(['textfield', 'textField'].includes(input.type))?_c('div',{staticClass:\"form-item-search text\"},[_c('label',{staticClass:\"search-label\",attrs:{\"for\":input.id}},[_c('span',[_vm._v(_vm._s(input.label || input.attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(_vm.getLabelOperator(input.operator)))])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(input.value),expression:\"input.value\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":input.id},domProps:{\"value\":(input.value)},on:{\"focus\":_vm.onFocus,\"change\":function($event){return _vm.changeInput(input)},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(input, \"value\", $event.target.value)}}})]):(['selectfield', 'autocompletefield'].includes(input.type))?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.loading[input.dependance] || input.loading || input.disabled),expression:\"state.loading[input.dependance] || input.loading || input.disabled\"}],staticClass:\"text\"},[_c('label',{staticClass:\"search-label\",attrs:{\"for\":input.id}},[_c('span',[_vm._v(_vm._s(input.label || input.attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(_vm.getLabelOperator(input.operator)))])]),_vm._v(\" \"),(input.dependance)?_c('bar-loader',{attrs:{\"loading\":_vm.state.loading[input.dependance] || input.loading}}):_vm._e(),_vm._v(\" \"),_c('select',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(input.disabled || input.loading),expression:\"input.disabled || input.loading\"}],staticClass:\"form-control\",attrs:{\"name\":input.attribute,\"id\":input.id}},_vm._l((input.values),function(opt){return _c('option',{key:opt.value,domProps:{\"value\":opt.value}},[(opt.value === _vm.allvalue)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.search.all'),expression:\"'sdk.search.all'\"}]}):_c('span',[_vm._v(_vm._s(opt.key))])])}),0)],1):('datetimefield' === input.type)?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.loading[input.dependance] || false),expression:\"state.loading[input.dependance] || false\"}],staticClass:\"text\"},[_c('label',{staticClass:\"search-label\",attrs:{\"for\":input.id}},[_c('span',[_vm._v(_vm._s(input.label || input.attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(_vm.getLabelOperator(input.operator)))])]),_vm._v(\" \"),_c('div',{ref:'date_' + input.id,refInFor:true,staticClass:\"input-group date\"},[_c('input',{staticClass:\"form-control\",attrs:{\"id\":input.id,\"type\":\"text\"}}),_vm._v(\" \"),_c('span',{staticClass:\"input-group-addon skin-color\"},[_c('span',{class:_vm.g3wtemplate.getFontClass(input.options.format.time ? 'time': 'calendar')})])])]):_vm._e(),_vm._v(\" \"),_c('sub',[_vm._v(_vm._s(input.options.description))]),_vm._v(\" \"),(_vm.is_staff)?_c('sub',[(input.options.description)?_c('br'):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(input.type))]),_vm._v(\" | \"),_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(input.widget_type))]),_vm._v(\" \"),(input.options.value)?[_vm._v(\": { key: \\\"\"+_vm._s(input.options.key)+\"\\\", value: \\\"\"+_vm._s(input.options.value)+\" }\\\"\")]:_vm._e(),_vm._v(\" \"),(input.options.layer_id)?[_c('br'),_c('span',{staticClass:\"skin-color\"},[_vm._v(\"layer_id:\")]),_vm._v(\" \\\"\"+_vm._s(input.options.layer_id)+\"\\\"\")]:_vm._e(),_vm._v(\" \"),(input.dependance)?[_c('br'),_c('span',{staticClass:\"skin-color\"},[_vm._v(\"depends_on:\")]),_vm._v(\" \\\"\"+_vm._s(input.dependance)+\"\\\"\")]:_vm._e(),_vm._v(\" \"),(input.dependance)?[_c('br'),_c('span',{staticClass:\"skin-color\"},[_vm._v(\"strict:\")]),_vm._v(\" \"+_vm._s(input.dependance_strict))]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(input.logicop)?_c('div',{staticClass:\"search-logicop skin-border-color\"},[_c('h4',[_vm._v(_vm._s(input.logicop))])]):_vm._e()])}),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('dosearch'),expression:\"'dosearch'\"}],staticClass:\"sidebar-button-run btn btn-block pull-right\",attrs:{\"id\":\"dosearch\",\"data-i18n\":\"dosearch\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.doSearch($event)}}})])],2)]),_vm._v(\" \"),_vm._t(\"footer\"),_vm._v(\" \"),(_vm.layers_url)?_c('div',{staticStyle:{\"padding-top\":\"5em\"}},[_c('b',[_c('a',{attrs:{\"href\":_vm.layers_url,\"target\":\"_blank\"}},[_vm._v(\"Edit in admin\")])])]):_vm._e()],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-51de5286\"\n\n},{\"app/constant\":5,\"core/i18n/i18n.service\":12,\"mixins/resize\":277,\"services/application\":282,\"store/application-state\":294,\"utils/convertQGISDateTimeFormatToMoment\":318,\"utils/createSingleFieldParameter\":337,\"utils/getDataForSearchInput\":362,\"vueify/lib/insert-css\":2}],213:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _eventbus = require('app/eventbus');\n\nvar _sidebar = require('services/sidebar');\n\nvar _sidebar2 = _interopRequireDefault(_sidebar);\n\nvar _constant = require('app/constant');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nexports.default = {\n\n name: \"Sidebar\",\n\n data: function data() {\n return {\n components: _sidebar2.default.state.components,\n panels: _sidebar2.default.stack.state.contentsdata,\n bOpen: true,\n bPageMode: false,\n header: t('main navigation'),\n state: _sidebar2.default.state,\n\n zIndex: _constant.ZINDEXES.usermessage.tool + 2\n\n };\n },\n\n\n computed: {\n title: function title() {\n return this.state.gui.title;\n },\n disabled: function disabled() {\n return _applicationState2.default.gui.sidebar.disabled;\n },\n panelsinstack: function panelsinstack() {\n return this.panels.length > 0;\n },\n showmainpanel: function showmainpanel() {\n return this.components.length > 0 && !this.panelsinstack;\n },\n componentname: function componentname() {\n return this.components.length ? this.components.slice(-1)[0].getTitle() : '';\n },\n panelname: function panelname() {\n return this.panels.length ? this.panels.slice(-1)[0].content.getTitle() : '';\n }\n },\n\n methods: {\n closePanel: function closePanel() {\n _sidebar2.default.closePanel();\n },\n closeAllPanels: function closeAllPanels() {\n _sidebar2.default.closeAllPanels();\n }\n },\n\n created: function created() {\n this.iframe = _applicationState2.default.iframe;\n _eventbus.SidebarEventBus.$on('sidebaritemclick', function () {\n return $('.sidebar-toggle').click();\n });\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',[_c('div',{staticClass:\"main-sidebar\",class:{ iframe: _vm.iframe}},[_c('div',{staticClass:\"sidebar\",class:{ 'g3w-disabled': _vm.disabled },attrs:{\"id\":\"g3w-sidebar\"}},[_c('div',{attrs:{\"id\":\"disable-sidebar\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.panelsinstack),expression:\"panelsinstack\"}],staticClass:\"g3w-sidebarpanel\"},[_c('div',{staticStyle:{\"overflow\":\"hidden\",\"line-height\":\"14px\",\"font-size\":\"1.5em\"},attrs:{\"id\":\"g3w-sidebarpanel-header-placeholder\"}},[_c('div',{staticStyle:{\"display\":\"flex\"},style:({ justifyContent: _vm.state.gui.title ? 'space-between' : 'flex-end' })},[(_vm.title)?_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.title),expression:\"title\"}],staticStyle:{\"display\":\"inline-block\",\"font-weight\":\"bold\"}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.panels.length > 1)?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('back'),expression:\"'back'\",modifiers:{\"create\":true}}],staticClass:\"skin-tooltip-left g3w-span-button close-pane-button fa-stack\",attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":_vm.closePanel}},[_c('i',{staticClass:\"fa-stack-1x panel-button\",class:_vm.g3wtemplate.getFontClass('circle')}),_vm._v(\" \"),_c('i',{staticClass:\"fa-stack-1x panel-icon\",class:_vm.g3wtemplate.getFontClass('arrow-left')})]):_vm._e(),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('close'),expression:\"'close'\",modifiers:{\"create\":true}}],staticClass:\"skin-tooltip-left g3w-span-button close-pane-button fa-stack\",attrs:{\"data-placement\":\"left\",\"data-toggle\":\"tooltip\",\"data-container\":\"body\"},on:{\"click\":_vm.closeAllPanels}},[_c('i',{staticClass:\"fa-stack-1x panel-button\",class:_vm.g3wtemplate.getFontClass('circle')}),_vm._v(\" \"),_c('i',{staticClass:\"fa-stack-1x panel-icon\",class:_vm.g3wtemplate.getFontClass('close')})])])])]),_vm._v(\" \"),_c('div',{staticClass:\"g3w-sidebarpanel-placeholder\",attrs:{\"id\":\"g3w-sidebarpanel-placeholder\"}})]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"g3w-sidebarcomponents-content\"}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showmainpanel),expression:\"showmainpanel\"}],staticClass:\"sidebar-menu\",class:{ 'g3w-disabled': _vm.state.disabled },attrs:{\"id\":\"g3w-sidebarcomponents\"}})])])]),_vm._v(\" \"),_c('a',{staticClass:\"sidebar-aside-toggle\",class:{ 'g3w-disabled': _vm.disabled, 'iframe': _vm.iframe},style:({zIndex: _vm.zIndex}),attrs:{\"href\":\"#\",\"data-toggle\":\"offcanvas\",\"role\":\"button\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('bars')})])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-b2170cb4\"\n\n},{\"app/constant\":5,\"app/eventbus\":45,\"core/i18n/i18n.service\":12,\"services/sidebar\":291,\"store/application-state\":294}],214:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eventbus = require('app/eventbus');\n\nvar _SidebarItemAction = require('components/SidebarItemAction.vue');\n\nvar _SidebarItemAction2 = _interopRequireDefault(_SidebarItemAction);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"SidebarItem\",\n data: function data() {\n return {\n info: this.$options.info || { state: null, style: null, class: null },\n main: true,\n component: this.$options.component,\n active: false,\n title: '',\n open: false,\n icon: null,\n iconColor: null,\n collapsible: null\n };\n },\n\n components: {\n SidebarItemAction: _SidebarItemAction2.default\n },\n methods: {\n onClickItem: function onClickItem(evt) {\n var _this = this;\n\n if (this.component.isolate) {\n evt.stopPropagation();\n }\n if (!this.component.isolate) {\n this.$options.service.state.components.forEach(function (component) {\n if (component !== _this.component && component.getOpen()) {\n component.click({ open: component.isolate });\n }\n });\n\n if (!this.component.collapsible && isMobile.any) {\n _eventbus.SidebarEventBus.$emit('sidebaritemclick');\n }\n }\n this.component.setOpen(!this.component.state.open);\n }\n },\n created: function created() {\n var _this2 = this;\n\n this.component.openClose = function () {\n return _this2.$refs.anchor_click.click();\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.visible),expression:\"state.visible\"},{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.disabled),expression:\"state.disabled\"}],staticClass:\"treeview sidebaritem\",class:{'active': _vm.open },attrs:{\"id\":_vm.component.id}},[_c('bar-loader',{attrs:{\"loading\":_vm.state.loading}}),_vm._v(\" \"),_c('a',{ref:\"anchor_click\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\"},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onClickItem($event)}}},[_c('div',[_c('i',{class:_vm.icon,style:({color: _vm.iconColor})}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.title),expression:\"title\"}],staticClass:\"treeview-label\"})]),_vm._v(\" \"),_c('div',[(_vm.info.state)?_c('span',{class:_vm.info.class,staticStyle:{\"position\":\"absolute\",\"right\":\"5px\",\"font-weight\":\"bold\"},style:(_vm.info.style),attrs:{\"title\":_vm.info.tooltip}},[_vm._v(_vm._s(_vm.info.state))]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.actions),function(action){return _c('sidebar-item-action',{key:action.id,attrs:{\"component\":_vm.component.internalComponent,\"action\":action}})})],2),_vm._v(\" \"),(_vm.collapsible)?_c('i',{staticClass:\"pull-right\",class:_vm.g3wtemplate.getFontClass('angle-left')}):_vm._e()]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"g3w-sidebarcomponent-placeholder\"}})],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-2f606059\"\n\n},{\"app/eventbus\":45,\"components/SidebarItemAction.vue\":215}],215:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'Sidebaritemaction',\n props: {\n action: {\n type: Object,\n required: true\n },\n component: {\n type: Object\n }\n },\n methods: {\n triggerAction: function triggerAction() {\n this.action.fnc(this.component);\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:(_vm.action.tooltip),expression:\"action.tooltip\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"action skin-tooltip-left\",class:_vm.action.class,staticStyle:{\"font-weight\":\"bold\",\"padding\":\"3px\"},style:(_vm.action.style),on:{\"click\":function($event){$event.stopPropagation();return _vm.triggerAction($event)}}})}\n__vue__options__.staticRenderFns = []\n\n},{}],216:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _SpatialBookMarkItem = require(\"components/SpatialBookMarkItem.vue\");\n\nvar _SpatialBookMarkItem2 = _interopRequireDefault(_SpatialBookMarkItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'spatial-bookmark-group',\n\n props: {\n group: {\n type: Object,\n\n required: true\n }\n },\n components: {\n SpatialBookMarkItem: _SpatialBookMarkItem2.default\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('div',{staticStyle:{\"font-weight\":\"bold\",\"width\":\"100%\"},style:({ borderBottom: _vm.group.expanded ? '2px solid #2c3b41' : 'none' }),on:{\"click\":function($event){$event.stopPropagation();_vm.group.expanded = !_vm.group.expanded}}},[_c('span',{class:_vm.g3wtemplate.getFontClass(_vm.group.expanded ? 'caret-down' : 'caret-right'),staticStyle:{\"margin-right\":\"5px\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.group.name))])]),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.group.expanded),expression:\"group.expanded\"}],staticStyle:{\"margin-left\":\"10px\"}},_vm._l((_vm.group.nodes),function(node){return _c('spatial-book-mark-item',{attrs:{\"bookmark\":node}})}),1)])}\n__vue__options__.staticRenderFns = []\n\n},{\"components/SpatialBookMarkItem.vue\":217}],217:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".spatial-bookmark[data-v-fab34912]{display:flex;align-items:baseline;justify-content:space-between;padding:5px!important}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Projections = require('g3w-ol/projection/projections');\n\nexports.default = {\n name: 'spatial-bookmark-item',\n\n props: {\n bookmark: {\n type: Object,\n\n required: true\n }\n },\n methods: {\n removeBookMark: function removeBookMark() {},\n gotoSpatialBookmark: function () {\n var _ref2 = _asyncToGenerator(function* (_ref) {\n var extent = _ref.extent,\n crs = _ref.crs;\n\n if (crs.epsg !== _gui2.default.getService('map').getEpsg().split('EPSG:')[1]) {\n var projection = yield Projections.registerProjection('EPSG:' + crs.epsg);\n extent = ol.proj.transformExtent(extent, projection, _gui2.default.getService('map').getProjection());\n }\n\n _gui2.default.getService('map').zoomToExtent(extent, { force: true });\n });\n\n function gotoSpatialBookmark(_x) {\n return _ref2.apply(this, arguments);\n }\n\n return gotoSpatialBookmark;\n }()\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"spatial-bookmark\",on:{\"click\":function($event){$event.stopPropagation();return _vm.gotoSpatialBookmark(_vm.bookmark)}}},[_c('div',[_c('span',{class:_vm.g3wtemplate.getFontClass('bookmark'),staticStyle:{\"margin-right\":\"5px\",\"font-size\":\"0.7em\"}}),_vm._v(\" \"),_c('span',{staticClass:\"g3w-long-text\"},[_vm._v(_vm._s(_vm.bookmark.name))])]),_vm._v(\" \"),(_vm.bookmark.removable)?_c('span',{staticClass:\"sidebar-button sidebar-button-icon\",staticStyle:{\"color\":\"red\",\"margin\":\"5px\",\"cursor\":\"pointer\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('remove-bookmark', _vm.bookmark.id)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('trash')})]):_vm._e()])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-fab34912\"\n\n},{\"g3w-ol/projection/projections\":62,\"services/gui\":286,\"vueify/lib/insert-css\":2}],218:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".content-bookmarks{font-weight:700;color:#fff;padding:5px;border-bottom:1px solid #fff;margin-bottom:2px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constant = require('app/constant');\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _SpatialBookMarkGroup = require('components/SpatialBookMarkGroup.vue');\n\nvar _SpatialBookMarkGroup2 = _interopRequireDefault(_SpatialBookMarkGroup);\n\nvar _SpatialBookMarkItem = require('components/SpatialBookMarkItem.vue');\n\nvar _SpatialBookMarkItem2 = _interopRequireDefault(_SpatialBookMarkItem);\n\nvar _InputText = require('components/InputText.vue');\n\nvar _InputText2 = _interopRequireDefault(_InputText);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _require = require('utils'),\n uniqueId = _require.uniqueId;\n\nvar _require2 = require('core/i18n/i18n.service'),\n t = _require2.t;\n\nvar SPATIAL_BOOKMARKS_LOCALITEMS = _application2.default.getLocalItem(_constant.LOCAL_ITEM_IDS.SPATIALBOOKMARKS.id);\n\nexports.default = {\n name: 'spatial-bookmarks',\n\n components: {\n SpatialBookMarkGroup: _SpatialBookMarkGroup2.default,\n SpatialBookMarkItem: _SpatialBookMarkItem2.default,\n InputText: _InputText2.default\n },\n\n data: function data() {\n var project = _projects2.default.getCurrentProject();\n\n if (undefined === SPATIAL_BOOKMARKS_LOCALITEMS[project.getId()]) {\n SPATIAL_BOOKMARKS_LOCALITEMS[project.getId()] = [];\n }\n\n return {\n showaddform: false,\n\n project: {\n bookmarks: project.getSpatialBookmarks() || []\n },\n\n user: {\n bookmarks: SPATIAL_BOOKMARKS_LOCALITEMS[project.getId()]\n },\n\n addbookmarkinput: {\n name: 'add-bookmark',\n label: t('sdk.spatialbookmarks.input.name'),\n i18nLabel: true,\n value: null,\n editable: true,\n type: 'varchar',\n input: { type: 'text', options: {} },\n visible: true,\n validate: { valid: false, required: true }\n }\n };\n },\n\n\n computed: {\n is_staff: function is_staff() {\n return _application2.default.getConfig().user.is_staff;\n },\n lang: function lang() {\n return _applicationState2.default.language;\n }\n },\n\n methods: {\n addBookMark: function addBookMark() {\n this.user.bookmarks.push({\n id: uniqueId(),\n name: this.addbookmarkinput.value,\n extent: _gui2.default.getService('map').getMapExtent(),\n removable: true,\n crs: { epsg: 1 * _gui2.default.getService('map').getCrs().split('EPSG:')[1] }\n });\n\n this.saveUserBookMarks();\n this.showaddform = false;\n },\n removeBookMark: function removeBookMark(id) {\n this.user.bookmarks = this.user.bookmarks.filter(function (b) {\n return id !== b.id;\n });\n this.saveUserBookMarks();\n },\n saveUserBookMarks: function saveUserBookMarks() {\n SPATIAL_BOOKMARKS_LOCALITEMS[_projects2.default.getCurrentProject().getId()] = this.user.bookmarks;\n _application2.default.setLocalItem({\n id: _constant.LOCAL_ITEM_IDS.SPATIALBOOKMARKS.id,\n data: SPATIAL_BOOKMARKS_LOCALITEMS\n });\n },\n showAddForm: function showAddForm() {\n this.addbookmarkinput.value = null;\n this.showaddform = true;\n }\n },\n\n watch: {\n showaddform: function () {\n var _ref = _asyncToGenerator(function* (bool) {\n if (bool) {\n yield this.$nextTick();\n\n for (var i = 0; i < this.$refs.add_bookmark_input.$el.children.length; i++) {\n this.$refs.add_bookmark_input.$el.children[i].classList.remove('col-sm-12');\n }\n }\n });\n\n function showaddform(_x) {\n return _ref.apply(this, arguments);\n }\n\n return showaddform;\n }()\n },\n\n created: function created() {\n var _this = this;\n\n this.$on('close', function () {\n return _this.showaddform = false;\n });\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"treeview-menu g3w-spatial-bookmarks menu-items\",class:{'g3w-tools': !_vm.showaddform},attrs:{\"id\":\"g3w-spatial-bookmarks\"}},[(_vm.showaddform)?[_c('li',[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"end\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('close'),expression:\"'close'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"sidebar-button sidebar-button-icon\",class:_vm.g3wtemplate.getFontClass('close'),staticStyle:{\"padding\":\"5px\",\"margin\":\"3px\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showaddform = false}}})]),_vm._v(\" \"),_c('helpdiv',{attrs:{\"message\":\"sdk.spatialbookmarks.helptext\"}}),_vm._v(\" \"),_c('div',{staticClass:\"container add-bookmark-input\",staticStyle:{\"padding\":\"5px\",\"width\":\"100%\"}},[_c('input-text',{ref:\"add_bookmark_input\",attrs:{\"state\":_vm.addbookmarkinput}})],1),_vm._v(\" \"),_c('div',{staticStyle:{\"margin-top\":\"5px\"}},[_c('button',{directives:[{name:\"t\",rawName:\"v-t\",value:('add'),expression:\"'add'\"},{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.addbookmarkinput.validate.valid),expression:\"!addbookmarkinput.validate.valid\"}],staticClass:\"sidebar-button-run btn btn-block\",on:{\"click\":function($event){$event.stopPropagation();return _vm.addBookMark($event)}}})])],1)]:[(_vm.is_staff)?_c('div',{staticClass:\"content-bookmarks\"},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.spatialbookmarks.sections.project.title'),expression:\"'sdk.spatialbookmarks.sections.project.title'\"}]}),_vm._v(\" \"),_c('a',{staticStyle:{\"float\":\"right\"},attrs:{\"href\":(\"https://docs.qgis.org/3.34/\" + _vm.lang + \"/docs/user_manual/map_views/map_view.html#bookmarking-extents-on-the-map\"),\"target\":\"_blank\",\"title\":\"QGIS Docs\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('external-link')})])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.project.bookmarks),function(bookmark){return [(bookmark.nodes)?_c('spatial-book-mark-group',{attrs:{\"group\":bookmark}}):_c('spatial-book-mark-item',{attrs:{\"bookmark\":bookmark}})]}),_vm._v(\" \"),_c('div',{staticClass:\"content-bookmarks\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\",\"margin-top\":\"10px\"}},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sdk.spatialbookmarks.sections.user.title'),expression:\"'sdk.spatialbookmarks.sections.user.title'\"}],staticStyle:{\"font-weight\":\"bold\",\"color\":\"#ffffff\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('add'),expression:\"'add'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"sidebar-button sidebar-button-icon\",class:_vm.g3wtemplate.getFontClass('plus'),staticStyle:{\"padding\":\"5px\",\"cursor\":\"pointer\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showAddForm($event)}}})]),_vm._v(\" \"),_vm._l((_vm.user.bookmarks),function(bookmark){return _c('spatial-book-mark-item',{attrs:{\"bookmark\":bookmark},on:{\"remove-bookmark\":_vm.removeBookMark}})})]],2)}\n__vue__options__.staticRenderFns = []\n\n},{\"app/constant\":5,\"components/InputText.vue\":171,\"components/SpatialBookMarkGroup.vue\":216,\"components/SpatialBookMarkItem.vue\":217,\"core/i18n/i18n.service\":12,\"services/application\":282,\"services/gui\":286,\"store/application-state\":294,\"store/projects\":301,\"utils\":388,\"vueify/lib/insert-css\":2}],219:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#streetview-error-key[data-v-06dad624]{display:flex;justify-content:center;align-items:center;font-weight:700;height:100%;padding:10px;background-color:#fff}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'streetview',\n\n data: function data() {\n return {\n state: null\n };\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"streetview\"}},[(_vm.$options.keyError)?_c('div',{attrs:{\"id\":\"streetview-error-key\"}},[_c('span',{staticClass:\"skin-color\"},[_vm._v(_vm._s(_vm.$options.keyError))])]):_vm._e()])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-06dad624\"\n\n},{\"vueify/lib/insert-css\":2}],220:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\"#g3w-table-toolbar{margin:.755em 1ch 0 0;position:relative;bottom:3px;display:inline-flex;border-radius:2px;border:1px solid #d2d6de;background-color:#fff;float:left}\\n.geometry[data-v-b4d834d0]{cursor:pointer}#noheaders[data-v-b4d834d0]{background-color:#fff;font-weight:700;margin-top:10px}input.form-control.column-search[data-v-b4d834d0]::placeholder{font-weight:400;font-style:italic}input.form-control.column-search[data-v-b4d834d0]{height:25px;min-width:40px;padding:2px}#open_attribute_table .action-button[data-v-b4d834d0]{padding:5px}#g3w-table-toolbar .action-button[data-v-b4d834d0]{padding:4px}#g3w-table-toolbar .action-button.toggled[data-v-b4d834d0]{border:1px solid #ccc}#layer_attribute_table[data-v-b4d834d0]{width:100%;user-select:none}#layer_attribute_table>tbody>tr[data-v-b4d834d0]:not(.selected):hover{background-color:rgba(255,255,0,.15)}label[for=attribute_table_select_all_rows][data-v-b4d834d0]{margin-bottom:0!important}\\n#g3w-view-content .dataTables_filter{margin-left:auto;margin-right:1ch}#g3w-view-content .dataTables_info{padding-left:.5ch;font-weight:lighter}#open_attribute_table .paginate_button{background:transparent;color:currentColor!important;box-shadow:none}#open_attribute_table .paginate_button.disabled{opacity:.25}#open_attribute_table #layer_attribute_table_length{padding-top:.755em}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _FieldG3W = require('components/FieldG3W.vue');\n\nvar _FieldG3W2 = _interopRequireDefault(_FieldG3W);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _mixins = require('mixins');\n\nvar _debounce = require('utils/debounce');\n\nvar _coordinatesToGeometry = require('utils/coordinatesToGeometry');\n\nvar _noop = require('utils/noop');\n\nvar _getUniqueDomId = require('utils/getUniqueDomId');\n\nvar _promisify = require('utils/promisify');\n\nvar _selection = require('core/layers/mixins/selection');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar PAGELENGTHS = [10, 25, 50, 100];\n\nfunction _createFeatureForSelection(f) {\n return {\n id: f.id,\n feature: {\n attributes: f.attributes || f.properties,\n geometry: f.geometry ? (0, _coordinatesToGeometry.coordinatesToGeometry)(f.geometry.type, f.geometry.coordinates) : f.geometry\n }\n };\n}\n\nexports.default = {\n\n name: \"G3WTable\",\n\n mixins: [_mixins.resizeMixin],\n\n components: {\n Field: _FieldG3W2.default\n },\n\n data: function data() {\n var layer = _catalogLayers2.default.getLayerById(this.$options.layerId);\n\n return {\n layer: layer,\n state: {\n features: [],\n headers: [null].concat(_toConsumableArray(layer.getTableHeaders())),\n geometry: true,\n allfeatures: 0,\n selectAll: false,\n nofilteredrow: false,\n show_tools: false,\n geolayer: {\n active: false,\n in_bbox: undefined\n }\n },\n\n relations: (layer.isGeoLayer() ? [] : layer.getRelations().getArray()).map(function (relation) {\n return [relation, _catalogLayers2.default.getLayerById(relation.getFather())];\n }).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n relation = _ref2[0],\n father = _ref2[1];\n\n return layer.getId() !== relation.getFather() && father.isGeoLayer();\n }).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n relation = _ref4[0],\n father = _ref4[1];\n\n return {\n layer: father,\n father_fields: relation.getFatherField(),\n fields: relation.getChildField(),\n features: {}\n };\n }),\n filter: [],\n has_map: true,\n async_highlight: _noop.noop,\n getAll: false,\n search: {},\n firstCall: true,\n map_bbox: { key: null, cb: null },\n disableSelectAll: false\n };\n },\n\n\n computed: {\n has_features: function has_features() {\n return !!this.state.features.length;\n },\n ApplicationService: function ApplicationService() {\n return _application2.default;\n }\n },\n\n methods: {\n editFeature: function editFeature(feature) {\n $('.tooltip').remove();\n _gui2.default.getService('queryresults').editFeature({ layer: { id: this.layer.getId() }, feature: feature });\n },\n openForm: function () {\n var _ref5 = _asyncToGenerator(function* (feature) {\n $('.tooltip').remove();\n try {\n yield (0, _promisify.promisify)(_data2.default.getData('search:fids', {\n inputs: {\n layer: this.layer,\n fids: [feature.id],\n formatter: 1\n }\n }));\n\n if (feature.geometry) {\n _gui2.default.getService('map').zoomToGeometry((0, _coordinatesToGeometry.coordinatesToGeometry)(feature.geometry.type, feature.geometry.coordinates));\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n function openForm(_x) {\n return _ref5.apply(this, arguments);\n }\n\n return openForm;\n }(),\n get_check_id: function get_check_id(cache) {\n if (cache) {\n this.get_check_id.cached_id = (0, _getUniqueDomId.getUniqueDomId)();\n }\n return this.get_check_id.cached_id;\n },\n getDataFromBBOX: function () {\n var _ref6 = _asyncToGenerator(function* () {\n var _this = this;\n\n var map = _gui2.default.getService('map');\n\n this.state.geolayer.active = !this.state.geolayer.active;\n\n var is_active = this.state.geolayer.active;\n\n if (is_active) {\n this.map_bbox.cb = function () {\n _this.state.geolayer.in_bbox = _this.state.geolayer.active ? map.getMapBBOX().join(',') : undefined;\n $(_this.$refs.attribute_table).DataTable().ajax.reload();\n };\n }\n\n if (is_active) {\n this.map_bbox.key = map.getMap().on('moveend', this.map_bbox.cb);\n }\n\n if (this.map_bbox.cb) {\n this.map_bbox.cb();\n }\n\n if (!is_active) {\n ol.Observable.unByKey(this.map_bbox.key);\n this.map_bbox.key = null;\n this.map_bbox.cb = null;\n }\n });\n\n function getDataFromBBOX() {\n return _ref6.apply(this, arguments);\n }\n\n return getDataFromBBOX;\n }(),\n checkSelectAll: function checkSelectAll() {\n this.state.selectAll = this.layer.getSelectionFids().has(_selection.SELECTION.ALL) || this.state.features.every(function (f) {\n return f.selected;\n });\n },\n inverseSelection: function () {\n var _ref7 = _asyncToGenerator(function* () {\n if (!this.getAll) {\n yield this.getFeatures();\n }\n this.state.features.forEach(function (f) {\n return f.selected = !f.selected;\n });\n this.layer.invertSelectionFids();\n\n this.checkSelectAll();\n });\n\n function inverseSelection() {\n return _ref7.apply(this, arguments);\n }\n\n return inverseSelection;\n }(),\n selectAllRows: function () {\n var _ref8 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n this.state.selectAll = !this.state.selectAll;\n\n var filter = this.filter.length > 0;\n\n if (!filter) {\n if (!this.getAll) {\n yield this.getFeatures();\n }\n this.state.features.forEach(function (f) {\n return f.selected = _this2.state.selectAll;\n });\n yield this.layer[this.state.selectAll ? 'setSelectionFidsAll' : 'clearSelectionFids']();\n }\n\n if (filter) {\n if (this.state.selectAll) {\n this.state.features.filter(function (f) {\n return _this2.filter.includes(f.id);\n }).forEach(function (f) {\n f.selected = true;\n _this2.layer.includeSelectionFid(f.id);\n });\n } else {\n this.state.features.forEach(function (f) {\n return f.selected = false;\n });\n this.layer.clearSelectionFids();\n }\n }\n\n this.state.show_tools = this.state.features.some(function (f) {\n return f.selected;\n });\n });\n\n function selectAllRows() {\n return _ref8.apply(this, arguments);\n }\n\n return selectAllRows;\n }(),\n highlight: function () {\n var _ref9 = _asyncToGenerator(function* (feature) {\n var _this3 = this;\n\n var zoom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var map = _gui2.default.getService('map');\n\n if (!feature || !feature.geometry) {\n return map.clearHighlightGeometry();\n }\n\n this.async_highlight = function () {\n map.clearHighlightGeometry();\n map.highlightGeometry(feature.geometry, { zoom: zoom, duration: Infinity });\n };\n\n if (feature.geometry && this.has_map) {\n return this.async_highlight();\n }\n\n if (feature.geometry || !feature.geometry && !this.relations.length > 0) {\n return;\n }\n\n var features = [];\n var field_values = [];\n\n (yield Promise.allSettled(this.relations.flatMap(function (_ref10) {\n var layer = _ref10.layer,\n father_fields = _ref10.father_fields,\n fields = _ref10.fields;\n\n var values = fields.map(function (f) {\n return feature.attributes[f];\n });\n field_values.push(values);\n return zoom ? _data2.default.getData('search:features', {\n inputs: {\n layer: layer,\n formatter: 1,\n filter: father_fields.map(function (field, i) {\n return field + '|eq|' + encodeURIComponent(values[i]);\n }).join('|AND,')\n },\n outputs: false }) : [];\n }))).forEach(function (response, index) {\n if ('fulfilled' === response.status) {\n var relation = _this3.relations[index];\n var k = field_values[index].join('__');\n var data = response.value && response.value.data[0];\n if (undefined === relation.features[k]) {\n relation.features[k] = data && data.features || [];\n }\n features.push.apply(features, _toConsumableArray(relation.features[k]));\n }\n if (zoom) {\n map.zoomToFeatures(features, { highlight: true });\n } else {\n map.highlightFeatures(features);\n }\n });\n });\n\n function highlight(_x3) {\n return _ref9.apply(this, arguments);\n }\n\n return highlight;\n }(),\n select: function select(feature) {\n feature.selected = !feature.selected;\n\n this.state.selectAll = this.state.features.every(function (f) {\n return f.selected;\n });\n\n this.layer[feature.selected ? 'includeSelectionFid' : 'excludeSelectionFid'](feature.id);\n\n this.state.show_tools = this.layer.getSelectionFids().size > 0;\n },\n resize: function () {\n var _ref11 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n var table = this.$el.querySelector('div.dataTables_scrollBody');\n if (table) {\n table.style.height = _gui2.default.isMobile() ? '100%' : ((document.querySelector('.content') || {}).clientHeight || 0) - ((this.$el.querySelector('div.dataTables_scrollHeadInner') || {}).clientHeight || 0) - 100 + 'px';\n }\n });\n\n function resize() {\n return _ref11.apply(this, arguments);\n }\n\n return resize;\n }(),\n getFeatures: function () {\n var _ref12 = _asyncToGenerator(function* (params) {\n var _this4 = this;\n\n try {\n _gui2.default.setLoadingContent(true);\n\n var data = yield (0, _promisify.promisify)(this.layer.getDataTable(params || {}));\n var is_valid = this.layer.isGeoLayer() && data.features;\n\n if (is_valid && !params) {\n var loaded_features = this.state.features.map(function (f) {\n return f.id;\n });\n data.features.filter(function (f) {\n return f.geometry && -1 === loaded_features.indexOf(f.id);\n }).forEach(function (f) {\n return _this4.layer.addOlSelectionFeature(_createFeatureForSelection(f));\n });\n this.getAll = true;\n }\n\n if (is_valid) {\n return data.features;\n }\n } catch (e) {\n console.warn(e);\n return Promise.reject();\n } finally {\n _gui2.default.setLoadingContent(false);\n }\n });\n\n function getFeatures(_x4) {\n return _ref12.apply(this, arguments);\n }\n\n return getFeatures;\n }(),\n getData: function () {\n var _ref13 = _asyncToGenerator(function* () {\n var _this5 = this;\n\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref14$start = _ref14.start,\n start = _ref14$start === undefined ? 0 : _ref14$start,\n _ref14$order = _ref14.order,\n order = _ref14$order === undefined ? [] : _ref14$order,\n _ref14$length = _ref14.length,\n length = _ref14$length === undefined ? this.layer.getAttributeTablePageLength() || PAGELENGTHS[1] : _ref14$length,\n _ref14$columns = _ref14.columns,\n columns = _ref14$columns === undefined ? [] : _ref14$columns,\n _ref14$search = _ref14.search,\n search = _ref14$search === undefined ? { value: null } : _ref14$search;\n\n _gui2.default.setLoadingContent(true);\n\n this.layer.setAttributeTablePageLength(length);\n\n if (0 === this.state.headers.length) {\n return {\n data: [],\n recordsTotal: 0,\n recordsFiltered: 0\n };\n }\n\n this.state.features.splice(0);\n\n if (0 === order.length) {\n order.push({ column: 1, dir: 'asc' });\n }\n\n this.search = {\n field: columns.filter(function (c) {\n return c.search && c.search.value;\n }).map(function (c) {\n return c.name + '|ilike|' + c.search.value + '|and';\n }).join(',') || undefined,\n page: start === 0 || this.layer.state.filter.active ? 1 : start / length + 1,\n page_size: length,\n search: search.value && search.value.length > 0 ? search.value : null,\n in_bbox: this.state.geolayer.in_bbox,\n ordering: ('asc' === order[0].dir ? '' : '-') + this.state.headers[order[0].column].name,\n formatter: 1\n };\n\n try {\n var _state$features;\n\n var data = yield (0, _promisify.promisify)(this.layer.getDataTable(this.search));\n\n this.state.allfeatures = data.count;\n this.state.featurescount = (data.features || []).length;\n\n (_state$features = this.state.features).push.apply(_state$features, _toConsumableArray((data.features || []).map(function (f) {\n if (_this5.layer.isGeoLayer() && f.geometry && !_this5.layer.getOlSelectionFeature(f.id)) {\n _this5.layer.addOlSelectionFeature(_createFeatureForSelection(f));\n }\n return {\n id: f.id,\n selected: _this5.layer.hasSelectionFid(f.id),\n attributes: f.attributes || f.properties,\n geometry: _this5.layer.isGeoLayer() && f.geometry || undefined\n };\n })));\n\n this.state.show_tools = this.layer.getFilterActive() || this.layer.getSelectionFids().size > 0;\n this.state.selectAll = this.layer.state.filter.active || this.state.features.every(function (f) {\n return f.selected;\n });\n return {\n data: this.state.features.map(function (f) {\n return [null].concat(_this5.state.headers.filter(function (h) {\n return h;\n }).map(function (h) {\n h.value = (f.attributes || f.properties)[h.name];return h.value;\n }));\n }),\n recordsFiltered: data.count,\n recordsTotal: data.count,\n filter: this.state.features.map(function (f) {\n return f.id;\n })\n\n };\n } catch (e) {\n console.warn(e);\n _gui2.default.notify.error(t(\"info.server_error\"));\n return Promise.reject(e);\n } finally {\n _gui2.default.setLoadingContent(false);\n }\n });\n\n function getData() {\n return _ref13.apply(this, arguments);\n }\n\n return getData;\n }(),\n unSelectAll: function unSelectAll() {\n this.state.features.forEach(function (f) {\n return f.selected = false;\n });\n this.state.show_tools = false;\n this.state.selectAll = false;\n },\n onGUIContent: function onGUIContent(opts) {\n this.has_map = 100 !== opts.perc;\n },\n filterChangeHandler: function filterChangeHandler() {\n $(this.$refs.attribute_table).DataTable().ajax.reload();\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n },\n created: function () {\n var _ref15 = _asyncToGenerator(function* () {\n this.last_map_control = _gui2.default.getService('map').getMapControls().find(function (c) {\n return c.control.isToggled && c.control.isToggled();\n });\n if (this.last_map_control) {\n this.last_map_control.control.toggle();\n }\n\n _gui2.default.closeContent();\n\n this.unSelectAll = this.unSelectAll.bind(this);\n\n this.onGUIContent = this.onGUIContent.bind(this);\n\n _gui2.default.onbefore('setContent', this.onGUIContent);\n this.layer.on('unselectionall', this.unSelectAll);\n this.layer.on('filtertokenchange', this.filterChangeHandler);\n\n _gui2.default.closeOpenSideBarComponent();\n _application2.default.getCurrentLayout().rightpanel.height = 55;\n\n _gui2.default.showContent({\n content: new _g3wComponent2.default({\n id: 'openattributetable',\n service: { state: this.state },\n internalComponent: this\n }),\n\n split: _gui2.default.isMobile() ? 'h' : 'v',\n push: false,\n title: this.layer.getTitle()\n });\n\n if (this.isMobile()) {\n _gui2.default.hideSidebar();\n }\n });\n\n function created() {\n return _ref15.apply(this, arguments);\n }\n\n return created;\n }(),\n mounted: function () {\n var _ref16 = _asyncToGenerator(function* () {\n var _this6 = this;\n\n this.setContentKey = _gui2.default.onafter('setContent', this.resize);\n\n yield this.$nextTick();\n\n var pResolve = void 0;\n\n var filterColumns = {};\n\n var table = $(this.$refs.attribute_table).DataTable({\n ajax: (0, _debounce.debounce)(function () {\n var _ref17 = _asyncToGenerator(function* (opts, cb) {\n try {\n _gui2.default.disableContent(true);\n var data = yield _this6.getData(opts);\n cb(data);\n _this6.disableSelectAll = 0 === _this6.state.features.length;\n if (pResolve) {\n pResolve(data.filter);\n }\n yield _this6.$nextTick();\n table.columns.adjust();\n } catch (e) {\n console.warn(e);\n }\n\n _gui2.default.disableContent(false);\n });\n\n return function (_x6, _x7) {\n return _ref17.apply(this, arguments);\n };\n }(), 800),\n bSortCellsTop: true,\n columns: this.state.headers,\n columnDefs: [{ orderable: false, searchable: false, targets: 0, width: '1%' }],\n deferLoading: this.state.allfeatures,\n dom: 'frt<\"#g3w-table-toolbar\">lip',\n lengthMenu: PAGELENGTHS,\n order: [1, 'asc'],\n pageLength: this.layer.getAttributeTablePageLength() || PAGELENGTHS[1],\n processing: false,\n responsive: true,\n scrollCollapse: true,\n scrollX: true,\n serverSide: true,\n sSearch: false\n });\n\n this.changeColumn = (0, _debounce.debounce)(function () {\n var _ref18 = _asyncToGenerator(function* (e, i) {\n var value = e.target.value.trim();\n table.one('draw', _asyncToGenerator(function* () {\n filterColumns[i] = value;\n _this6.disableSelectAll = 0 === _this6.state.features.length;\n _this6.filter = Object.values(filterColumns).find(function (f) {\n return f;\n }) ? yield new Promise(function (resolve) {\n return pResolve = resolve;\n }) : [];\n }));\n table.columns(i).search(value).draw();\n });\n\n return function (_x8, _x9) {\n return _ref18.apply(this, arguments);\n };\n }());\n\n var fragment = document.createDocumentFragment();\n fragment.appendChild(this.$refs.table_toolbar);\n document.getElementById('g3w-table-toolbar').appendChild(fragment);\n\n document.querySelector('#g3w-view-content .g3-content-header-action-tools').insertAdjacentElement('beforebegin', document.querySelector('.dataTables_info'));\n document.querySelector('#g3w-view-content .g3-content-header-action-tools').insertAdjacentElement('beforebegin', document.querySelector('.dataTables_filter'));\n\n document.getElementById('table_body_attributes').remove();\n\n table.ajax.reload();\n });\n\n function mounted() {\n return _ref16.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n var _this7 = this;\n\n if (this.last_map_control) {\n this.last_map_control.control.toggle();\n }\n\n this.layer.off('unselectionall', this.unSelectAll);\n this.layer.off('filtertokenchange', this.filterChangeHandler);\n\n ol.Observable.unByKey(this.map_bbox.key);\n this.map_bbox.key = null;\n this.map_bbox.cb = null;\n\n this.highlight();\n\n if (!this.has_map) {\n setTimeout(function () {\n _this7.async_highlight();\n _this7.has_map = true;\n _this7.async_highlight = _noop.noop;\n });\n }\n\n _gui2.default.un('setContent', this.setContentKey);\n\n document.querySelector('#g3w-view-content .dataTables_info').remove();\n document.querySelector('#g3w-view-content .dataTables_filter').remove();\n $(this.$refs.attribute_table).DataTable().destroy(true);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"5px\"},attrs:{\"id\":\"open_attribute_table\"}},[_c('div',{ref:\"table_toolbar\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"padding\":\"1px\"}},[(_vm.layer.isGeoLayer())?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.geolayer.active && _vm.ApplicationService.getCurrentLayout().rightpanel.height_100),expression:\"state.geolayer.active && ApplicationService.getCurrentLayout().rightpanel.height_100\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.show_features_on_map'),expression:\"'layer_selection_filter.tools.show_features_on_map'\",modifiers:{\"create\":true}}],staticClass:\"skin-color action-button skin-tooltip-right\",class:[ _vm.g3wtemplate.getFontClass('map'), _vm.state.geolayer.active ? 'toggled' : '' ],attrs:{\"data-placement\":\"right\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.getDataFromBBOX($event)}}}):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.show_tools),expression:\"state.show_tools\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.clear'),expression:\"'layer_selection_filter.tools.clear'\",modifiers:{\"create\":true}}],staticClass:\"skin-color action-button skin-tooltip-right\",class:_vm.g3wtemplate.getFontClass('clear'),attrs:{\"data-placement\":\"right\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.layer.clearSelectionFids()}}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.show_tools),expression:\"state.show_tools\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.invert'),expression:\"'layer_selection_filter.tools.invert'\",modifiers:{\"create\":true}}],staticClass:\"skin-color action-button skin-tooltip-right\",class:[ _vm.g3wtemplate.getFontClass('invert'), _vm.layer.state.filter.active ? 'g3w-disabled': '' ],attrs:{\"data-placement\":\"right\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.inverseSelection($event)}}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.show_tools),expression:\"state.show_tools\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip.create\",value:('layer_selection_filter.tools.filter'),expression:\"'layer_selection_filter.tools.filter'\",modifiers:{\"create\":true}}],staticClass:\"skin-color action-button skin-tooltip-right\",class:[ _vm.g3wtemplate.getFontClass('filter'), _vm.layer.state.filter.active ? 'toggled' : '' ],attrs:{\"data-placement\":\"right\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.layer.toggleFilterToken()}}})]),_vm._v(\" \"),(_vm.state.headers.length)?_c('table',{ref:\"attribute_table\",staticClass:\"table table-striped row-border compact nowrap\",attrs:{\"id\":\"layer_attribute_table\"}},[_c('thead',[_c('tr',[_c('th'),_vm._v(\" \"),_vm._l((_vm.state.headers),function(header,i){return (i > 0)?_c('th',[_vm._v(_vm._s(header.label))]):_vm._e()})],2),_vm._v(\" \"),_c('tr',[_c('th',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disableSelectAll),expression:\"disableSelectAll\"}]},[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"attribute_table_select_all_rows\"},domProps:{\"checked\":_vm.state.selectAll}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"attribute_table_select_all_rows\"},on:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.selectAllRows($event)}}},[_vm._v(\" \")])]),_vm._v(\" \"),_vm._l((_vm.state.headers),function(header,i){return (i > 0)?_c('th',[_c('input',{staticClass:\"form-control column-search\",attrs:{\"type\":\"text\",\"placeholder\":header.name,\"title\":'search by ' + header.name},on:{\"keyup\":function($event){return _vm.changeColumn($event, i)}}})]):_vm._e()})],2)]),_vm._v(\" \"),_c('tbody',{attrs:{\"id\":\"table_body_attributes\",\"hidden\":\"\"}}),_vm._v(\" \"),_c('tbody',{ref:\"table_body\",on:{\"mouseleave\":function($event){return _vm.highlight()}}},_vm._l((_vm.state.features),function(feature,i){return _c('tr',{key:feature.id,class:[\n i % 2 == 1 ? 'odd' : 'pair',\n 'feature_attribute',\n { geometry: !!feature.geometry },\n { 'selected': feature.selected }\n ],attrs:{\"role\":\"row\"},on:{\"mouseover\":function($event){return _vm.highlight(feature, false)},\"click\":function($event){$event.stopPropagation();return _vm.highlight(feature, true)}}},[_c('td',[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"type\":\"checkbox\",\"id\":_vm.get_check_id(true)},domProps:{\"checked\":feature.selected}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.get_check_id(false)},on:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.select(feature)}}}),_vm._v(\" \"),_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.tooltips.relations.row_to_form'),expression:\"'sdk.tooltips.relations.row_to_form'\",arg:\"top\",modifiers:{\"create\":true}}],class:'action-button skin-color ' + _vm.g3wtemplate.getFontClass('table'),on:{\"click\":function($event){$event.stopPropagation();return _vm.openForm(feature)}}}),_vm._v(\" \"),(!feature.geometry)?_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('no_geometry'),expression:\"'no_geometry'\",arg:\"top\",modifiers:{\"create\":true}}],class:'action-button ' + _vm.g3wtemplate.getFontClass('alert'),staticStyle:{\"color\":\"currentColor !important\"}}):_vm._e(),_vm._v(\" \"),(_vm.layer.isEditable())?_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sdk.tooltips.editing'),expression:\"'sdk.tooltips.editing'\",arg:\"top\",modifiers:{\"create\":true}}],class:'action-button skin-color ' + _vm.g3wtemplate.getFontClass('pencil'),on:{\"click\":function($event){$event.stopPropagation();return _vm.editFeature(feature)}}}):_vm._e()])]),_vm._v(\" \"),_vm._l((_vm.state.headers),function(header,j){return (j > 0)?_c('td',[_c('field',{attrs:{\"feature\":feature,\"state\":({ label: undefined, value: feature.attributes[header.name] })}})],1):_vm._e()})],2)}),0)]):_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('dataTable.no_data'),expression:\"'dataTable.no_data'\"}],attrs:{\"id\":\"noheaders\"}})])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-b4d834d0\"\n\n},{\"components/FieldG3W.vue\":128,\"core/g3w-component\":8,\"core/i18n/i18n.service\":12,\"core/layers/mixins/selection\":34,\"mixins\":274,\"services/application\":282,\"services/data\":284,\"services/gui\":286,\"store/catalog-layers\":295,\"utils/coordinatesToGeometry\":321,\"utils/debounce\":344,\"utils/getUniqueDomId\":381,\"utils/noop\":405,\"utils/promisify\":412,\"vueify/lib/insert-css\":2}],221:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".tool_disabled[data-v-31811884]{cursor:not-allowed}.tool_disabled>span[data-v-31811884]{color:#777}.tool_type[data-v-31811884]{cursor:pointer;vertical-align:center;position:absolute;right:0;top:0;padding:5px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"g3w-tool\",\n props: ['tool'],\n methods: {\n showToolStateMessage: function showToolStateMessage() {\n _gui2.default.showModalDialog({ title: this.tool.state.type.toUpperCase(), message: this.tool.state.message });\n }\n },\n computed: {\n disabled: function disabled() {\n return !this.tool.offline && !_application2.default.getState().online || this.tool.loading || this.tool.disabled;\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[('checkbox' === _vm.tool.type)?_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tool.isCheck),expression:\"tool.isCheck\"}],staticStyle:{\"cursor\":\"pointer\"},attrs:{\"id\":_vm.tool.layerName,\"type\":\"checkbox\"},domProps:{\"value\":_vm.tool.layerName,\"checked\":Array.isArray(_vm.tool.isCheck)?_vm._i(_vm.tool.isCheck,_vm.tool.layerName)>-1:(_vm.tool.isCheck)},on:{\"click\":function($event){return _vm.tool.action(_vm.tool)},\"change\":function($event){var $$a=_vm.tool.isCheck,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.tool.layerName,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.tool, \"isCheck\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.tool, \"isCheck\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.tool, \"isCheck\", $$c)}}}}),_vm._v(\"\\n \"+_vm._s(_vm.tool.name)+\"\\n \")])]):_c('div',{staticClass:\"tool\",class:{ tool_disabled: _vm.disabled },staticStyle:{\"position\":\"relative\"},on:{\"click\":function($event){!_vm.disabled ? _vm.tool.action(_vm.tool) : null}}},[_c('bar-loader',{attrs:{\"loading\":_vm.tool.loading}}),_vm._v(\" \"),_c('i',{class:_vm.g3wtemplate.getFontClass(_vm.tool.icon || 'caret-right')}),_vm._v(\" \"),(_vm.tool.html)?_c('span',[_c('i',{class:_vm.tool.html.icon}),_vm._v(\"\\n \"+_vm._s(_vm.tool.html.text || _vm.tool.name)+\"\\n \")]):_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.tool.name),expression:\"tool.name\"}]}),_vm._v(\" \"),(_vm.tool.state.type)?_c('span',{staticClass:\"tool_type\",style:({ color: ({ alert: 'red', info: 'blue', warning: 'orange'})[_vm.tool.state.type] }),on:{\"click\":function($event){$event.stopPropagation();return _vm.showToolStateMessage($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass(_vm.tool.state.type)})]):_vm._e()],1)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-31811884\"\n\n},{\"services/application\":282,\"services/gui\":286,\"vueify/lib/insert-css\":2}],222:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".usermessage-content[data-v-57c4f706]{color:#fff;z-index:1000;position:absolute;line-height:normal;padding:3px;min-width:250px;box-shadow:0 3px 5px rgba(0,0,0,.3);-moz-box-shadow:0 3px 5px rgba(0,0,0,.3);border-radius:0 0 3px 3px}.usermessage-content.mobile[data-v-57c4f706]{padding:0;min-width:100%}.usermessage-header-content[data-v-57c4f706]{display:flex;align-items:baseline;justify-content:space-between;width:100%;border-bottom:2px solid #eee}.usermessage-header-icontype[data-v-57c4f706]{padding:10px 0 0 5px;font-weight:700;font-size:1.3em}.usermessage-content.mobile .usermessage-header-icontype[data-v-57c4f706]{padding:0 0 0 5px;font-size:1.1em}.usermessage-header-title[data-v-57c4f706],.usermessage-header-title h4[data-v-57c4f706]{font-weight:700;text-align:center}.usermessage-content.mobile .usermessage-header-title h4[data-v-57c4f706]{margin:0}.usermessage-header-subtitle[data-v-57c4f706]{font-weight:700;margin:5px}.usermessage-header-right[data-v-57c4f706]{padding:5px}.usermessage-header-right-item[data-v-57c4f706]{font-weight:700!important;font-size:1.2em;cursor:pointer}.usermessage-message[data-v-57c4f706]{width:100%;padding:10px;max-height:100px;font-size:1.1em;align-self:flex-start;overflow-y:auto}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _constant = require('app/constant');\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar COLORS = {\n success: {\n backgroundColor: \"#62ac62\",\n color: \"#FFFFFF\"\n },\n info: {\n backgroundColor: \"#44a0bb\",\n color: \"#FFFFFF\"\n },\n warning: {\n backgroundColor: \"#f29e1d\",\n color: \"#FFFFFF\"\n },\n alert: {\n backgroundColor: \"#c34943\",\n color: \"#FFFFFF\"\n },\n tool: {\n backgroundColor: \"#FFFFFF\",\n color: \"#222d32\"\n },\n loading: {\n backgroundColor: \"#FFFFFF\",\n color: \"#222d32\",\n fontWeight: \"bold\"\n }\n};\n\nvar STYLES = {\n success: {},\n info: {},\n warning: {},\n alert: {},\n tool: {\n \"z-index\": _constant.ZINDEXES.usermessage.tool,\n left: \"40px\"\n },\n loading: {}\n};\n\nexports.default = {\n name: \"usermessage\",\n props: {\n id: {},\n type: {\n type: String,\n default: \"info\" },\n title: {\n type: String,\n default: null\n },\n subtitle: {\n type: String,\n default: null\n },\n position: {\n type: String,\n default: \"top\"\n },\n size: {\n type: String,\n default: \"fullpage\"\n },\n message: {\n type: String,\n default: ''\n },\n textMessage: {\n type: Boolean,\n default: false\n },\n autoclose: {\n type: Boolean,\n default: false\n },\n draggable: {\n type: Boolean,\n default: false\n },\n duration: {\n type: Number,\n default: 2000\n },\n closable: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n showheader: function showheader() {\n return 'loading' !== this.type;\n }\n },\n methods: {\n addClassMobile: function addClassMobile() {\n return this.isMobile() && !_gui2.default.isSidebarVisible();\n },\n closeUserMessage: function closeUserMessage() {\n this.$emit('close-usermessage');\n },\n hideShow: function hideShow() {}\n },\n created: function created() {\n var _position$split = this.position.split('-'),\n _position$split2 = _slicedToArray(_position$split, 2),\n where = _position$split2[0],\n alignement = _position$split2[1];\n\n var width = '100%';\n switch (this.size) {\n case 'small':\n width = '25%';\n break;\n case 'medium':\n width = '50%';\n break;\n case 'fullpage':\n default:\n width = '100%';\n }\n if ('center' === where) where = {\n top: 0,\n bottom: 0,\n maxHeight: '20%'\n };else {\n where = _defineProperty({}, where, 50);\n }\n var position = _extends({}, where, {\n width: width\n });\n if (alignement) {\n position.width = '25%';\n switch (alignement) {\n case 'center':\n position.left = '0';\n position.right = '0';\n position.margin = 'auto';\n break;\n case 'right':\n position.right = 0;\n break;\n }\n }\n this.style = _extends({}, COLORS[this.type], position, STYLES[this.type]);\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this = this;\n\n if (this.autoclose) {\n yield this.$nextTick();\n var timeout = setTimeout(function () {\n _this.closeUserMessage();\n clearTimeout(timeout);\n }, this.duration);\n }\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"usermessage-content\",class:{'mobile': _vm.addClassMobile()},style:(_vm.style),attrs:{\"id\":_vm.id}},[(_vm.showheader)?_c('div',{staticClass:\"usermessage-header-content\"},[_c('i',{staticClass:\"usermessage-header-icontype\",class:_vm.g3wtemplate.getFontClass(_vm.type)}),_vm._v(\" \"),_c('div',{staticClass:\"usermessage-header-title\"},[_vm._t(\"header\",[(_vm.title)?_c('h4',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.title),expression:\"title\"}]}):_c('h4',[_vm._v(\" \"+_vm._s(_vm.type.toUpperCase()))]),_vm._v(\" \"),(_vm.subtitle)?_c('h5',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.subtitle),expression:\"subtitle\"}],staticClass:\"usermessage-header-subtitle\"}):_vm._e()])],2),_vm._v(\" \"),_c('div',{staticClass:\"usermessage-header-right\"},[(!_vm.autoclose && _vm.closable)?_c('div',{on:{\"click\":_vm.closeUserMessage}},[_c('i',{staticClass:\"usermessage-header-right-item\",class:_vm.g3wtemplate.getFontClass('close')})]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_vm._t(\"body\",[(_vm.textMessage)?_c('div',{staticClass:\"usermessage-message\"},[_vm._v(_vm._s(_vm.message))]):_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.message),expression:\"message\"}],staticClass:\"usermessage-message\"})]),_vm._v(\" \"),_vm._t(\"footer\")],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-57c4f706\"\n\n},{\"app/constant\":5,\"services/gui\":286,\"vueify/lib/insert-css\":2}],223:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".content_breadcrumb[data-v-466a54cc]{font-size:1.2em;padding:0 3px;border-radius:3px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _UserMessage = require('components/UserMessage.vue');\n\nvar _UserMessage2 = _interopRequireDefault(_UserMessage);\n\nvar _NotifyOnline = require('components/NotifyOnline.vue');\n\nvar _NotifyOnline2 = _interopRequireDefault(_NotifyOnline);\n\nvar _NotifyDownload = require('components/NotifyDownload.vue');\n\nvar _NotifyDownload2 = _interopRequireDefault(_NotifyDownload);\n\nvar _NotifyPlugins = require('components/NotifyPlugins.vue');\n\nvar _NotifyPlugins2 = _interopRequireDefault(_NotifyPlugins);\n\nvar _constant = require('app/constant');\n\nvar _viewport = require('services/viewport');\n\nvar _viewport2 = _interopRequireDefault(_viewport);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexports.default = {\n name: \"Viewport\",\n props: {\n appState: {\n type: Object\n }\n },\n components: {\n userMessage: _UserMessage2.default,\n onlineNotify: _NotifyOnline2.default,\n downloadNotify: _NotifyDownload2.default,\n pluginsNotify: _NotifyPlugins2.default\n },\n data: function data() {\n return {\n state: _viewport2.default.state,\n updatePreviousTitle: false,\n media: { matches: true }\n };\n },\n\n computed: {\n breadcrumb: function breadcrumb() {\n return this.state.content.contentsdata.filter(function (c) {\n return c.options.crumb;\n }).map(function (c) {\n return c.options.crumb;\n });\n },\n showresize: function showresize() {\n var currentPerc = _viewport2.default.getCurrentContentLayout()[this.state.split === 'h' ? 'width' : 'height'];\n return this.state.resized.start && this.state.secondaryPerc > 0 && this.state.secondaryPerc < 100 && currentPerc < 100 && currentPerc > 0;\n },\n showresizeicon: function showresizeicon() {\n return 100 !== this.state.secondaryPerc;\n },\n hooks: function hooks() {\n return this.usermessage.hooks;\n },\n usermessage: function usermessage() {\n return this.state.usermessage;\n },\n showtitle: function showtitle() {\n if (this.state.content.contentsdata.length) {\n var options = this.state.content.contentsdata[this.state.content.contentsdata.length - 1].options;\n if (_.isBoolean(options.showtitle)) {\n return options.showtitle;\n }\n }\n return true;\n },\n showContent: function showContent() {\n return this.state.content.show;\n },\n styles: function styles() {\n return {\n map: {\n width: this.state.map.sizes.width + 'px',\n height: this.state.map.sizes.height + 'px'\n },\n content: {\n width: this.state.content.sizes.width + 'px',\n height: this.state.content.sizes.height + 'px',\n zIndex: _constant.ZINDEXES.usermessage.tool + 1,\n minHeight: 'v' === this.state.split ? _constant.VIEWPORT.resize.content.min + 'px' : null,\n paddingTop: '8px',\n paddingBottom: '8px'\n }\n };\n },\n contentTitle: function contentTitle() {\n if (this.state.content.contentsdata.length) {\n var _state$content$conten = this.state.content.contentsdata[this.state.content.contentsdata.length - 1].options,\n title = _state$content$conten.title,\n post_title = _state$content$conten.post_title;\n\n return { title: title, post_title: post_title };\n }\n },\n backOrBackTo: function backOrBackTo() {\n return this.state.content.contentsdata.length > 1 && this.state.content.showgoback ? !this.state.content.contentsdata[this.state.content.contentsdata.length - 2].options.title ? 'back' : 'backto' : false;\n },\n previousTitle: function previousTitle() {\n var _this = this;\n\n var title = this.state.content.contentsdata.length > 1 && this.state.content.showgoback ? this.state.content.contentsdata[this.state.content.contentsdata.length - 2].options.title : null;\n this.updatePreviousTitle = true;\n this.$nextTick(function () {\n return _this.updatePreviousTitle = false;\n });\n return title;\n }\n },\n methods: {\n isNotLastCrumb: function isNotLastCrumb(index) {\n return index < this.breadcrumb.length - 1;\n },\n closeContent: function closeContent() {\n _gui2.default.closeContent();\n },\n closeMap: function closeMap() {\n _viewport2.default.closeMap();\n },\n gotoPreviousContent: function gotoPreviousContent() {\n _gui2.default.popContent();\n },\n closeUserMessage: function closeUserMessage() {\n _gui2.default.closeUserMessage();\n },\n moveFnc: function moveFnc(evt) {\n var size = this.state.split === 'h' ? 'width' : 'height';\n evt.preventDefault();\n var sidebarHeaderSize = size === 'width' ? $('.sidebar-collapse').length ? 0 : _viewport2.default.SIDEBARWIDTH : $('#main-navbar').height();\n var viewPortSize = $(this.$el)[size]();\n var mapSize = (size === 'width' ? evt.pageX + 2 : evt.pageY + 2) - sidebarHeaderSize;\n if (mapSize > viewPortSize - _constant.VIEWPORT.resize.content.min) {\n mapSize = viewPortSize - _constant.VIEWPORT.resize.content.min;\n } else if (mapSize < _constant.VIEWPORT.resize.map.min) {\n mapSize = _constant.VIEWPORT.resize.map.min;\n }\n var contentSize = viewPortSize - mapSize;\n var resizePercentageMap = Math.round(mapSize / viewPortSize * 100);\n var resizePercentageContent = 100 - resizePercentageMap;\n _viewport2.default.resizeViewComponents(this.state.split, {\n map: _defineProperty({}, size, mapSize),\n content: _defineProperty({}, size, contentSize)\n }, resizePercentageContent);\n }\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var handleResizeViewport = function handleResizeViewport() {\n return _this2.state.resized.start = true;\n };\n yield this.$nextTick();\n var mediaQueryEventMobile = window.matchMedia(\"(min-height: 300px)\");\n this.media.matches = mediaQueryEventMobile.matches;\n mediaQueryEventMobile.addListener(function (e) {\n if (e.type === 'change') {\n _this2.media.matches = e.currentTarget.matches;\n }\n });\n handleResizeViewport();\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }()\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"g3w-viewport\"},[_c('transition',{attrs:{\"name\":\"fade\",\"duration\":{ enter: 500, leave: 500 }}},[(_vm.usermessage.show)?_c('user-message',{attrs:{\"title\":_vm.usermessage.title,\"subtitle\":_vm.usermessage.subtitle,\"id\":_vm.usermessage.id,\"message\":_vm.usermessage.message,\"draggable\":_vm.usermessage.draggable,\"closable\":_vm.usermessage.closable,\"duration\":_vm.usermessage.duration,\"position\":_vm.usermessage.position,\"autoclose\":_vm.usermessage.autoclose,\"textMessage\":_vm.usermessage.textMessage,\"size\":_vm.usermessage.size,\"type\":_vm.usermessage.type},on:{\"close-usermessage\":_vm.closeUserMessage}},[(_vm.hooks.header)?_c('template',{slot:\"header\"},[_c(_vm.hooks.header,{tag:\"component\"})],1):_vm._e(),_vm._v(\" \"),(_vm.hooks.body)?_c('template',{slot:\"body\"},[_c(_vm.hooks.body,{tag:\"component\"})],1):_vm._e(),_vm._v(\" \"),(_vm.hooks.footer)?_c('template',{slot:\"footer\"},[_c(_vm.usermessage.hooks.footer,{tag:\"component\"})],1):_vm._e()],2):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"g3w-view map\",class:(\"split-\" + (_vm.state.split)),style:(_vm.styles.map),attrs:{\"id\":\"g3w-view-map\"}},[_c('g3w-resize',{class:(\"split-\" + (_vm.state.split)),style:({backgroundColor:'transparent'}),attrs:{\"id\":\"resize-map-and-content\",\"show\":_vm.showresize,\"moveFnc\":_vm.moveFnc,\"orientation\":_vm.state.split}}),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"application-notifications\"}},[_c('online-notify'),_vm._v(\" \"),_c('download-notify'),_vm._v(\" \"),_c('plugins-notify')],1)],1),_vm._v(\" \"),_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.content.disabled),expression:\"state.content.disabled\"}],staticClass:\"g3w-view content\",class:(\"split-\" + (_vm.state.split)),style:(_vm.styles.content),attrs:{\"id\":\"g3w-view-content\"}},[(_vm.breadcrumb.length > 1)?_c('section',{ref:_vm.breadcrumb,staticClass:\"content_breadcrumb\"},_vm._l((_vm.breadcrumb),function(crumb,index){return _c('span',{key:crumb.title},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(crumb.title),expression:\"crumb.title\"}],staticClass:\"skin-color-dark\",style:({fontWeight: _vm.isNotLastCrumb(index) ? 'bold' : 'normal'})}),_vm._v(\" \"),(_vm.isNotLastCrumb(index))?_c('span',{staticStyle:{\"font-weight\":\"bold\",\"margin\":\"3px 0\"}},[_vm._v(\"/\")]):_vm._e()])}),0):_vm._e(),_vm._v(\" \"),((_vm.showtitle && _vm.contentTitle) || _vm.previousTitle || (_vm.state.content.closable && _vm.state.content.aside))?_c('div',{staticClass:\"close-panel-block\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[(_vm.previousTitle)?_c('div',{staticClass:\"g3w_contents_back g3w-long-text\"},[('back' === _vm.backOrBackTo )?_c('div',{class:_vm.backOrBackTo},[_c('span',{staticClass:\"action-button\",class:_vm.g3wtemplate.getFontClass('back')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('back'),expression:\"'back'\"}]})]):_c('div',{class:_vm.backOrBackTo,on:{\"click\":function($event){$event.stopPropagation();return _vm.gotoPreviousContent()}}},[_c('span',{staticClass:\"action-button\",class:_vm.g3wtemplate.getFontClass('back')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('backto'),expression:\"'backto'\"}]}),_vm._v(\" \"),(!_vm.updatePreviousTitle)?_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.previousTitle),expression:\"previousTitle\"}]}):_vm._e()])]):_vm._e(),_vm._v(\" \"),(!_vm.previousTitle && _vm.showtitle && _vm.contentTitle)?_c('div',{staticClass:\"panel-title\",class:{'mobile': _vm.isMobile()},style:([_vm.state.content.style.title])},[_c('span',{attrs:{\"id\":\"contenttitle\"}},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.contentTitle.title),expression:\"contentTitle.title\"}]}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:(_vm.contentTitle.post_title),expression:\"contentTitle.post_title\"}]})])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"g3-content-header-action-tools\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_vm._l((_vm.state.content.headertools),function(tool){return _c(tool,{tag:\"component\"})}),_vm._v(\" \"),(_vm.showresizeicon)?_c('resize-icon',{staticStyle:{\"font-size\":\"1em\",\"padding\":\"0\",\"align-self\":\"center\",\"margin-left\":\"auto\"},style:({marginRight: _vm.state.content.closable ? '5px': '0px'}),attrs:{\"type\":_vm.state.split}}):_vm._e(),_vm._v(\" \"),(_vm.state.content.closable && _vm.state.content.aside)?_c('span',{staticClass:\"action-button\",class:{'mobile': _vm.isMobile()},staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\"},on:{\"click\":_vm.closeContent}},[_c('i',{staticClass:\"skin-color-dark\",class:_vm.g3wtemplate.getFontClass('close')})]):_vm._e()],2)]):_vm._e(),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.state.content.loading}})],1)],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-466a54cc\"\n\n},{\"app/constant\":5,\"components/NotifyDownload.vue\":191,\"components/NotifyOnline.vue\":192,\"components/NotifyPlugins.vue\":193,\"components/UserMessage.vue\":222,\"services/gui\":286,\"services/viewport\":293,\"vueify/lib/insert-css\":2}],224:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-add-wms-url-message[data-v-965f11b2]{font-weight:700;color:#000}.g3w-wmsurl-error[data-v-965f11b2]{background-color:red}.g3w-wmsurl-already-added[data-v-965f11b2]{color:inherit;font-weight:400;display:inline-block}#add_custom_url_wms_input[data-v-965f11b2]::placeholder{font-size:85%;opacity:.5}.wms_url_input_content input[data-v-965f11b2]{padding:1ch}.wms_url_input_content[data-v-965f11b2]{margin-bottom:5px}.wms-icon-action[data-v-965f11b2]{font-weight:700;font-size:1.3em;box-shadow:0 5px 10px #1e282c}.wms-icon-action[data-v-965f11b2]:hover{box-shadow:none}.new_wms_item[data-v-965f11b2]{display:flex;flex-direction:column;justify-content:space-between;background:transparent!important;margin-bottom:10px}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _constant = require('app/constant');\n\nvar _g3wPanel = require('core/g3w-panel');\n\nvar _g3wPanel2 = _interopRequireDefault(_g3wPanel);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _getUniqueDomId = require('utils/getUniqueDomId');\n\nvar _isURL = require('utils/isURL');\n\nvar _WMSLayersPanel = require('components/WMSLayersPanel.vue');\n\nvar vuePanelComp = _interopRequireWildcard(_WMSLayersPanel);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar PID = _projects2.default.getCurrentProject().getId();\n\nvar panel = void 0;\n\nexports.default = {\n name: \"wms\",\n\n data: function data() {\n return {\n state: {\n adminwmsurls: this.$options.wmsurls || [],\n localwmsurls: [] },\n url: null,\n id: null,\n loading: false,\n status: {\n error: false,\n added: false\n }\n };\n },\n\n\n computed: {\n inputswmsurlvalid: function inputswmsurlvalid() {\n return this.url !== null && this.url.trim() && (0, _isURL.isURL)(this.url) && this.id !== null && this.id.trim();\n }\n },\n\n methods: {\n addNewUrl: function () {\n var _ref = _asyncToGenerator(function* (wms) {\n var found = this.state.localwmsurls.find(function (l) {\n return l.url == wms.url || l.id == wms.id;\n });\n var status = { error: false, added: !!found };\n\n if (!found) {\n try {\n var response = yield this.getWMSLayers(wms.url);\n\n if (!response.result) {\n throw 'invalid response';\n }\n var data = this.getLocalWMSData();\n this.state.localwmsurls.push(wms);\n data.urls = this.state.localwmsurls;\n this.updateLocalWMSData(data);\n response.wmsurl = wms.url;\n this._showWmsLayersPanel(response);\n } catch (e) {\n console.warn(e);\n status.error = true;\n }\n }\n return status;\n });\n\n function addNewUrl(_x) {\n return _ref.apply(this, arguments);\n }\n\n return addNewUrl;\n }(),\n addwmsurl: function () {\n var _ref2 = _asyncToGenerator(function* () {\n this.loading = true;\n\n var _ref3 = yield this.addNewUrl({ url: this.url, id: this.id }),\n error = _ref3.error,\n added = _ref3.added;\n\n this.status.error = error;\n this.status.added = added;\n this.loading = false;\n });\n\n function addwmsurl() {\n return _ref2.apply(this, arguments);\n }\n\n return addwmsurl;\n }(),\n deleteWmsUrl: function deleteWmsUrl(id) {\n this.state.localwmsurls = this.state.localwmsurls.filter(function (l) {\n return id !== l.id;\n });\n var data = this.getLocalWMSData();\n data.urls = this.state.localwmsurls;\n this.updateLocalWMSData(data);\n },\n addWMSlayer: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n url = _ref5.url,\n _ref5$name = _ref5.name,\n name = _ref5$name === undefined ? 'wms_' + (0, _getUniqueDomId.getUniqueDomId)() : _ref5$name,\n _ref5$layers = _ref5.layers,\n layers = _ref5$layers === undefined ? [] : _ref5$layers,\n epsg = _ref5.epsg,\n position = _ref5.position,\n _ref5$visible = _ref5.visible,\n visible = _ref5$visible === undefined ? true : _ref5$visible,\n _ref5$opacity = _ref5.opacity,\n opacity = _ref5$opacity === undefined ? 1 : _ref5$opacity;\n\n try {\n var data = this.getLocalWMSData();\n\n if (panel) {\n var wms = data.wms[panel.internalPanel.url];\n panel.internalPanel.added = wms && wms.some(function (w) {\n return w.layers.length === panel.internalPanel.selectedlayers.length ? panel.internalPanel.selectedlayers.every(function (l) {\n return w.layers.includes(l);\n }) : undefined;\n });\n if (panel.internalPanel.added) {\n console.warn('WMS Layer already added');\n return;\n }\n panel.internalPanel.loading = true;\n }\n\n var config = { url: url, name: name, layers: layers, epsg: epsg, position: position, visible: visible, opacity: opacity };\n\n if (undefined === data.wms[url]) {\n data.wms[url] = [config];\n } else {\n data.wms[url].push(config);\n }\n\n this.updateLocalWMSData(data);\n\n try {\n yield _gui2.default.getService('map').addExternalWMSLayer(config);\n } catch (e) {\n console.warn(e);\n _gui2.default.getService('map').removeExternalLayer(name);\n this.deleteWms(name);\n setTimeout(function () {\n _gui2.default.showUserMessage({ type: 'warning', message: 'sidebar.wms.layer_add_error' });\n });\n }\n } catch (e) {\n console.warn(e);\n }\n if (panel) {\n panel.internalPanel.clear();\n panel.close();\n }\n });\n\n function addWMSlayer() {\n return _ref4.apply(this, arguments);\n }\n\n return addWMSlayer;\n }(),\n getWMSLayers: function () {\n var _ref6 = _asyncToGenerator(function* (url) {\n var response = {\n result: false,\n layers: [],\n info_formats: [],\n abstract: null,\n methods: [],\n map_formats: [],\n title: null\n };\n try {\n response = yield _data2.default.getData('ows:wmsCapabilities', { inputs: { url: url }, outputs: false });\n } catch (e) {\n console.warn(e);\n }\n return response;\n });\n\n function getWMSLayers(_x3) {\n return _ref6.apply(this, arguments);\n }\n\n return getWMSLayers;\n }(),\n _showWmsLayersPanel: function _showWmsLayersPanel() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n panel = new _g3wPanel2.default({\n service: this,\n id: (0, _getUniqueDomId.getUniqueDomId)(),\n title: 'sidebar.wms.panel.title',\n internalPanel: new (Vue.extend(vuePanelComp))({ service: this, config: config }),\n show: true\n });\n panel.internalPanel.$on('add-wms-layer', this.addWMSlayer.bind(this));\n return panel;\n },\n showWmsLayersPanel: function () {\n var _ref7 = _asyncToGenerator(function* (url) {\n var error = false;\n var added = false;\n try {\n this.loading = true;\n var d = yield this.getWMSLayers(url);\n error = !d.result;\n if (!error) {\n d.wmsurl = url;\n this._showWmsLayersPanel(d);\n }\n } catch (e) {\n console.warn(e);\n } finally {\n this.status.error = error;\n this.status.added = added;\n this.loading = false;\n }\n });\n\n function showWmsLayersPanel(_x5) {\n return _ref7.apply(this, arguments);\n }\n\n return showWmsLayersPanel;\n }(),\n deleteWms: function deleteWms(name) {\n var data = this.getLocalWMSData();\n Object.keys(data.wms).find(function (url) {\n var index = data.wms[url].findIndex(function (w) {\n return w.name == name;\n });\n\n if (-1 !== index) {\n data.wms[url].splice(index, 1);\n }\n\n if (-1 !== index && 0 == data.wms[url].length) {\n delete data.wms[url];\n }\n return true;\n });\n this.updateLocalWMSData(data);\n },\n clear: function clear() {\n panel = null;\n },\n changeLayerData: function changeLayerData(name) {\n var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var data = this.getLocalWMSData();\n Object.keys(data.wms).find(function (url) {\n var i = data.wms[url].findIndex(function (l) {\n return l.name == name;\n });\n if (-1 !== i) {\n data.wms[url][i][attr.key] = attr.value;\n return true;\n }\n });\n this.updateLocalWMSData(data);\n },\n getLocalWMSData: function getLocalWMSData() {\n return (_application2.default.getLocalItem(_constant.LOCALSTORAGE_EXTERNALWMS_ITEM) || {})[PID];\n },\n updateLocalWMSData: function updateLocalWMSData(data) {\n var alldata = _application2.default.getLocalItem(_constant.LOCALSTORAGE_EXTERNALWMS_ITEM) || {};\n alldata[PID] = data;\n _application2.default.setLocalItem({ id: _constant.LOCALSTORAGE_EXTERNALWMS_ITEM, data: alldata });\n }\n },\n\n mounted: function () {\n var _ref8 = _asyncToGenerator(function* () {\n var _this = this;\n\n _projects2.default.onafter('setCurrentProject', function () {\n var _ref9 = _asyncToGenerator(function* (project) {\n _this.projectId = PID = project.getId();\n _this.state.adminwmsurls = project.wmsurls || [];\n });\n\n return function (_x7) {\n return _ref9.apply(this, arguments);\n };\n }());\n\n yield _gui2.default.isReady();\n\n var map = _gui2.default.getService('map');\n\n yield map.isReady();\n\n this.deleteWms = this.deleteWms.bind(this);\n\n map.on('remove-external-layer', this.deleteWms);\n\n var data = this.getLocalWMSData();\n\n if (undefined === data) {\n data = {\n urls: [],\n wms: {} };\n this.updateLocalWMSData(data);\n }\n\n setTimeout(function () {\n map.on('change-layer-position-map', function () {\n var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n name = _ref10.id,\n position = _ref10.position;\n\n return _this.changeLayerData(name, { key: 'position', value: position });\n });\n map.on('change-layer-opacity', function () {\n var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n name = _ref11.id,\n opacity = _ref11.opacity;\n\n return _this.changeLayerData(name, { key: 'opacity', value: opacity });\n });\n map.on('change-layer-visibility', function () {\n var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n name = _ref12.id,\n visible = _ref12.visible;\n\n return _this.changeLayerData(name, { key: 'visible', value: visible });\n });\n\n Object.keys(data.wms).forEach(function (url) {\n data.wms[url].forEach(function (d) {\n return map.addExternalWMSLayer(_extends({ url: url }, d));\n });\n });\n });\n\n this.state.localwmsurls = data.urls;\n });\n\n function mounted() {\n return _ref8.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n _gui2.default.getService('map').off('remove-external-layer', this.deleteWms);\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"treeview-menu g3w-tools menu-items\"},[(_vm.loading)?_c('li',[_c('bar-loader',{attrs:{\"loading\":_vm.loading}})],1):_vm._e(),_vm._v(\" \"),_c('li',{staticClass:\"new_wms_item\"},[_c('div',{staticClass:\"wms_url_input_content\"},[_vm._m(0),_vm._v(\" \"),_c('a',{staticStyle:{\"float\":\"right\"},attrs:{\"href\":\"https://g3w-suite.readthedocs.io/en/v3.7.x/g3wsuite_client.html#wms\",\"target\":\"_blank\",\"title\":\"Docs\"}},[_c('i',{class:_vm.g3wtemplate.getFontClass('external-link')})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.url),expression:\"url\"}],staticClass:\"form-control\",staticStyle:{\"width\":\"100%\",\"color\":\"#000000\"},attrs:{\"id\":\"add_custom_url_wms_input\",\"placeholder\":\"http://example.org/?&service=WMS&request=GetCapabilities\"},domProps:{\"value\":(_vm.url)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.url=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"wms_url_input_content\"},[_c('label',{attrs:{\"for\":\"add_custom_name_url_wms_input\",\"title\":\"required\"}},[_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.panel.label.name'),expression:\"'sidebar.wms.panel.label.name'\"}]}),_vm._v(\" \"),_c('i',{staticStyle:{\"font-family\":\"Monospace\",\"color\":\"var(--skin-color)\"}},[_vm._v(\"*\")])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.id),expression:\"id\"}],staticClass:\"form-control\",staticStyle:{\"width\":\"100%\",\"color\":\"#000000\"},attrs:{\"id\":\"add_custom_name_url_wms_input\"},domProps:{\"value\":(_vm.id)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.id=$event.target.value}}})]),_vm._v(\" \"),_c('div',[_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(!_vm.inputswmsurlvalid),expression:\"!inputswmsurlvalid\"}],staticClass:\"btn btn-block skin-background-color\",staticStyle:{\"width\":\"100%\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.addwmsurl($event)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('plus-square')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t\",rawName:\"v-t\",value:('add'),expression:\"'add'\"}]})])])]),_vm._v(\" \"),(_vm.status.error)?_c('li',[_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('server_error'),expression:\"'server_error'\"}],staticClass:\"g3w-add-wms-url-message g3w-wmsurl-error\"})]):(_vm.status.added)?_c('li',[_vm._v(\"\\n ⚠️\\n \"),_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.url_already_added'),expression:\"'sidebar.wms.url_already_added'\"}],staticClass:\"g3w-add-wms-url-message g3w-wmsurl-already-added\"})]):_vm._e(),_vm._v(\" \"),_c('li',{staticClass:\"skin-border-color\",staticStyle:{\"background\":\"transparent !important\",\"border-top\":\"2px solid\"}},[_c('div',{staticStyle:{\"max-height\":\"200px\",\"overflow-y\":\"auto\"}},[_vm._l((_vm.state.adminwmsurls),function(ref){\nvar id = ref.id;\nreturn _c('div',{key:_vm.wmsurl,staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\",\"border-bottom\":\"1px solid #ccc\",\"padding-bottom\":\"3px\"}},[_c('span',{staticClass:\"g3w-long-text\",staticStyle:{\"flex-grow\":\"1\",\"margin-right\":\"15px\"}},[_vm._v(_vm._s(id)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"skin-color\",staticStyle:{\"padding\":\"5px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showWmsLayersPanel(id)}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('plus-square'),staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"1.3em\"}})])])}),_vm._v(\" \"),_vm._l((_vm.state.localwmsurls),function(ref){\nvar id = ref.id;\nvar url = ref.url;\nreturn _c('div',{key:id,staticStyle:{\"border-bottom\":\"1px solid #cccccc\",\"padding-bottom\":\"3px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\",\"padding-top\":\"3px\"}},[_c('span',{staticClass:\"g3w-long-text\",staticStyle:{\"flex-grow\":\"1\",\"margin-right\":\"15px\",\"font-weight\":\"bold\"}},[_vm._v(_vm._s(id))]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sidebar.wms.add_wms_layer'),expression:\"'sidebar.wms.add_wms_layer'\",arg:\"top\",modifiers:{\"create\":true}}],staticClass:\"skin-color\",staticStyle:{\"padding\":\"3px\",\"margin\":\"2px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showWmsLayersPanel(url)}}},[_c('i',{staticClass:\"wms-icon-action\",class:_vm.g3wtemplate.getFontClass('plus-square')})]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:('sidebar.wms.delete_wms_url'),expression:\"'sidebar.wms.delete_wms_url'\",arg:\"top\",modifiers:{\"create\":true}}],staticStyle:{\"color\":\"red\",\"padding\":\"3px\",\"margin\":\"2px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteWmsUrl(id)}}},[_c('i',{staticClass:\"wms-icon-action\",class:_vm.g3wtemplate.getFontClass('trash'),staticStyle:{\"color\":\"red\"}})])]),_vm._v(\" \"),_c('div',{staticClass:\"g3w-long-text\",staticStyle:{\"font-size\":\"0.7em\"},attrs:{\"title\":url}},[_vm._v(_vm._s(url))])])})],2)])])}\n__vue__options__.staticRenderFns = [function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"add_custom_url_wms_input\",\"title\":\"required\"}},[_c('span',[_vm._v(\"URL\")]),_vm._v(\" \"),_c('i',{staticStyle:{\"font-family\":\"Monospace\",\"color\":\"var(--skin-color)\"}},[_vm._v(\"*\")])])}]\n__vue__options__._scopeId = \"data-v-965f11b2\"\n\n},{\"app/constant\":5,\"components/WMSLayersPanel.vue\":225,\"core/g3w-panel\":10,\"services/application\":282,\"services/data\":284,\"services/gui\":286,\"store/projects\":301,\"utils/getUniqueDomId\":381,\"utils/isURL\":399,\"vueify/lib/insert-css\":2}],225:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-wms-panel-title[data-v-64ebf92a]{font-size:1.2em;font-weight:700;margin-bottom:10px}button.wms-add-layer-button[data-v-64ebf92a]{width:100%;margin-top:10px}.g3w-wms-external-panel-layer-added-message[data-v-64ebf92a]{font-weight:700;color:red;margin:5px 0}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar Projections = require('g3w-ol/projection/projections');\n\nexports.default = {\n\n name: \"wmpspanel\",\n\n data: function data() {\n return {\n loading: false,\n position: undefined,\n name: undefined,\n title: null,\n abstract: null,\n map_formats: [],\n info_formats: [],\n methods: [],\n layers: [],\n selectedlayers: [],\n projections: [],\n epsg: null,\n added: false };\n },\n\n\n methods: {\n clear: function clear() {\n this.selectedlayers = [];\n this.name = null;\n this.loading = false;\n },\n getLayersByEpsg: function getLayersByEpsg(epsg) {\n var _this = this;\n\n return null === epsg ? this.$options.config.layers : this.layers.filter(function (_ref) {\n var name = _ref.name;\n return -1 !== _this.layerProjections[name].crss.indexOf(epsg);\n });\n },\n getProjectionsByName: function getProjectionsByName(name) {\n var _this2 = this;\n\n return this.projections.filter(function (projection) {\n return -1 !== _this2.layerProjections[name].crss.indexOf(projection);\n });\n }\n },\n watch: {\n selectedlayers: function selectedlayers() {\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (0 === layers.length) {\n this.epsg = null;\n this.projections = [];\n } else if (1 === layers.length) {\n this.epsg = this.layerProjections[layers[0]].crss[0];\n this.projections = this.layerProjections[layers[0]].crss;\n } else {\n this.projections = this.getProjectionsByName(layers[layers.length - 1]);;\n }\n },\n epsg: function () {\n var _ref2 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n this.layers = this.getLayersByEpsg(this.epsg);\n });\n\n function epsg() {\n return _ref2.apply(this, arguments);\n }\n\n return epsg;\n }()\n },\n\n created: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n var _$options$config = this.$options.config,\n layers = _$options$config.layers,\n title = _$options$config.title,\n abstract = _$options$config.abstract,\n methods = _$options$config.methods,\n wmsurl = _$options$config.wmsurl;\n\n try {\n this.url = methods.GetMap.urls.find(function (u) {\n return 'Get' === u.type;\n }).url;\n } catch (e) {\n console.warn(e);\n this.url = wmsurl;\n }\n\n this.title = title;\n\n this.abstract = abstract;\n\n this.layerProjections = {};\n\n layers.forEach(function (_ref4) {\n var name = _ref4.name,\n crss = _ref4.crss,\n title = _ref4.title;\n\n _this3.layerProjections[name] = {\n title: title,\n crss: crss.map(function (crs) {\n Projections.get(crs);return 'EPSG:' + crs.epsg;\n }).sort()\n };\n });\n\n this.layers = layers;\n });\n\n function created() {\n return _ref3.apply(this, arguments);\n }\n\n return created;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.$data = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.loading),expression:\"loading\"}]},[_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('h3',{staticClass:\"skin-color g3w-wms-panel-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.abstract)?_c('helpdiv',{attrs:{\"message\":_vm.abstract}}):_vm._e(),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.panel.label.layers'),expression:\"'sidebar.wms.panel.label.layers'\"}],attrs:{\"for\":\"g3w-wms-layers\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('selectedlayers'),expression:\"'selectedlayers'\"}],attrs:{\"id\":\"g3w-wms-layers\",\"multiple\":true,\"clear\":\"true\"}},_vm._l((_vm.layers),function(layer){return _c('option',{key:layer.name,domProps:{\"value\":layer.name}},[_vm._v(_vm._s(layer.title))])}),0),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.panel.label.projections'),expression:\"'sidebar.wms.panel.label.projections'\"}],attrs:{\"for\":\"g3w-wms-projections\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('epsg'),expression:\"'epsg'\"}],attrs:{\"id\":\"g3w-wms-projections\"}},_vm._l((_vm.projections),function(projection){return _c('option',{key:projection,domProps:{\"value\":projection}},[_vm._v(_vm._s(projection))])}),0),_vm._v(\" \"),_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.panel.label.name'),expression:\"'sidebar.wms.panel.label.name'\"}],attrs:{\"for\":\"g3w-wms-layer-name\"}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],staticClass:\"form-control\",attrs:{\"id\":\"g3w-wms-layer-name\"},domProps:{\"value\":(_vm.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.name=$event.target.value}}}),_vm._v(\" \"),(_vm.added)?_c('div',{directives:[{name:\"t\",rawName:\"v-t\",value:('sidebar.wms.layer_id_already_added'),expression:\"'sidebar.wms.layer_id_already_added'\"}],staticClass:\"g3w-wms-external-panel-layer-added-message\"}):_vm._e(),_vm._v(\" \"),_c('layerspositions',{attrs:{\"position\":_vm.position},on:{\"layer-position-change\":function($event){_vm.position=$event}}}),_vm._v(\" \"),_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(0 === _vm.selectedlayers.length),expression:\"0 === selectedlayers.length\"}],staticClass:\"btn wms-add-layer-button sidebar-button skin-button\",on:{\"click\":function($event){$event.stopPropagation();_vm.$emit('add-wms-layer', { url: _vm.url, position: _vm.position, epsg: _vm.epsg, layers: _vm.selectedlayers, name: _vm.name && _vm.name.trim() || undefined })}}},[_c('i',{class:_vm.g3wtemplate.getFontClass('plus-square'),staticStyle:{\"font-weight\":\"bold\"}})])],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-64ebf92a\"\n\n},{\"g3w-ol/projection/projections\":62,\"vueify/lib/insert-css\":2}],226:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var state = {\n highlightlayers: false,\n external: { // external layers\n wms: [], // added by wms sidebar component\n vector: [] // added to map controls for the moment\n },\n layerstrees: _catalogLayers2.default.getLayersStores().map(function (s) {\n return { tree: s.getLayersTree(), storeid: s.getId() };\n }),\n layersgroups: [],\n legend: Object.assign(opts.config.legend || {}, { place: _application2.default.getCurrentProject().getLegendPosition() || 'tab' })\n };\n\n var service = opts.service || new _g3wObject2.default({\n setters: {\n /**\n * @param {{ layer: unknown, type: 'vector' }}\n *\n * @fires CatalogService~addExternalLayer\n *\n * @since 3.8.0\n */\n addExternalLayer: function addExternalLayer() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layer = _ref.layer,\n _ref$type = _ref.type,\n type = _ref$type === undefined ? 'vector' : _ref$type;\n\n layer.removable = true;\n state.external[type].push(layer);\n },\n\n /**\n * @param {{ name: string, type: 'vector' }}\n *\n * @fires CatalogService~removeExternalLayer\n *\n * @since 3.8.0\n */\n removeExternalLayer: function removeExternalLayer() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n name = _ref2.name,\n _ref2$type = _ref2.type,\n type = _ref2$type === undefined ? 'vector' : _ref2$type;\n\n state.external[type].filter(function (l, i) {\n if (l.name === name) {\n state.external[type].splice(i, 1);\n return true;\n }\n });\n },\n\n /**\n * @param {{ layer: unknown, type: unknown, selected: unknown }}\n *\n * @fires CatalogService~setSelectedExternalLayer\n *\n * @since 3.8.0\n */\n setSelectedExternalLayer: function setSelectedExternalLayer(_ref3) {\n var layer = _ref3.layer,\n type = _ref3.type,\n selected = _ref3.selected;\n\n state.external[type].forEach(function (l) {\n l.selected = undefined === l.selected ? l.selected : l === layer ? selected : false;\n });\n }\n }\n });\n\n service.state = state;\n\n /** used by the following plugins: \"stress\" */\n service.createLayersGroup = function () {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$title = _ref4.title,\n title = _ref4$title === undefined ? 'Layers Group' : _ref4$title,\n _ref4$layers = _ref4.layers,\n layers = _ref4$layers === undefined ? [] : _ref4$layers;\n\n return { title: title, nodes: layers.map(function (l) {\n return l;\n }) };\n };\n /** used by the following plugins: \"stress\" */\n service.addLayersGroup = function (g) {\n state.layersgroups.push(g);\n };\n /** used by the following plugins: \"processing\" */\n service.getExternalLayers = function (_ref5) {\n var _ref5$type = _ref5.type,\n type = _ref5$type === undefined ? 'vector' : _ref5$type;\n return state.external[type];\n };\n\n /** @TODO check if deprecated */\n service.getExternalSelectedLayers = function (_ref6) {\n var _ref6$type = _ref6.type,\n type = _ref6$type === undefined ? 'vector' : _ref6$type;\n return state.external[type].filter(function (l) {\n return l.selected;\n });\n };\n /** @TODO check if deprecated */\n service.getExternalLayerById = function (_ref7) {\n var id = _ref7.id,\n _ref7$type = _ref7.type,\n type = _ref7$type === undefined ? 'vector' : _ref7$type;\n return state.external[type].find(function (l) {\n return l.id === id;\n });\n };\n /** @TODO check if deprecated */\n service.isExternalLayerSelected = function (l) {\n return !!(service.getExternalLayerById(l) || {}).selected;\n };\n /** @TODO check if deprecated */\n service.addLayersStoreToLayersTrees = function (s) {\n return state.layerstrees.push({ tree: s.getLayersTree(), storeid: s.getId() });\n };\n /** @TODO check if deprecated */\n service.getMajorQgisVersion = function () {\n return _projects2.default.getCurrentProject().getQgisVersion({ type: 'major' });\n };\n /** @TODO check if deprecated */\n service.changeMapTheme = function () {\n var _ref8 = _asyncToGenerator(function* (map_theme) {\n _application2.default.changeProjectView(true);\n var rootNode = state.layerstrees[0];\n rootNode.checked = true;\n var changes = yield _projects2.default.getCurrentProject().setLayersTreePropertiesFromMapTheme({ map_theme: map_theme, rootNode: rootNode, layerstree: rootNode.tree[0].nodes });\n _application2.default.changeProjectView(false);\n return changes;\n });\n\n return function (_x5) {\n return _ref8.apply(this, arguments);\n };\n }();\n\n // add layers stores to tree\n _catalogLayers2.default.onafter('addLayersStore', function (s) {\n state.layerstrees.push({ tree: s.getLayersTree(), storeid: s.getId() });\n });\n _catalogLayers2.default.onafter('removeLayersStore', function (s) {\n var i = state.layerstrees.findIndex(function (t) {\n return t.storeid === s.getId();\n });if (-1 !== i) {\n state.layerstrees.splice(i, 1);\n }\n });\n _catalogLayers2.default.onafter('removeLayersStores', function () {\n state.layerstrees.forEach(function (_, i) {\n state.layerstrees.splice(i, 1);\n });\n });\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: 'catalog',\n resizable: true,\n service: service,\n vueComponentObject: vueComp\n }));\n\n /** @TODO check if deprecated */\n _listenToMapVisibility(opts.mapcomponentid, comp);\n\n return comp;\n};\n\nvar _g3wObject = require('core/g3w-object');\n\nvar _g3wObject2 = _interopRequireDefault(_g3wObject);\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _components = require('store/components');\n\nvar _components2 = _interopRequireDefault(_components);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _Catalog = require('components/Catalog.vue');\n\nvar vueComp = _interopRequireWildcard(_Catalog);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/catalog/vue/catalog.js@v3.9.3\n * - src/app/gui/catalog/catalogservice.js@v3.9.3\n */\n\n\n;\n\n/**\n * @TODO check if deprecated\n */\nfunction _listenToMapVisibility(map_id, component) {\n if (!map_id) {\n return;\n }\n\n component.mapComponentId = map_id;\n\n var map = _gui2.default.getComponent(map_id);\n\n var cb = function cb(map) {\n var ms = map.getService();\n component.state.visible = !ms.state.hidden;\n ms.onafter('setHidden', function () {\n component.state.visible = !ms.state.hidden;component.state.expanded = true;\n });\n };\n\n if (map) {\n cb(map);\n } else {\n _components2.default.on('componentregistered', function (c) {\n return map_id === c.getId() && cb(c);\n });\n }\n}\n\n},{\"components/Catalog.vue\":120,\"core/g3w-component\":8,\"core/g3w-object\":9,\"services/application\":282,\"services/gui\":286,\"store/catalog-layers\":295,\"store/components\":296,\"store/projects\":301}],227:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE: src/app/gui/changemapmenu/changemapmenu.js@v3.9.3 \n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _g3wComponent2.default(_extends({}, opts, {\n id: 'changemapmenu',\n vueComponentObject: vueComp\n }));\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _ChangeMapMenu = require('components/ChangeMapMenu.vue');\n\nvar vueComp = _interopRequireWildcard(_ChangeMapMenu);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n;\n\n},{\"components/ChangeMapMenu.vue\":126,\"core/g3w-component\":8}],228:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/viewport/contentsviewer.js@v3.9.3\n * - src/components/ViewportContentsViewer.vue@v3.9.3\n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var stack = new _g3wBarstack.BarStack(); // handles the logic of mounting component on DOM\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: 'contents',\n vueComponentObject: {\n name: 'viewport-contents-viewer',\n template: '
',\n data: function data() {\n return { state: null };\n }\n }\n }));\n\n stack.on('clear', function () {\n return comp.contentsdata = stack.state.contentsdata;\n });\n\n Object.assign(comp, {\n\n stack: stack,\n\n contentsdata: stack.state.contentsdata,\n\n // `push` = whether to clean the stack every time, sure to have just one component.\n setContent: function setContent() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var d = $.Deferred();\n (opts.push ? (0, _resolve.resolve)() : stack.clear()).then(function () {\n return comp.addContent(opts.content, opts).then(function () {\n return d.resolve(opts);\n });\n });\n comp.setOpen(true);\n return d.promise();\n },\n addContent: function addContent(content) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var d = $.Deferred();\n stack.push(content, Object.assign(opts, { parent: comp.internalComponent.$el, append: true })).then(function () {\n comp.contentsdata = stack.state.contentsdata; // get stack content\n Array.from(comp.internalComponent.$el.children) // hide other elements but not the last one\n .forEach(function (el, i, a) {\n return el.style.display = i === a.length - 1 ? 'block' : 'none';\n });\n d.resolve();\n });\n return d.promise();\n },\n\n\n // remove content from stack\n removeContent: function removeContent() {\n comp.setOpen(false);\n return stack.clear();\n },\n\n\n // used by viewport.js, update the content of contentsdata only after stack is updated\n popContent: function popContent() {\n return stack.pop().then(function () {\n comp.contentsdata = stack.state.contentsdata;\n Array.from(comp.internalComponent.$el.children) // hide other elements but not the last one\n .forEach(function (el, i, a) {\n return el.style.display = i === a.length - 1 ? 'block' : 'none';\n });\n });\n },\n\n\n // Set layout of the content each time\n layout: function layout(parentWidth) {\n var el = comp.internalComponent.$el;\n Vue.nextTick(function () {\n // run only after that vue state is updated\n var height = el.parentElement.clientHeight // parent element is \"g3w-view-content\"\n - ((el.parentElement.querySelector('.close-panel-block') || {}).offsetHeight || 0) - ((el.parentElement.querySelector('.content_breadcrumb') || {}).offsetHeight || 0) - 10; // margin 10 from bottom\n el.style.height = height + 'px';\n if (el.firstChild) {\n el.firstChild.style.height = height + 'px';\n }\n stack.state.contentsdata.forEach(function (d) {\n // re-layout each component stored into the stack\n if ('function' == typeof d.content.layout) {\n d.content.layout(parentWidth + 0.5, height);\n }\n });\n });\n },\n\n\n getComponentById: stack.getComponentById.bind(stack),\n getContentData: stack.getContentData.bind(stack),\n getCurrentContentData: stack.getCurrentContentData.bind(stack),\n getPreviousContentData: stack.getPreviousContentData.bind(stack),\n clearContents: stack.clear.bind(stack)\n\n });\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _g3wBarstack = require('core/g3w-barstack');\n\nvar _resolve = require('utils/resolve');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n},{\"core/g3w-barstack\":7,\"core/g3w-component\":8,\"utils/resolve\":417}],229:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _Form = require('components/Form.vue');\n\nvar vueComp = _interopRequireWildcard(_Form);\n\nvar _FormBody = require('components/FormBody.vue');\n\nvar _FormBody2 = _interopRequireDefault(_FormBody);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n * @file\n * @since 3.10.0\n */\n\nvar Service = require('gui/form/formservice');\n\n/**\n * ORIGINAL SOURCE: src/app/gui/form/vue/form.js@v3.9.3 \n * \n * Used by the following plugins: \"editing\", \"cadastre\", \"geonotes\", \"iternet\" \n */\n\nvar FormComponent = function (_Component) {\n _inherits(FormComponent, _Component);\n\n function FormComponent() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, FormComponent);\n\n // set element of the form\n var _this = _possibleConstructorReturn(this, (FormComponent.__proto__ || Object.getPrototypeOf(FormComponent)).call(this, _extends({}, opts, {\n id: opts.id || 'form',\n perc: null !== opts.layer.getFormPercentage() ? opts.layer.getFormPercentage() : opts.perc,\n service: new (opts.service || Service)(),\n vueComponentObject: opts.vueComponentObject || vueComp\n })));\n\n var components = opts.components || [{\n id: opts.id,\n title: opts.title,\n name: opts.name,\n root: true,\n component: _FormBody2.default,\n headerComponent: opts.headerComponent\n }];\n\n _this.getService().addComponents(components);\n _this.getService().setComponent(components[0].component);\n\n _this.onafter('mount', function () {\n return _gui2.default.setModal(true);\n });\n return _this;\n }\n\n _createClass(FormComponent, [{\n key: 'addFormComponents',\n value: function addFormComponents() {\n var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this.getService().addComponents(c);\n }\n }, {\n key: 'addFormComponent',\n value: function addFormComponent(c) {\n c && this.getService().addComponent(c);\n }\n }, {\n key: 'layout',\n value: function layout() {\n this.getInternalComponent().reloadLayout();\n }\n\n /** @TODO check if deprecated */\n\n }, {\n key: 'addBodyFormComponent',\n value: function addBodyFormComponent(c) {\n c && this.getInternalComponent().body.components[c.where || 'after'].push(c.component);\n }\n }, {\n key: 'addBodyFormComponents',\n\n /** @TODO check if deprecated */\n value: function addBodyFormComponents(cs) {\n var _this2 = this;\n\n cs && (cs.components || []).forEach(function (c) {\n return _this2.addBodyFormComponent({ component: c, where: cs.where || 'after' });\n });\n }\n /** @TODO check if deprecated */\n\n }, {\n key: 'addDependecyComponents',\n value: function addDependecyComponents(c) {\n this.getService().addDependecyComponents(c);\n }\n /** @TODO check if superflous */\n\n }, {\n key: 'mount',\n value: function mount(parent, append) {\n return _get(FormComponent.prototype.__proto__ || Object.getPrototypeOf(FormComponent.prototype), 'mount', this).call(this, parent, append).then(function () {\n _gui2.default.setModal(true);\n });\n }\n }]);\n\n return FormComponent;\n}(_g3wComponent2.default);\n\nexports.default = FormComponent;\n;\n\n},{\"components/Form.vue\":136,\"components/FormBody.vue\":137,\"core/g3w-component\":8,\"gui/form/formservice\":68,\"services/gui\":286}],230:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n id: 'map',\n title: 'Map Component',\n service: new MapService(opts),\n vueComponentObject: vueComp\n }));\n\n comp.layout = function (w, h) {\n comp.getService().layout({ width: w, height: h });\n };\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _Map = require('components/Map.vue');\n\nvar vueComp = _interopRequireWildcard(_Map);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('gui/map/mapservice'),\n MapService = _require.MapService;\n\n/**\n * ORIGINAL SOURCE: src/app/gui/map/vue/map.js@v3.9.3 \n */\n\n\n;\n\n},{\"components/Map.vue\":176,\"core/g3w-component\":8,\"gui/map/mapservice\":102}],231:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function (opts) {\n\n var state = {\n name: '',\n groups: {}\n };\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: 'sdk.metadata.title',\n service: Object.assign(opts.service || new _g3wObject2.default(), {\n state: state,\n content: null,\n show: false,\n reload: function reload() {\n var emit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (emit) {\n comp.getService().emit('reload');\n }\n var project = _projects2.default.getCurrentProject().getState();\n state.name = project.title;\n state.groups = Object.entries(GROUPS).reduce(function (g, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n fields = _ref2[1];\n\n g[name] = fields.reduce(function (f, field) {\n var value = project.metadata && project.metadata[field] ? project.metadata[field] : project[field];\n if (value) {\n f[field] = { value: value, label: 'sdk.metadata.groups.' + name + '.fields.' + field };\n }\n return f;\n }, {});\n return g;\n }, {});\n }\n }),\n vueComponentObject: MetadataComp\n }));\n\n // build project group metadata\n comp.getService().reload(false);\n comp.getService().on('reload', function () {\n return comp.setOpen(false);\n });\n\n // show metadata\n comp.onafter('setOpen', function (b) {\n var service = comp.getService();\n service.show = b;\n if (b) {\n service.content = new _g3wComponent2.default({ service: service, internalComponent: new (Vue.extend(_MetadataProject2.default))({ state: state }) });\n service.content.layout = _noop.noop;\n _gui2.default.setContent({ content: service.content, title: 'sdk.metadata.title', perc: 100 });\n service.show = true;\n } else {\n _gui2.default.closeContent();\n }\n });\n\n _gui2.default.on('closecontent', function () {\n return comp.state.open = false;\n });\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _g3wObject = require('core/g3w-object');\n\nvar _g3wObject2 = _interopRequireDefault(_g3wObject);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _noop = require('utils/noop');\n\nvar _Metadata = require('components/Metadata.vue');\n\nvar MetadataComp = _interopRequireWildcard(_Metadata);\n\nvar _MetadataProject = require('components/MetadataProject.vue');\n\nvar _MetadataProject2 = _interopRequireDefault(_MetadataProject);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GROUPS = {\n general: ['title', 'name', 'description', 'abstract', 'keywords', 'fees', 'accessconstraints', 'contactinformation', 'wms_url'],\n spatial: ['crs', 'extent'],\n layers: ['layers']\n};\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/metadata/vue/metadata.js@v3.9.3\n * - src/app/gui/metadata/metadataservice.js@v3.9.3\n */\n;\n\n},{\"components/Metadata.vue\":183,\"components/MetadataProject.vue\":185,\"core/g3w-component\":8,\"core/g3w-object\":9,\"services/gui\":286,\"store/projects\":301,\"utils/noop\":405}],232:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE: src/app/gui/print/vue/print.js@v3.9.3 \n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: 'print',\n service: {},\n internalComponent: new (Vue.extend(vueComp))()\n }));\n\n // BACKCOMP v3.x\n var service = comp.getService();\n var internalComponent = comp.getInternalComponent();\n\n service.state = internalComponent.state;\n service.changeScale = internalComponent.changeScale;\n service.getOverviewExtent = internalComponent.getOverviewExtent;\n service.changeRotation = internalComponent.changeRotation;\n service.changeTemplate = internalComponent.changeTemplate;\n service.print = internalComponent.print;\n service.showPrintArea = internalComponent.showPrintArea;\n service.reload = internalComponent.reload;\n\n comp.onafter('setOpen', function (b) {\n return service.showPrintArea(b);\n });\n comp.onafter('reload', function () {\n service.reload();comp.state.visible = service.state.visible;\n });\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _Print = require('components/Print.vue');\n\nvar vueComp = _interopRequireWildcard(_Print);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n;\n\n},{\"components/Print.vue\":194,\"core/g3w-component\":8}],233:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/projectsmenu/projectsmenu.js@v3.9.3\n * - src/app/gui/projectsmenu/menu.js@v3.9.3\n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _g3wComponent2.default(_extends({}, opts, {\n id: 'projectsmenu',\n title: opts.title || 'menu',\n internalComponent: new (Vue.extend(vueComp))({\n host: opts.host,\n state: {\n menuitems: (opts.projects || _projects2.default.getListableProjects()).map(function (p) {\n return {\n title: p.title,\n description: p.description,\n thumbnail: p.thumbnail,\n gid: p.gid,\n cbk: opts.cbk || function () {\n var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _application2.default.changeProject({ host: opts.host, gid: o.gid });\n }\n };\n })\n }\n })\n }));\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _ProjectsMenu = require('components/ProjectsMenu.vue');\n\nvar vueComp = _interopRequireWildcard(_ProjectsMenu);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n},{\"components/ProjectsMenu.vue\":196,\"core/g3w-component\":8,\"services/application\":282,\"store/projects\":301}],234:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _g3wPanel = require('core/g3w-panel');\n\nvar _g3wPanel2 = _interopRequireDefault(_g3wPanel);\n\nvar _QueryBuilder = require('components/QueryBuilder.vue');\n\nvar vueComp = _interopRequireWildcard(_QueryBuilder);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since 3.10.0\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\n/**\n * ORIGINAL SOURCE: src/app/gui/querybuilder/querybuilderuifactory.js@v3.9.3\n */\n\n\nexports.default = {\n show: function show() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$opts = _ref.opts,\n opts = _ref$opts === undefined ? {} : _ref$opts;\n\n return new _g3wPanel2.default(Object.assign(opts, {\n title: t('sdk.querybuilder.title'),\n show: true,\n internalPanel: new (Vue.extend(vueComp))(opts)\n })).getInternalPanel();\n }\n};\n\n},{\"components/QueryBuilder.vue\":197,\"core/g3w-panel\":10,\"core/i18n/i18n.service\":12}],235:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n id: 'queryresults',\n title: 'Query Results',\n service: new QueryResultsService(),\n vueComponentObject: vueComp\n }));\n\n comp.getElement = function () {\n return comp.internalComponent ? comp.internalComponent.$el : undefined;\n };\n comp.unmount = function () {\n comp.getService().closeComponent();return _g3wComponent2.default.prototype.unmount.call(comp);\n };\n comp.layout = _noop.noop;\n\n comp.getService().onafter('setLayersData', _asyncToGenerator(function* () {\n if (!comp.internalComponent) {\n comp.setInternalComponent();\n }\n yield comp.internalComponent.$nextTick();\n }));\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _noop = require('utils/noop');\n\nvar _QueryResults = require('components/QueryResults.vue');\n\nvar vueComp = _interopRequireWildcard(_QueryResults);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar QueryResultsService = require('gui/queryresults/queryresultsservice');\n\n/**\n * ORIGINAL SOURCE: src/app/gui/queryresults/vue/queryresults.js@v3.9.3\n */\n\n},{\"components/QueryResults.vue\":198,\"core/g3w-component\":8,\"gui/queryresults/queryresultsservice\":109,\"utils/noop\":405}],236:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/relations/vue/relationspage.js@v3.9.3\n * - src/app/gui/relations/relationsservice.js@v3.9.3\n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _g3wComponent2.default(_extends({}, opts, {\n internalComponent: new (Vue.extend(vueComp))(opts)\n }));\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _RelationsPage = require('components/RelationsPage.vue');\n\nvar vueComp = _interopRequireWildcard(_RelationsPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n;\n\n},{\"components/RelationsPage.vue\":210,\"core/g3w-component\":8}],237:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\nexports.SearchComponent = SearchComponent;\nexports.SearchPanel = SearchPanel;\n\nvar _constant = require('app/constant');\n\nvar _g3wObject = require('core/g3w-object');\n\nvar _g3wObject2 = _interopRequireDefault(_g3wObject);\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _g3wPanel = require('core/g3w-panel');\n\nvar _g3wPanel2 = _interopRequireDefault(_g3wPanel);\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _resolve = require('utils/resolve');\n\nvar _noop = require('utils/noop');\n\nvar _getUniqueDomId = require('utils/getUniqueDomId');\n\nvar _createFilterFormInputs = require('utils/createFilterFormInputs');\n\nvar _createInputsFormFromFilter = require('utils/createInputsFormFromFilter');\n\nvar _doSearch = require('utils/doSearch');\n\nvar _debounce = require('utils/debounce');\n\nvar _Search = require('components/Search.vue');\n\nvar vueComp = _interopRequireWildcard(_Search);\n\nvar _SearchPanel = require('components/SearchPanel.vue');\n\nvar vueSearchComp = _interopRequireWildcard(_SearchPanel);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * Retrieve from local storage\n */\nfunction _getSavedSearches() {\n var ITEMS = _applicationState2.default.querybuilder.searches;\n var id = _projects2.default.getCurrentProject().getId();\n ITEMS[id] = ITEMS[id] || [];\n return ITEMS[id];\n}\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/search/vue/search.js@v3.9.3\n * - src/app/gui/search/service.js@3.9.3\n */\nfunction SearchComponent() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var project = _projects2.default.getCurrentProject();\n\n var state = {\n searches: (project.state.search || []).sort(function (a, b) {\n return ('' + a.name).localeCompare(b.name);\n }),\n tools: [],\n querybuildersearches: _getSavedSearches()\n };\n\n var service = opts.service || new _g3wObject2.default();\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n id: 'search',\n visible: true,\n title: project.state.search_title || 'search',\n service: Object.assign(service, {\n state: state,\n title: project.state.search_title || \"search\",\n addQueryBuilderSearch: function addQueryBuilderSearch(s) {\n state.querybuildersearches.push(s);\n },\n addTool: function addTool(t) {\n state.tools.push(t);\n },\n addTools: function addTools(tt) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = tt[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var t = _step.value;\n service.addTool(t);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n showPanel: function showPanel(o) {\n return new SearchPanel(o, true);\n },\n removeItem: function removeItem() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n type = _ref.type,\n index = _ref.index;\n\n 'querybuilder' === type && state.querybuildersearches.splice(index, 1);\n },\n getTitle: function getTitle() {\n return service.title;\n },\n cleanSearchPanels: function cleanSearchPanels() {\n state.panels = {};\n },\n removeTools: function removeTools() {\n state.tools.splice(0);\n },\n stop: _resolve.resolve,\n removeTool: _noop.noop,\n reload: function reload() {\n state.searches = _projects2.default.getCurrentProject().state.search;\n state.querybuildersearches = _getSavedSearches();\n }\n }),\n vueComponentObject: vueComp\n }));\n\n comp._reload = function () {\n comp._service.reload();\n };\n\n return comp;\n}\n\n/**\n * ORIGINAL SOURCE: src/app/gui/search/vue/panel/searchpanel.js@v3.9.3\n * ORIGINAL SOURCE: src/app/gui/search/vue/panel/searchservice.js@v3.9.3\n */\nfunction SearchPanel() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var state = {\n loading: {}, // store loading state of each input and each dependency\n searching: false, //Boolean. If true, search request from server is starts. False no search\n title: opts.name,\n /** @type { 'search' | 'search_1n' } */\n type: opts.type || 'search',\n /** @TODO check if deprecated */\n queryurl: (opts.options || {}).queryurl,\n /** @deprecated will be removed in v4.x */\n search_endpoint: 'api',\n search_1n_relationid: opts.options.search_1n_relationid, //relations\n /** Layers that will be searchable for that search form. The First one is a layer owner of the search set on admin. */\n search_layers: [(opts.options || {}).querylayerid || (opts.options || {}).layerid || null].concat(_toConsumableArray((opts.options || {}).otherquerylayerids || [])).map(function (id) {\n return _catalogLayers2.default.getLayerById(id);\n }),\n /** Array of inputs that belongs to search form */\n forminputs: ((opts.options || {}).filter || []).map(function (d, i) {\n return {\n id: d.id || (0, _getUniqueDomId.getUniqueDomId)(),\n type: d.input.type || 'textfield',\n widget_type: d.input.widget_type,\n label: d.label,\n attribute: d.attribute,\n values: d.input.options.values || [],\n /** group values by parent value */\n dvalues: {},\n /**\n * true → initially it is disabled (values = [], ALL value)\n * as in the case in which the dependent field will\n * return to having ALL value. When a value is set to\n * the dependent field, the select will be enabled and\n * will contain the filtered values consistent with the\n * value of the dependent parent field\n */\n dependance_strict: d.input.options.dependance_strict || false,\n /**\n * true → the select is not disabled and will contain all possible values\n * (since at the beginning the parent will have the value ALL).\n * When the value of the dependent field changes, the values in the\n * select list will be filtered in a manner consistent with the value\n * of the parent\n */\n dependance: d.input.options.dependance || false,\n value: 'selectfield' === d.input.type ? _constant.SEARCH_ALLVALUE : null,\n operator: d.op,\n logicop: i === opts.options.filter.length - 1 ? null : d.logicop,\n loading: true,\n disabled: d.input.options.disabled || false,\n /** keep a reference to initial search options (you shouldn't mutate them..) */\n options: d.input.options\n };\n })\n };\n\n state.mounted = (0, _createInputsFormFromFilter.createInputsFormFromFilter)(state);\n\n var service = opts.service || Object.assign(new _g3wObject2.default(), {\n state: state,\n doSearch: _doSearch.doSearch,\n run: (0, _debounce.debounce)(function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _GUI$getService$getMa = _gui2.default.getService('map').getMap().getSize(),\n _GUI$getService$getMa2 = _slicedToArray(_GUI$getService$getMa, 2),\n w = _GUI$getService$getMa2[0],\n h = _GUI$getService$getMa2[1];\n\n var hide = _gui2.default.isMobile() && (0 === w || 0 === h);\n setTimeout(function () {\n if (hide) {\n _gui2.default.hideSidebar();\n }\n panel.getService().doSearch(_extends({}, args, { state: state }));\n }, hide ? 0 : 600);\n }),\n clear: function clear() {\n panel.getService().state = null;\n },\n\n createFilter: function createFilter() {\n return (0, _createFilterFormInputs.createFilterFormInputs)({\n layer: state.search_layers,\n inputs: state.forminputs.filter(function (input) {\n return -1 === [null, undefined, _constant.SEARCH_ALLVALUE].indexOf(input.value) && '' !== input.value.toString().trim();\n }) // Filter input by NONVALIDVALUES\n });\n }\n });\n\n var panel = new _g3wPanel2.default(_extends({}, opts, {\n show: show,\n id: opts.id || (0, _getUniqueDomId.getUniqueDomId)(),\n title: opts.title || 'search',\n vueComponentObject: opts.component || vueSearchComp,\n service: service\n }));\n\n return panel;\n}\n\n},{\"app/constant\":5,\"components/Search.vue\":211,\"components/SearchPanel.vue\":212,\"core/g3w-component\":8,\"core/g3w-object\":9,\"core/g3w-panel\":10,\"services/gui\":286,\"store/application-state\":294,\"store/catalog-layers\":295,\"store/projects\":301,\"utils/createFilterFormInputs\":328,\"utils/createInputsFormFromFilter\":330,\"utils/debounce\":344,\"utils/doSearch\":347,\"utils/getUniqueDomId\":381,\"utils/noop\":405,\"utils/resolve\":417}],238:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\n/**\n * ORIGINAL SOURCE: src/app/gui/spatialbookmarks/vue/spatialbookmarks.js@v3.9.3\n */\n\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: 'sdk.spatialbookmarks.title',\n vueComponentObject: vueComp\n }));\n\n _gui2.default.on('closecontent', function () {\n comp.state.open = false;\n });\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _SpatialBookMarks = require('components/SpatialBookMarks.vue');\n\nvar vueComp = _interopRequireWildcard(_SpatialBookMarks);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n;\n\n},{\"components/SpatialBookMarks.vue\":218,\"core/g3w-component\":8,\"services/gui\":286}],239:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var project = _projects2.default.getCurrentProject();\n var state = _extends({}, opts, {\n toolsGroups: [],\n visible: false,\n loading: false\n });\n\n var service = new _g3wObject2.default({ setters: {\n addTool: function addTool(tool, _ref) {\n var title = _ref.title,\n position = _ref.position;\n\n var group = state.toolsGroups.find(function (g) {\n return g.name === title;\n });\n if (!group) {\n group = { name: title, tools: [] };state.toolsGroups.splice(position, 0, group);\n }\n return group.tools.push(Object.assign(tool, {\n state: tool.state || { type: null, message: null },\n action: tool.action || (ACTIONS[tool.type] || _noop2.default).bind(null, tool.options)\n }));\n },\n addToolGroup: function addToolGroup(position, name) {\n var group = state.toolsGroups.find(function (g) {\n return g.name === name;\n });\n if (!group) {\n group = { name: name, tools: [] };state.toolsGroups.splice(position, 0, group);\n }\n return group;\n },\n addTools: function addTools(tools, groupName) {\n var _this = this;\n\n tools.forEach(function (t) {\n return _this.addTool(t, groupName);\n });\n },\n removeToolGroup: function removeToolGroup(name) {\n state.toolsGroups = state.toolsGroups.filter(function (g) {\n return g.name !== name;\n });\n },\n removeTools: function removeTools() {\n state.toolsGroups.splice(0);\n }\n } });\n\n service.state = state;\n service.config = null;\n service.getState = function () {\n return state;\n };\n service.reload = function () {\n service.removeTools();\n };\n service.setLoading = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n state.loading = bool;\n };\n service.updateToolsGroup = function (order, config) {\n Vue.set(state.toolsGroups, order, config);\n };\n service.setToolState = function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n id = _ref2.id,\n _ref2$state = _ref2.state,\n newState = _ref2$state === undefined ? { type: null, message: null } : _ref2$state;\n\n state.toolsGroups.find(function (g) {\n var tool = g.tools.find(function (t) {\n return t.name === id;\n });\n if (tool) {\n tool.state.type = newState.type;\n tool.state.message = newState.message;\n return true;\n }\n });\n };\n\n // static class field\n service.ACTIONS = ACTIONS;\n\n var tools = project.getState().tools || {};\n\n var _loop = function _loop(t) {\n service.addToolGroup(0, t.toUpperCase());\n service.addTools(tools[t].map(function (tool) {\n return { name: tool.name, action: ACTIONS[t].bind(null, tool) };\n }), { position: 0, title: t.toUpperCase() });\n };\n\n for (var t in tools) {\n _loop(t);\n }\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: \"tools\",\n service: service,\n internalComponent: new (Vue.extend({\n template: /* html */'\\n
',\n components: { G3wTool: _Tool2.default },\n data: function data() {\n return { state: null };\n },\n watch: {\n 'state.toolsGroups': function () {\n var _ref3 = _asyncToGenerator(function* (g) {\n comp.setVisible(g.length > 0);\n this.$emit('visible', g.length > 0);\n yield _gui2.default.isReady();\n document.querySelector('#g3w-sidebarcomponents #tools').classList.toggle('single', 1 === g.length && 'EDITING' === g[0].name);\n });\n\n function stateToolsGroups(_x4) {\n return _ref3.apply(this, arguments);\n }\n\n return stateToolsGroups;\n }()\n }\n }))()\n }));\n\n comp._setOpen = function () {\n var b = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n comp.internalComponent.state.open = b;\n if (b) {\n _gui2.default.closeContent();\n }\n };\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _g3wObject = require('core/g3w-object');\n\nvar _g3wObject2 = _interopRequireDefault(_g3wObject);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _noop = require('utils/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _Tool = require('components/Tool.vue');\n\nvar _Tool2 = _interopRequireDefault(_Tool);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\n/** @TODO check if deprecated */\nvar ACTIONS = {};\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/tools/vue/tools.js@v3.9.3\n * - src/app/gui/tools/service.js@v3.9.3\n * - src/components/Tools.vue@v3.9.3\n */\n\n},{\"components/Tool.vue\":221,\"core/g3w-component\":8,\"core/g3w-object\":9,\"services/gui\":286,\"store/projects\":301,\"utils/noop\":405}],240:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**\n * @file\n * @since 3.10.0\n */\n\nexports.default = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var comp = new _g3wComponent2.default(_extends({}, opts, {\n title: t('add') + ' WMS',\n service: {},\n internalComponent: new (Vue.extend(vueComp))({ wmsurls: opts.wmsurls })\n }));\n\n var service = comp.getService();\n var internalComponent = comp.getInternalComponent();\n\n comp._setOpen = function () {\n var b = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n internalComponent.state.open = b;\n if (b) {\n _gui2.default.closeContent();\n }\n };\n\n // BACKCOMP v3.x\n service.state = internalComponent.state;\n service.addNewUrl = internalComponent.addNewUrl;\n service.deleteWmsUrl = internalComponent.deleteWmsUrl;\n service.showWmsLayersPanel = internalComponent._showWmsLayersPanel;\n service.addWMSlayer = internalComponent.addWMSlayer;\n service.getWMSLayers = internalComponent.getWMSLayers;\n service.deleteWms = internalComponent.deleteWms;\n service.clear = internalComponent.clear;\n service.changeLayerData = internalComponent.changeLayerData;\n service.getLocalWMSData = internalComponent.getLocalWMSData;\n service.updateLocalWMSData = internalComponent.updateLocalWMSData;\n\n return comp;\n};\n\nvar _g3wComponent = require('core/g3w-component');\n\nvar _g3wComponent2 = _interopRequireDefault(_g3wComponent);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _WMS = require('components/WMS.vue');\n\nvar vueComp = _interopRequireWildcard(_WMS);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\n/**\n * ORIGINAL SOURCE:\n * - src/app/gui/wms/vue/wms.js@v3.9.3\n * - src/app/gui/wms/service.js@3.8.15\n */\n\n},{\"components/WMS.vue\":224,\"core/g3w-component\":8,\"core/i18n/i18n.service\":12,\"services/gui\":286}],241:[function(require,module,exports){\nvar _vueColor = require(\"vue-color\");\n\nvar VueColor = _interopRequireWildcard(_vueColor);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar initConfig = window.initConfig;\n\n// convert relative base URLs to absolute (eg. '/' → 'http://localhost:8080/')\n/**\n * @file shims legacy variables to ensure backward compatibily with old G3W-CLIENT plugins (eg. window variables)\n * @since v3.8\n */\n\nif (initConfig.baseurl) {\n try {\n new URL(initConfig.baseurl);\n } catch (error) {\n initConfig.baseurl = new URL(initConfig.baseurl, window.location).toString();\n }\n}\n\n// BACKCOMP v3.x (initConfig → initConfig.group)\ninitConfig.group = Object.assign(initConfig.group || {}, new Proxy(Object.fromEntries(Object.keys(initConfig).filter(function (key) {\n return ![\"i18n\", \"staticurl\", \"client\", \"mediaurl\", \"user\", \"baseurl\", \"vectorurl\", \"proxyurl\", \"rasterurl\", \"interfaceowsurl\", \"main_map_title\", 'main_map_title', \"g3wsuite_logo_img\", \"credits\", \"version\", \"group\", \"frontendurl\"].includes(key);\n}).map(function (key) {\n return [key, initConfig[key]];\n})), {\n get: function get(target, prop, receiver) {\n console.warn(\"[G3W-CLIENT] initConfig.group.\" + prop.toString() + \" is deprecated\");return Reflect.get.apply(Reflect, arguments);\n }\n}));\n\n/**\n * @deprecated since v3.8. Will be removed in v4.x. Use ESM imports from 'vue-color' instead\n */\nwindow.VueColor = VueColor;\n\n/**\n * @deprecated since v3.8. Will be removed in v4.x. Use require('vue-cookie') instead of window.VueCookie\n */\nwindow.VueCookie = require('vue-cookie');\n\n},{\"vue-color\":\"vue-color\",\"vue-cookie\":\"vue-cookie\"}],242:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @TODO refactor stateful directives (eg. \"v-t\") in order to delete this file: \"src/directives/utils.js\"\n */\n\nvar _require = require('utils'),\n uniqueId = _require.uniqueId;\n\n/**\n * Internal state\n */\n\n\nvar vm = new Vue();\nvar directives = {};\n\nvar watch = exports.watch = function watch(_ref) {\n var el = _ref.el,\n attr = _ref.attr,\n watcher = _ref.watcher;\n\n var unique_attr_id = uniqueId();\n el.setAttribute(attr, unique_attr_id);\n var dir = directives[unique_attr_id] = {};\n if (watcher) {\n dir.unwatch = vm.$watch(watcher[0], watcher[1], watcher[2] || { immediate: true });\n dir.handler = watcher[1];\n }\n return unique_attr_id;\n};\n\nvar unwatch = exports.unwatch = function unwatch(_ref2) {\n var el = _ref2.el,\n attr = _ref2.attr;\n\n var unique_attr_id = el.getAttribute(attr);\n if (unique_attr_id) {\n directives[unique_attr_id].unwatch();\n delete directives[unique_attr_id];\n }\n};\n\nvar trigger = exports.trigger = function trigger(_ref3) {\n var el = _ref3.el,\n attr = _ref3.attr,\n data = _ref3.data;\n return directives[el.getAttribute(attr)].handler(data);\n};\n\n},{\"utils\":388}],243:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = function (el, binding) {\n binding.value ? el.setAttribute('checked', 'checked') : el.removeAttribute('checked');\n};\n\n},{}],244:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since 3.10.0 \n */\n\nexports.default = {\n bind: function bind(el, binding, vnode) {\n this.event = function (event) {\n // skip if a clicked element is a child of element\n if (el === event.target || el.contains(event.target)) {\n return;\n }\n event.stopPropagation();\n vnode.context[binding.expression](event);\n };\n document.body.addEventListener('click', this.event, true);\n },\n unbind: function unbind() {\n document.body.removeEventListener('click', this.event, true);\n }\n};\n\n},{}],245:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = function (el, binding) {\n var className = 'g3w-disabled';\n if (binding.value) {\n if (!el.classList.contains(className)) {\n el.classList.add(className);\n }\n } else {\n el.classList.remove(className);\n }\n};\n\n},{}],246:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar attr = 'g3w-v-download-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n if (typeof binding.value === 'boolean' ? binding.value : true) {\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.download;\n }, function (bool) {\n var className = binding.modifiers && binding.modifiers.show && 'hide' || 'disabled';\n el.classList.toggle('g3w-' + className, className === 'hide' ? !bool : bool);\n }]\n });\n }\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"directives/utils\":242,\"store/application-state\":294}],247:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar attr = 'g3w-v-offline-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n // show if online\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.online;\n }, function (bool) {\n bool = (binding.arg && binding.arg === 'hide' ? false : true) ? bool : !bool;\n el.classList.toggle('g3w-hide', !bool);\n }]\n });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"directives/utils\":242,\"store/application-state\":294}],248:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar attr = 'g3w-v-plugins-id';\n\nexports.default = {\n bind: function bind(el) {\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.plugins;\n }, function (plugins) {\n el.classList.toggle('g3w-hide', plugins.length === 0);\n }]\n });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"directives/utils\":242,\"store/application-state\":294}],249:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n inserted: function inserted(el, binding, vnode) {\n var _ref = vnode.data.attrs || {},\n templateResult = _ref.templateResult,\n templateSelection = _ref.templateSelection,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === undefined ? false : _ref$multiple,\n _ref$search = _ref.search,\n search = _ref$search === undefined ? true : _ref$search,\n select2_value = _ref.select2_value,\n indexItem = _ref.indexItem,\n _ref$createTag = _ref.createTag,\n createTag = _ref$createTag === undefined ? false : _ref$createTag;\n\n var isArray = binding.value && Array.isArray(vnode.context[binding.value]) // check if is an array\n && undefined !== indexItem; // check if indexItem is defined\n $(el).select2({\n tags: createTag,\n width: '100%',\n dropdownCssClass: 'skin-color',\n templateResult: templateResult,\n templateSelection: templateSelection,\n minimumResultsForSearch: search ? undefined : -1,\n createTag: function createTag(params) {\n var value = params.term.trim();\n return value ? {\n id: value,\n text: value,\n newTag: true // add additional value\n } : null;\n }\n }).on('select2:select select2:unselect', function (e) {\n if (!binding.value) {\n return;\n }\n\n var value = binding.value;\n var selected = 'select2:select' === e.type;\n var id = e.params.data.id;\n var ctx = vnode.context;\n\n // selected\n /** @TODO reduce nesting level */\n if (selected) {\n var arr = isArray ? ctx[value][indexItem].value : ctx[value];\n // check is can have multiple value\n if (multiple && arr.every(function (d) {\n return id !== d;\n })) {\n arr.push(id);\n } else if (isArray) {\n ctx[value][indexItem].value = id;\n } else {\n // take in an account text binding value single world or object (eg. state.name)\n var attrs = ('' + value).split('.');\n var last = attrs.pop();\n attrs.reduce(function (acc, a) {\n acc = acc[a];return acc;\n }, vnode.context)[last] = id;\n }\n }\n\n // unselected\n /** @TODO reduce nesting level */\n if (!selected && multiple) {\n if (isArray) {\n ctx[value][indexItem].value = ctx[value][indexItem].value.filter(function (d) {\n return id !== d;\n });\n } else {\n ctx[value] = ctx[value].filter(function (d) {\n return id !== d;\n });\n }\n }\n\n // dispatch \"change\" event to native
element\n if (selected || multiple) {\n el.dispatchEvent(new Event(\"change\"));\n }\n });\n\n // listen `select2_value` attribute changes to reflect select2 current value\n if (binding.value && undefined !== select2_value) {\n $(el).val(select2_value).trigger('change');\n vnode.g3w_observer = new MutationObserver(function (mutations) {\n var target = (mutations.find(function (m) {\n return \"select2_value\" === m.attributeName;\n }) || {}).target;\n if (target) {\n $(el).val(target.getAttribute(\"select2_value\")).trigger('change');\n }\n });\n vnode.g3w_observer.observe(el, { attributes: true });\n }\n },\n\n unbind: function unbind(el, vnode) {\n if (vnode.g3w_observer) {\n vnode.g3w_observer.disconnect();\n }\n $(el).select2('destroy');\n }\n};\n\n},{}],250:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = function (el, binding) {\n el.toggleAttribute('selected', binding.value === 0);\n};\n\n},{}],251:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar attr = 'g3w-v-t-html-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function () {\n el.innerHTML = '' + t(binding.value);\n }]\n });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],252:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t,\n tPlugin = _require.tPlugin;\n\nvar attr = 'g3w-v-t-placeholder-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function () {\n el.setAttribute('placeholder', (binding.arg === 'plugin' ? tPlugin : t)(binding.value));\n }]\n });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],253:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n tPlugin = _require.tPlugin;\n\nvar attr = 'g3w-v-t-plugin-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n var innerHTML = el.innerHTML;\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function () {\n var value = binding.value !== null ? tPlugin(binding.value) : '';\n switch (binding.arg ? binding.arg : 'post') {\n case 'pre':\n el.innerHTML = value + ' ' + innerHTML;break;\n case 'post':\n el.innerHTML = innerHTML + ' ' + value;break;\n }\n }]\n });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],254:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t,\n tPlugin = _require.tPlugin;\n\nvar attr = 'g3w-v-t-title-id';\n\nexports.default = {\n bind: function bind(el, binding) {\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function () {\n var title = (binding.arg === 'plugin' ? tPlugin : t)(binding.value);\n el.setAttribute('title', title);\n el.setAttribute('data-original-title', title);\n }] });\n },\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],255:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t,\n tPlugin = _require.tPlugin;\n\nvar attr = 'g3w-v-t-tooltip-id';\n\nexports.default = {\n bind: function bind(_el, binding) {\n // Automatically create tooltip\n if (binding.modifiers.create) {\n if (binding.arg) {\n _el.setAttribute('data-placement', binding.arg);\n _el.classList.add('skin-color', 'skin-tooltip-' + binding.arg);\n }\n _el.setAttribute('data-container', \"body\");\n $(_el).tooltip({ trigger: _applicationState2.default.ismobile ? 'click' : 'hover', html: true })\n // hide tooltip on mobile after click\n .on('shown.bs.tooltip', function () {\n _applicationState2.default.ismobile && setTimeout(function () {\n return $(_el).tooltip('hide');\n }, 600);\n });\n }\n (0, _utils.watch)({\n el: _el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function (_ref) {\n var _ref$el = _ref.el,\n el = _ref$el === undefined ? _el : _ref$el;\n\n var value = el.getAttribute('current-tooltip');\n if (value === null) {\n value = binding.value;\n }\n el.setAttribute('data-original-title', binding.modifiers.text ? value : (binding.arg === 'plugin' ? tPlugin : t)(value));\n }]\n });\n },\n componentUpdated: function componentUpdated(el, oldVnode) {\n var value = el.getAttribute('current-tooltip');\n if (value != null && value !== oldVnode.oldValue) {\n (0, _utils.trigger)({ el: el, attr: attr, data: { el: el } });\n }\n },\n\n unbind: function unbind(el) {\n $(el).tooltip('hide');(0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],256:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _utils = require('directives/utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nvar _require = require('core/i18n/i18n.service'),\n t = _require.t;\n\nvar attr = 'g3w-v-t-id';\n\n/**\n * @since 3.8.7\n */\nvar handleInnerHTML = function handleInnerHTML(_ref) {\n var el = _ref.el;\n\n var value = el.__currentBinding.value !== null ? t(el.__currentBinding.value) : '';\n switch (el.__currentBinding.arg ? el.__currentBinding.arg : 'post') {\n case 'pre':\n el.innerHTML = value + ' ' + el.__innerHTML;break;\n case 'post':\n el.innerHTML = el.__innerHTML + ' ' + value;break;\n }\n};\n\nexports.default = {\n bind: function bind(el, binding) {\n /**\n * @since 3.8.7\n */\n // set init innerHTML value of element\n el.__innerHTML = el.innerHTML;\n //set current binging\n el.__currentBinding = binding;\n (0, _utils.watch)({\n el: el,\n attr: attr,\n watcher: [function () {\n return _applicationState2.default.language;\n }, function () {\n return handleInnerHTML({\n el: el\n });\n }]\n });\n },\n\n /**\n * @since 3.8.7\n */\n componentUpdated: function componentUpdated(el, binding) {\n //reset currentBinding to get last value;\n el.__currentBinding = binding;\n handleInnerHTML({\n el: el\n });\n },\n\n\n unbind: function unbind(el) {\n return (0, _utils.unwatch)({ el: el, attr: attr });\n }\n};\n\n},{\"core/i18n/i18n.service\":12,\"directives/utils\":242,\"store/application-state\":294}],257:[function(require,module,exports){\n/**\n * @file Expose `window.g3wsdk` variable\n * @since v3.8\n */\n\n/**\n * Expose \"g3wsdk\" variable globally used by plugins to load sdk class and instances\n * \n * @type {object}\n */\nwindow.g3wsdk = require('app/api');\n\n/**\n * @TODO not yet implemented\n *\n * @see https://github.com/g3w-suite/g3w-client/issues/71\n * @see https://github.com/g3w-suite/g3w-client/issues/46\n */\n// window.g3w = window.g3wsdk;\n\n},{\"app/api\":3}],258:[function(require,module,exports){\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nrequire('./deprecated');\n\nrequire('./globals');\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _application = require('services/application');\n\nvar _application2 = _interopRequireDefault(_application);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nvar _floatbar = require('services/floatbar');\n\nvar _floatbar2 = _interopRequireDefault(_floatbar);\n\nvar _navbaritems = require('services/navbaritems');\n\nvar _navbaritems2 = _interopRequireDefault(_navbaritems);\n\nvar _sidebar = require('services/sidebar');\n\nvar _sidebar2 = _interopRequireDefault(_sidebar);\n\nvar _viewport = require('services/viewport');\n\nvar _viewport2 = _interopRequireDefault(_viewport);\n\nvar _components = require('store/components');\n\nvar _components2 = _interopRequireDefault(_components);\n\nvar _App = require('components/App.vue');\n\nvar _App2 = _interopRequireDefault(_App);\n\nvar _GlobalImage = require('components/GlobalImage.vue');\n\nvar _GlobalImage2 = _interopRequireDefault(_GlobalImage);\n\nvar _GlobalGallery = require('components/GlobalGallery.vue');\n\nvar _GlobalGallery2 = _interopRequireDefault(_GlobalGallery);\n\nvar _GlobalGeo = require('components/GlobalGeo.vue');\n\nvar _GlobalGeo2 = _interopRequireDefault(_GlobalGeo);\n\nvar _GlobalSkeleton = require('components/GlobalSkeleton.vue');\n\nvar _GlobalSkeleton2 = _interopRequireDefault(_GlobalSkeleton);\n\nvar _GlobalBarLoader = require('components/GlobalBarLoader.vue');\n\nvar _GlobalBarLoader2 = _interopRequireDefault(_GlobalBarLoader);\n\nvar _GlobalProgressBar = require('components/GlobalProgressBar.vue');\n\nvar _GlobalProgressBar2 = _interopRequireDefault(_GlobalProgressBar);\n\nvar _GlobalHelpDiv = require('components/GlobalHelpDiv.vue');\n\nvar _GlobalHelpDiv2 = _interopRequireDefault(_GlobalHelpDiv);\n\nvar _GlobalResize = require('components/GlobalResize.vue');\n\nvar _GlobalResize2 = _interopRequireDefault(_GlobalResize);\n\nvar _GlobalLayerPositions = require('components/GlobalLayerPositions.vue');\n\nvar _GlobalLayerPositions2 = _interopRequireDefault(_GlobalLayerPositions);\n\nvar _GlobalDateTime = require('components/GlobalDateTime.vue');\n\nvar _GlobalDateTime2 = _interopRequireDefault(_GlobalDateTime);\n\nvar _GlobalRange = require('components/GlobalRange.vue');\n\nvar _GlobalRange2 = _interopRequireDefault(_GlobalRange);\n\nvar _GlobalResizeIcon = require('components/GlobalResizeIcon.vue');\n\nvar _GlobalResizeIcon2 = _interopRequireDefault(_GlobalResizeIcon);\n\nvar _GlobalTabs = require('components/GlobalTabs.vue');\n\nvar _GlobalTabs2 = _interopRequireDefault(_GlobalTabs);\n\nvar _GlobalDivider = require('components/GlobalDivider.vue');\n\nvar _GlobalDivider2 = _interopRequireDefault(_GlobalDivider);\n\nvar _Floatbar = require('components/Floatbar.vue');\n\nvar _Floatbar2 = _interopRequireDefault(_Floatbar);\n\nvar _NavbaritemsLeft = require('components/NavbaritemsLeft.vue');\n\nvar _NavbaritemsLeft2 = _interopRequireDefault(_NavbaritemsLeft);\n\nvar _NavbaritemsRight = require('components/NavbaritemsRight.vue');\n\nvar _NavbaritemsRight2 = _interopRequireDefault(_NavbaritemsRight);\n\nvar _Sidebar = require('components/Sidebar.vue');\n\nvar _Sidebar2 = _interopRequireDefault(_Sidebar);\n\nvar _Viewport = require('components/Viewport.vue');\n\nvar _Viewport2 = _interopRequireDefault(_Viewport);\n\nvar _vDisabled = require('directives/v-disabled');\n\nvar _vDisabled2 = _interopRequireDefault(_vDisabled);\n\nvar _vChecked = require('directives/v-checked');\n\nvar _vChecked2 = _interopRequireDefault(_vChecked);\n\nvar _vSelectedFirst = require('directives/v-selected-first');\n\nvar _vSelectedFirst2 = _interopRequireDefault(_vSelectedFirst);\n\nvar _vSelect = require('directives/v-select2');\n\nvar _vSelect2 = _interopRequireDefault(_vSelect);\n\nvar _vTTooltip = require('directives/v-t-tooltip');\n\nvar _vTTooltip2 = _interopRequireDefault(_vTTooltip);\n\nvar _vTHtml = require('directives/v-t-html');\n\nvar _vTHtml2 = _interopRequireDefault(_vTHtml);\n\nvar _vTPlaceholder = require('directives/v-t-placeholder');\n\nvar _vTPlaceholder2 = _interopRequireDefault(_vTPlaceholder);\n\nvar _vTTitle = require('directives/v-t-title');\n\nvar _vTTitle2 = _interopRequireDefault(_vTTitle);\n\nvar _vT = require('directives/v-t');\n\nvar _vT2 = _interopRequireDefault(_vT);\n\nvar _vTPlugin = require('directives/v-t-plugin');\n\nvar _vTPlugin2 = _interopRequireDefault(_vTPlugin);\n\nvar _vPlugins = require('directives/v-plugins');\n\nvar _vPlugins2 = _interopRequireDefault(_vPlugins);\n\nvar _vOnline = require('directives/v-online');\n\nvar _vOnline2 = _interopRequireDefault(_vOnline);\n\nvar _vDownload = require('directives/v-download');\n\nvar _vDownload2 = _interopRequireDefault(_vDownload);\n\nvar _vClickOutside = require('directives/v-click-outside');\n\nvar _vClickOutside2 = _interopRequireDefault(_vClickOutside);\n\nvar _constant = require('app/constant');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } /**\n * @file Production entry point (app.min.js)\n * @since v3.8\n */\n\n// include backward compatibilies\n\n\n// expose global variables\n\n\n//import core\n\n\n//import services\n\n\n// import store\n\n\n//components\n\n\n//directives\n\n\n// constants\n\n\nvar _require = require('utils'),\n base = _require.base,\n inherit = _require.inherit,\n toRawType = _require.toRawType;\n\nvar _require2 = require('core/i18n/i18n.service'),\n t = _require2.t,\n tPlugin = _require2.tPlugin;\n\nvar G3WObject = require('core/g3wobject');\nvar ProjectsMenuComponent = require('gui/projectsmenu/projectsmenu');\nvar ChangeMapMenuComponent = require('gui/changemapmenu/changemapmenu');\n\n/**\n * Install global components\n *\n * ORIGINAL SOURCE: src/app/gui/vue/vue.globalcomponents.js@3.6\n */\nVue.component(_GlobalImage2.default.name, _GlobalImage2.default);\nVue.component(_GlobalGallery2.default.name, _GlobalGallery2.default);\nVue.component(_GlobalGeo2.default.name, _GlobalGeo2.default);\nVue.component(_GlobalBarLoader2.default.name, _GlobalBarLoader2.default);\nVue.component(_GlobalProgressBar2.default.name, _GlobalProgressBar2.default);\nVue.component(_GlobalSkeleton2.default.name, _GlobalSkeleton2.default);\nVue.component(_GlobalHelpDiv2.default.name, _GlobalHelpDiv2.default);\nVue.component(_GlobalResize2.default.name, _GlobalResize2.default);\nVue.component(_GlobalLayerPositions2.default.name, _GlobalLayerPositions2.default);\nVue.component(_GlobalDateTime2.default.name, _GlobalDateTime2.default);\nVue.component(_GlobalRange2.default.name, _GlobalRange2.default);\nVue.component(_GlobalResizeIcon2.default.name, _GlobalResizeIcon2.default);\nVue.component(_GlobalTabs2.default.name, _GlobalTabs2.default);\nVue.component(_GlobalDivider2.default.name, _GlobalDivider2.default);\n\n/**\n * Install application filters\n *\n * ORIGINAL SOURCE: src/app/gui/vue/vue.filter.js@3.6\n */\nVue.filter('t', function (value) {\n return t(value);\n});\nVue.filter('tPlugin', function (value) {\n return value !== null ? tPlugin(value) : '';\n});\n\n/**\n * Install global directives\n *\n * ORIGINAL SOURCE: src/app/gui/vue/vue.directives.js@v3.6\n */\nVue.directive(\"disabled\", _vDisabled2.default);\nVue.directive(\"checked\", _vChecked2.default);\nVue.directive(\"selected-first\", _vSelectedFirst2.default);\nVue.directive('select2', _vSelect2.default);\nVue.directive('t-tooltip', _vTTooltip2.default);\nVue.directive('t-html', _vTHtml2.default);\nVue.directive('t-placeholder', _vTPlaceholder2.default);\nVue.directive('t-title', _vTTitle2.default);\nVue.directive(\"t\", _vT2.default);\nVue.directive(\"t-plugin\", _vTPlugin2.default);\nVue.directive(\"plugins\", _vPlugins2.default);\nVue.directive(\"online\", _vOnline2.default);\nVue.directive(\"download\", _vDownload2.default);\nVue.directive(\"click-outside\", _vClickOutside2.default);\n\n/**\n * Install global plugins\n */\nVue.use(window.VueCookie);\n\n/**\n * Vue 2 Plugin used to add global-level functionality to Vue\n *\n * @link https://v2.vuejs.org/v2/guide/plugins.html\n *\n * ORIGINAL SOURCE: src/app/gui/vue/vueappplugin.js@3.6\n */\nVue.use({\n install: function install(Vue) {\n // hold a list of registered fontawsome classes for current project\n Vue.prototype.g3wtemplate = {\n font: _constant.FONT_AWESOME_ICONS,\n /**\n * @TODO check if deprecated\n */\n get: function get() {},\n getInfo: function getInfo() {\n return {\n font: this.font\n };\n },\n addFontClass: function addFontClass() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n name = _ref.name,\n className = _ref.className;\n\n var added = undefined === this.font[name];\n if (added) {\n this.font[name] = className;\n }\n return added;\n },\n\n /**\n * @TODO check if deprecated\n */\n getInfoString: function getInfoString() {},\n getFontClass: function getFontClass(type) {\n return undefined === this.font[type] ? '' : this.font[type];\n }\n };\n // include isMobile() method within all Vue instances\n Vue.mixin({\n methods: {\n isMobile: function (_isMobile) {\n function isMobile() {\n return _isMobile.apply(this, arguments);\n }\n\n isMobile.toString = function () {\n return _isMobile.toString();\n };\n\n return isMobile;\n }(function () {\n return isMobile.any;\n })\n }\n });\n\n /** @since 3.10.0 remove _setUpTemplateDependencies method**/\n _gui2.default.isMobile = function () {\n return isMobile.any;\n };\n // method that returns Template Info\n _gui2.default.getTemplateInfo = function () {\n return Vue.prototype.g3wtemplate.getInfo();\n };\n _gui2.default.getTemplateInfo = function () {\n return Vue.prototype.g3wtemplate.getInfo();\n };\n _gui2.default.getFontClass = function (type) {\n return Vue.prototype.g3wtemplate.getFontClass(type);\n };\n }\n}, {});\n\nVue.mixin({ inheritAttrs: false }); // set mixins inheriAttrs to avoid tha unused props are setted as attrs\n\n/**\n * @requires components/App.vue\n */\nvar layout = $.LayoutManager;\n\n// loading spinner at beginning\nlayout.loading(true);\n\n/**\n * ORIGINAL SOURCE: src/gui/app/index.js@3.4\n */\nvar ApplicationTemplate = function ApplicationTemplate(_ref2) {\n var ApplicationService = _ref2.ApplicationService;\n\n var appLayoutConfig = ApplicationService.getConfig().layout || {};\n // useful to build a difference layout/component based on mobile or not\n this._isMobile = isMobile.any;\n this._isIframe = appLayoutConfig.iframe;\n //ussefult ot not close user message when set content is called\n this.sizes = {\n sidebar: {\n width: 0\n }\n };\n /*\n usefully to show only last waiting request output\n at a moment will be an object\n {\n stop: method to sot to show a result\n }\n */\n this.waitingoutputdataplace = null;\n this.init = function () {\n // create Vue App\n this._createApp();\n };\n // create application config\n this._createTemplateConfig = function () {\n var appTitle = ApplicationService.getConfig().apptitle || 'G3W Suite';\n var ContentsComponent = require('gui/viewport/contentsviewer');\n var CatalogComponent = require('gui/catalog/vue/catalog');\n var SearchComponent = require('gui/search/vue/search');\n var QueryBuilderUIFactory = require('gui/querybuilder/querybuilderuifactory');\n var PrintComponent = require('gui/print/vue/print');\n var MetadataComponent = require('gui/metadata/vue/metadata');\n var ToolsComponent = require('gui/tools/vue/tools');\n var WMSComponent = require('gui/wms/vue/wms');\n var MapComponent = require('gui/map/vue/map');\n var QueryResultsComponent = require('gui/queryresults/vue/queryresults');\n var SpatialBookMarksComponent = require('gui/spatialbookmarks/vue/spatialbookmarks');\n return {\n title: appTitle,\n placeholders: {\n navbar: {\n components: []\n },\n sidebar: {\n components: [new MetadataComponent({\n id: 'metadata',\n open: false,\n collapsible: false,\n icon: _gui2.default.getFontClass('file'),\n mobile: true\n }), new SpatialBookMarksComponent({\n id: 'spatialbookmarks',\n open: false,\n collapsible: true,\n icon: _gui2.default.getFontClass('bookmark'),\n mobile: true\n }), new PrintComponent({\n id: 'print',\n open: false,\n visible: ApplicationService.getConfig().user.is_staff || (_projects2.default.getCurrentProject().getPrint() || []).length > 0, /** @since 3.10.0 Check if the project has print layout*/\n collapsible: true, // it used to manage click event if you can run setOpen component method\n icon: _gui2.default.getFontClass('print'),\n mobile: false\n }), new SearchComponent({\n id: 'search',\n open: false,\n collapsible: true,\n icon: _gui2.default.getFontClass('search'),\n actions: [{\n id: \"querybuilder\",\n class: _gui2.default.getFontClass('calculator') + ' sidebar-button sidebar-button-icon',\n tooltip: t('sdk.querybuilder.title'),\n fnc: function fnc() {\n _gui2.default.closeContent();\n ApplicationTemplate.Services.sidebar.closeOpenComponents();\n QueryBuilderUIFactory.show({ type: 'sidebar' }); // sidebar or modal\n },\n style: {\n color: '#8DC3E3',\n padding: '6px',\n fontSize: '1.2em',\n borderRadius: '3px',\n marginRight: '5px'\n }\n }],\n mobile: true\n }),\n // Component that store plugins\n new ToolsComponent({\n id: 'tools',\n open: false,\n collapsible: true,\n icon: _gui2.default.getFontClass('tools'),\n mobile: true\n }), new WMSComponent({\n id: 'wms',\n open: false,\n collapsible: true,\n icon: _gui2.default.getFontClass('layers'),\n mobile: true\n }), new CatalogComponent({\n id: 'catalog',\n open: false,\n collapsible: false,\n isolate: true,\n icon: _gui2.default.getFontClass('map'),\n mobile: true,\n config: { legend: { config: appLayoutConfig.legend } }\n })]\n },\n floatbar: { components: [] }\n },\n othercomponents: [new QueryResultsComponent({ id: 'queryresults' })],\n viewport: {\n // placeholder of the content (view content). Secondary view (hidden)\n components: {\n map: new MapComponent({ id: 'map' }),\n content: new ContentsComponent({ id: 'contents' })\n }\n }\n };\n };\n\n //Vue app\n this._createApp = function () {\n this._setDataTableLanguage();\n var self = this;\n if (isMobile.any || this._isIframe) {\n $('body').addClass('sidebar-collapse');\n }\n return new Vue({\n el: '#app',\n created: function created() {\n // set general methods for the application as GUI.showForm etc ..\n self._setupInterface();\n // setup layout\n self._setupLayout();\n //register all services for the application\n self._setUpServices();\n // create templateConfig\n self.templateConfig = self._createTemplateConfig();\n // listen lng change and reset datatable language\n this.$watch(function () {\n return _applicationState2.default.language;\n }, function () {\n return self._setDataTableLanguage();\n });\n },\n mounted: function () {\n var _ref3 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n self._buildTemplate();\n // setup Font, Css class methods\n $(document).localize();\n self._setViewport(self.templateConfig.viewport);\n var skinColor = $('.navbar').css('background-color');\n _gui2.default.skinColor = skinColor && '#' + skinColor.substr(4, skinColor.indexOf(')') - 4).split(',').map(function (color) {\n return parseInt(color).toString(16);\n }).join('');\n yield this.$nextTick();\n self.emit('ready');\n self.sizes.sidebar.width = $('#g3w-sidebar').width();\n //getSkinColor\n _gui2.default.ready();\n });\n\n function mounted() {\n return _ref3.apply(this, arguments);\n }\n\n return mounted;\n }()\n });\n };\n\n this._setupLayout = function () {\n if (!isMobile.any) {\n // setup map controls\n $(\"\").appendTo(\"head\");\n }\n // Inizialization of the components of the application\n Vue.component('sidebar', _Sidebar2.default);\n //Navbar custom items\n Vue.component('navbarleftitems', _NavbaritemsLeft2.default);\n Vue.component('navbarrightitems', _NavbaritemsRight2.default);\n Vue.component('viewport', _Viewport2.default);\n Vue.component('floatbar', _Floatbar2.default);\n Vue.component('app', _App2.default);\n };\n\n // dataTable Translations and custom extentions\n this._setDataTableLanguage = function () {\n var dataTable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var languageOptions = {\n \"language\": {\n \"sSearch\": '',\n \"searchPlaceholder\": t(\"dosearch\"),\n \"sLengthMenu\": t(\"dataTable.lengthMenu\"),\n \"paginate\": {\n \"previous\": '«',\n \"next\": '»'\n },\n \"info\": t(\"dataTable.info\"),\n \"zeroRecords\": t(\"dataTable.nodatafilterd\"),\n \"infoFiltered\": ''\n }\n };\n //set form control class to filter\n $.extend($.fn.dataTableExt.oStdClasses, {\n \"sFilterInput\": \"form-control search\"\n });\n !dataTable ? $.extend(true, $.fn.dataTable.defaults, languageOptions) : dataTable.dataTable({ \"oLanguage\": languageOptions });\n };\n\n // route setting at the beginning (is an example)\n this._addRoutes = function () {\n ApplicationService.getRouterService().addRoute('map/zoomto/{coordinate}/:zoom:', function (coordinate, zoom) {\n coordinate = _.map(coordinate.split(','), function (xy) {\n return Number(xy);\n });\n zoom = zoom ? Number(zoom) : null;\n if (coordinate.length) {\n _gui2.default.getService('map').on('ready', function () {\n this.zoomTo(coordinate, zoom);\n });\n }\n });\n };\n\n //register all services\n this._setUpServices = function () {\n Object.keys(ApplicationTemplate.Services).forEach(function (element) {\n return ApplicationService.registerService(element, ApplicationTemplate.Services[element]);\n });\n\n Object.values(_gui2.default.getComponents()).forEach(function (component) {\n return ApplicationService.registerService(component.id, component.getService());\n });\n\n ApplicationTemplate.Services.viewport.on('resize', function () {\n return _gui2.default.emit('resize');\n });\n };\n // build template function\n this._buildTemplate = function () {\n var _this = this;\n\n _floatbar2.default.init(layout);\n Object.entries(this.templateConfig.placeholders).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n placeholder = _ref5[0],\n options = _ref5[1];\n\n return _this._addComponents(options.components, placeholder);\n });\n //register other components\n this._addOtherComponents();\n };\n\n //add component not related to placeholder\n this._addOtherComponents = function () {\n if (this.templateConfig.othercomponents) {\n this._addComponents(this.templateConfig.othercomponents);\n }\n };\n // viewport setting\n this._setViewport = function (viewportOptions) {\n // viewport components\n // es.: map e content\n /*\n components: {\n map: new MapComponent({\n id: 'map'\n }),\n content: new ContentsComponent({\n id: 'content',\n })\n }\n */\n if (viewportOptions) {\n ApplicationTemplate.Services.viewport.init(viewportOptions);\n this._addComponents(viewportOptions.components);\n }\n };\n\n // add component to template\n this._addComponent = function (component, placeholder) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this._addComponents([component], placeholder, options);\n return true;\n };\n\n // registry component\n this._addComponents = function (components, placeholder, options) {\n var register = true;\n if (placeholder && ApplicationTemplate.PLACEHOLDERS.indexOf(placeholder) > -1) {\n var placeholderService = ApplicationTemplate.Services[placeholder];\n if (placeholderService) {\n register = placeholderService.addComponents(components, options);\n }\n }\n Object.entries(components).forEach(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n key = _ref7[0],\n component = _ref7[1];\n\n if (register) {\n _components2.default.registerComponent(component);\n ApplicationService.registerService(component.id, component.getService());\n }\n });\n };\n\n this._removeComponent = function (componentId, placeholder, options) {\n if (placeholder && ApplicationTemplate.Services[placeholder]) {\n ApplicationTemplate.Services[placeholder].removeComponent(_components2.default.unregisterComponent(componentId), options);\n }\n };\n\n this._showModalOverlay = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var message = arguments[1];\n\n var mapService = _gui2.default.getService('map');\n if (bool) {\n mapService.startDrawGreyCover(message);\n } else {\n mapService.stopDrawGreyCover();\n }\n };\n\n this._isSidebarVisible = function () {\n return !$('body').hasClass('sidebar-collapse');\n };\n\n this._showSidebar = function () {\n $('body').addClass('sidebar-open');\n $('body').removeClass('sidebar-collapse');\n };\n\n this._hideSidebar = function () {\n $('body').removeClass('sidebar-open');\n $('body').addClass('sidebar-collapse');\n };\n\n /**\n * Convert error to user message showed\n * @param error\n * @returns {string}\n */\n _gui2.default.errorToMessage = function (error) {\n var message = 'server_error';\n switch (toRawType(error)) {\n case 'Error':\n message = 'CLIENT - ' + error.message;\n break;\n case 'Object':\n if (error.responseJSON) {\n error = error.responseJSON;\n if (error.result === false) {\n var _error$error = error.error,\n _error$error$code = _error$error.code,\n code = _error$error$code === undefined ? '' : _error$error$code,\n _error$error$data = _error$error.data,\n data = _error$error$data === undefined ? '' : _error$error$data,\n _error$error$message = _error$error.message,\n msg = _error$error$message === undefined ? '' : _error$error$message;\n\n message = code.toUpperCase() + ' ' + data + ' ' + msg;\n }\n } else if (error.responseText) {\n message = error.responseText;\n }\n break;\n case 'Array':\n message = error.map(function (error) {\n return _gui2.default.errorToMessage(error);\n }).join(' ');\n break;\n case 'String':\n default:\n message = error;\n }\n return message;\n };\n\n // setup Interaces\n this._setupInterface = function () {\n var _this2 = this;\n\n /* PUBLIC INTERFACE */\n\n /* Common methods */\n _gui2.default.layout = layout;\n _gui2.default.getSize = function (_ref8) {\n var element = _ref8.element,\n what = _ref8.what;\n\n if (element && what) return _this2.sizes[element][what];\n };\n\n _gui2.default.addComponent = this._addComponent.bind(this);\n _gui2.default.removeComponent = this._removeComponent.bind(this);\n\n /* Metodos to define */\n _gui2.default.getResourcesUrl = function () {\n return ApplicationService.getConfig().resourcesurl;\n };\n\n //LIST\n _gui2.default.showList = _floatbar2.default.showPanel.bind(_floatbar2.default);\n _gui2.default.closeList = _floatbar2.default.closePanel.bind(_floatbar2.default);\n _gui2.default.hideList = _floatbar2.default.hidePanel.bind(_floatbar2.default);\n\n // TABLE\n _gui2.default.showTable = function () {};\n _gui2.default.closeTable = function () {};\n\n /**\n * Function called from DataRouterservice for gui output\n * @param dataPromise\n * @param options\n */\n _gui2.default.outputDataPlace = function () {\n var _ref9 = _asyncToGenerator(function* (dataPromise) {\n var _this3 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // show parameter it used to set condition to show result or not\n // loading parameter is used to show result content when we are wait the response. Default true otherwise we shoe result content at the end\n var defaultOutputConfig = { condition: true, add: false, loading: true };\n var _options$title = options.title,\n title = _options$title === undefined ? '' : _options$title,\n _options$show = options.show,\n show = _options$show === undefined ? defaultOutputConfig : _options$show,\n before = options.before,\n after = options.after;\n // convert show in an object\n\n var outputConfig = toRawType(show) !== 'Object' ? {\n condition: show, // can be Function or Boolean otherwise is set true\n add: false,\n loading: true\n } : _extends({}, defaultOutputConfig, show);\n var condition = outputConfig.condition,\n add = outputConfig.add,\n loading = outputConfig.loading;\n //check if waiting output data\n // in case we stop and substiute with new request data\n\n if (this.waitingoutputdataplace) {\n yield this.waitingoutputdataplace.stop();\n }\n var queryResultsService = add ? _gui2.default.getService('queryresults') : loading && this.showContentFactory('query')(title);\n this.waitingoutputdataplace = function () {\n var _stop = false;\n _asyncToGenerator(function* () {\n try {\n var data = yield dataPromise;\n //if set before call method and wait\n before && (yield before(data));\n // in case of usermessage show user message\n if (data.usermessage) {\n _gui2.default.showUserMessage({\n type: data.usermessage.type,\n message: data.usermessage.message,\n autoclose: data.usermessage.autoclose\n });\n }\n if (!_stop) {\n // check condition\n var showResult = toRawType(condition) === 'Function' ? condition(data) : toRawType(condition) === 'Boolean' ? condition : true;\n if (showResult) {\n (queryResultsService ? queryResultsService : _this3.showContentFactory('query')(title)).setQueryResponse(data, {\n add: add\n });\n } else {\n _gui2.default.closeContent();\n }\n // call after is set with data\n if (after) {\n after(data);\n }\n }\n } catch (e) {\n _this3.showUserMessage({\n type: 'alert',\n message: _this3.errorToMessage(e),\n textMessage: true\n });\n _this3.closeContent();\n } finally {\n if (!_stop) {\n _this3.waitingoutputdataplace = null;\n }\n }\n })();\n return {\n stop: function () {\n var _ref11 = _asyncToGenerator(function* () {\n return _stop = true;\n });\n\n function stop() {\n return _ref11.apply(this, arguments);\n }\n\n return stop;\n }()\n };\n }();\n });\n\n return function (_x6) {\n return _ref9.apply(this, arguments);\n };\n }();\n\n _gui2.default.showContentFactory = function (type) {\n var showPanelContent = void 0;\n switch (type) {\n case 'query':\n showPanelContent = _gui2.default.showQueryResults;\n break;\n case 'form':\n showPanelContent = _gui2.default.showForm;\n break;\n }\n return showPanelContent;\n };\n\n _gui2.default.showForm = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var perc = options.perc,\n _options$split = options.split,\n split = _options$split === undefined ? 'h' : _options$split,\n push = options.push,\n showgoback = options.showgoback,\n crumb = options.crumb;\n\n var FormComponent = require('gui/form/vue/form');\n // new isnstace every time\n var formComponent = options.formComponent ? new options.formComponent(options) : new FormComponent(options);\n //get service\n var formService = formComponent.getService();\n // parameters : [content, title, push, perc, split, closable, crumb]\n _gui2.default.setContent({\n perc: perc,\n content: formComponent,\n split: split,\n crumb: crumb,\n push: !!push, //only one (if other deletes previous component)\n showgoback: !!showgoback,\n closable: false\n });\n // return service\n return formService;\n };\n\n /**\n *\n * @param pop remove or not content or pop\n */\n _gui2.default.closeForm = function () {\n var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref12$pop = _ref12.pop,\n pop = _ref12$pop === undefined ? false : _ref12$pop;\n\n this.emit('closeform', false);\n if (pop) {\n _gui2.default.popContent();\n } else {\n _viewport2.default.removeContent();\n }\n // force set modal to false\n _gui2.default.setModal(false);\n };\n\n _gui2.default.disableElement = function (_ref13) {\n var element = _ref13.element,\n disable = _ref13.disable;\n\n $(element)[disable ? 'addClass' : 'removeClass']('g3w-disabled');\n };\n\n _gui2.default.disableContent = function (disable) {\n _viewport2.default.disableContent(disable);\n };\n\n _gui2.default.disablePanel = function () {\n var disable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n _gui2.default.disableElement({\n element: \"#g3w-sidebarpanel-placeholder\",\n disable: disable\n });\n };\n\n // hide content\n _gui2.default.hideContent = function (bool, perc) {\n return _viewport2.default.hideContent(bool, perc);\n };\n\n _gui2.default.closeContent = function () {\n this.emit('closecontent', false);\n return _viewport2.default.closeContent();\n };\n\n _gui2.default.closeOpenSideBarComponent = function () {\n ApplicationTemplate.Services.sidebar.closeOpenComponents();\n };\n\n // show results info/search\n _gui2.default.showQueryResults = function (title, results) {\n var queryResultsComponent = _gui2.default.getComponent('queryresults');\n var queryResultService = queryResultsComponent.getService();\n queryResultService.reset();\n if (results) {\n queryResultService.setQueryResponse(results);\n }\n _gui2.default.showContextualContent({\n content: queryResultsComponent,\n title: \"info.title\",\n crumb: { title: \"info.title\", trigger: null },\n push: _gui2.default.getPushContent(),\n post_title: title\n });\n\n return queryResultService;\n };\n\n _gui2.default.addNavbarItem = function (item) {\n _navbaritems2.default.addItem(item);\n };\n\n _gui2.default.removeNavBarItem = function () {};\n\n _gui2.default.showPanel = _sidebar2.default.showPanel.bind(_sidebar2.default);\n\n _gui2.default.closePanel = _sidebar2.default.closePanel.bind(_sidebar2.default);\n\n ///\n _gui2.default.disableApplication = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n ApplicationService.disableApplication(bool);\n };\n\n //showusermessage\n _gui2.default.showUserMessage = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return _viewport2.default.showUserMessage(options);\n };\n\n _gui2.default.closeUserMessage = function () {\n _viewport2.default.closeUserMessage();\n };\n\n /* ------------------ */\n _gui2.default.notify = {\n warning: function warning(message) {\n var autoclose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _gui2.default.showUserMessage({\n type: 'warning',\n message: message,\n autoclose: autoclose\n });\n },\n error: function error(message) {\n var autoclose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _gui2.default.showUserMessage({\n type: 'alert',\n message: message,\n autoclose: autoclose\n });\n },\n info: function info(message) {\n var autoclose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _gui2.default.showUserMessage({\n type: 'info',\n message: message,\n autoclose: autoclose\n });\n },\n success: function success(message) {\n _gui2.default.showUserMessage({\n type: 'success',\n message: message,\n autoclose: true\n });\n }\n };\n\n // proxy bootbox library\n _gui2.default.dialog = bootbox;\n\n //modal dialog//\n _gui2.default.showModalDialog = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return _gui2.default.dialog.dialog(options);\n };\n\n /* spinner */\n _gui2.default.showSpinner = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var container = options.container || 'body';\n var id = options.id || 'loadspinner';\n var where = options.where || 'prepend'; // append | prepend\n var style = options.style || '';\n var transparent = options.transparent ? 'background-color: transparent' : '';\n var center = options.center ? 'margin: auto' : '';\n if (!$('#' + id).length) {\n $(container)[where].call($(container), '');\n }\n };\n\n //hide spinner\n _gui2.default.hideSpinner = function () {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'loadspinner';\n\n $('#' + id).remove();\n };\n\n /* end spinner*/\n /* end common methods */\n\n /* */\n\n // FLOATBAR //\n _gui2.default.showFloatbar = function () {\n _floatbar2.default.open();\n };\n\n _gui2.default.hideFloatbar = function () {\n _floatbar2.default.close();\n };\n\n // SIDEBAR //\n _gui2.default.showSidebar = this._showSidebar.bind(this);\n _gui2.default.hideSidebar = this._hideSidebar.bind(this);\n _gui2.default.isSidebarVisible = this._isSidebarVisible.bind(this);\n\n // RELOAD COMPONENTS\n _gui2.default.reloadComponents = function () {\n ApplicationTemplate.Services.sidebar.reloadComponents();\n };\n\n // MODAL\n _gui2.default.setModal = this._showModalOverlay.bind(this);\n\n /**\n * Toggle set full screen modal\n */\n _gui2.default.showFullModal = function () {\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref14$element = _ref14.element,\n element = _ref14$element === undefined ? \"#full-screen-modal\" : _ref14$element,\n _ref14$show = _ref14.show,\n show = _ref14$show === undefined ? true : _ref14$show;\n\n $(element).modal(show ? 'show' : 'hide');\n };\n\n _gui2.default.disableSideBar = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _applicationState2.default.gui.sidebar.disabled = bool;\n };\n\n // VIEWPORT //\n _gui2.default.setPrimaryView = function (viewName) {\n _viewport2.default.setPrimaryView(viewName);\n };\n\n // only map\n _gui2.default.showMap = function () {\n _viewport2.default.showMap();\n };\n\n _gui2.default.showContextualMap = function () {\n var perc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;\n var split = arguments[1];\n\n _viewport2.default.showContextualMap({ perc: perc, split: split });\n };\n\n _gui2.default.setContextualMapComponent = function (mapComponent) {\n _viewport2.default.setContextualMapComponent(mapComponent);\n };\n\n _gui2.default.resetContextualMapComponent = function () {\n _viewport2.default.resetContextualMapComponent();\n };\n\n // (100%) content\n _gui2.default.showContent = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _gui2.default.setLoadingContent(false);\n options.perc = _this2._isMobile ? 100 : options.perc;\n _gui2.default.setContent(options);\n return true;\n };\n\n _gui2.default.showContextualContent = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n options.perc = _this2._isMobile ? 100 : options.perc;\n _gui2.default.setContent(options);\n return true;\n };\n\n // add component to stack (append)\n // Differences between pushContent and setContent are:\n // - push every component is added, set is refreshed\n // - pushContent has a new parameter (backonclose) when is clicked x\n // - the contentComponent is close all stacks are closed\n _gui2.default.pushContent = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n options.perc = _this2._isMobile ? 100 : options.perc;\n options.push = true;\n _gui2.default.setContent(options);\n };\n\n // add content to stack\n _gui2.default.pushContextualContent = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n options.perc = _this2._isMobile ? 100 : options.perc;\n _gui2.default.pushContent(options);\n };\n\n // remove last content from stack\n _gui2.default.popContent = function () {\n _viewport2.default.popContent();\n };\n //return number of a component of stack\n _gui2.default.getContentLength = function () {\n return _viewport2.default.contentLength();\n };\n\n _gui2.default.getCurrentContentTitle = function () {\n return _viewport2.default.getCurrentContentTitle();\n };\n\n _gui2.default.getCurrentContentId = function () {\n return _viewport2.default.getCurrentContentId();\n };\n\n /**\n * change current content title\n * @param title\n */\n _gui2.default.changeCurrentContentTitle = function (title) {\n _viewport2.default.changeCurrentContentTitle(title);\n };\n\n /**\n * change current content options\n * @param options: {title, crumb}\n */\n _gui2.default.changeCurrentContentOptions = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _viewport2.default.changeCurrentContentOptions(options);\n };\n\n /**\n * Method to get current content\n */\n _gui2.default.getCurrentContent = function () {\n return _viewport2.default.getCurrentContent();\n };\n\n _gui2.default.toggleFullViewContent = function () {\n _viewport2.default.toggleFullViewContent();\n };\n\n _gui2.default.resetToDefaultContentPercentage = function () {\n _viewport2.default.resetToDefaultContentPercentage();\n };\n\n _gui2.default.getProjectMenuDOM = function () {\n var _ref15 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref15$projects = _ref15.projects,\n projects = _ref15$projects === undefined ? [] : _ref15$projects,\n host = _ref15.host,\n cbk = _ref15.cbk;\n\n var projectVueMenuComponent = new ProjectsMenuComponent({\n projects: projects && Array.isArray(projects) && projects,\n cbk: cbk,\n host: host\n }).getInternalComponent();\n return projectVueMenuComponent.$mount().$el;\n };\n\n _gui2.default.setCloseUserMessageBeforeSetContent = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this._closeUserMessageBeforeSetContent = bool;\n };\n\n _gui2.default._setContent = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (_this2._closeUserMessageBeforeSetContent) {\n _gui2.default.closeUserMessage();\n }\n options.content = options.content || null;\n options.title = options.title || \"\";\n options.push = _.isBoolean(options.push) ? options.push : false;\n options.perc = _this2._isMobile ? 100 : options.perc;\n options.split = options.split || 'h';\n options.backonclose = _.isBoolean(options.backonclose) ? options.backonclose : false;\n options.showtitle = _.isBoolean(options.showtitle) ? options.showtitle : true;\n _viewport2.default.showContent(options);\n };\n\n _gui2.default.hideClientMenu = function () {\n ApplicationService.getConfig().user = null;\n };\n\n _gui2.default.hideChangeMaps = function () {\n ApplicationService.getConfig().projects = [];\n };\n\n // return specific classes\n _gui2.default.getTemplateClasses = function () {\n return BootstrapVersionClasses;\n };\n\n _gui2.default.getTemplateClass = function () {\n var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n element = _ref16.element,\n type = _ref16.type;\n\n return BootstrapVersionClasses[element][type];\n };\n\n _gui2.default.setLoadingContent = function () {\n var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n ApplicationTemplate.Services.viewport.setLoadingContent(loading);\n return loading && new Promise(function (resolve) {\n return setTimeout(resolve, 200);\n });\n };\n\n _gui2.default.openProjectsMenu = function () {\n if (_gui2.default.getComponent('contents').getComponentById('projectsmenu')) {\n _gui2.default.closeContent();\n return;\n }\n if (this.isMobile()) {\n _gui2.default.hideSidebar();\n $('#main-navbar.navbar-collapse').removeClass('in');\n }\n ApplicationTemplate.Services.sidebar.closeOpenComponents();\n _gui2.default.setContent({\n content: new ProjectsMenuComponent(),\n title: '',\n perc: 100\n });\n };\n\n /**\n * @since 3.8.0\n */\n _gui2.default.openChangeMapMenu = function () {\n if (_gui2.default.getComponent('contents').getComponentById('changemapmenu')) {\n _gui2.default.closeContent();\n return;\n }\n if (this.isMobile()) {\n _gui2.default.hideSidebar();\n $('#main-navbar.navbar-collapse').removeClass('in');\n }\n ApplicationTemplate.Services.sidebar.closeOpenComponents();\n _gui2.default.setContent({\n content: new ChangeMapMenuComponent(),\n title: '',\n perc: 100\n });\n };\n };\n\n base(this);\n};\n\ninherit(ApplicationTemplate, G3WObject);\n\n// Placeholder knowed by application\nApplicationTemplate.PLACEHOLDERS = ['navbar', 'sidebar', 'viewport', 'floatbar'];\n\n// service know by the applications (standard)\nApplicationTemplate.Services = {\n navbar: null,\n sidebar: _sidebar2.default,\n viewport: _viewport2.default,\n floatbar: null\n};\n\nApplicationTemplate.fail = function (_ref17) {\n var error = _ref17.error;\n\n layout.loading(false);\n new Vue(_extends({\n el: '#app'\n }, Vue.compile('\\n \\n Oops! \\n ' + (error || t('error_page.error')) + ' \\n ' + t('error_page.at_moment') + ' \\n ' + t('error_page.f5') + ' \\n \\n \\n Oops! \\n ' + (error || t('error_page.error')) + ' \\n ' + t('error_page.at_moment') + ' \\n ' + t('error_page.error') + ' \\n \\n
')));\n};\n\n/**\n * Application starting point\n *\n * create the ApplicationTemplate instance passing template interface configuration\n * and the applicationService instance that is useful to work with project API\n */\n_application2.default.init().then(function () {\n var app = new ApplicationTemplate({ ApplicationService: _application2.default });\n app.on('ready', function () {\n return _application2.default.postBootstrap();\n });\n app.init();\n}).catch(function (_ref18) {\n var _ref18$error = _ref18.error,\n error = _ref18$error === undefined ? null : _ref18$error,\n language = _ref18.language;\n\n if (error) {\n if (error.responseJSON && error.responseJSON.error.data) {\n error = error.responseJSON.error.data;\n } else if (error.statusText) {\n error = error.statusText;\n }\n }\n console.error(error);\n ApplicationTemplate.fail({ error: error });\n});\n\n},{\"./deprecated\":241,\"./globals\":257,\"app/constant\":5,\"components/App.vue\":118,\"components/Floatbar.vue\":135,\"components/GlobalBarLoader.vue\":140,\"components/GlobalDateTime.vue\":141,\"components/GlobalDivider.vue\":142,\"components/GlobalGallery.vue\":143,\"components/GlobalGeo.vue\":144,\"components/GlobalHelpDiv.vue\":145,\"components/GlobalImage.vue\":146,\"components/GlobalLayerPositions.vue\":147,\"components/GlobalProgressBar.vue\":148,\"components/GlobalRange.vue\":149,\"components/GlobalResize.vue\":150,\"components/GlobalResizeIcon.vue\":151,\"components/GlobalSkeleton.vue\":152,\"components/GlobalTabs.vue\":153,\"components/NavbaritemsLeft.vue\":189,\"components/NavbaritemsRight.vue\":190,\"components/Sidebar.vue\":213,\"components/Viewport.vue\":223,\"core/g3wobject\":11,\"core/i18n/i18n.service\":12,\"directives/v-checked\":243,\"directives/v-click-outside\":244,\"directives/v-disabled\":245,\"directives/v-download\":246,\"directives/v-online\":247,\"directives/v-plugins\":248,\"directives/v-select2\":249,\"directives/v-selected-first\":250,\"directives/v-t\":256,\"directives/v-t-html\":251,\"directives/v-t-placeholder\":252,\"directives/v-t-plugin\":253,\"directives/v-t-title\":254,\"directives/v-t-tooltip\":255,\"gui/catalog/vue/catalog\":63,\"gui/changemapmenu/changemapmenu\":64,\"gui/form/vue/form\":69,\"gui/map/vue/map\":103,\"gui/metadata/vue/metadata\":104,\"gui/print/vue/print\":106,\"gui/projectsmenu/projectsmenu\":107,\"gui/querybuilder/querybuilderuifactory\":108,\"gui/queryresults/vue/queryresults\":110,\"gui/search/vue/search\":113,\"gui/spatialbookmarks/vue/spatialbookmarks\":114,\"gui/tools/vue/tools\":115,\"gui/viewport/contentsviewer\":116,\"gui/wms/vue/wms\":117,\"services/application\":282,\"services/floatbar\":285,\"services/gui\":286,\"services/navbaritems\":288,\"services/sidebar\":291,\"services/viewport\":293,\"store/application-state\":294,\"store/components\":296,\"store/projects\":301,\"utils\":388}],259:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Verbindungsfehler\",\n at_moment: \"Karte anzeigen ist im Moment nicht möglich\",\n f5: \"Drücken Sie Strg+F5\"\n },\n cookie_law: {\n message: \"Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung auf unserer Website zu bieten.\",\n buttonText: \"Verstanden!\"\n },\n default: \"default\",\n sign_in: \"Anmelden\",\n layer_selection_filter: {\n tools: {\n filter: \"Filter aktivieren/deaktivieren\",\n nofilter: \"Filter entfernen\",\n invert: \"Auswahl umkehren\",\n clear: \"Auswahl löschen\",\n show_features_on_map: \"Aktualisieren Sie die Ergebnisse beim Verschieben der Karte\",\n savefilter: \"Filter speichern\",\n filterName: \"Filtername\"\n }\n },\n warning: {\n not_supported_format: \"Nicht unterstütztes Format\"\n },\n layer_position: {\n top: 'OBEN',\n bottom: 'UNTEN',\n message: \"Position relativ zu den Layern im TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Template auswählen\"\n }\n },\n spatialbookmarks: {\n title: \"Räumliche Lesezeichen\",\n helptext: \"Bewegen Sie sich auf der Kartenausdehnung, fügen Sie den Namen ein und klicken Sie auf Hinzufügen\",\n input: {\n name: \"Name\"\n },\n sections: {\n project: {\n title: \"Projekt-Lesezeichen\"\n },\n user: {\n title: \"Benutzer-Lesezeichen\"\n }\n }\n },\n search: {\n all: 'ALLE',\n no_results: \"Keine Ergebnisse\",\n searching: \"Suchen ...\",\n error_loading: \"Fehler beim Datenladen\",\n layer_not_searchable: \"Layer ist nicht durchsuchbar\",\n layer_not_querable: \"Layer ist nicht abfragbar\",\n autocomplete: {\n inputshort: {\n pre: \"Bitte\",\n post: \"oder mehrere Zeichen eingeben\"\n }\n }\n },\n print: {\n no_layers: 'Kein Layer zu drucken',\n template: \"Template\",\n labels: \"Labels\",\n scale: \"Skala\",\n format: \"Format\",\n rotation: \"Drehung\",\n download_image: \"Bild herunterladen\",\n fids_instruction: \"Akzeptierte Werte: von 1 bis [max]. Es ist möglich, ein Intervall einzugeben, z. B. 4-6\",\n fids_example: \"Bsp. 1,4-6 druckt id 1,4,5,6\",\n help: \"Die im Druck angezeigten Layer können die im Projekt definierten sein und nicht die auf der Karte angezeigten\"\n },\n querybuilder: {\n search: {\n run: \"Ausführen\",\n info: \"Information\",\n delete: \"Löschen\",\n edit: \"Bearbeiten\"\n },\n messages: {\n changed: 'Gespeichert',\n number_of_features: \"Anzahl der Features\"\n },\n panel: {\n button: {\n all: 'ALLE',\n save: 'SPEICHERN',\n test: 'TEST',\n clear: 'LÖSCHEN',\n run: 'AUSFÜHREN',\n manual: 'MANUELL'\n },\n layers: 'LAYERS',\n fields: 'FELDER',\n values: 'WERTE',\n operators: 'OPERATOREN',\n expression: 'AUSDRUCK'\n },\n error_run: 'Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Abfrage',\n error_test: \"Während der Ausführung der Abfrage ist ein Fehler aufgetreten\",\n delete: 'Soll es gelöscht werden?',\n additem: 'Geben Sie den Namen der neuen Suche ein'\n },\n errors: {\n layers: {\n load: \"Einige Layer sind nicht verfügbar\"\n },\n unsupported_format: 'Nicht unterstütztes Format',\n add_external_layer: 'Fehler im Ladevorgang des Layers'\n },\n metadata: {\n title: 'Metadaten',\n groups: {\n general: {\n title: 'ALLGEMEIN',\n fields: {\n title: 'TITEL',\n name: 'NAME',\n description: \"BESCHREIBUNG\",\n abstract: \"ABASTRACT\",\n keywords: 'SCHLÜSSELWÖRTER',\n fees: \"GEBÜHREN\",\n accessconstraints: \"ZUGRIFFSBESCHRÄNKUNG\",\n contactinformation: \"KONTAKTE\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"Email\",\n personprimary: 'Referenzen',\n contactvoicetelephone: 'Telefon',\n contactorganization: 'Firma',\n ContactOrganization: 'Firma',\n contactposition: 'Position',\n ContactPosition: 'Position',\n contactperson: 'Person',\n ContactPerson: 'Person'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'SPATIAL',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'LAYERS',\n fields: {\n layers: 'LAYERS',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"TITEL\",\n name: 'NAME',\n geometrytype: 'GEOMETRIE',\n source: 'QUELLE',\n attributes: 'ATTRIBUTE',\n abstract: 'ABSTRACT',\n attribution: 'ATRIBUTION',\n keywords: \"SCHLÜSSELWÖRTER\",\n metadataurl: 'METADATEN URL',\n dataurl: \"DATEN URL\"\n }\n },\n groups: {\n general: 'ALLGEMEIN',\n spatial: 'SPATIAL'\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Zeilenansicht\",\n row_to_form: \"Formularansicht\",\n zoomtogeometry: \"Auf Geometrie zoomen\"\n },\n copy_map_extent_url: 'Link zur Kartenansicht kopieren',\n download_shapefile: \"Shapefile herunterladen\",\n download_gpx: \"DGPX herunterladen\",\n download_gpkg: \"GPKG herunterladen\",\n download_csv: \"CSV herunterladen\",\n download_xls: \"XLS herunterladen\",\n download_pdf: \"PDF herunterladen\",\n show_chart: \"Diagramm anzeigen\",\n atlas: \"Atlas drucken\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Query layer',\n actions: {\n add_selection: {\n hint: \"Auswahl hinzufügen/entfernen\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom auf Feature-Ausdehnung\"\n },\n add_features_to_results: {\n hint: \"Hinzufügen/Entfernen von Features zu den Ergebnissen\"\n },\n remove_feature_from_results: {\n hint: \"Feature aus den Ergebnissen entfernen\"\n },\n zoom_to_feature: {\n hint: \"Zum Feature zoomen\"\n },\n relations: {\n hint: \"Relationen anzeigen\"\n },\n relations_charts: {\n hint: \"Relationship-Diagramm anzeigen\"\n },\n download_features_shapefile: {\n hint: 'Features Shapefile herunterladen'\n },\n download_shapefile: {\n hint: 'Feature Shapefile herunterladen'\n },\n download_features_gpx: {\n hint: \"Feature GPX herunterladen\"\n },\n download_features_gpkg: {\n hint: \"Feature GPKG herunterladen\"\n },\n download_gpx: {\n hint: \"Feature GPX herunterladen\"\n },\n download_gpkg: {\n hint: \"Feature GPKG herunterladen\"\n },\n download_features_csv: {\n hint: \"Features CSV herunterladen\"\n },\n download_csv: {\n hint: \"Feature CSV herunterladen\"\n },\n download_features_xls: {\n hint: \"Features XLS herunterladen\"\n },\n download_xls: {\n hint: \"Feature XLS herunterladen\"\n },\n download_pdf: {\n hint: \"Feature PDF herunterladen\"\n },\n atlas: {\n hint: \"Atlas drucken\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Kopieren der Karten-URL mit dieser Geometrie-Feature-Erweiterung\",\n hint_change: \"Kopiert\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Attribute herunterladen\",\n choiches: {\n feature: {\n label: \"Nur Features\"\n },\n feature_polygon: {\n label: \"Features+Query Polygon\"\n }\n }\n },\n tooltip: 'Query nach Polygon',\n no_geometry: 'Keine Geometrie in der Antwort',\n help: {\n title: 'Hilfe - Abfrage nach Polygon',\n message: \"Wählen Sie einen Polygon Layer auf TOC. Stellen Sie sicher, dass der Layer sichtbar ist. Klicken Sie auf ein Feature des ausgewählten Layers. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Abfrage durch Polygon zeichnen\"\n },\n querybybbox: {\n tooltip: 'BBox Layer abfragen',\n nolayers_visible: 'Es sind keine abfragbaren Layer sichtbar. Bitte setzen Sie mindestens einen sichtbaren wfs Layer, um die Abfrage zu starten',\n help: {\n title: 'Hilfe - Abfrage des BBox Layers',\n message: \"Ein Quadrat auf der Karte ziehen, um unterstrichene Layer im TOC abzufragen \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"Das Ergebnis in der Karte ist unvollständig, da die unten stehende Liste fehlerhafter Einträge enthält:\"\n }\n },\n tooltip: 'Layer hinzufügen'\n },\n geolocation: {\n tooltip: 'Geolokalisierung'\n },\n measures: {\n length: {\n tooltip: \"Länge\",\n help: \"Klicken Sie auf die Karte, um die Linie zu zeichnen. Drücken Sie CANC, wenn Sie den letzten Eckpunkt löschen möchten.\"\n },\n area: {\n tooltip: \"Fläche\",\n help: \"Drücken Sie CANC, wenn Sie den letzten Eckpunkt löschen wollen.\"\n }\n },\n scale: {\n no_valid_scale: \"Ungültige Skala\"\n },\n scaleline: {\n units: {\n metric: 'Meter',\n nautical: 'Nautische Meile'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Vorheriger\",\n zoom_next: \"Zoom Nächster\"\n }\n },\n relations: {\n relation_data: 'Daten zur Relation',\n no_relations_found: 'Keine Relationen gefunden',\n back_to_relations: 'Zurück zu den Relationen',\n list_of_relations_feature: 'Liste der Relationen des Features',\n error_missing_father_field: \"Ein Feld fehlt\"\n },\n form: {\n loading: 'Laden ...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Kein Feature ausgewählt. Prüfen, ob der Layer in Bearbeitung oder im aktuellen Maßstab sichtbar ist\"\n }\n },\n tooltips: {\n picklayer: \"Wert aus dem Layer abrufen\",\n lonlat: \"Zum Abrufen der Koordinaten auf die Karte klicken\"\n },\n input_validation_mutually_exclusive: \"Feld schließt sich gegenseitig aus mit \",\n input_validation_error: \"Obligatorisches Feld oder falscher Datentyp\",\n input_validation_min_field: \"Der Wert muss größer/gleich sein als der Feldwert \",\n input_validation_max_field: \"Der Wert muss kleiner/gleich sein als der Feldwert \",\n input_validation_exclude_values: \"Wert muss einmalig sein\",\n integer: \"integer\",\n bigint: \"integer\",\n text: \"text\",\n varchar: \"text\",\n textarea: \"text\",\n string: \"string\",\n date: \"date\",\n datetime: \"date\",\n float: \"float\",\n table: \"table\"\n },\n footer: {\n \"required_fields\": \"Erforderliche Felder\"\n },\n messages: {\n qgis_input_widget_relation: \"Spezifisches Relations-Formular verwenden, um mit Relationen zu arbeiten\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"THEMA\",\n choose_map_theme: \"THEMA AUSWÄHLEN\",\n choose_map_theme_input_label: 'Name des neuen Themes',\n project_map_theme: 'Projekt Themes',\n user_map_theme: 'Benutzer Themes',\n question_delete_map_theme: \"Möchten Sie das Thema löschen??\",\n delete_map_theme: \"Theme erfolgreich gelöscht\",\n saved_map_theme: \"Thema erfolgreich gespeichert\",\n updated_map_theme: \"Thema aktualisieren gespeichert\",\n invalid_map_theme_name: \"Der Name ist bereits vorhanden oder falsch\",\n menu: {\n layerposition: 'Position der Ebenen',\n setwmsopacity: \"Opazität einstellen\",\n wms: {\n title: \"\",\n copy: \"Klicken Sie hier, um die Url zu kopieren\",\n copied: \"Kopiert\"\n },\n download: {\n unknow: \"Herunterladen\",\n shp: 'Shapefile herunterladen',\n gpx: 'GPX herunterladen',\n gpkg: 'GPKG herunterladen',\n csv: 'CSV herunterladen',\n xls: 'XLS herunterladen',\n geotiff: \"GEOTIFF herunterladen\",\n geotiff_map_extent: \"GEOTIFF herunterladen (aktueller Ansichtsumfang)\"\n }\n }\n },\n wps: {\n list_process: \"Liste der Prozesse\",\n tooltip: 'Karte anklicken'\n }\n },\n credits: {\n g3wSuiteFramework: \"Applikation basiert auf OS-Framework\",\n g3wSuiteDescription: \"Veröffentlichen und verwalten Sie Ihre QGIS-Projekte im Internet\",\n productOf: \"Framework entwickelt von\"\n },\n toggle_color_scheme: \"Farbschema umschalten\",\n logout: \"Logout\",\n no_other_projects: \"Kein weiteres Projekt für diese Gruppe\",\n no_other_groups: \"Keine weiteren Gruppen für diese Makrogruppe\",\n yes: \"Ja\",\n no: \"No\",\n back: \"Zurück\",\n backto: \"Zurück zu \",\n changemap: \"Karte ändern\",\n change_session: \"Sitzung ändern\",\n component: \"Allgemeine Komponente\",\n search: \"Suche\",\n no_results: \"Keine Ergebnisse gefunden\",\n print: \"Drucken\",\n create_print: \"Drucken erstellen\",\n dosearch: \"Suche\",\n catalog: \"Karte\",\n data: \"Daten\",\n externalwms: \"WMS\",\n baselayers: \"Base\",\n tools: \"Tools\",\n tree: \"Layers\",\n legend: \"Legende\",\n nobaselayer: \"Keine Basemap\",\n street_search: \"Adresse finden\",\n show: \"Anzeigen\",\n hide: \"Ausblenden\",\n copy_form_data: \"Daten kopieren\",\n paste_form_data: \"Einfügen\",\n copy_form_data_from_feature: \"Daten von der Karte kopieren\",\n error_map_loading: \"Fehler beim Laden der Karte\",\n check_internet_connection_or_server_admin: \"Internetverbindung prüfen oder Admin kontaktieren\",\n could_not_load_vector_layers: \"Verbindungsfehler: Layers können geladen werden\",\n server_saver_error: \"Fehler beim Speichern auf dem Server\",\n server_error: \"Server-Verbindungsfehler\",\n save: \"Speichern\",\n cancel: \"Abbrechen\",\n update: \"Aktualisieren\",\n close: \"Schließen\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Diese Meldung nicht mehr anzeigen\",\n enlange_reduce: \"Vergrößern / Verkleinern\",\n reset_default: \"Standardgröße\",\n add: \"Hinzufügen\",\n exitnosave: \"Beenden ohne Speichern\",\n annul: \"Abbrechen\",\n layer_is_added: \"Layer mit gleichem Namen bereits hinzugefügt\",\n sidebar: {\n wms: {\n panel: {\n title: 'WMS Layer hinzufügen',\n label: {\n position: \"Kartenposition\",\n name: \"Name\",\n projections: 'Projektion',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"WMS Layer hinzufügen\",\n delete_wms_url: \"WMS Url löschen\",\n layer_id_already_added: \"WMS Layer bereits hinzugefügt\",\n url_already_added: \"WMS URL/Name bereits hinzugefügt\",\n layer_add_error: \"WMS Layer nicht hinzugefügt. Bitte überprüfen Sie alle WMS-Parameter oder Url\"\n }\n },\n info: {\n title: \"Ergebnisse\",\n list_of_relations: \"List of Relations\",\n open_link: \"Beigefügtes Dokument öffnen\",\n server_error: \"Auf dem Server ist ein Fehler aufgetreten\",\n no_results: \"Keine Ergebnisse für diese Anfrage/Suche gefunden\",\n link_button: \"Öffnen\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Position kann nicht bestimmt werden\"\n },\n geocoding: {\n choose_layer: \"Wählen Sie eine Ebene aus, auf der Sie diese Funktion hinzufügen möchten\",\n placeholder: \"Addresse ...\",\n nolayers: \"Für dieses Projekt wurden keine bearbeitbaren Punktebenen gefunden\",\n noresults: \"Keine Ergebnisse\",\n notresponseserver: \"Keine Antwort vom Server\"\n },\n add_layer_control: {\n header: \"Layer hinzufügen\",\n select_projection: \"Layer Projektion auswählen\",\n select_field_to_show: \"Feld auswählen, das auf der Karte angezeigt werden soll\",\n select_csv_separator: \"Begrenzer auswählen\",\n select_csv_x_field: \"X-Feld auswählen\",\n select_csv_y_field: \"Y-Feld auswählen\",\n select_color: \"Layer Farbe auswählen\",\n drag_layer: \"Layer hierher ziehen und ablegen\"\n },\n query: {\n input_relation: \"Klicken, um Relationen anzuzeigen\"\n },\n length: {\n tooltip: \"Länge\"\n },\n area: {\n tooltip: \"Area\"\n },\n screenshot: {\n error: \"Screenshot Fehlererstellung\",\n securityError: \" \\n Sicherheitsfehler : Eine externe Ebene verhindert, dass die Karte gedruckt wird. Gehen Sie zur \\xDCberpr\\xFCfung wie folgt vor:
\\n \\n Entfernen Sie alle manuell hinzugef\\xFCgten externen Ebenen (z. B. WMS-Ebenen) \\n Neuladen der Seite erzwingen: STRG + F5
\\n Drucken Sie die Karte erneut \\n \\n F\\xFCr weitere Informationen wenden Sie sich bitte an den Serveradministrator zu: ℹ️ Sicherheit und befleckte Leinw\\xE4nde
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Klicken Sie mit der rechten Maustaste auf einen einzelnen Layer, um auf zusätzliche Funktionen zuzugreifen\",\n contextmenu: {\n zoomtolayer: \"Zoom auf Layer\",\n open_attribute_table: \"Attributtabelle öffnen\",\n show_metadata: \"Metadaten\",\n styles: 'Stile',\n vector_color_menu: \"Farbe einstellen/ändern\",\n layer_opacity: \"Opazität\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Vorherige\",\n next: \"Weiter\",\n lengthMenu: \"Zeigen Sie _MENU_ Werte pro Seite an\",\n info: \"_TOTAL_ Ergebnissen\",\n no_data: \"Keine Daten\",\n nodatafilterd: \"Keine passenden Datensätze gefunden\",\n infoFiltered: \"(gefiltert aus _MAX_ Gesamtsätzen)\"\n }\n }\n};\n\n},{}],260:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Connection error\",\n at_moment: \"At the moment is not possible show map\",\n f5: \"Press Ctrl+F5\"\n },\n cookie_law: {\n message: \"This website uses cookies to ensure you get the best experience on our website.\",\n buttonText: \"Got It!\"\n },\n default: \"default\",\n sign_in: \"Sign in\",\n layer_selection_filter: {\n tools: {\n filter: \"Enable/Disable filter\",\n nofilter: \"Remove Filter\",\n invert: \"Invert Selection\",\n clear: \"Clear Selection\",\n show_features_on_map: \"Update results when map moves\",\n savefilter: \"Save Filter\",\n filterName: \"Filter Name\"\n }\n },\n warning: {\n not_supported_format: \"Not supported format\"\n },\n layer_position: {\n top: 'TOP',\n bottom: 'BOTTOM',\n message: \"Position relative to layers on TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Select Template\"\n }\n },\n spatialbookmarks: {\n title: \"Spatial Bookmarks\",\n helptext: \"Move on map extent, insert name and click Add\",\n input: {\n name: \"Name\"\n },\n sections: {\n project: {\n title: \"Project Bookmarks\"\n },\n user: {\n title: \"User Bookmarks\"\n }\n }\n },\n search: {\n all: 'ALL',\n no_results: \"No results\",\n searching: \"Searching ...\",\n error_loading: \"Error Loading Data\",\n layer_not_searchable: \"Layer is not searchable\",\n layer_not_querable: \"Layer is not querable\",\n autocomplete: {\n inputshort: {\n pre: \"Please enter\",\n post: \"or more characters\"\n }\n }\n },\n print: {\n no_layers: 'No Layer to print',\n template: \"Template\",\n labels: \"Labels\",\n scale: \"Scale\",\n format: \"Format\",\n rotation: \"Rotation\",\n download_image: \"Download Image\",\n fids_instruction: \"Values accepted: from 1 to value of [max]. Is possible to insert a range ex. 4-6\",\n fids_example: \"Ex. 1,4-6 will be printed id 1,4,5,6\",\n help: \"The layers shown in the print could be those defined on the project and not those displayed on the map\"\n },\n querybuilder: {\n title: 'Advanced search',\n search: {\n run: \"Run\",\n info: \"Information\",\n delete: \"Delete\",\n edit: \"Edit\"\n },\n messages: {\n changed: 'Saved',\n number_of_features: \"Features found:\"\n },\n panel: {\n button: {\n all: 'SEARCH A VALUE',\n save: 'SAVE',\n test: 'TEST',\n clear: 'CLEAR',\n run: 'RUN',\n manual: 'MANUAL'\n },\n layers: 'LAYERS',\n fields: 'FIELDS',\n values: 'VALUES',\n operators: 'OPERATORS',\n expression: 'EXPRESSION'\n },\n error_run: 'An error occurs. Please check the query',\n error_test: \"An error occur during query execution\",\n delete: 'Do you want delete it?',\n additem: 'Insert the name of the new search'\n },\n errors: {\n layers: {\n load: \"Some layers are not available\"\n },\n unsupported_format: 'Not supported format',\n add_external_layer: 'Load layer error'\n },\n metadata: {\n title: 'Metadata',\n groups: {\n general: {\n title: 'GENERAL',\n fields: {\n title: 'TITLE',\n name: 'NAME',\n description: \"DESCRIPTION\",\n abstract: \"ABSTRACT\",\n keywords: 'KEYWORDS',\n fees: \"FEES\",\n accessconstraints: \"ACCESS CONSTRAINT\",\n contactinformation: \"CONTACTS\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"Email\",\n personprimary: 'References',\n contactvoicetelephone: 'Phone',\n contactorganization: 'Organization',\n ContactOrganization: 'Organization',\n contactposition: 'Position',\n ContactPosition: 'Position',\n contactperson: 'Person',\n ContactPerson: 'Person'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'SPATIAL',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'LAYERS',\n fields: {\n layers: 'LAYERS',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"TITLE\",\n name: 'NAME',\n geometrytype: 'GEOMETRY',\n source: 'SOURCE',\n attributes: 'ATTRIBUTES',\n abstract: 'ABSTRACT',\n attribution: 'ATTRIBUTION',\n keywords: \"PAROLE CHIAVE\",\n metadataurl: 'METADATA URL',\n dataurl: \"DATA URL\"\n }\n },\n groups: {\n general: 'GENERAL',\n spatial: 'SPATIAL'\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Row View\",\n row_to_form: \"Form View\",\n zoomtogeometry: \"Zoom to Geometry\"\n },\n copy_map_extent_url: 'Copy map view link',\n download_shapefile: \"Download Shapefile\",\n download_gpx: \"Download GPX\",\n download_gpkg: \"Download GPKG\",\n download_csv: \"Download CSV\",\n download_xls: \"Download XLS\",\n download_pdf: \"Download PDF\",\n show_chart: \"Show Chart\",\n atlas: \"Print Atlas\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Query layer',\n actions: {\n add_selection: {\n hint: \"Add/Remove Selection\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom to features extent\"\n },\n add_features_to_results: {\n hint: \"Add/Remove features to results\"\n },\n remove_feature_from_results: {\n hint: \"Remove feature from results\"\n },\n zoom_to_feature: {\n hint: \"Zoom to feature\"\n },\n relations: {\n hint: \"Show Relations\"\n },\n relations_charts: {\n hint: \"Show relations chart\"\n },\n download_features_shapefile: {\n hint: 'Download features Shapefile'\n },\n download_shapefile: {\n hint: 'Download feature Shapefile'\n },\n download_features_gpx: {\n hint: \"Download feature GPX\"\n },\n download_features_gpkg: {\n hint: \"Download features GPKG\"\n },\n download_gpx: {\n hint: \"Download feature GPX\"\n },\n download_gpkg: {\n hint: \"Download feature GPKG\"\n },\n download_features_csv: {\n hint: \"Download features CSV\"\n },\n download_csv: {\n hint: \"Download feature CSV\"\n },\n download_features_xls: {\n hint: \"Download features XLS\"\n },\n download_xls: {\n hint: \"Download feature XLS\"\n },\n download_pdf: {\n hint: \"Download feature PDF\"\n },\n atlas: {\n hint: \"Print Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Copy map URL with this geometry feature extension\",\n hint_change: \"Copied\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Attributes download\",\n choiches: {\n feature: {\n label: \"Features only\"\n },\n feature_polygon: {\n label: \"Features+Query Polygon\"\n }\n }\n },\n tooltip: 'Query By Polygon',\n no_geometry: 'No geometry on response',\n help: {\n title: 'Guide - Query By Polygon',\n message: \"Select a polygon layer on TOC. Be sure that layer is visible. Click on a feature of selected layer. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Query by Draw Polygon \"\n },\n querybybbox: {\n tooltip: 'Query BBox layer',\n nolayers_visible: 'No querable layers are visible. Please set at least one visible wfs layer to run query',\n help: {\n title: 'Guide - Query BBox layer',\n message: \"Draw a square on map to query underlined layers on TOC \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"The result in the map is partial due to the presence of the below incorrect records list:\"\n }\n },\n tooltip: 'Add Layer'\n },\n geolocation: {\n tooltip: 'Geolocation'\n },\n measures: {\n title: 'Measure',\n length: {\n tooltip: \"Length\",\n help: \"Click on map to draw the line. Press CANC if you want delete last vertex\"\n },\n area: {\n tooltip: \"Area\",\n help: \"Click to draw poligon.Press CANC if you want delete last vertex\"\n }\n },\n screenshot: {\n title: 'Screen capture',\n screenshot: \"PNG\",\n geoscreenshot: \"GeoTIFF\",\n download: 'Generate'\n },\n scale: {\n no_valid_scale: \"Invalid Scale\"\n },\n scaleline: {\n units: {\n metric: 'Meters',\n nautical: 'Nautical Mile'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Last\",\n zoom_next: \"Zoom Next\"\n }\n },\n relations: {\n relation_data: 'Relation data',\n no_relations_found: 'No relations found',\n back_to_relations: 'Back to relations',\n list_of_relations_feature: 'List of relations of feature',\n error_missing_father_field: \"Field is missing\"\n },\n form: {\n loading: 'Loading ...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"No feature selected. Check if layer is on editing or visible at current scale\"\n }\n },\n tooltips: {\n picklayer: \"Get value from ma layer\",\n lonlat: \"Click on map to get coordinates\"\n },\n input_validation_mutually_exclusive: \"Field mutually exclusive with \",\n input_validation_error: \"Mandatory Field or wrong data type\",\n input_validation_min_field: \"Value has to be more/equal to field value \",\n input_validation_max_field: \"Value has to be less/equal to field value \",\n input_validation_exclude_values: \"Value has to be unique\",\n integer: \"integer\",\n bigint: \"integer\",\n text: \"text\",\n varchar: \"text\",\n textarea: \"text\",\n string: \"string\",\n date: \"date\",\n datetime: \"date\",\n float: \"float\",\n table: \"table\"\n },\n footer: {\n \"required_fields\": \"Required fields\"\n },\n messages: {\n qgis_input_widget_relation: \"Use relation specific form to work with relation\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"THEME\",\n choose_map_theme: \"CHOOSE THEME\",\n choose_map_theme_input_label: 'Name of new map theme',\n project_map_theme: 'Project Themes',\n user_map_theme: 'User Themes',\n question_delete_map_theme: \"Do you want delete the theme?\",\n delete_map_theme: \"Theme deleted successfully\",\n saved_map_theme: \"Theme saved successfully\",\n updated_map_theme: \"Theme updated successfully\",\n invalid_map_theme_name: \"Invalid or exiting name\",\n menu: {\n layerposition: 'Layer Position',\n setwmsopacity: \"Set Opacity\",\n wms: {\n title: \"\",\n copy: \"Click here to copy url\",\n copied: \"Copied\"\n },\n download: {\n unknow: 'Download',\n shp: 'Download Shapefile',\n gpx: 'Download GPX',\n gpkg: 'Download GPKG',\n csv: 'Download CSV',\n xls: 'Download XLS',\n geotiff: \"Download GEOTIFF\",\n geotiff_map_extent: \"Download GEOTIFF(current view extent)\"\n }\n }\n },\n wps: {\n list_process: \"List of process\",\n tooltip: 'Click on map'\n }\n },\n credits: {\n g3wSuiteFramework: \"Application based on OS framework\",\n g3wSuiteDescription: \"Publish and manage your QGIS projects on the web\",\n productOf: \"Framework developed by\"\n },\n toggle_color_scheme: \"Toggle color scheme\",\n logout: \"Logout\",\n no_other_projects: \"No more project for this group\",\n no_other_groups: \"No more groups for this Macrogroup\",\n yes: \"Yes\",\n no: \"No\",\n back: \"Back\",\n backto: \"Back to \",\n changemap: \"Change Map\",\n change_session: \"Change Session\",\n component: \"Generic Component\",\n search: \"Search\",\n no_results: \"No results found\",\n print: \"Print\",\n create_print: \"Create Print\",\n dosearch: \"Search\",\n catalog: \"Map\",\n data: \"Data\",\n externalwms: \"WMS\",\n baselayers: \"Base\",\n tools: \"Tools\",\n tree: \"Layers\",\n legend: \"Legend\",\n nobaselayer: \"No basemap\",\n street_search: \"Find Address\",\n show: \"Show\",\n hide: \"Hide\",\n copy_form_data: \"Copy data\",\n paste_form_data: \"Paste\",\n copy_form_data_from_feature: \"Copy data from map\",\n error_map_loading: \"Error occurs loading map\",\n check_internet_connection_or_server_admin: \"Check internet connection or contact admin\",\n could_not_load_vector_layers: \"Connection error: Layers can be loaded\",\n server_saver_error: \"Error in server saving\",\n server_error: \"Server connection error\",\n save: \"Save\",\n cancel: \"Cancel\",\n update: \"Update\",\n close: \"Close\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Don't show again\",\n enlange_reduce: \"Enlarge / Reduce\",\n reset_default: \"Default size\",\n add: \"Add\",\n exitnosave: \"Exit without save\",\n annul: \"Cancel\",\n layer_is_added: \"Layer with same name already added\",\n sidebar: {\n wms: {\n panel: {\n title: 'Add WMS Layer',\n label: {\n position: \"Map Position\",\n name: \"Name\",\n projections: 'Projection',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"Add WMS layer\",\n delete_wms_url: \"Delete WMS url\",\n layer_id_already_added: \"WMS Layer already added\",\n url_already_added: \"WMS URL/Name already added\",\n layer_add_error: \"WMS Layer not added. Please check all wms parameter or url\"\n }\n },\n info: {\n title: \"Results\",\n list_of_relations: \"List of Relations\",\n open_link: \"Open attached document\",\n server_error: \"An error occurred from server\",\n no_results: \"No results found for this query/search\",\n link_button: \"Open\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Can't get your position\"\n },\n geocoding: {\n choose_layer: \"Choose a layer where to add this feature\",\n placeholder: \"Address ...\",\n nolayers: \"No editable point layers found on this project\",\n noresults: \"No results\",\n notresponseserver: \"No response from server\"\n },\n add_layer_control: {\n header: \"Add Layer\",\n select_projection: \"Select layer projection\",\n select_field_to_show: \"Select Field to show on map\",\n select_csv_separator: \"Select delimiter\",\n select_csv_x_field: \"Select X field\",\n select_csv_y_field: \"Select Y field\",\n select_color: \"Select Layer Color\",\n drag_layer: \"Drag and drop layer here\"\n },\n query: {\n input_relation: \"Click to show relations\"\n },\n length: {\n tooltip: \"Length\"\n },\n area: {\n tooltip: \"Area\"\n },\n screenshot: {\n error: \"Screenshot error creation\",\n securityError: \" \\n Security Error : an external layer is preventing map from being printed. To check, proceed as follows:
\\n \\n remove any manually added external layers (eg. WMS layers) \\n force page reload: CTRL + F5
\\n print again the map \\n \\n For more info please contact server administrator about: ℹ️ security and tainted canvases
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Right-click on individual layer to access additional features\",\n contextmenu: {\n zoomtolayer: \"Zoom to Layer\",\n open_attribute_table: \"Open Attribute Table\",\n show_metadata: \"Metadata\",\n styles: 'Styles',\n vector_color_menu: \"Set/Change Color\",\n layer_opacity: \"Opacity\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Previous\",\n next: \"Next\",\n lengthMenu: \"Show _MENU_ values per page\",\n info: \"_TOTAL_ entries\",\n no_data: \"No data\",\n nodatafilterd: \"No matching records found\",\n infoFiltered: \"(filtered from _MAX_ total records)\"\n },\n /**@since 3.10.0 */\n no_geometry: 'This item has no geometry'\n }\n};\n\n},{}],261:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Yhteysvirhe\",\n at_moment: \"Tällä hetkellä ei ole mahdollista näyttää karttaa\",\n f5: \"Paina Ctrl+F5\"\n },\n cookie_law: {\n message: \"This website uses cookies to ensure you get the best experience on our website.\",\n buttonText: \"Got It!\"\n },\n default: \"oletuksena\",\n sign_in: \"Kirjaudu sisään\",\n layer_selection_filter: {\n tools: {\n filter: \"Ota suodatin käyttöön/poista käytöstä\",\n nofilter: \"Poista Suodattaa\",\n invert: \"Käänteinen Valinta\",\n clear: \"Peruuttaa Valinta\",\n show_features_on_map: \"Päivitä tulokset karttaa siirtäessäsi\",\n savefilter: \"Tallenna suodatin\",\n filterName: \"Suodattimen Nimi\"\n }\n },\n warning: {\n not_supported_format: \"Not supported format\"\n },\n layer_position: {\n top: 'TOP',\n bottom: 'BOTTOM',\n message: \"Position relative to layers on TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Valitse Template\"\n }\n },\n spatialbookmarks: {\n title: \"Tilalliset kirjanmerkit\",\n helptext: \"Siirry kartan laajuuteen, lisää nimi ja napsauta Lisää\",\n input: {\n name: \"Nimi\"\n },\n sections: {\n project: {\n title: \"Projektin kirjanmerkit\"\n },\n user: {\n title: \"Käyttäjän kirjanmerkit\"\n }\n }\n },\n search: {\n all: 'KAIKKI',\n no_results: \"Ei tuloksia\",\n searching: \"Haetaan ...\",\n error_loading: \"Virhe ladattaessa tietoja.\",\n layer_not_searchable: \"Taso ei ole haettavissa.\",\n layer_not_querable: \"Tasolle ei voi suorittaa kyselyitä.\",\n autocomplete: {\n inputshort: {\n pre: \"Syötä\",\n post: \"tai useampi merkki\"\n }\n }\n },\n print: {\n no_layers: 'Ei tulostettavia tasoja',\n template: \"Template\",\n labels: \"Labels\",\n scale: \"Mittakaava\",\n format: \"Formaatti\",\n rotation: \"Kierto\",\n download_image: \"Lataa kuva\",\n fids_instruction: \"Hyväksytyt arvot: yhdestä arvoon [max]. Salittua syöttää myös väli, esim. 4-6.\",\n fids_example: \"Esimerkiksi 1,4-6 tulostuu id 1,4,5,6.\",\n help: \"Tulosteessa esiintyvät tasot voivat olla projektissa määriteltyjä ei kartalla esiintyviä.\"\n },\n querybuilder: {\n search: {\n run: \"Suorita\",\n info: \"Informaatio\",\n delete: \"Poista\",\n edit: \"Muokkaa\"\n },\n messages: {\n changed: 'Tallennettu',\n number_of_features: \"Ominaisuuksien lukumäärä\"\n },\n panel: {\n button: {\n all: 'KAIKKI',\n save: 'TALLENNA',\n test: 'TESTI',\n clear: 'TYHJENNÄ',\n run: 'SUORITA',\n manual: 'MANUAALINEN'\n },\n layers: 'TASOT',\n fields: 'KENTÄT',\n values: 'ARVOT',\n operators: 'OPERAATTORIT',\n expression: 'LAUSEKE'\n },\n error_run: 'Tapahtui virhe. Tarkista kysely.',\n error_test: \"Kyselyä suorittaessa tapahtui virhe.\",\n delete: 'Haluatko poistaa sen?',\n additem: 'Anna nimi uudelle haulle.'\n },\n errors: {\n layers: {\n load: \"Jotkin tasot eivät ole saatavilla.\"\n },\n unsupported_format: 'Ei tuettu formaatti',\n add_external_layer: 'Tason latausvirhe'\n },\n metadata: {\n title: 'Metatiedot',\n groups: {\n general: {\n title: 'YLEINEN',\n fields: {\n title: 'OTSIKKO',\n name: 'NIMI',\n description: \"KUVAUS\",\n abstract: \"TIIVISTELMÄ\",\n keywords: 'AVAINSANAT',\n fees: \"MAKSUT\",\n accessconstraints: \"PÄÄSYRAJOITUKSET\",\n contactinformation: \"YHTEYSTIEDOT\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"Sähköposti\",\n personprimary: 'Viitteet',\n contactvoicetelephone: 'Puhelin',\n contactorganization: 'Organisaatio',\n ContactOrganization: 'Organisaatio',\n contactposition: 'Asema',\n ContactPosition: 'Asema',\n contactperson: 'Yhteyshenkilö',\n ContactPerson: 'Yhteyshenkilö'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'SPATIAL',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'TASOT',\n fields: {\n layers: 'TASOT',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"OTSIKKO\",\n name: 'NIMI',\n geometrytype: 'GEOMETRIA',\n source: 'LÄHDE',\n attributes: 'ATTRIBUUTIT',\n abstract: 'TIIVISTELMÄ',\n attribution: 'ATTRIBUUTIO',\n keywords: \"AVAINSANAT\",\n metadataurl: 'METATIEDON URL',\n dataurl: \"DATA URL\"\n }\n },\n groups: {\n general: 'YLEINEN',\n spatial: 'SPATIAL'\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Rivinäkymä\",\n row_to_form: \"Taulukkonäkymä\",\n zoomtogeometry: \"Zoomaa geometriaan\"\n },\n copy_map_extent_url: 'Kopioi kartan katselulinkki',\n download_shapefile: \"Lataa SHP-tiedosto\",\n download_gpx: \"Lataa GPX-tiedosto\",\n download_gpkg: \"Lataa GPKG-tiedosto\",\n download_csv: \"Lataa CSV-tiedosto\",\n download_xls: \"Lataa XLS-tiedosto\",\n download_pdf: \"Lataa PDF-tiedosto\",\n show_chart: \"Näytä kaavio\",\n atlas: \"Tulosta Atlas\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Kyselytaso',\n actions: {\n add_selection: {\n hint: 'Lisää/Poista valinta'\n },\n zoom_to_features_extent: {\n hint: \"Tarkenna ominaisuuden laajuuteen\"\n },\n add_features_to_results: {\n hint: \"Add/Remove features to results\"\n },\n remove_feature_from_results: {\n hint: \"Remove feature from results\"\n },\n zoom_to_feature: {\n hint: \"Tarkenna ominaisuuteen\"\n },\n relations: {\n hint: \"Näytä relaatiot\"\n },\n relations_charts: {\n hint: \"Näytä relaatiokaavio\"\n },\n download_features_shapefile: {\n hint: 'Lataa ominaisuuden SHP-tiedosto'\n },\n download_shapefile: {\n hint: 'Lataa ominaisuuden SHP-tiedosto'\n },\n download_features_gpx: {\n hint: \"Lataa ominaisuuden GPX-tiedosto\"\n },\n download_features_gpkg: {\n hint: \"Lataa ominaisuuden GPKG-tiedosto\"\n },\n download_gpx: {\n hint: \"Lataa ominaisuuden GPX-tiedosto\"\n },\n download_gpkg: {\n hint: \"Lataa ominaisuuden GPKG-tiedosto\"\n },\n download_features_csv: {\n hint: \"Lataa ominaisuuden CSV-tiedosto\"\n },\n download_csv: {\n hint: \"Lataa ominaisuuden CSV-tiedosto\"\n },\n download_features_xls: {\n hint: \"Lataa ominaisuuden XLS-tiedosto\"\n },\n download_xls: {\n hint: \"Lataa ominaisuuden XLS-tiedosto\"\n },\n download_pdf: {\n hint: \"Lataa ominaisuuden PDF-tiedosto\"\n },\n atlas: {\n hint: \"Tulosta Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Copy map URL with this geometry feature extension\",\n hint_change: \"Copied\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Attributes download\",\n choiches: {\n feature: {\n label: \"Features only\"\n },\n feature_polygon: {\n label: \"Features+Query Polygon\"\n }\n }\n },\n tooltip: 'Kysely monikulmiolla',\n no_geometry: 'No geometry on response',\n help: {\n title: 'Ohje - Kysely monikulmiolla',\n message: \"Valitse monikulmiotaso luettelosta. Tarkista, että taso on näkyvillä. Valitse ominaisuus valitulla tasolla. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Kysely piirtopolygonin mukaan\"\n },\n querybybbox: {\n tooltip: 'Tasoon kohdituva BBox-kysely',\n nolayers_visible: 'Ei kyseltäviä tasoja näkyvillä. Aseta vähintään yksi WFS-taso näkyväksi suorittaaksesi haun.',\n help: {\n title: 'Ohje - Tasoon kohdistuva BBox-kysely',\n message: \"Piirrä suorakulmio kartalle suorittaaksesi kyselyn luettelossa alleviivatuille tasoille. \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"The result in the map is partial due to the presence of the below incorrect records list:\"\n }\n },\n tooltip: 'Lisää taso'\n },\n geolocation: {\n tooltip: 'Maantieteellinen sijainti'\n },\n measures: {\n length: {\n tooltip: \"Pituus\",\n help: \"Piirrä murtoviiva kartalle. Paina CANC, mikäli haluat poistaa edellisen pisteen.\"\n },\n area: {\n tooltip: \"Alue\",\n help: \"Piirrä monikulmio kartalle. Paina CANC, mikäli haluat poistaa edellisen pisteen.\"\n }\n },\n scale: {\n no_valid_scale: \"Väärä mittakaava\"\n },\n scaleline: {\n units: {\n metric: 'Meters',\n nautical: 'Nautical Mile'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Edellinen\",\n zoom_next: \"Zoom Seurata\"\n }\n },\n relations: {\n relation_data: 'Relaation tiedot',\n no_relations_found: 'Relaatiota ei löytynyt.',\n back_to_relations: 'Takaisin relaatioihin',\n list_of_relations_feature: 'Lista ominaisuuden relaatioista',\n error_missing_father_field: \"Kenttä puuttu\"\n },\n form: {\n loading: 'Ladataan...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Ominaisuuksia ei valiitu. Tarkista, että taso on muokattavissa tai näkyvissä nykyisellä mittakaavalla.\"\n }\n },\n tooltips: {\n picklayer: \"Valitse arvo karttatasolta\",\n lonlat: \"Click on map to get coordinates\"\n },\n input_validation_mutually_exclusive: \"Kenttä toisensa poissulkeva.\",\n input_validation_error: \"Pakollinen kenttä tai väärä tietotyyppi.\",\n input_validation_min_field: \"Arvon tulee olla suurempi tai yhtäsuuri kuin kentän arvo.\",\n input_validation_max_field: \"Arvon tulee olla pienempi tai yhtäsuuri kuin kentän arvo.\",\n input_validation_exclude_values: \"Arvon tulee olla uniikki.\",\n integer: \"kokonaisluku\",\n bigint: \"kokonaisluku\",\n text: \"teksti\",\n varchar: \"teksti\",\n textarea: \"teksti\",\n string: \"merkkijono\",\n date: \"päiväys\",\n datetime: \"päiväys\",\n float: \"liukuluku\",\n table: \"taulukko\"\n },\n footer: {\n \"required_fields\": \"Vaaditut kentät\"\n },\n messages: {\n qgis_input_widget_relation: \"Käytä relaatioiden määrittämiseen tähän tarkoitettua toimintoa\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"THEME\",\n choose_map_theme: \"CHOOSE THEME\",\n choose_map_theme_input_label: 'Uuden teeman nimi',\n project_map_theme: 'Projektin Themes',\n user_map_theme: 'Käyttäjä Themes',\n question_delete_map_theme: \"Haluatko poistaa teeman?\",\n delete_map_theme: \"Teeman poistaminen onnistui\",\n saved_map_theme: \"Teeman tallennus onnistui\",\n updated_map_theme: \"Teeman päivittää onnistui\",\n invalid_map_theme_name: \"Nimi on jo olemassa tai se on virheellinen\",\n menu: {\n layerposition: 'Kerroksen sijainti',\n setwmsopacity: \"Aseta Opacity\",\n wms: {\n title: \"\",\n copy: \"Paina tästä kopioidaksesi url:n.\",\n copied: \"Kopioitu.\"\n },\n download: {\n unknow: \"Lataa\",\n shp: 'Lataa SHP-tiedosto',\n gpx: 'Lataa GPX-tiedosto',\n gpkg: 'Lataa GPKG-tiedosto',\n csv: 'Lataa CSV-tiedosto',\n xls: 'Lataa XLS-tiedosto',\n geotiff: 'Lataa GEOTIFF-tiedosto',\n geotiff_map_extent: \"Lataa GEOTIFF-tiedosto(current view extent)\"\n }\n }\n },\n wps: {\n list_process: \"Lista prosesseista\",\n tooltip: 'Valitse kartalta'\n }\n },\n credits: {\n g3wSuiteFramework: \"Sovellus perustuu OS framework\",\n g3wSuiteDescription: \"Julkaise ja hallinnoi QGIS-projekteja verkossa.\",\n productOf: \"Frameworkin on kehittänyt\"\n },\n toggle_color_scheme: \"Toggle color scheme\",\n logout: \"Kirjaudu ulos\",\n no_other_projects: \"Ei projekteja tälle ryhmälle\",\n no_other_groups: \"Ei enää ryhmiä tälle makroryhmälle\",\n yes: \"Kyllä\",\n no: \"Ei\",\n back: \"Palaa\",\n backto: \"Takaisin \",\n changemap: \"Vaihda karttaa\",\n change_session: \"Vaihda istuntoa\",\n component: \"Yleinen komponentti\",\n search: \"Hae\",\n no_results: \"Ei hakutuloksia\",\n print: \"Tulosta\",\n create_print: \"Luo tuloste\",\n dosearch: \"Hae\",\n catalog: \"Kartta\",\n data: \"Data\",\n externalwms: \"WMS\",\n baselayers: \"Taustakartta\",\n tools: \"Työkalut\",\n tree: \"Tasot\",\n legend: \"Merkintöjen selite\",\n nobaselayer: \"Ei taustakarttaa\",\n street_search: \"Hae osoite\",\n show: \"Näytä\",\n hide: \"Piilota\",\n copy_form_data: \"Kopioi tiedot\",\n paste_form_data: \"Liitä\",\n copy_form_data_from_feature: \"Kopioi tiedot kartalta\",\n error_map_loading: \"Virhe ladattessa karttaa\",\n check_internet_connection_or_server_admin: \"Tarkista internetyhteys tai ota yhteyttä ylläpitäjään.\",\n could_not_load_vector_layers: \"Yhteysvirhe, tasoja ei voida ladata.\",\n server_saver_error: \"Virhe tallentaessa palvelimelle.\",\n server_error: \"Yhteysvirhe palvelimeen\",\n save: \"Tallenna\",\n cancel: \"Peruuta\",\n update: \"Päivittää\",\n close: \"Sulje\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Älä näytä viestiä uudelleen\",\n enlange_reduce: \"Suurenna / Pienennä\",\n reset_default: \"Oletuskoko\",\n add: \"Lisää\",\n exitnosave: \"Poistu tallentamatta\",\n annul: \"Peruuta\",\n layer_is_added: \"Samanniminen taso on jo lisätty.\",\n sidebar: {\n wms: {\n panel: {\n title: 'Add WMS Layer',\n label: {\n position: \"Map Position\",\n name: \"Name\",\n projections: 'Projection',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"Aggiungi WMS layer\",\n delete_wms_url: \"Delete WMS url\",\n layer_id_already_added: \"WMS Taso on jo lisätty.\",\n url_already_added: \"WMS URL/Nimi on jo lisätty.\",\n layer_add_error: \"WMS Layer not added. Please check all wms parameter or url\"\n }\n },\n info: {\n title: \"Tulokset\",\n list_of_relations: \"List of Relations\",\n open_link: \"Avaa liitetiedosto\",\n server_error: \"Palvelimella tapahtui virhe.\",\n no_results: \"Ei tuloksia haulle/kyselylle.\",\n link_button: \"Avaa\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Sijaintiasi ei saada\"\n },\n geocoding: {\n choose_layer: \"Valitse kerros, johon tämä ominaisuus lisätään\",\n placeholder: \"Osoite ...\",\n nolayers: \"Tästä projektista ei löytynyt muokattavia pistetasoja\",\n noresults: \"Ei tuloksia\",\n notresponseserver: \"Ei vastausta palvelimelta\"\n },\n add_layer_control: {\n header: \"Lisää taso\",\n select_projection: \"Valitse tason projektio\",\n select_field_to_show: \"Select Field to show on map\",\n select_csv_separator: \"Select delimiter\",\n select_csv_x_field: \"Select X field\",\n select_csv_y_field: \"Select Y field\",\n select_color: \"Valitse tason väri\",\n drag_layer: \"Vedä ja pudota taso tähän\"\n },\n query: {\n input_relation: \"Paina näyttääksesi relaatiot\"\n },\n length: {\n tooltip: \"Pituus\"\n },\n area: {\n tooltip: \"Pinta-ala\"\n },\n screenshot: {\n error: \"Screenshot error creation\",\n securityError: \" \\n Turvallisuusvirhe : ulkoinen kerros est\\xE4\\xE4 karttaa tulostamasta. Tarkistaaksesi, toimi seuraavasti:
\\n \\n poista manuaalisesti lis\\xE4tyt ulkoiset tasot (esim. WMS-tasot) \\n Pakota sivun uudelleenlataus: CTRL + F5
\\n tulosta kartta uudelleen \\n \\n Saat lis\\xE4tietoja palvelimen j\\xE4rjestelm\\xE4nvalvojalta seuraavista aiheista: ℹ️ turvallisuus ja likaiset kankaat
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Napsauta hiiren kakkospainikkeella yksittäistä tasoa päästäksesi lisäominaisuuksiin.\",\n contextmenu: {\n zoomtolayer: \"Tarkenna tasoon\",\n open_attribute_table: \"Avaa attribuuttitaulu\",\n show_metadata: \"Metatiedot\",\n styles: \"Tyylejä\",\n vector_color_menu: \"Aseta/muuta väriä\",\n layer_opacity: \"Peittävyys\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Edellinen\",\n next: \"Seuraava\",\n lengthMenu: \"Näytä _MENU_ arvoa sivulla\",\n info: \"tulosta _TOTA_:stä\",\n no_data: \"Ei tietoja\",\n nodatafilterd: \"Vastaavia tietueita ei löytynyt\",\n infoFiltered: \"(filtered from _MAX_ total records)\"\n }\n }\n};\n\n},{}],262:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Erreur de connexion\",\n at_moment: \"Pour le moment, il n'est pas possible d'afficher la carte\",\n f5: \"Appuyez sur Ctrl+F5\"\n },\n cookie_law: {\n message: \"Ce site utilise des cookies pour assurer une bonne convivialité pour l'utilisateur final.\",\n buttonText: \"J’ai compris !\"\n },\n default: \"par défaut \",\n sign_in: \"Se connecter \",\n layer_selection_filter: {\n tools: {\n filter: \"Activer/Désactiver le filtre\",\n nofilter: \"Supprimer le filtre \",\n invert: \"Sélection inversée \",\n clear: \"Effacer la sélection \",\n show_features_on_map: \"Mettre à jour les résultats lors du déplacement de la carte\",\n savefilter: \"Sauver le Filtre\",\n filterName: \"Nom du Filtre\"\n }\n },\n warning: {\n not_supported_format: \"Not supported format\"\n },\n layer_position: {\n top: 'TOP',\n bottom: 'BOTTOM',\n message: \"Position relative to layers on TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Sélectionnez Template\"\n }\n },\n spatialbookmarks: {\n title: \"Signets spatiaux\",\n helptext: \"Déplacez-vous sur l'étendue de la carte, insérez le nom et cliquez sur Ajouter\",\n input: {\n name: \"Nom\"\n },\n sections: {\n project: {\n title: \"Signets du projet\"\n },\n user: {\n title: \"Signets de l'utilisateur\"\n }\n }\n },\n search: {\n all: 'TOUTES',\n no_results: \"Aucune valeur trouvée\",\n searching: \"Je cherche...\",\n error_loading: \"Erreur de chargement des valeurs\",\n layer_not_searchable: \"Le layer n’est pas recherchable\",\n layer_not_querable: \"Le layer n'est pas interrogeable\",\n autocomplete: {\n inputshort: {\n pre: \"Tapez au moins\",\n post: \"caractères\"\n }\n }\n },\n print: {\n no_layers: 'Aucune layer visible',\n scale: \"Échelle\",\n format: \"Format\",\n rotation: \"Rotation\",\n download_image: \"Télécharger l'image\",\n fids_instruction: \"Valeurs acceptées : de 1 à la valeur maximale indiquée par [max]. Il est également possible d'indiquer une fourchette de valeurs, par exemple 4-6\",\n fids_example: \"Par exemple 1,4-6 les ids 1,4,5,6 seront imprimés\",\n help: \"Les layers montrés dans l'impression peuvent être ceux définis dans le projet et non ceux montrés sur la carte\"\n },\n querybuilder: {\n search: {\n run: \"Lancer la recherche\",\n info: \"Information\",\n delete: \"Supprimer\",\n edit: \"Editer\"\n },\n messages: {\n changed: 'Enregistré correctement',\n number_of_features: \"Nombre de fonctionnalités\"\n },\n panel: {\n button: {\n all: 'TOUTES',\n save: 'SAUVEGARDER',\n test: 'TESTER',\n clear: 'NETTOYER',\n run: 'EXECUTER',\n manual: 'MANUEL'\n },\n layers: 'LAYERS',\n fields: 'CHAMPS',\n values: 'VALEURS',\n operators: 'OPERATEURS',\n expression: 'EXPRESSION'\n },\n error_run: \"Une erreur s'est produite. Vérifiez si la requête est correcte\",\n error_test: \"Erreur d'exécution de la requête\",\n delete: 'Voulez-vous confirmer la suppression ?',\n additem: 'Entrer le nom de la requête'\n },\n errors: {\n layers: {\n load: \"Certaines layers du projet ne sont pas disponibles actuellement et n'apparaissent donc pas dans la vue actuelle\"\n },\n unsupported_format: 'Format non supporté',\n add_external_layer: 'Erreur lors du chargement du layer'\n },\n metadata: {\n title: \"Métadonnées\",\n groups: {\n general: {\n title: 'GÉNÉRAL',\n fields: {\n title: 'TITRE',\n name: 'NOM',\n description: \"DESCRIPTION\",\n abstract: \"ABREGE\",\n keywords: 'LISTE DE MOTS-CLÉS',\n fees: \"DROITS D'INSCRIPTION\",\n accessconstraints: \"CONTRAINTES D'ACCÈS\",\n contactinformation: \"CONTACTS\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"E-mail\",\n personprimary: 'Références',\n contactvoicetelephone: 'Téléphone',\n contactorganization: 'Organisation',\n ContactOrganization: 'Organisation',\n contactposition: 'Localisation',\n ContactPosition: 'Localisation',\n contactperson: 'Personne',\n ContactPerson: 'Personne'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'INFO ESPACE',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'STRATES',\n groups: {\n general: 'GENERALE',\n spatial: 'INFO ESPACE'\n },\n fields: {\n layers: 'STRATES',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"TITRE\",\n name: 'NOM',\n geometrytype: 'GÉOMÉTRIE',\n source: 'SOURCE',\n attributes: 'ATTRIBUTES',\n abstract: 'ABRÉGÉ',\n attribution: 'ATTRIBUTION',\n keywords: \"MOTS- CLÉS\",\n metadataurl: 'URL DE MÉTADONNÉES',\n dataurl: \"URL DES DONNÉES\"\n }\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Afficher le format de la ligne\",\n row_to_form: \"Format du formulaire d'affichage\",\n zoomtogeometry: \"Zoom sur la géométrie\"\n },\n zoom_to_features_extent: \"Zoom sur les fonctionnalités\",\n copy_map_extent_url: 'Copier le lien de visualisation de la carte',\n download_shapefile: \"Télécharger le fichier Shapefile\",\n download_gpx: \"Télécharger GPX\",\n download_gpkg: \"Télécharger GPKG\",\n download_csv: \"Télécharger CSV\",\n download_xls: \"Télécharger XLS\",\n download_pdf: \"Télécharger PDF\",\n show_chart: \"Montrer graphique\",\n atlas: \"Imprimer l'Atlas\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Interrogation layer',\n actions: {\n add_selection: {\n hint: \"Ajouter/supprimer une sélection\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom sur les fonctionnalités\"\n },\n add_features_to_results: {\n hint: \"Ajouter des fonctionnalités aux résultats\"\n },\n remove_feature_from_results: {\n hint: \"Supprimer la fonctionnalité des résultats\"\n },\n zoom_to_feature: {\n hint: \"Zoom sur les fonctionnalités\"\n },\n relations: {\n hint: \"Voir les relations\"\n },\n relations_charts: {\n hint: \"Voir les graphiques de relations\"\n },\n download_features_shapefile: {\n hint: 'Télécharger les fonctionnalités vers Shapefile'\n },\n download_shapefile: {\n hint: 'Télécharger le Shapefile'\n },\n download_features_gpx: {\n hint: \"Télécharger les fonctionnalités vers GPX\"\n },\n download_features_gpkg: {\n hint: \"Télécharger les fonctionnalités vers GPKG\"\n },\n download_gpx: {\n hint: \"Télécharger le GPX\"\n },\n download_gpkg: {\n hint: \"Télécharger le GPKG\"\n },\n download_features_csv: {\n hint: \"Télécharger les fonctionnalités vers CSV\"\n },\n download_csv: {\n hint: \"Télécharger le CSV\"\n },\n download_features_xls: {\n hint: \"Télécharger les fonctionnalités vers XLS\"\n },\n download_xls: {\n hint: \"Télécharger le XLS\"\n },\n download_pdf: {\n hint: \"Télécharger le PDF\"\n },\n atlas: {\n hint: \"Imprimer l'Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Copier l'URL de la carte avec l'extension vers cette géométrie\",\n hint_change: \"Copié\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Téléchargement des attributs\",\n choiches: {\n feature: {\n label: \"Fonctionnalités seulement\"\n },\n feature_polygon: {\n label: \"Fonctionnalités+Requête Polygon \"\n }\n }\n },\n tooltip: 'Requête par polygone',\n no_geometry: 'La réponse ne contient pas de géométrie',\n help: {\n title: 'Aide - Requête par polygone',\n message: \"Sélectionnez un layer de polygone dans la légende. Vérifiez que le layer est visible dans la carte. Cliquez sur une géométrie du layer sélectionné. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Requête par polygone de dessin\"\n },\n querybybbox: {\n tooltip: 'Requête pour BBOX',\n nolayers_visible: \"Aucun layer requêtable n'est visible. Assurez-vous qu'au moins un layer wfs est visible pour exécuter la requête\",\n help: {\n title: 'Aide - Requête BBox',\n message: \"Dessinez un rectangle pour interroger les couches surlignées en jaune \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"Le résultat de la carte est partiel en raison de la présence des enregistrements incorrects suivants :\"\n }\n },\n tooltip: 'Ajouter un layer'\n },\n geolocation: {\n tooltip: 'Géolocalisation'\n },\n measures: {\n length: {\n tooltip: \"Longueur\",\n help: \"Cliquez sur la carte pour continuer à dessiner la ligne. CANC si vous voulez supprimer le dernier vertex inséré\"\n },\n area: {\n tooltip: \"Zone\",\n help: \"Cliquez pour continuer à dessiner le polygone. CANC si vous voulez supprimer le dernier vertex inséré\"\n }\n },\n scale: {\n no_valid_scale: \"Échelle invalide\"\n },\n scaleline: {\n units: {\n metric: 'Meters',\n nautical: 'Nautical Mile'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Précédent\",\n zoom_next: \"Zoom Suivant\"\n }\n },\n relations: {\n relation_data: 'Données relationnelles',\n no_relations_found: 'Aucune relation trouvée',\n back_to_relations: 'Retour aux relations',\n list_of_relations_feature: 'Liste des relations entre les caractéristiques',\n error_missing_father_field: \"Le champ concerné n'existe pas\"\n },\n form: {\n loading: 'Chargement...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Aucune fonction sélectionnée. Vérifier si le layer est en édition ou non visible à l'échelle actuelle\"\n }\n },\n tooltips: {\n picklayer: \"Obtenir la valeur de la carte\",\n lonlat: \"Cliquez sur la carte pour obtenir les coordonnées\"\n },\n input_validation_mutually_exclusive: \"Champ mutuellement exclusif avec \",\n input_validation_error: \"Champ obligatoire ou type de valeur incorrect\",\n input_validation_min_field: \"La valeur doit être supérieure ou égale au camp \",\n input_validation_max_field: \"La valeur doit être inférieure ou égale au champ \",\n input_validation_exclude_values: \"Le champ doit contenir une valeur différente\",\n integer: \"entier\",\n bigint: \"entier\",\n text: \"textuel\",\n varchar: \"textuel\",\n textarea: \"textuel\",\n string: \"chaîne\",\n date: \"date\",\n datetime: \"date\",\n float: \"float\",\n table: \"table\"\n },\n footer: {\n required_fields: \"Champs obligatoires\"\n },\n messages: {\n qgis_input_widget_relation: \"Gérer les relations via un formulaire dédié\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"THEME\",\n choose_map_theme: \"SÉLECTIONNEZ LE THÈME\",\n choose_map_theme_input_label: 'Nom du nouveau thème',\n project_map_theme: 'Thème du projet',\n user_map_theme: \"Thème de l'utilisateur\",\n question_delete_map_theme: \"Voulez-vous supprimer le thème ?\",\n delete_map_theme: \"Thème supprimé avec succès\",\n saved_map_theme: \"Thème enregistré avec succès\",\n updated_map_theme: \"Thème mise à jour avec succès\",\n invalid_map_theme_name: \"Le nom existe déjà ou est incorrect\",\n menu: {\n layerposition: 'Position du calque',\n setwmsopacity: \"Définir l'opacité\",\n wms: {\n title: \"\",\n copy: \"Cliquez ici pour copier l'url\",\n copied: \"Copié\"\n },\n download: {\n unknow: 'Télécharger',\n shp: 'Télécharger Shapefile',\n gpx: 'Télécharger GPX',\n gpkg: 'Télécharger GPKG',\n csv: 'Télécharger CSV',\n xls: 'Télécharger XLS',\n geotiff: 'Télécharger GEOTIFF',\n geotiff_map_extent: \"Télécharger GEOTIFF(current view extent)\"\n }\n }\n },\n wps: {\n list_process: \"Liste des processus\",\n tooltip: 'Cliquez sur la carte'\n }\n },\n credits: {\n g3wSuiteFramework: \"Application construite avec le framework OS\",\n g3wSuiteDescription: \"Publiez et gérez vos projets QGIS sur le Web\",\n productOf: \"Framework développé par\"\n },\n logout: \"Quitter\",\n no_other_projects: \"Il n'y a pas d'autres projets dans ce groupe de cartes\",\n no_other_groups: \"Il n'y a pas d'autres groupes dans ce macrogroupe\",\n yes: \"Oui\",\n no: \"No\",\n back: \"Retour\",\n backto: \"Retour à \",\n changemap: \"Changer de carte\",\n change_session: \"Changer de séance\",\n component: \"Composant générique\",\n search: \"Recherches\",\n no_results: \"Aucun résultat trouvé\",\n print: \"Imprimer\",\n create_print: \"Créer une impression\",\n dosearch: \"Recherche\",\n catalog: \"Carte\",\n data: \"Données\",\n externalwms: \"WMS\",\n baselayers: \"Bases\",\n tools: \"Outils\",\n tree: \"Strates\",\n legend: \"Légende\",\n nobaselayer: \"Pas de carte de base\",\n street_search: \"Adresse de recherche\",\n show: \"Afficher\",\n hide: \"Cacher\",\n copy_form_data: \"Copier les données du formulaire\",\n paste_form_data: \"Coller\",\n copy_form_data_from_feature: \"Copier les données de la carte\",\n error_map_loading: \"Erreur de chargement de la nouvelle carte\",\n check_internet_connection_or_server_admin: \"Vérifiez la connexion internet ou contactez l'administrateur\",\n could_not_load_vector_layers: \"Erreur de connexion au serveur : il n'a pas été possible de charger les vecteurs demandés\",\n server_saver_error: \"Erreur de sauvegarde sur le serveur\",\n server_error: \"Une erreur s'est produite dans la requête au serveur\",\n save: \"Sauvegarder\",\n cancel: \"Supprimer\",\n update: \"Mise à jour\",\n close: \"Fermer\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Ne plus afficher ce message\",\n enlange_reduce: \"Agrandir / Réduire\",\n reset_default: \"Taille par défaut\",\n add: \"Ajouter\",\n exitnosave: \"Quitter sans sauvegarder\",\n annul: \"Annuler\",\n layer_is_added: \"Layer avec le même nom déjà ajouté\",\n wms_layer_id_already_added: \"WMS Layer déjà ajouté\",\n wms_url_already_added: \"WMS URL déjà ajouté\",\n sidebar: {\n wms: {\n panel: {\n title: 'Add WMS Layer',\n label: {\n position: \"Map Position\",\n name: \"Name\",\n projections: 'Projection',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"Add WMS layer\",\n delete_wms_url: \"Delete WMS url\",\n layer_id_already_added: \"WMS Nivån har redan lagts till.\",\n url_already_added: \"WMS URL/Nom har redan lagts till.\",\n layer_add_error: \"WMS Layer not added. Please check all wms parameter or url\"\n }\n },\n info: {\n title: \"Résultats\",\n list_of_relations: \"List of Relations\",\n open_link: \"Ouvrir le document joint\",\n server_error: \"Une erreur s'est produite dans la requête au serveur\",\n no_results: \"Aucun résultat pour cette requête/recherche\",\n link_button: \"Ouvrir\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Votre position ne peut être calculée.\"\n },\n geocoding: {\n choose_layer: \"Choisissez un calque où ajouter cette fonctionnalité\",\n placeholder: \"Adresse ...\",\n nolayers: \"Aucune couche de points modifiable trouvée sur ce projet\",\n noresults: \"Aucun résultat\",\n notresponseserver: \"Le serveur ne répond pas\"\n },\n add_layer_control: {\n header: \"Ajouter un layer\",\n select_projection: \"Sélectionnez le système de projection de couches\",\n select_field_to_show: \"Sélectionnez le champ à afficher sur la carte\",\n select_csv_separator: \"Sélectionner le séparateur\",\n select_csv_x_field: \"Sélectionnez le champ X\",\n select_csv_y_field: \"Sélectionnez le champ Y\",\n select_color: \"Sélectionnez la couleur du layer\",\n drag_layer: \"Faire glisser le layer vers cette zone\"\n },\n query: {\n input_relation: \"Cliquez pour voir les relations\"\n },\n length: {\n tooltip: \"Longueur\"\n },\n area: {\n tooltip: \"Zone\"\n },\n screenshot: {\n error: \"Erreur de création de la capture d'écran\",\n securityError: \" \\n Erreur de s\\xE9curit\\xE9 : une couche externe emp\\xEAche l'impression de la carte. Pour v\\xE9rifier, proc\\xE9dez comme suit :
\\n \\n supprimer toutes les couches externes ajout\\xE9es manuellement (par exemple, les couches WMS) \\n forcer le rechargement de la page : CTRL + F5
\\n imprimer \\xE0 nouveau la carte \\n \\n Pour plus d'informations, veuillez contacter l'administrateur du serveur \\xE0 propos de : ℹ️ s\\xE9curit\\xE9 et toiles souill\\xE9es
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Cliquez avec le bouton droit de la souris sur les différents layers pour accéder à des fonctionnalités supplémentaires\",\n contextmenu: {\n zoomtolayer: \"Zoom sur le layer\",\n open_attribute_table: \"Table d'attributs ouverte\",\n show_metadata: \"Métadonnées\",\n styles: \"Styles\",\n vector_color_menu: \"Définir/changer la couleur\",\n layer_opacity: \"Opacité\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Précédent\",\n next: \"Suivant\",\n lengthMenu: \"Afficher _MENU_ valeurs par page\",\n info: \"_TOTAL_ résultats\",\n nodatafilterd: \"Aucun résultat trouvé\",\n infoFiltered: \"(Filtré par _MAX_ rangs totaux)\"\n }\n }\n};\n\n},{}],263:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _it = require('./it');\n\nvar _it2 = _interopRequireDefault(_it);\n\nvar _en = require('./en');\n\nvar _en2 = _interopRequireDefault(_en);\n\nvar _fi = require('./fi');\n\nvar _fi2 = _interopRequireDefault(_fi);\n\nvar _se = require('./se');\n\nvar _se2 = _interopRequireDefault(_se);\n\nvar _fr = require('./fr');\n\nvar _fr2 = _interopRequireDefault(_fr);\n\nvar _de = require('./de');\n\nvar _de2 = _interopRequireDefault(_de);\n\nvar _ro = require('./ro');\n\nvar _ro2 = _interopRequireDefault(_ro);\n\nvar _pl = require('./pl');\n\nvar _pl2 = _interopRequireDefault(_pl);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar translations = {\n it: _it2.default,\n en: _en2.default,\n fi: _fi2.default,\n se: _se2.default,\n fr: _fr2.default,\n de: _de2.default,\n ro: _ro2.default,\n pl: _pl2.default\n};\n\nexports.default = translations;\n\n},{\"./de\":259,\"./en\":260,\"./fi\":261,\"./fr\":262,\"./it\":264,\"./pl\":265,\"./ro\":266,\"./se\":267}],264:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Errore di connessione\",\n at_moment: \"Al momento non è possibile caricare la mappa\",\n f5: \"Premi Ctrl+F5\"\n },\n cookie_law: {\n message: \"Questo sito utilizza i cookie per garantire una buona usabilità all'utilizzatore finale.\",\n buttonText: \"Ho capito!\"\n },\n default: \"predefinito\",\n sign_in: \"Accedi\",\n layer_selection_filter: {\n tools: {\n filter: \"Attiva/Disattiva Filtro\",\n nofilter: \"Rimuovi filtro\",\n invert: \"Inverti Selezione\",\n clear: \"Annulla selezione\",\n show_features_on_map: \"Aggiorna i risultati quando si sposta la mappa\",\n savefilter: \"Salva Filtro\",\n filterName: 'Nome Filtro'\n }\n },\n warning: {\n not_supported_format: \"Formato non supportato\"\n },\n layer_position: {\n top: 'SOPRA',\n bottom: 'IN FONDO',\n message: \"Posizione rispetto ai layers della TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Seleziona Template\"\n }\n },\n spatialbookmarks: {\n title: \"Segnalibri\",\n helptext: \"Posizionati all'estensione del tuo nuovo segnalibro, definisci il nome e clicca Aggiungi\",\n input: {\n name: \"Nome\"\n },\n sections: {\n project: {\n title: \"Segnalibri Progetto\"\n },\n user: {\n title: \"Segnalibri Utente\"\n }\n }\n },\n search: {\n all: 'TUTTE',\n no_results: \"Nessun valore trovato\",\n searching: \"Sto cercando ..\",\n error_loading: \"Errore nel caricamento valori\",\n layer_not_searchable: \"Il layer non è ricercabile\",\n layer_not_querable: \"Il layer non è interrogabile\",\n autocomplete: {\n inputshort: {\n pre: \"Digita almeno\",\n post: \"caratteri\"\n }\n }\n },\n print: {\n no_layers: 'Nessun Layer visibile',\n template: \"Template\",\n labels: \"Etichette\",\n scale: \"Scala\",\n format: \"Formato\",\n rotation: \"Rotazione\",\n download_image: \"Scarica Immagine\",\n fids_instruction: \"Valori accettati: da 1 al valore massimo indicato da [max]. Possibile indicare anche range di valori es. 4-6\",\n fids_example: \"Es. 1,4-6 verranno stampati gli id 1,4,5,6\",\n help: \"I livelli esportati sono definiti dall'amministratore\"\n },\n querybuilder: {\n title: 'Ricerca avanzata',\n search: {\n run: \"Esegui\",\n info: \"Informazioni\",\n delete: \"Rimuovi\",\n edit: \"Modifica\"\n },\n messages: {\n changed: 'Salvato correttamente',\n number_of_features: \"Elementi trovati:\"\n },\n panel: {\n button: {\n all: 'TROVA UN VALORE',\n save: 'SALVA',\n test: 'VERIFICA',\n clear: 'PULISCI',\n run: 'ESEGUI',\n manual: 'MANUALE'\n },\n layers: 'LAYERS',\n fields: 'CAMPI',\n values: 'VALORI',\n operators: 'OPERATORI',\n expression: 'ESPRESSIONE'\n },\n error_run: 'Si è verificato un errore. Verificare se la query è corretta',\n error_test: \"Errore nell'esecuzione della query\",\n delete: 'Vuoi confermare la cancellazione?',\n additem: 'Inserisci nome della ricerca'\n },\n errors: {\n layers: {\n load: \"Alcuni livelli presenti nel progetto non sono attualmente disponibili e quindi non compaiono nell'attuale visualizzazione\"\n },\n unsupported_format: 'Formato non supportato',\n add_external_layer: 'Errore nel caricamento del layer'\n },\n metadata: {\n title: \"Metadati\",\n groups: {\n general: {\n title: 'GENERALE',\n fields: {\n title: 'TITOLO',\n name: 'NOME',\n description: \"DESCRIZIONE\",\n abstract: \"ABSTRACT\",\n keywords: 'LISTA DELLE PAROLE CHIAVE',\n fees: \"CANONI\",\n accessconstraints: \"VINCOLI DI ACCESSO\",\n contactinformation: \"CONTATTI\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"E-mail\",\n personprimary: 'Riferimenti',\n contactvoicetelephone: 'Telefono',\n contactorganization: 'Organizzazione',\n ContactOrganization: 'Organizzazione',\n contactposition: 'Posizione',\n ContactPosition: 'Posizione',\n contactperson: 'Persona',\n ContactPerson: 'Persona'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'INFO SPAZIALI',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'STRATI',\n groups: {\n general: 'GENERALE',\n spatial: 'INFO SPAZIALI'\n },\n fields: {\n layers: 'STRATI',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"TITOLO\",\n name: 'NOME',\n geometrytype: 'GEOMETRIA',\n source: 'SORGENTE',\n attributes: 'ATTRIBUTI',\n abstract: 'ABSTRACT',\n attribution: 'ATTRIBUTION',\n keywords: \"PAROLE CHIAVE\",\n metadataurl: 'METADATA URL',\n dataurl: \"DATA URL\"\n }\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Visualizza riga\",\n row_to_form: \"Visualizza modulo\",\n zoomtogeometry: \"Zoom sulla geometria\"\n },\n zoom_to_features_extent: \"Zoom sulle features\",\n copy_map_extent_url: 'Copia map view link',\n download_shapefile: \"Scarica Shapefile\",\n download_gpx: \"Scarica GPX\",\n download_gpkg: \"Scarica GPKG\",\n download_csv: \"Scarica CSV\",\n download_xls: \"Scarica XLS\",\n download_pdf: \"Scarica PDF\",\n show_chart: \"Mostra Grafico\",\n atlas: \"Stampa Atlas\",\n editing: \"Modifica\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Interroga Layer',\n actions: {\n add_selection: {\n hint: \"Aggiungi/Rimuovi Selezione\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom sulle geometrie\"\n },\n add_features_to_results: {\n hint: \"Aggiungi elementi ai risultati\"\n },\n remove_feature_from_results: {\n hint: \"Rimuovi elemento dai risultati\"\n },\n zoom_to_feature: {\n hint: \"Zoom sulla geometria\"\n },\n relations: {\n hint: \"Visualizza Relazioni\"\n },\n relations_charts: {\n hint: \"Visualizza grafici relazioni\"\n },\n download_features_shapefile: {\n hint: 'Scarica come Shapefile'\n },\n download_shapefile: {\n hint: 'Scarica come Shapefile'\n },\n download_features_gpx: {\n hint: \"Scarica come GPX\"\n },\n download_features_gpkg: {\n hint: \"Scarica come GPKG\"\n },\n download_gpx: {\n hint: \"Scarica come GPX\"\n },\n download_gpkg: {\n hint: \"Scarica come GPKG\"\n },\n download_features_csv: {\n hint: \"Scarica come CSV\"\n },\n download_csv: {\n hint: \"Scarica come CSV\"\n },\n download_features_xls: {\n hint: \"Scarica come XLS\"\n },\n download_xls: {\n hint: \"Scarica come XLS\"\n },\n download_pdf: {\n hint: \"Scarica come PDF\"\n },\n atlas: {\n hint: \"Stampa Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Condividi tramite link\",\n hint_change: \"URL copiato negli appunti\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Download attributi\",\n choiches: {\n feature: {\n label: \"Solo features\"\n },\n feature_polygon: {\n label: \"Features+Poligono Interrogazione\"\n }\n }\n },\n tooltip: 'Interroga per poligono',\n no_geometry: 'Non contiene la geometria nella risposta',\n help: {\n title: 'Guida - Interrogazione con Poligono',\n message: \"Seleziona uno strato poligonale in legenda. Assicurati che lo strato sia visibile in mappa. Clicca su una geometria dello strato selezionato. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Disegna un poligono per interrogare\"\n },\n querybybbox: {\n tooltip: 'Interroga per BBOX',\n nolayers_visible: \"Nessun layer interrogabile è visibile. Assicurarsi che almeno un layer wfs sia visibile per eseguire l'interrogazione\",\n help: {\n title: 'Guida - Interrogazione BBox',\n message: \"Disegna un rettangolo per interrogare gli strati evidenziati in giallo \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"Il risultato in mappa è parziale a causa della presenza dei seguenti records non corretti:\"\n }\n },\n tooltip: 'Aggiungi Layer'\n },\n geolocation: {\n tooltip: 'Geolocalizzazione'\n },\n measures: {\n title: 'Misura',\n length: {\n tooltip: \"Lunghezza\",\n help: \"Clicca sulla mappa per continuare a disegnare la linea. CANC se si vuole cancellare l'ultimo vertice inserito\"\n },\n area: {\n tooltip: \"Area\",\n help: \"Clicca per continuare a disegnare il poligono. CANC se si vuole cancellare l'ultimo vertice inserito\"\n }\n },\n screenshot: {\n title: 'Cattura schermata',\n screenshot: \"PNG\",\n geoscreenshot: \"GeoTIFF\",\n download: 'Genera'\n },\n scale: {\n no_valid_scale: \"Scala non valida\"\n },\n scaleline: {\n units: {\n metric: 'Metri',\n nautical: 'Miglio Nautico'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Precedente\",\n zoom_next: \"Zoom Successivo\"\n }\n },\n relations: {\n relation_data: 'Dati Relazione',\n no_relations_found: 'Nessuna relazione trovata',\n back_to_relations: 'Ritorna alle relazioni',\n list_of_relations_feature: 'Lista delle relazioni della feature',\n error_missing_father_field: \"Il campo relazionato non esiste\"\n },\n form: {\n loading: 'Caricamento ...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Nessuna feature selezionata. Verificare se il layer è in editing o non visibile alla scala attuale\"\n }\n },\n tooltips: {\n picklayer: \"Prendi valore dalla mappa\",\n lonlat: \"Clicca sulla mappa per prendere le coordinate\"\n },\n input_validation_mutually_exclusive: \"Campo mutualmente esclusivo con \",\n input_validation_error: \"Campo obbligatorio o tipo valore non corretto\",\n input_validation_min_field: \"Valore deve essere magiore uguale a quello del camp \",\n input_validation_max_field: \"Valore deve essere minore uguale a quello del campo \",\n input_validation_exclude_values: \"Campo deve contenere un valore diverso\",\n integer: \"intero\",\n bigint: \"intero\",\n text: \"testuale\",\n varchar: \"testuale\",\n textarea: \"testuale\",\n string: \"stringa\",\n date: \"data\",\n datetime: \"data\",\n float: \"float\",\n table: \"table\"\n },\n footer: {\n required_fields: \"Campi obbligatori\"\n },\n messages: {\n qgis_input_widget_relation: \"Gestisci le relazioni tramite form dedicato\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"TEMA\",\n choose_map_theme: \"SCEGLI TEMA\",\n choose_map_theme_input_label: 'Nome del nuovo tema',\n project_map_theme: 'Temi Progetto',\n user_map_theme: 'Temi Utente',\n question_delete_map_theme: \"Vuoi cancellare il tema ?\",\n delete_map_theme: \"Tema cancellato con successo\",\n saved_map_theme: \"Tema salvato con successo\",\n updated_map_theme: \"Tema aggiornato con successo\",\n invalid_map_theme_name: \"Nome già esistente o non corretto\",\n menu: {\n layerposition: 'Posizione Layer',\n setwmsopacity: \"Cambia opacità\",\n wms: {\n title: \"\",\n copy: \"Clicca qui per copiare url\",\n copied: \"Copiato\"\n },\n download: {\n unknow: \"Scarica\",\n shp: 'Scarica Shapefile',\n gpx: 'Scarica GPX',\n gpkg: 'Scarica GPKG',\n csv: 'Scarica CSV',\n xls: 'Scarica XLS',\n geotiff: \"Scarica GEOTIFF\",\n geotiff_map_extent: \"Scarica GEOTIFF(estensione vista corrente)\"\n }\n }\n },\n wps: {\n list_process: \"Lista dei processi\",\n tooltip: 'Clicca sulla mappa'\n }\n },\n credits: {\n g3wSuiteFramework: \"Applicativo realizzato con il framework OS\",\n g3wSuiteDescription: \"Pubblica e gestisci i tuoi progetti QGIS sul Web\",\n productOf: \"Framework sviluppato da\"\n },\n toggle_color_scheme: \"Cambia colore\",\n logout: \"Esci\",\n no_other_projects: \"Non ci sono altri progetti in questo gruppo cartografico\",\n /**\n * @since 3.8.0\n */\n no_other_groups: \"Non ci sono altri gruppi in questo Macrogruppo\",\n yes: \"Si\",\n no: \"No\",\n back: \"Indietro\",\n backto: \"Torna a \",\n changemap: \"Cambia Mappa\",\n change_session: \"Cambia Sessione\",\n component: \"Componente Generico\",\n search: \"Ricerche\",\n no_results: \"Nessun risultato trovato\",\n print: \"Stampa\",\n create_print: \"Crea Stampa\",\n dosearch: \"Cerca\",\n catalog: \"Mappa\",\n data: \"Dati\",\n externalwms: \"WMS\",\n baselayers: \"Basi\",\n tools: \"Strumenti\",\n tree: \"Strati\",\n legend: \"Legenda\",\n nobaselayer: \"Nessuna mappa di base\",\n street_search: \"Cerca indirizzo\",\n show: \"Mostra\",\n hide: \"Nascondi\",\n copy_form_data: \"Copia i dati del modulo\",\n paste_form_data: \"Incolla\",\n copy_form_data_from_feature: \"Copia i dati dalla mappa\",\n error_map_loading: \"Errore di caricamento della nuova mappa\",\n check_internet_connection_or_server_admin: \"Controllare la connessione internet o contattare l'amministratore\",\n could_not_load_vector_layers: \"Errore di connessione al server: non è stato possibile caricare i vettoriali richiesti\",\n server_saver_error: \"Errore nel salvataggio sul server\",\n server_error: \"Si è verificato un errore nella richiesta al server\",\n save: \"Salva\",\n cancel: \"Cancella\",\n update: \"Aggiorna\",\n close: \"Chiudi\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Non mostrare più\",\n enlange_reduce: \"Allarga / Riduci\",\n reset_default: \"Dimensione predefinita\",\n add: \"Aggiungi\",\n exitnosave: \"Esci senza salvare\",\n annul: \"Annulla\",\n layer_is_added: \"Layer con stesso nome già aggiunto\",\n sidebar: {\n wms: {\n panel: {\n title: 'Aggiunta livello WMS',\n label: {\n position: \"Posizione su Mappa\",\n name: \"Nome\",\n projections: 'Sistema di riferimento',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"Aggiungi livello WMS\",\n delete_wms_url: \"Elimina WMS url\",\n layer_id_already_added: \"Questo Layer WMS è già stato aggiunto\",\n url_already_added: \"URL/Nome WMS già aggiunto\",\n layer_add_error: \"WMS Layer non aggiunto. Verificare i parametri o l'url\"\n }\n },\n info: {\n title: \"Risultati\",\n list_of_relations: \"Lista delle relazioni\",\n open_link: \"Apri documento allegato\",\n server_error: \"Si è verificato un errore nella richiesta al server\",\n no_results: \"Nessun risultato per questa interrogazione/ricerca \",\n link_button: \"Apri\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Non è possibile ottenere la tua posizione.\"\n },\n geocoding: {\n choose_layer: \"Scegli un livello in cui aggiungere questa funzionalità\",\n placeholder: \"Indirizzo ...\",\n nolayers: \"Nessun layer di punti modificabile trovato in questo progetto\",\n noresults: \"Nessun risultato\",\n notresponseserver: \"Il server non risponde\"\n },\n add_layer_control: {\n header: \"Aggiungi Layer\",\n select_projection: \"Seleziona il sistema di proiezione del layer\",\n select_field_to_show: \"Seleziona il campo da visualizzare sulla mappa\",\n select_csv_separator: \"Seleziona il separatore\",\n select_csv_x_field: \"Seleziona il campo X\",\n select_csv_y_field: \"Seleziona il campo Y\",\n select_color: \"Seleziona il colore del Layer\",\n drag_layer: \"Trascina il layer in questa area\"\n },\n query: {\n input_relation: \"Clicca per consultare le relazioni\"\n },\n length: {\n tooltip: \"Lunghezza\"\n },\n area: {\n tooltip: \"Area\"\n },\n screenshot: {\n error: \"Errore nella creazione dello screenshot\",\n securityError: \" \\n Errore di sicurezza : uno strato esterno impedisce la stampa della mappa. Per verificare, procedere come segue:
\\n \\n rimuovi eventuali layer esterni aggiunti manualmente (es. layer WMS) \\n forza il ricaricamento della pagina: CTRL + F5
\\n stampa nuovamente la mappa \\n \\n Per maggiori informazioni contattare l'amministratore del server in merito a: ℹ️ security and tainted canvases
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Tasto destro sui singoli layer per accedere alle funzionalità aggiuntive\",\n contextmenu: {\n zoomtolayer: \"Zoom sul Layer\",\n open_attribute_table: \"Apri tabella attributi\",\n show_metadata: \"Metadati\",\n styles: \"Stili\",\n vector_color_menu: \"Setta/Cambia Colore\",\n layer_opacity: \"Trasparenza\",\n filters: \"Filtri\"\n }\n },\n dataTable: {\n previous: \"Precedente\",\n next: \"Successivo\",\n lengthMenu: \"Mostra _MENU_ valori per pagina\",\n info: \"_TOTAL_ elementi\",\n nodatafilterd: \"Nessun risultato trovato\",\n infoFiltered: \"(Filtrati da _MAX_ total righe)\"\n },\n /**@since 3.10.0 */\n no_geometry: 'Questo elemento non ha geometria'\n }\n};\n\n},{}],265:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Błąd połączenia\",\n at_moment: \"W tej chwili nie jest możliwe mapa pokazująca\",\n f5: \"Naciśnij Ctrl+F5\"\n },\n cookie_law: {\n message: \"Ta strona internetowa korzysta z plików cookie, aby uzyskać najlepsze wrażenia na naszej stronie internetowej.\",\n buttonText: \"Rozumiem!\"\n },\n default: \"domyślny\",\n sign_in: \"Zalogować się\",\n layer_selection_filter: {\n tools: {\n filter: \"Włącz/wyłącz filtr\",\n nofilter: \"Usuń filtr\",\n invert: \"Odwróć wybór\",\n clear: \"Jasny wybór\",\n show_features_on_map: \"Pokaż funkcje widoczne na mapie\",\n savefilter: \"Zapisz filtr\",\n filterName: \"Nazwa filtru\"\n }\n },\n warning: {\n not_supported_format: \"Nie obsługiwany format\"\n },\n layer_position: {\n top: \"SZCZYT\",\n bottom: \"SPÓD\",\n message: \"Pozycja względem warstw na TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Wybierz szablon\"\n }\n },\n spatialbookmarks: {\n title: \"Zakładki przestrzenne\",\n helptext: \"Poruszaj zasięg mapy, wstaw nazwę i kliknij Dodaj\",\n input: {\n name: \"Nazwa\"\n },\n sections: {\n project: {\n title: \"Zakładki projektu\"\n },\n user: {\n title: \"Zakładki użytkowników\"\n }\n }\n },\n search: {\n all: \"WSZYSTKO\",\n no_results: \"Brak wyników\",\n searching: \"Poszukiwanie ...\",\n error_loading: \"Błąd Dane dotyczące ładowania\",\n layer_not_searchable: \"Warstwa nie można przeszukiwać\",\n layer_not_querable: \"Warstwa nie jest zapytana\",\n autocomplete: {\n inputshort: {\n pre: \"Podaj\",\n post: \"lub więcej znaków\"\n }\n }\n },\n print: {\n no_layers: \"Brak warstwy do wydrukowania\",\n template: \"Szablon\",\n labels: \"Etykiety\",\n scale: \"Skala\",\n format: \"Format\",\n rotation: \"Obrót\",\n download_image: \"Pobierz obraz\",\n fids_instruction: \"Zaakceptowane wartości: od 1 do wartości [maks.]. Możliwe jest wstawienie zasięgu ex. 4-6\",\n fids_example: \"Były. 1,4-6 zostanie wydrukowany 1,4,5,6\",\n help: \"Warstwy pokazane w druku mogą być warstwy zdefiniowane w projekcie, a nie wyświetlane na mapie\"\n },\n querybuilder: {\n search: {\n run: \"Uruchomić\",\n info: \"Informacja\",\n delete: \"Usuwać\",\n edit: \"Edytować\"\n },\n messages: {\n changed: \"Uratowany\",\n number_of_features: \"Liczba funkcji\"\n },\n panel: {\n button: {\n all: \"WSZYSTKO\",\n save: \"RATOWAĆ\",\n test: \"TEST\",\n clear: \"JASNE\",\n run: \"URUCHOMIĆ\",\n manual: \"PODRĘCZNIK\"\n },\n layers: \"Warstwy\",\n fields: \"Pola\",\n values: \"Wartości\",\n operators: \"Operatorzy\",\n expression: \"WYRAŻENIE\"\n },\n error_run: \"Występuje błąd. Sprawdź zapytanie\",\n error_test: \"Błąd wystąpił podczas wykonywania zapytania\",\n delete: \"Chcesz to usunąć?\",\n additem: \"Włóż nazwę nowego wyszukiwania\"\n },\n errors: {\n layers: {\n load: \"Niektóre warstwy nie są dostępne\"\n },\n unsupported_format: \"Nie obsługiwany format\",\n add_external_layer: \"Błąd warstwy ładowania\"\n },\n metadata: {\n title: \"Metadane\",\n groups: {\n general: {\n title: \"OGÓLNY\",\n fields: {\n title: \"TYTUŁ\",\n name: \"NAZWA\",\n description: \"OPIS\",\n abstract: \"ABSTRAKCYJNY\",\n keywords: \"SŁOWA KLUCZOWE\",\n fees: \"OPŁATY\",\n accessconstraints: \"Ograniczenie dostępu\",\n contactinformation: \"ŁĄCZNOŚĆ\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"E-mail\",\n personprimary: \"Bibliografia\",\n contactvoicetelephone: \"Telefon\",\n contactorganization: \"Organizacja\",\n ContactOrganization: \"Organizacja\",\n contactposition: \"Pozycja\",\n ContactPosition: \"Pozycja\",\n contactperson: \"Osoba\",\n ContactPerson: \"Osoba\"\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: \"PRZESTRZENNY\",\n fields: {\n crs: \"EPSG\",\n extent: \"Bbox\"\n }\n },\n layers: {\n title: \"Warstwy\",\n fields: {\n layers: \"Warstwy\",\n subfields: {\n crs: \"EPSG\",\n bbox: \"Bbox\",\n title: \"TYTUŁ\",\n name: \"NAZWA\",\n geometrytype: \"GEOMETRIA\",\n source: \"ŹRÓDŁO\",\n attributes: \"Atrybuty\",\n abstract: \"ABSTRAKCYJNY\",\n attribution: \"ATRYBUCJA\",\n keywords: \"Chiave zwolnienia warunkowego\",\n metadataurl: \"URL METADATA\",\n dataurl: \"URL danych\"\n }\n },\n groups: {\n general: \"OGÓLNY\",\n spatial: \"PRZESTRZENNY\"\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Widok wiersza\",\n row_to_form: \"Widok formularza\",\n zoomtogeometry: \"Powiększ geometrię\"\n },\n copy_map_extent_url: \"Kopiuj link Widok Mapa\",\n download_shapefile: \"Pobierz ShapeFile\",\n download_gpx: \"Pobierz GPX\",\n download_gpkg: \"Pobierz GPKG\",\n download_csv: \"Pobierz CSV\",\n download_xls: \"Pobierz XLS\",\n show_chart: \"Wykres pokazowy\",\n atlas: \"Wydrukuj atlas\"\n },\n mapcontrols: {\n query: {\n tooltip: \"Warstwa zapytania\",\n actions: {\n add_selection: {\n hint: \"Dodaj/usuń wybór\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom w zakresie funkcji\"\n },\n add_features_to_results: {\n hint: \"Dodaj/usuń funkcje do wyników\"\n },\n remove_feature_from_results: {\n hint: \"Usuń funkcję z wyników\"\n },\n zoom_to_feature: {\n hint: \"Zoom do funkcji\"\n },\n relations: {\n hint: \"Pokaż relacje\"\n },\n relations_charts: {\n hint: \"Pokaż wykres relacji\"\n },\n download_features_shapefile: {\n hint: \"Pobierz funkcje ShapeFile\"\n },\n download_shapefile: {\n hint: \"Pobierz funkcję kształtu plik\"\n },\n download_features_gpx: {\n hint: \"Pobierz funkcję GPX\"\n },\n download_features_gpkg: {\n hint: \"Pobierz funkcje GPKG\"\n },\n download_gpx: {\n hint: \"Pobierz funkcję GPX\"\n },\n download_gpkg: {\n hint: \"Pobierz funkcję gpkg\"\n },\n download_features_csv: {\n hint: \"Pobierz funkcje CSV\"\n },\n download_csv: {\n hint: \"Pobierz funkcję CSV\"\n },\n download_features_xls: {\n hint: \"Pobierz funkcje XLS\"\n },\n download_xls: {\n hint: \"Pobierz funkcję XLS\"\n },\n atlas: {\n hint: \"Wydrukuj atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Skopiuj adres URL map z tym rozszerzeniem funkcji geometrii\",\n hint_change: \"Skopiowane\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Pobieranie atrybutów\",\n choiches: {\n feature: {\n label: \"Tylko funkcje\"\n },\n feature_polygon: {\n label: \"Funkcje+Polygon zapytania\"\n }\n }\n },\n tooltip: \"Zapytanie według wielokąta\",\n no_geometry: \"Brak geometrii w odpowiedzi\",\n help: {\n title: \"Przewodnik - zapytanie według Polygonu\",\n message: \"Wybierz warstwę wielokąta na Toc. upewnij się, że warstwa jest widoczna. Kliknij funkcję wybranej warstwy. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Zapytanie przez Polygon Draw\"\n },\n querybybbox: {\n tooltip: \"Zapytanie warstwa Bbox\",\n nolayers_visible: \"Nie widać zapytaniach warstw. Ustaw co najmniej jedną widoczną warstwę WFS, aby uruchomić zapytanie\",\n help: {\n title: \"Przewodnik - zapytanie BBOX Warstwa\",\n message: \"Narysuj kwadrat na mapie, aby zapytają podkreślone warstwy na Toc \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"Wynik na mapie jest częściowy ze względu na obecność poniższej listy błędnych rekordów:\"\n }\n },\n tooltip: \"Dodaj warstwę\"\n },\n geolocation: {\n tooltip: \"Geolokalizację\"\n },\n measures: {\n length: {\n tooltip: \"Długość\",\n help: \"Kliknij mapę, aby narysować linię. Naciśnij Canc, jeśli chcesz usunąć ostatni wierzchołek\"\n },\n area: {\n tooltip: \"Obszar\",\n help: \"Kliknij, aby narysować Poligon.press Canc Jeśli chcesz usunąć ostatni wierzchołek\"\n }\n },\n scale: {\n no_valid_scale: \"Nieprawidłowa skala\"\n },\n scaleline: {\n units: {\n metric: \"Metry\",\n nautical: \"Mila morska\"\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom ostatni\",\n zoom_next: \"Zoom Dalej\"\n }\n },\n relations: {\n relation_data: \"Dane dotyczące relacji\",\n no_relations_found: \"Nie znaleziono żadnych relacji\",\n back_to_relations: \"Powrót do relacji\",\n list_of_relations_feature: \"Lista relacji funkcji\",\n error_missing_father_field: \"Brakuje pola\"\n },\n form: {\n loading: \"Ładowanie ...\",\n inputs: {\n messages: {\n errors: {\n picklayer: \"Brak wybranej funkcji. Sprawdź, czy warstwa jest w edycji lub widoczna w bieżącej skali\"\n }\n },\n tooltips: {\n picklayer: \"Uzyskaj wartość z warstwy MA\",\n lonlat: \"Kliknij mapę, aby uzyskać współrzędne\"\n },\n input_validation_mutually_exclusive: \"Pole wzajemnie wykluczające się z\",\n input_validation_error: \"Obowiązkowe pole lub niewłaściwy typ danych\",\n input_validation_min_field: \"Wartość musi być większa/równa wartości pola\",\n input_validation_max_field: \"Wartość musi być mniej/równa wartości pola\",\n input_validation_exclude_values: \"Wartość musi być wyjątkowa\",\n integer: \"liczba całkowita\",\n bigint: \"liczba całkowita\",\n text: \"tekst\",\n varchar: \"tekst\",\n textarea: \"tekst\",\n string: \"strunowy\",\n date: \"data\",\n datetime: \"data\",\n float: \"platforma\",\n table: \"tabela\"\n },\n footer: {\n required_fields: \"Wymagane pola\"\n },\n messages: {\n qgis_input_widget_relation: \"Użyj relacji konkretna forma do pracy w związku z relacją\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"TEMAT\",\n choose_map_theme: \"Wybierz motyw\",\n menu: {\n layerposition: \"Pozycja warstwy\",\n setwmsopacity: \"Ustaw krycie\",\n wms: {\n title: \"--\",\n copy: \"Kliknij tutaj, aby skopiować adres URL\",\n copied: \"Skopiowane\"\n },\n download: {\n unknow: \"Pobierać\",\n shp: \"Pobierz ShapeFile\",\n gpx: \"Pobierz GPX\",\n gpkg: \"Pobierz GPKG\",\n csv: \"Pobierz CSV\",\n xls: \"Pobierz XLS\",\n geotiff: \"Pobierz Geotiff\",\n geotiff_map_extent: \"Pobierz Geotiff (Obecny zasięg View)\"\n }\n }\n },\n wps: {\n list_process: \"Lista procesu\",\n tooltip: \"Kliknij mapę\"\n }\n },\n credits: {\n g3wSuiteFramework: \"Aplikacja oparta na strukturze systemu operacyjnego\",\n g3wSuiteDescription: \"Publikuj i zarządzaj projektami QGIS w Internecie\",\n productOf: \"Ramy opracowane przez\"\n },\n toggle_color_scheme: \"Przełącz kolorystykę\",\n logout: \"Wyloguj\",\n no_other_projects: \"Nigdy więcej projektu dla tej grupy\",\n no_other_groups: \"Nigdy więcej grup dla tej makrogrupy\",\n yes: \"Tak\",\n no: \"NIE\",\n back: \"Z powrotem\",\n backto: \"Wrócić do\",\n changemap: \"Zmień mapę\",\n change_session: \"Zmień sesję\",\n component: \"Komponent ogólny\",\n search: \"Szukaj\",\n no_results: \"Nie znaleziono wyników\",\n print: \"Wydrukować\",\n create_print: \"Utwórz druk\",\n dosearch: \"Szukaj\",\n catalog: \"Mapa\",\n data: \"Dane\",\n externalwms: \"WMS\",\n baselayers: \"Baza\",\n tools: \"Narzędzia\",\n tree: \"Warstwy\",\n legend: \"Legenda\",\n nobaselayer: \"Brak mapy bazowej\",\n street_search: \"Znajdź adres\",\n show: \"Pokazywać\",\n hide: \"Ukrywać\",\n copy_form_data: \"Skopiuj dane\",\n paste_form_data: \"Pasta\",\n copy_form_data_from_feature: \"Skopiuj dane z mapy\",\n error_map_loading: \"Występuje błąd mapy ładowania\",\n check_internet_connection_or_server_admin: \"Sprawdź połączenie internetowe lub skontaktuj się z administratorem\",\n could_not_load_vector_layers: \"Błąd połączenia: Warstwy można załadować\",\n server_saver_error: \"Błąd zapisywania serwera\",\n server_error: \"Błąd połączenia serwera\",\n save: \"Ratować\",\n cancel: \"Anulować\",\n close: \"Zamknąć\",\n dont_show_again: \"Nie pokazuj ponownie\",\n enlange_reduce: \"Powiększ / zmniejsz\",\n reset_default: \"Rozmiar domyślny\",\n add: \"Dodać\",\n exitnosave: \"Wyjdź bez zapisu\",\n annul: \"Anulować\",\n layer_is_added: \"Warstwa o tej samej nazwie już dodanej\",\n sidebar: {\n wms: {\n panel: {\n title: \"Dodaj warstwę WMS\",\n label: {\n position: \"Pozycja mapy\",\n name: \"Nazwa\",\n projections: \"Występ\",\n layers: \"Warstwy\"\n }\n },\n add_wms_layer: \"Dodaj warstwę WMS\",\n delete_wms_url: \"Usuń adres URL WMS\",\n layer_id_already_added: \"Już dodana warstwa WMS\",\n url_already_added: \"WMS URL/Nazwa już dodana\",\n layer_add_error: \"Warstwa WMS nie dodano. Sprawdź wszystkich parametrów lub adresu URL WMS\"\n }\n },\n info: {\n title: \"Wyniki\",\n list_of_relations: \"Lista relacji\",\n open_link: \"Otwarty załączony dokument\",\n server_error: \"Wystąpił błąd z serwera\",\n no_results: \"Nie znaleziono wyników dla tego zapytania/wyszukiwania\",\n link_button: \"otwarty\"\n },\n mapcontrols: {\n geolocations: {\n error: \"Nie mogę zdobyć swojej pozycji\"\n },\n geocoding: {\n choose_layer: \"Wybierz warstwę, gdzie dodać tę funkcję\",\n placeholder: \"Adres ...\",\n nolayers: \"Brak edytowalnych warstw punktowych w tym projekcie\",\n noresults: \"Brak wyników\",\n notresponseserver: \"Brak odpowiedzi z serwera\"\n },\n add_layer_control: {\n header: \"Dodaj warstwę\",\n select_projection: \"Wybierz projekcję warstwy\",\n select_field_to_show: \"Wybierz pole, aby pokazać na mapie\",\n select_csv_separator: \"Wybierz Selimiter\",\n select_csv_x_field: \"Wybierz pole x\",\n select_csv_y_field: \"Wybierz pole Y.\",\n select_color: \"Wybierz kolor warstwy\",\n drag_layer: \"Przeciągnij i upuść warstwę tutaj\"\n },\n query: {\n input_relation: \"Kliknij, aby pokazać relacje\"\n },\n length: {\n tooltip: \"Długość\"\n },\n area: {\n tooltip: \"Obszar\"\n },\n screenshot: {\n error: \"Tworzenie błędów z ekranu\",\n securityError: \" \\n B\\u0142\\u0105d bezpiecze\\u0144stwa : Warstwa zewn\\u0119trzna zapobiega wydrukowaniu mapy. Aby sprawdzi\\u0107, post\\u0119puj w nast\\u0119puj\\u0105cy spos\\xF3b:
\\n \\n Usu\\u0144 wszelkie r\\u0119cznie dodane warstwy zewn\\u0119trzne (np. WMORY WMS) \\n Prze\\u0142adowanie strony Si\\u0142y: CTRL + F5
\\n Wydrukuj ponownie map\\u0119 \\n \\n Aby uzyska\\u0107 wi\\u0119cej informacji, skontaktuj si\\u0119 z administratorem serwera o: ℹ️ security and tainted canvases
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Kliknij indywidualną warstwę prawym przyciskiem myszy, aby uzyskać dostęp do dodatkowych funkcji\",\n contextmenu: {\n zoomtolayer: \"Zoom do warstwy\",\n open_attribute_table: \"Otwórz tabelę atrybutów\",\n show_metadata: \"Metadane\",\n styles: \"Style\",\n vector_color_menu: \"Ustaw/zmiana kolor\",\n layer_opacity: \"Nieprzezroczystość\",\n filters: \"Filtry\"\n }\n },\n dataTable: {\n previous: \"Poprzedni\",\n next: \"Następny\",\n lengthMenu: \"Pokaż menu_\",\n info: \"Pokazanie _start_ do _end_ wpisów _total_\",\n no_data: \"Brak danych\",\n nodatafilterd: \"nie znaleziono pasujacego wyniku\",\n infoFiltered: \"(Filtrowane z _max_ całkowitych rekordów)\"\n }\n }\n};\n\n},{}],266:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Eroare de conexiune\",\n at_moment: \"Momentan nu este posibil să afișați harta\",\n f5: \"Apăsați Ctrl+F5\"\n },\n cookie_law: {\n message: \"Acest website foloseste cookie-uri pentru a furniza vizitatorilor o experiență mult mai bună de navigare\",\n buttonText: \"Am înțeles!\"\n },\n default: \"Implicit\",\n sign_in: \"Logare\",\n layer_selection_filter: {\n tools: {\n filter: \"Activați/Dezactivați filtrul\",\n nofilter: \"Eliminare Filtrare\",\n invert: \"Inversare Selecție\",\n clear: \"Elimină Selecția\",\n show_features_on_map: \"Rezultatele se actualizează când harta este deplasată\",\n savefilter: \"Salvează Filtrul\",\n filterName: \"Nume Filtru\"\n }\n },\n warning: {\n not_supported_format: \"Formatul nu este acceptat\"\n },\n layer_position: {\n top: 'SUS',\n bottom: 'JOS',\n message: \"Poziție relativă la straturile din TOC\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Selectați Template\"\n }\n },\n spatialbookmarks: {\n title: \"Marcaje spațiale\",\n helptext: \"Deplasați-vă pe întinderea hărții, introduceți numele și faceți clic pe Adăugați\",\n input: {\n name: \"Nume\"\n },\n sections: {\n project: {\n title: \"Marcaje de proiect\"\n },\n user: {\n title: \"Marcaje utilizator\"\n }\n }\n },\n search: {\n all: 'Toate',\n no_results: \"Fără rezultat\",\n searching: \"Căutare ...\",\n error_loading: \"Încărcarea a eșuat\",\n layer_not_searchable: \"Nu se poate căuta pe strat\",\n layer_not_querable: \"Stratul nu se poate interoga\",\n autocomplete: {\n inputshort: {\n pre: \"Te rog introdu\",\n post: \"sau mai multe caractere\"\n }\n }\n },\n print: {\n no_layers: 'Nu avem straturi de print',\n template: \"Șablon\",\n labels: \"Etichete\",\n scale: \"Scară\",\n format: \"Format\",\n rotation: \"Rotație\",\n download_image: \"Descarcă Imaginea\",\n fids_instruction: \"Valori acceptate: de la 1 la valoarea [max]. Este posibilă inserarea de interval, de ex. 4-6\",\n fids_example: \"Ex. 1,4-6 vor fi tipărite id 1,4,5,6\",\n help: \"Straturile prezentate în print pot fi acelea definite în proiect și nu acelea prezentate în cadrul hărții\"\n },\n querybuilder: {\n search: {\n run: \"Execută\",\n info: \"Info\",\n delete: \"Elimină\",\n edit: \"Modifică\"\n },\n messages: {\n changed: 'Salvat',\n number_of_features: \"Număr de entități\"\n },\n panel: {\n button: {\n all: 'TOATE',\n save: 'SALVEAZĂ',\n test: 'TEST',\n clear: 'ȘTERGE',\n run: 'RUN',\n manual: 'MANUAL'\n },\n layers: 'STRATURI',\n fields: 'CÂMPURI',\n values: 'VALORI',\n operators: 'OPERATORI',\n expression: 'EXPRESII'\n },\n error_run: 'A survenit o eroare. De verificat interogarea',\n error_test: \"A survenit o eroare în timp ce se executa interogarea\",\n delete: 'Vrei să o ștergi?',\n additem: 'Introdu numele noii căutări'\n },\n errors: {\n layers: {\n load: \"Câteva straturi nu sunt disponibile\"\n },\n unsupported_format: 'Formatul nu este acceptat',\n add_external_layer: 'Eroare încărcare strat'\n },\n metadata: {\n title: 'Metadate',\n groups: {\n general: {\n title: 'GENERALITĂȚI',\n fields: {\n title: 'TITLU',\n name: 'NUME',\n description: \"DESCRIERE\",\n abstract: \"ABSTRACT\",\n keywords: 'CUVINTE CHEIE',\n fees: \"TAXE\",\n accessconstraints: \"CONSTRÂNGERI DE ACCES\",\n contactinformation: \"CONTACTE\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"Email\",\n personprimary: 'Referințe',\n contactvoicetelephone: 'Telefon',\n contactorganization: 'Organizație',\n ContactOrganization: 'Organizație',\n contactposition: 'Poziție',\n ContactPosition: 'Poziție',\n contactperson: 'Persoana',\n ContactPerson: 'Persoana'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'SPAȚIAL',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'STRATURI',\n fields: {\n layers: 'STRATURI',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"TITLU\",\n name: 'NUME',\n geometrytype: 'GEOMETRIE',\n source: 'SURSA',\n attributes: 'ATRIBUTE',\n abstract: 'ABSTRACT',\n attribution: 'ATRIBUIRE',\n keywords: \"CUVINTE CHEIE\",\n metadataurl: 'URL METADATE',\n dataurl: \"URL DATE\"\n }\n },\n groups: {\n general: 'GENERALITĂȚI',\n spatial: 'SPAȚIAL'\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Vizualizare pe rânduri\",\n row_to_form: \"Vizualizare formular\",\n zoomtogeometry: \"Măriți la geometrie\"\n },\n copy_map_extent_url: 'Copiază linkul de vizualizare hartă',\n download_shapefile: \"Descarcă Shapefile\",\n download_gpx: \"Descarcă GPX\",\n download_gpkg: \"Descarcă GPKG\",\n download_csv: \"Descarcă CSV\",\n download_xls: \"Descarcă XLS\",\n download_pdf: \"Descarcă PDF\",\n show_chart: \"Arată Diagrama\",\n atlas: \"Tipărire Atlas\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Interogare strat',\n actions: {\n add_selection: {\n hint: \"Adaugă/Elimină Selecția\"\n },\n zoom_to_features_extent: {\n hint: \"Zoom la încadrarea entităților\"\n },\n add_features_to_results: {\n hint: \"Adaugă/Elimină entități rezultat\"\n },\n remove_feature_from_results: {\n hint: \"Elimină entitate din rezultat\"\n },\n zoom_to_feature: {\n hint: \"Zoom la entitate\"\n },\n relations: {\n hint: \"Arată Relațiile\"\n },\n relations_charts: {\n hint: \"Arată diagrama de relații\"\n },\n download_features_shapefile: {\n hint: 'Descarcă entități în Shapefile'\n },\n download_shapefile: {\n hint: 'Descarcă entitate în Shapefile'\n },\n download_features_gpx: {\n hint: \"Descarcă entități în GPX\"\n },\n download_features_gpkg: {\n hint: \"Descarcă entități în GPKG\"\n },\n download_gpx: {\n hint: \"Descarcă entitate în GPX\"\n },\n download_gpkg: {\n hint: \"Descarcă entitate în GPKG\"\n },\n download_features_csv: {\n hint: \"Descarcă entități în CSV\"\n },\n download_csv: {\n hint: \"Descarcă entitate în CSV\"\n },\n download_features_xls: {\n hint: \"Descarcă entități în XLS\"\n },\n download_xls: {\n hint: \"Descarcă entitate în XLS\"\n },\n download_pdf: {\n hint: \"Descarcă entitate în PDF\"\n },\n atlas: {\n hint: \"Tipărire Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Copiază URL hartă cu întinderea geometriei entității\",\n hint_change: \"Copiat\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Descărcare atribute\",\n choiches: {\n feature: {\n label: \"Doar entități\"\n },\n feature_polygon: {\n label: \"Entități+Poligon Interogare\"\n }\n }\n },\n tooltip: 'Interogare După Poligon',\n no_geometry: 'Nu avem geometrii în răspuns',\n help: {\n title: 'Ghid - Interogare După Poligon',\n message: \"Selectează un strat poligon din TOC. Asigură-te că stratul este vizibil. Click pe o entitate a stratului selectat. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Interogare prin poligon de desen\"\n },\n querybybbox: {\n tooltip: 'Interogare BBox strat',\n nolayers_visible: 'Nu este vizibil niciun strat de interogare. Trebuie setat cel puțin un strat WFS vizibil pentru a efectua interogarea',\n help: {\n title: 'Ghid - Interogare BBox strat',\n message: \"Desenează un pătrat pe hartă pentru a interoga straturile din TOC de sub \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"Rezultateul pe hartă este parțial datorită prezenței următoarei liste de rezultate incorecte:\"\n }\n },\n tooltip: 'Adaugă Strat'\n },\n geolocation: {\n tooltip: 'Geolocalizare'\n },\n measures: {\n length: {\n tooltip: \"Lungime\",\n help: \"Click pe hartă pentru a desena linia. Apasă CANC dacă dorești să ștergi ultimul vertex\"\n },\n area: {\n tooltip: \"Aria\",\n help: \"Click pentru desen poligon. Apasă CANC dacă dorești să ștergi ultimul vertex\"\n }\n },\n scale: {\n no_valid_scale: \"Scară Invalidă\"\n },\n scaleline: {\n units: {\n metric: 'Metri',\n nautical: 'Mile Nautice'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Anterior\",\n zoom_next: \"Zoom Urmatorul\"\n }\n },\n relations: {\n relation_data: 'Date Relații',\n no_relations_found: 'Nu am găsit nicio relație',\n back_to_relations: 'Înapoi la relații',\n list_of_relations_feature: 'Lista de relații a entității',\n error_missing_father_field: \"Câmpul de legătură lipsește\"\n },\n form: {\n loading: 'Se încarcă ...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Nu avem entitate selectată. Verifică dacă stratul este în editare sau vizibil la scara curentă if layer is on editing or visible at current scale\"\n }\n },\n tooltips: {\n picklayer: \"Ia valoare din strat\",\n lonlat: \"Click pe hartă pentru a prelua coordonate\"\n },\n input_validation_mutually_exclusive: \"Câmp ce se exclude mutual cu \",\n input_validation_error: \"Câmp mandatoriu sau tip de date greșit\",\n input_validation_min_field: \"Valoarea trebuie să fie mai mare/egală cu valoare câmpului \",\n input_validation_max_field: \"Valoarea trebuie să fie mai mică/egală cu valoare câmpului \",\n input_validation_exclude_values: \"Valoarea trebuie să fie unică\",\n integer: \"integer - nr. întreg\",\n bigint: \"integer - nr. întreg\",\n text: \"text\",\n varchar: \"text\",\n textarea: \"text\",\n string: \"string - text\",\n date: \"data\",\n datetime: \"data\",\n float: \"float - nr. cu zecimale\",\n table: \"tabelă\"\n },\n footer: {\n \"required_fields\": \"Câmpuri necesare\"\n },\n messages: {\n qgis_input_widget_relation: \"Folosește formular specific de relații pentru a lucra cu relația\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"TEMA\",\n choose_map_theme: \"ALEGE TEMA\",\n choose_map_theme_input_label: 'Numele noii tema',\n project_map_theme: 'Tema de proiect',\n user_map_theme: \"Tema utilizator\",\n question_delete_map_theme: \"Doriți să ștergeți tema?\",\n delete_map_theme: \"Tema a fost ștearsă cu succes\",\n saved_map_theme: \"Tema a fost salvată cu succes\",\n updated_map_theme: \"Tema a fost actualizată cu succes\",\n invalid_map_theme_name: \"Numele există deja sau este incorect\",\n menu: {\n layerposition: 'Poziție Strat',\n setwmsopacity: \"Alege Opacitatea\",\n wms: {\n title: \"Titlu\",\n copy: \"Click pentru copiere URL\",\n copied: \"Copiat\"\n },\n download: {\n unknow: 'Descarcă',\n shp: 'Descarcă Shapefile',\n gpx: 'Descarcă GPX',\n gpkg: 'Descarcă GPKG',\n csv: 'Descarcă CSV',\n xls: 'Descarcă XLS',\n geotiff: \"Descarcă GEOTIFF\",\n geotiff_map_extent: \"Descarcă GEOTIFF(ce se vede în cadrul hărții)\"\n }\n }\n },\n wps: {\n list_process: \"Lista de procese\",\n tooltip: 'Click pe hartă'\n }\n },\n credits: {\n g3wSuiteFramework: \"Aplicație bazată pe frameworkul\",\n g3wSuiteDescription: \"Publică și administrează proiectele de QGIS pe WEB\",\n productOf: \"Framework dezvoltat de\"\n },\n toggle_color_scheme: \"Comutare schemă de culori\",\n logout: \"Deconectare\",\n no_other_projects: \"No more project for this group\",\n no_other_groups: \"Nu mai sunt grupuri pentru acest macrogrup\",\n yes: \"Da\",\n no: \"Nu\",\n back: \"Înapoi\",\n backto: \"Înapoi la \",\n changemap: \"Schimbare Hartă\",\n change_session: \"Schimbați sesiunea\",\n component: \"Componentă Generică\",\n search: \"Căutare\",\n no_results: \"Niciun rezultat găsit\",\n print: \"Tipărire\",\n create_print: \"Tipărește\",\n dosearch: \"Caută\",\n catalog: \"Hartă\",\n data: \"Data\",\n externalwms: \"WMS\",\n baselayers: \"Straturi Bază\",\n tools: \"Instrumente\",\n tree: \"Straturi\",\n legend: \"Legendă\",\n nobaselayer: \"Fără strat de bază\",\n street_search: \"Caută Adresă\",\n show: \"Arată\",\n hide: \"Ascunde\",\n copy_form_data: \"Copiază data\",\n paste_form_data: \"Lipește\",\n copy_form_data_from_feature: \"Copiază data din hartă\",\n error_map_loading: \"Sunt erori la încărcarea hărții\",\n check_internet_connection_or_server_admin: \"Verificați conexiune de internet sau contactați administratorul de sistem\",\n could_not_load_vector_layers: \"Eroare de conexiune: Straturile nu pot fi încărcate\",\n server_saver_error: \"Eroare la salvarea pe server\",\n server_error: \"Eroare de conexiune la server\",\n save: \"Salvează\",\n cancel: \"Anulează\",\n update: \"Actualizați\",\n close: \"Închide\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Nu mai afișa mesajul\",\n enlange_reduce: \"Mărește / Micșorează\",\n reset_default: \"Mărimea implicită\",\n add: \"Adaugă\",\n exitnosave: \"Ieșire fără salvare\",\n annul: \"Anulează\",\n layer_is_added: \"Există un strat cu același nume deja adăugat\",\n sidebar: {\n wms: {\n panel: {\n title: 'Adaugă strat WMS',\n label: {\n position: \"Poziție Hartă\",\n name: \"Nume\",\n projections: 'Proiecție',\n layers: 'Straturi'\n }\n },\n add_wms_layer: \"Adaugă strat WMS\",\n delete_wms_url: \"Șterge URL WMS\",\n layer_id_already_added: \"Strat WMS deja adăugat\",\n url_already_added: \"URL WMS/Nume deja adăugat\",\n layer_add_error: \"Stratul WMS nu s-a adăugat. Verificați URL-ul sau parametrii WMS\"\n }\n },\n info: {\n title: \"Rezultate\",\n list_of_relations: \"List of Relations\",\n open_link: \"Deschide document atașat\",\n server_error: \"Serverul a întâmpinat o eroare\",\n no_results: \"Niciun rezultat\",\n link_button: \"Deschide\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Nu te-am putut localiza\"\n },\n geocoding: {\n choose_layer: \"Alegeți un strat unde să adăugați această caracteristică\",\n placeholder: \"Adresa ...\",\n nolayers: \"Nu s-au găsit straturi de puncte editabile în acest proiect\",\n noresults: \"Niciun rezultat\",\n notresponseserver: \"Niciun răspuns de la server\"\n },\n add_layer_control: {\n header: \"Adăugare Strat\",\n select_projection: \"Selectează proiecția strat\",\n select_field_to_show: \"Selectează câmpul de arătat pe hartă\",\n select_csv_separator: \"Selectează delimitatorul\",\n select_csv_x_field: \"Selectează câmpul X - Est\",\n select_csv_y_field: \"Selectează câmpul Y - Nord\",\n select_color: \"Selectează culoare strat\",\n drag_layer: \"Trageți stratul aici (Drag&Drop)\"\n },\n query: {\n input_relation: \"Click pentru a arăta relațiile\"\n },\n length: {\n tooltip: \"Lungime\"\n },\n area: {\n tooltip: \"Arie\"\n },\n screenshot: {\n error: \"Eroare captură ecran\",\n securityError: \" \\n Eroare de securitate : un strat extern \\xEEmpiedic\\u0103 imprimarea h\\u0103r\\u021Bii. Pentru a verifica, proceda\\u021Bi dup\\u0103 cum urmeaz\\u0103:
\\n \\n elimina\\u021Bi orice straturi externe ad\\u0103ugate manual (de exemplu, straturi WMS) \\n for\\u021Ba\\u021Bi re\\xEEnc\\u0103rcarea paginii: CTRL + F5
\\n tip\\u0103re\\u0219te din nou harta \\n \\n Pentru mai multe informa\\u021Bii, v\\u0103 rug\\u0103m s\\u0103 contacta\\u021Bi administratorul serverului despre: ℹ️ securitate \\u0219i p\\xE2nze contaminate
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Click dreapta pe strat pentru a accesa opțiuni\",\n contextmenu: {\n zoomtolayer: \"Zoom pe Strat\",\n open_attribute_table: \"Deschide Tabela Atribute\",\n show_metadata: \"Metadate\",\n styles: 'Stiluri',\n vector_color_menu: \"Setează/Schimbă Culoare\",\n layer_opacity: \"Opacitate\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Anteriorul\",\n next: \"Următorul\",\n lengthMenu: \"Afișați _MENU_ valori pe pagină\",\n info: \"_TOTAL_ rezultate\",\n no_data: \"Fără date\",\n nodatafilterd: \"Niciun rezultat\",\n infoFiltered: \"(filtrat din _MAX_ de rezultate totale)\"\n }\n }\n};\n\n},{}],267:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n translation: {\n error_page: {\n error: \"Anslutningsfel\",\n at_moment: \"För närvarande är det inte möjligt att visa kartan\",\n f5: \"Tryck på Ctrl+F5\"\n },\n cookie_law: {\n message: \"Denna applikation använder cookies för att den ska fungera så bra som möjligt för dig.\",\n buttonText: \"Jag accepterar\"\n },\n default: \"standard\",\n sign_in: \"Logga in\",\n layer_selection_filter: {\n tools: {\n filter: \"Aktivera/inaktivera filter\",\n nofilter: \"Avlägsna Filtrera\",\n invert: \"Invertera Urval\",\n clear: \"Annullera Urval\",\n show_features_on_map: \"Rezultatele se actualizează când harta este deplasată\",\n savefilter: \"Spara Filter\",\n filterName: \"Filternamn\"\n }\n },\n warning: {\n not_supported_format: \"Formatet stöds inte\"\n },\n layer_position: {\n top: 'Överst',\n bottom: 'Underst',\n message: \"Position relativt till lager i lagerlistan\"\n },\n sdk: {\n atlas: {\n template_dialog: {\n title: \"Välj Template\"\n }\n },\n spatialbookmarks: {\n title: \"Rumsliga bokmärken\",\n helptext: \"Flytta på kartans omfattning, ange namn och klicka på Lägg till\",\n input: {\n name: \"Namn\"\n },\n sections: {\n project: {\n title: \"Projektbokmärken\"\n },\n user: {\n title: \"Användarbokmärken\"\n }\n }\n },\n search: {\n all: 'ALLA',\n no_results: \"Inga resultat\",\n searching: \"Sökning ...\",\n error_loading: \"Fel vid laddning av uppgifter.\",\n layer_not_searchable: \"Nivån kan inte sökas.\",\n layer_not_querable: \"Förfrågningar kan inte göras på nivån.\",\n autocomplete: {\n inputshort: {\n pre: \"Mata in\",\n post: \"eller flera tecken\"\n }\n }\n },\n print: {\n no_layers: 'Inga nivåer att skriva ut',\n template: \"Template\",\n labels: \"Labels\",\n scale: \"Skala\",\n format: \"Format\",\n rotation: \"Rotation\",\n download_image: \"Ladda ner bild\",\n fids_instruction: \"Godkända värden: Från ett till värdet [max]. Mellanslag tillåts, t.ex. 4-6.\",\n fids_example: \"Exempelvis 1,4-6 skriver ut id 1,4,5,6.\",\n help: \"Nivåerna på utskriften kan vara specificerade i ett projekt inte sådana som visas på karta.\"\n },\n querybuilder: {\n search: {\n run: \"Utför\",\n info: \"Information\",\n delete: \"Ta bort\",\n edit: \"Redigera\"\n },\n messages: {\n changed: 'Sparat',\n number_of_features: \"Antal funktione\"\n },\n panel: {\n button: {\n all: 'ALLA',\n save: 'SPARA',\n test: 'TEST',\n clear: 'TÖM',\n run: 'UTFÖR',\n manual: 'MANUELL'\n },\n layers: 'NIVÅER',\n fields: 'FÄLT',\n values: 'VÄRDEN',\n operators: 'OPERATÖRER',\n expression: 'KLAUSUL'\n },\n error_run: 'Ett fel inträffade. Kontrollera förfrågan.',\n error_test: \"Ett fel inträffade när förfrågan utfördes.\",\n delete: 'Vill du ta bort den?',\n additem: 'Ge den nya sökningen ett namn.'\n },\n errors: {\n layers: {\n load: \"Vissa nivåer är inte tillgängliga.\"\n },\n unsupported_format: 'Formatet stöds inte',\n add_external_layer: 'Fel vid laddning av nivån'\n },\n metadata: {\n title: 'Metadata',\n groups: {\n general: {\n title: 'ALLMÄN',\n fields: {\n title: 'RUBRIK',\n name: 'NAMN',\n description: \"BESKRIVNING\",\n abstract: \"SAMMANDRAG\",\n keywords: 'NYCKELORD',\n fees: \"AVGIFTER\",\n accessconstraints: \"ÅTKOMSTBEGRÄNSNINGAR\",\n contactinformation: \"KONTAKTUPPGIFTER\",\n subfields: {\n contactinformation: {\n contactelectronicmailaddress: \"E-post\",\n personprimary: 'Referenser',\n contactvoicetelephone: 'Telefon',\n contactorganization: 'Organisation',\n ContactOrganization: 'Organisation',\n contactposition: 'Ställning',\n ContactPosition: 'Ställning',\n contactperson: 'Kontaktperson',\n ContactPerson: 'Kontaktperson'\n }\n },\n wms_url: \"WMS\"\n }\n },\n spatial: {\n title: 'SPATIAL',\n fields: {\n crs: 'EPSG',\n extent: 'BBOX'\n }\n },\n layers: {\n title: 'NIVÅER',\n fields: {\n layers: 'NIVÅER',\n subfields: {\n crs: 'EPSG',\n bbox: 'BBOX',\n title: \"RUBRIK\",\n name: 'NAMN',\n geometrytype: 'GEOMETRI',\n source: 'KÄLLA',\n attributes: 'ATTRIBUT',\n abstract: 'SAMMANDRAG',\n attribution: 'TILLSKRIVNING',\n keywords: \"NYCKELORD\",\n metadataurl: 'METADATA URL',\n dataurl: \"DATA URL\"\n }\n },\n groups: {\n general: 'ALLMÄN',\n spatial: 'SPATIAL'\n }\n }\n }\n },\n tooltips: {\n relations: {\n form_to_row: \"Radvy\",\n row_to_form: \"Tabellvy\",\n zoomtogeometry: \"Zooma till geometri\"\n },\n copy_map_extent_url: 'Kopiera länk till karta',\n download_shapefile: \"Ladda SHP-fil\",\n download_gpx: \"Ladda GPX-fil\",\n download_gpkg: \"Ladda GPKG-fil\",\n download_csv: \"Ladda CSV-fil\",\n download_xls: \"Ladda XLS-fil\",\n download_pdf: \"Ladda PDF-fil\",\n show_chart: \"Visa diagram\", //Tero 9.12.2020\n atlas: \"Skriv ut Atlas\",\n editing: \"Editing\"\n },\n mapcontrols: {\n query: {\n tooltip: 'Förfrågningsnivå',\n actions: {\n add_selection: {\n hint: \"Lägg till/Avlägsna Urval\"\n },\n zoom_to_features_extent: {\n hint: \"Zooma till egenskapens omfattning\"\n },\n add_features_to_results: {\n hint: \"Add/Remove features to results\"\n },\n remove_feature_from_results: {\n hint: \"Remove feature from results\"\n },\n zoom_to_feature: {\n hint: \"Zooma till egenskapen\"\n },\n relations: {\n hint: \"Visa relationerna\"\n },\n relations_charts: {\n hint: \"Visa relationsdiagrammet\" //Tero 9.12.2020\n },\n download_features_shapefile: {\n hint: 'Ladda egenskapens SHP-fil'\n },\n download_shapefile: {\n hint: 'Ladda egenskapens SHP-fil'\n },\n download_features_gpx: {\n hint: \"Ladda egenskapens GPX-fil\"\n },\n download_features_gpkg: {\n hint: \"Ladda egenskapens GPKG-fil\"\n },\n download_gpx: {\n hint: \"Ladda egenskapens GPX-fil\"\n },\n download_gpkg: {\n hint: \"Ladda egenskapens GPKG-fil\"\n },\n download_features_csv: {\n hint: \"Ladda egenskapens CSV-fil\"\n },\n download_csv: {\n hint: \"Ladda egenskapens CSV-fil\"\n },\n download_features_xls: {\n hint: \"Ladda egenskapens XLS-fil\"\n },\n download_xls: {\n hint: \"Ladda egenskapens XLS-fil\"\n },\n download_pdf: {\n hint: \"Ladda egenskapens PDF-fil\"\n },\n atlas: {\n hint: \"Skriv ut Atlas\"\n },\n copy_zoom_to_fid_url: {\n hint: \"Copy map URL with this geometry feature extension\",\n hint_change: \"Copied\"\n }\n }\n },\n querybypolygon: {\n download: {\n title: \"Attributes download\",\n choiches: {\n feature: {\n label: \"Features only\"\n },\n feature_polygon: {\n label: \"Features+Query Polygon\"\n }\n }\n },\n tooltip: 'Förfrågan med polygon',\n no_geometry: 'No geometry on response',\n help: {\n title: 'Ohje - Förfrågan med polygon',\n message: \"Välj polygonnivå i listan. Kontrollera att nivån är synlig. Välj egenskap på önskad nivå. \"\n }\n },\n querybydrawpolygon: {\n tooltip: \"Fråga efter ritpolygon\"\n },\n querybybbox: {\n tooltip: 'BBox-förfrågan som riktar sig till en nivå',\n nolayers_visible: 'Inga nivåer som förfrågningar kan riktas till. Gör minst en WFS-nivå synlig för att kunna utföra sökningen.',\n help: {\n title: 'Ohje - BBox-förfrågan som riktar sig till nivån',\n message: \"Rita upp en rektangel på kartan för att utföra förfrågan på de i listan understreckade nivåerna. \"\n }\n },\n addlayer: {\n messages: {\n csv: {\n warning: \"The result in the map is partial due to the presence of the below incorrect records list:\"\n }\n },\n tooltip: 'Lägg till nivå'\n },\n geolocation: {\n tooltip: 'Geografiskt läge'\n },\n measures: {\n length: {\n tooltip: \"Längd\",\n help: \"Rita upp en bruten linje på kartan. Tryck CANC, om du vill ta bort föregående punkt.\"\n },\n area: {\n tooltip: \"Område\",\n help: \"Rita upp en polygon på kartan. Tryck CANC, om du vill ta bort föregående punkt.\"\n }\n },\n scale: {\n no_valid_scale: \"Fel skala\"\n },\n scaleline: {\n units: {\n metric: 'Meters',\n nautical: 'Nautical Mile'\n }\n },\n zoomhistory: {\n zoom_last: \"Zoom Föregående\",\n zoom_next: \"Zoom Nästa\"\n }\n },\n relations: {\n relation_data: 'Relationsuppgifter',\n no_relations_found: 'Inga relationer hittades.',\n back_to_relations: 'Tillbaka till relationerna',\n list_of_relations_feature: 'Lista på egenskapens relationer',\n error_missing_father_field: \"Fält saknas\"\n },\n form: {\n loading: 'Laddning...',\n inputs: {\n messages: {\n errors: {\n picklayer: \"Inga egenskaper har valts. Kontroller att nivån kan redigeras eller att den syns med nuvarande skala.\"\n }\n },\n tooltips: {\n picklayer: \"Välj värde på kartnivå\",\n lonlat: \"Click on map to get coordinates\"\n },\n input_validation_mutually_exclusive: \"Fälten utesluter varandra.\",\n input_validation_error: \"Obligatoriskt fält eller fel datatyp.\",\n input_validation_min_field: \"Värdet ska vara större eller lika stort som värdet i fältet.\",\n input_validation_max_field: \"Värdet ska vara mindre eller lika stort som värdet i fältet.\",\n input_validation_exclude_values: \"Värdet ska vara unikt.\",\n integer: \"heltal\",\n bigint: \"heltal\",\n text: \"text\",\n varchar: \"text\",\n textarea: \"text\",\n string: \"teckensträng\",\n date: \"datum\",\n datetime: \"datum\",\n float: \"flyttal\",\n table: \"tabell\"\n },\n footer: {\n \"required_fields\": \"Obligatoriska fält\"\n },\n messages: {\n qgis_input_widget_relation: \"Använd den specifika funktinen för att bestämma relationer\"\n }\n },\n catalog: {\n current_map_theme_prefix: \"THEME\",\n choose_map_theme: \"CHOOSE THEME\",\n choose_map_theme_input_label: 'Namn på det nya temat',\n project_map_theme: 'Temat de proiect',\n user_map_theme: \"Temat utilizator\",\n question_delete_map_theme: \"Vill du ta bort temat?\",\n delete_map_theme: \"Temat har tagits bort\",\n saved_map_theme: \"Temat har sparats\",\n updated_map_theme: \"Temat har uppdaterats\",\n invalid_map_theme_name: \"Namnet finns redan eller är felaktigt\",\n menu: {\n layerposition: 'Lagerposition',\n setwmsopacity: \"Ställ in Opacitet\",\n wms: {\n title: \"\",\n copy: \"Tryck här för att kopiera url.\",\n copied: \"Kopierad.\"\n },\n download: {\n unknow: 'Ladda',\n shp: 'Ladda SHP-fil',\n gpx: 'Ladda GPX-fil',\n gpkg: 'Ladda GPKG-fil',\n csv: 'Ladda CSV-fil',\n xls: 'Ladda XLS-fil',\n geotiff: 'Ladda GEOTIFF-fil',\n geotiff_map_extent: \"Ladda GEOTIFF-fil(current view extent)\"\n }\n }\n },\n wps: {\n list_process: \"Lista på processer\",\n tooltip: 'Välj på kartan'\n }\n },\n credits: {\n g3wSuiteFramework: \"Tillämpningen baserar på OS framework\",\n g3wSuiteDescription: \"Publicera och hantera QGIS-projekt på nätet.\",\n productOf: \"Framework har utvecklats av\"\n },\n toggle_color_scheme: \"Toggle color scheme\",\n logout: \"Logga ut\",\n no_other_projects: \"Inga projekt för denna grupp\",\n no_other_groups: \"Inga fler grupper för denna makrogrupp\",\n yes: \"Ja\",\n no: \"Nej\",\n back: \"Gå tillbaka\",\n backto: \"Tillbaka \",\n changemap: \"Byt karta\",\n change_session: \"Ändra session\",\n component: \"Allmän komponent\",\n search: \"Sök\",\n no_results: \"Inga sökresultat\",\n print: \"Skriv ut\",\n create_print: \"Skapa utskrift\",\n dosearch: \"Sök\",\n catalog: \"Karta\",\n data: \"Data\",\n externalwms: \"WMS\",\n baselayers: \"Bakgrundskarta\",\n tools: \"Verktyg\",\n tree: \"Nivåer\",\n legend: \"Förklaring till beteckningarna\",\n nobaselayer: \"Ingen bakgrundskarta\",\n street_search: \"Sök adress\",\n show: \"Visa\",\n hide: \"Dölj\",\n copy_form_data: \"Kopiera uppgifterna\",\n paste_form_data: \"Infoga\",\n copy_form_data_from_feature: \"Kopiera uppgifter från kartan\",\n error_map_loading: \"Fel vid laddning av kartan\",\n check_internet_connection_or_server_admin: \"Kontrollera internetanslutningen eller kontakta administratören.\",\n could_not_load_vector_layers: \"Fel i anslutningen, nivåer kan inte laddas.\",\n server_saver_error: \"Fel vid lagring på servern.\",\n server_error: \"Fel på anslutningen till servern\",\n save: \"Spara\",\n cancel: \"Ånga\",\n update: \"Uppdatering\",\n close: \"Stäng\",\n /**\n * @since 3.8.0\n */\n dont_show_again: \"Visa inte det här meddelandet igen\",\n enlange_reduce: \"Förstora / Förminska\",\n reset_default: \"Standardstorlek\",\n add: \"Lägg till\",\n exitnosave: \"Lämna programmet utan att spara\",\n annul: \"Ångra\",\n layer_is_added: \"Lagret med samma namn har redan lagts till.\",\n sidebar: {\n wms: {\n panel: {\n title: 'Add WMS Layer',\n label: {\n position: \"Map Position\",\n name: \"Name\",\n projections: 'Projection',\n layers: 'Layers'\n }\n },\n add_wms_layer: \"Aggiungi WMS layer\",\n delete_wms_url: \"Delete WMS url\",\n layer_id_already_added: \"WMS Nivån har redan lagts till.\",\n url_already_added: \"WMS URL/Namn har redan lagts till.\",\n layer_add_error: \"WMS Layer not added. Please check all wms parameter or url\"\n }\n },\n info: {\n title: \"Resultat\",\n list_of_relations: \"List of Relations\",\n open_link: \"Öppna filbilaga\",\n server_error: \"Ett fel uppstod på servern.\",\n no_results: \"Inga resultat för sökningen/förfrågan.\",\n link_button: \"Öppna\"\n },\n mapcontrols: {\n geolocation: {\n error: \"Du kan inte lokaliseras\"\n },\n geocoding: {\n choose_layer: \"Välj ett lager där du vill lägga till denna funktion\",\n placeholder: \"Adress ...\",\n nolayers: \"Inga redigerbara punktlager hittades i det här projektet\",\n noresults: \"Inga resultat\",\n notresponseserver: \"Inget svar från servern\"\n },\n add_layer_control: {\n header: \"Lägg till nivå\",\n select_projection: \"Välj projektion för nivån\",\n select_field_to_show: \"Select Field to show on map\",\n select_csv_separator: \"Select delimiter\",\n select_csv_x_field: \"Select X field\",\n select_csv_y_field: \"Select Y field\",\n select_color: \"Välj färg på nivån\",\n drag_layer: \"Dra och släpp nivån hit\"\n },\n query: {\n input_relation: \"Tryck för att visa relationerna\"\n },\n length: {\n tooltip: \"Längd\"\n },\n area: {\n tooltip: \"Areal\"\n },\n screenshot: {\n error: \"Screenshot error creation\",\n securityError: \" \\n S\\xE4kerhetsfel : ett externt lager hindrar kartan fr\\xE5n att skrivas ut. G\\xF6r s\\xE5 h\\xE4r f\\xF6r att kontrollera:
\\n \\n ta bort alla manuellt tillagda externa lager (t.ex. WMS-lager) \\n tvinga om inl\\xE4sning av sidan: CTRL + F5
\\n skriv ut kartan igen \\n \\n F\\xF6r mer information kontakta serveradministrat\\xF6ren om: ℹ️ s\\xE4kerhet och nedsmutsade dukar
\\n \"\n }\n },\n catalog_items: {\n helptext: \"Högerklicka på en enskild nivå för att komma till tilläggsegenskaperna.\",\n contextmenu: {\n zoomtolayer: \"Zooma till nivå\",\n open_attribute_table: \"Öppna attributtabellen\",\n show_metadata: \"Metadata\",\n styles: \"Stilar\",\n vector_color_menu: \"Ställ in/ändra färg\",\n layer_opacity: \"Opacitet\",\n filters: \"Filters\"\n }\n },\n dataTable: {\n previous: \"Föregående\",\n next: \"Nästa\",\n lengthMenu: \"Visa _MENU_ värden per sida\",\n info: \"_TOTAL_ resultat\",\n no_data: \"Inga uppgifter\",\n nodatafilterd: \"Inga motsvarande poster hittades\",\n infoFiltered: \"(filtered from _MAX_ total records)\"\n }\n }\n};\n\n},{}],268:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _catalogLayers = require('store/catalog-layers');\n\nvar _catalogLayers2 = _interopRequireDefault(_catalogLayers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } /**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n methods: {\n autocompleteRequest: function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId,\n field = _ref2.field,\n value = _ref2.value;\n\n var data = [];\n var layer = _catalogLayers2.default.getLayerById(layerId);\n try {\n data = yield layer.getFilterData({\n suggest: field + '|' + value,\n unique: field\n });\n } catch (e) {\n console.warn(e);\n }\n return data.map(function (value) {\n return { id: value, text: value };\n });\n });\n\n function autocompleteRequest() {\n return _ref.apply(this, arguments);\n }\n\n return autocompleteRequest;\n }()\n }\n};\n\n},{\"store/catalog-layers\":295}],269:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n computed: {\n tabIndex: function tabIndex() {\n return this.editable ? 0 : -1;\n },\n notvalid: function notvalid() {\n return false === this.state.validate.valid;\n },\n editable: function editable() {\n return this.state.editable;\n },\n showhelpicon: function showhelpicon() {\n return this.state.help && this.state.help.message.trim();\n },\n disabled: function disabled() {\n return !this.editable || ['loading', 'error'].includes(this.loadingState);\n },\n loadingState: function loadingState() {\n return this.state.input.options.loading ? this.state.input.options.loading.state : null;\n }\n },\n methods: {\n /**\n * @since v3.9.1\n * @param bool\n */\n setLoading: function setLoading(bool) {\n this.state.input.options.loading.state = bool ? 'loading' : 'ready';\n },\n showHideHelp: function showHideHelp() {\n this.state.help.visible = !this.state.help.visible;\n },\n\n // used to text input to listen to mobile changes\n mobileChange: function mobileChange(event) {\n this.state.value = event.target.value;\n this.change();\n },\n\n // called when input value change\n change: function change() {\n this.service.setEmpty();\n this.service.setUpdate();\n // validate input every time on change\n // becase can be insert a text where state.input.type (widget) is text but state.type is integer\n this.service.validate();\n // emit change input\n this.$emit('changeinput', this.state);\n },\n isVisible: function isVisible() {}\n }\n};\n\n},{}],270:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.8\n */\n\nexports.default = {\n created: function created() {\n /**\n * Store `click` and `doubleclick` events on a single vue element.\n *\n * @see https://stackoverflow.com/q/41303982\n */\n this.__CLICK_EVENT = {\n count: 0, // count click events\n timeoutID: null // timeoutID return by setTimeout Function\n };\n },\n\n\n methods: {\n\n /**\n * @param {{ '1': () => {}, '2': () => {}}} callbacks hashmap of click event handlers ('1' = click, '2' = double click)\n * @param context\n */\n handleClick: function handleClick() {\n var _this = this;\n\n var callbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var context = arguments[1];\n\n if (!this.__CLICK_EVENT) {\n console.warn('click mixin not initialized on context:', context);\n return;\n }\n this.__CLICK_EVENT.count += 1; // increment click count\n if (!this.__CLICK_EVENT.timeoutID) {\n // skip and wait for timeout in order to detect double click\n this.__CLICK_EVENT.timeoutID = setTimeout(function () {\n if (undefined !== callbacks[_this.__CLICK_EVENT.count]) {\n callbacks[_this.__CLICK_EVENT.count].call(context);\n }\n _this.__resetClickMixin();\n }, 300);\n }\n },\n __resetClickMixin: function __resetClickMixin() {\n this.__CLICK_EVENT.count = 0;\n this.__CLICK_EVENT.timeoutID = null;\n },\n __clearClickMixin: function __clearClickMixin() {\n this.__resetClickMixin();\n this.__CLICK_EVENT = null;\n }\n },\n\n beforeDestroy: function beforeDestroy() {\n this.__clearClickMixin();\n }\n};\n\n},{}],271:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n methods: {\n getFieldService: function getFieldService() {\n if (undefined === this._fieldsService) {\n this._fieldsService = require('gui/fields/fieldsservice');\n }\n return this._fieldsService;\n },\n getFieldType: function getFieldType(field) {\n return this.getFieldService().getType(field);\n },\n isSimple: function isSimple(field) {\n return this.getFieldService().isSimple(field);\n },\n isLink: function isLink(field) {\n return this.getFieldService().isLink(field);\n },\n isImage: function isImage(field) {\n return this.getFieldService().isImage(field);\n },\n isPhoto: function isPhoto(field) {\n return this.getFieldService().isPhoto(field);\n },\n isVue: function isVue(field) {\n return this.getFieldService().isVue(field);\n },\n sanitizeFieldValue: function sanitizeFieldValue(value) {\n return Array.isArray(value) && !value.length ? '' : value;\n }\n }\n};\n\n},{\"gui/fields/fieldsservice\":67}],272:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n data: function data() {\n return {\n valid: false\n };\n },\n\n methods: {\n addToValidate: function addToValidate(input) {\n this.tovalidate.push(input);\n },\n changeInput: function changeInput(input) {\n this.isValid(input);\n },\n\n // Every input sends to form it valid value that will change the genaral state of form\n isValid: function isValid(input) {\n var _this = this;\n\n if (input) {\n // check mutually\n if (input.validate.mutually) {\n if (!input.validate.required) {\n if (!input.validate.empty) {\n input.validate._valid = input.validate.valid;\n input.validate.mutually_valid = input.validate.mutually.reduce(function (previous, inputname) {\n return previous && _this.tovalidate[inputname].validate.empty;\n }, true);\n input.validate.valid = input.validate.mutually_valid && input.validate.valid;\n } else {\n input.value = null;\n input.validate.mutually_valid = true;\n input.validate.valid = true;\n input.validate._valid = true;\n var countNoTEmptyInputName = [];\n for (var i = input.validate.mutually.length; i--;) {\n var inputname = input.validate.mutually[i];\n !this.tovalidate[inputname].validate.empty && countNoTEmptyInputName.push(inputname);\n }\n if (countNoTEmptyInputName.length < 2) {\n countNoTEmptyInputName.forEach(function (inputname) {\n _this.tovalidate[inputname].validate.mutually_valid = true;\n _this.tovalidate[inputname].validate.valid = true;\n setTimeout(function () {\n _this.tovalidate[inputname].validate.valid = _this.tovalidate[inputname].validate._valid;\n _this.state.valid = _this.state.valid && _this.tovalidate[inputname].validate.valid;\n });\n });\n }\n }\n }\n //check if min_field or max_field is set\n } else if (!input.validate.empty && (input.validate.min_field || input.validate.max_field)) {\n var input_name = input.validate.min_field || input.validate.max_field;\n input.validate.valid = input.validate.min_field ? this.tovalidate[input.validate.min_field].validate.empty || 1 * input.value > 1 * this.tovalidate[input.validate.min_field].value : this.tovalidate[input.validate.max_field].validate.empty || 1 * input.value < 1 * this.tovalidate[input.validate.max_field].value;\n if (input.validate.valid) {\n this.tovalidate[input_name].validate.valid = true;\n }\n }\n }\n this.valid = Object.values(this.tovalidate).reduce(function (previous, input) {\n return previous && input.validate.valid;\n }, true);\n }\n },\n created: function created() {\n this.tovalidate = [];\n },\n destroyed: function destroyed() {\n this.tovalidate = null;\n }\n};\n\n},{}],273:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n methods: {\n showLayer: function showLayer() {\n this.visible = !this.visible;\n this.layer.setVisible(this.visible);\n }\n },\n created: function created() {\n var data = this.data;\n var mapService = _gui2.default.getService('map');\n var mapProjection = mapService.getProjection().getCode();\n var style = void 0;\n switch (data.type) {\n case 'Point':\n case 'MultiPoint':\n style = [new ol.style.Style({\n image: new ol.style.Circle({\n radius: 6,\n fill: new ol.style.Fill({\n color: [255, 255, 255, 1.0]\n }),\n stroke: new ol.style.Stroke({\n color: [0, 0, 0, 1.0],\n width: 2\n })\n })\n }), new ol.style.Style({\n image: new ol.style.Circle({\n radius: 2,\n fill: new ol.style.Fill({\n color: [255, 255, 255, 1.0]\n }),\n stroke: new ol.style.Stroke({\n color: [0, 0, 0, 1.0],\n width: 2\n })\n })\n })];\n break;\n case 'Line':\n case 'MultiLineString':\n case 'Polygon':\n case 'MultiPolygon':\n style = new ol.style.Style({\n fill: new ol.style.Fill({\n color: 'rgba(255, 255, 255, 0.3)'\n }),\n stroke: new ol.style.Stroke({\n color: [0, 0, 0, 1.0],\n width: 2\n })\n });\n break;\n }\n this.layer = new ol.layer.Vector({\n source: new ol.source.Vector({\n features: new ol.format.GeoJSON().readFeatures(data, {\n featureProjection: mapProjection\n })\n }),\n visible: !!this.visible,\n style: style\n });\n mapService.getMap().addLayer(this.layer);\n },\n beforeDestroy: function beforeDestroy() {\n _gui2.default.getService('map').getMap().removeLayer(this.layer);\n }\n}; /**\n * @file\n * @since v3.7\n */\n\n},{\"services/gui\":286}],274:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mixins = exports.autocompleteMixin = exports.baseInputMixin = exports.metadataMixin = exports.widgetMixins = exports.formInputsMixins = exports.select2Mixin = exports.selectMixin = exports.resizeMixin = exports.geoMixin = exports.mediaMixin = exports.fieldsMixin = undefined;\n\nvar _autocomplete = require('mixins/autocomplete');\n\nvar _autocomplete2 = _interopRequireDefault(_autocomplete);\n\nvar _fields = require('mixins/fields');\n\nvar _fields2 = _interopRequireDefault(_fields);\n\nvar _media = require('mixins/media');\n\nvar _media2 = _interopRequireDefault(_media);\n\nvar _geo = require('mixins/geo');\n\nvar _geo2 = _interopRequireDefault(_geo);\n\nvar _resize = require('mixins/resize');\n\nvar _resize2 = _interopRequireDefault(_resize);\n\nvar _select = require('mixins/select');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _select3 = require('mixins/select2');\n\nvar _select4 = _interopRequireDefault(_select3);\n\nvar _formInputs = require('mixins/form-inputs');\n\nvar _formInputs2 = _interopRequireDefault(_formInputs);\n\nvar _widget = require('mixins/widget');\n\nvar _widget2 = _interopRequireDefault(_widget);\n\nvar _metadata = require('mixins/metadata');\n\nvar _metadata2 = _interopRequireDefault(_metadata);\n\nvar _baseInput = require('mixins/base-input');\n\nvar _baseInput2 = _interopRequireDefault(_baseInput);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mixins = {\n autocompleteMixin: _autocomplete2.default,\n fieldsMixin: _fields2.default,\n mediaMixin: _media2.default,\n geoMixin: _geo2.default,\n resizeMixin: _resize2.default,\n selectMixin: _select2.default,\n select2Mixin: _select4.default,\n formInputsMixins: _formInputs2.default,\n widgetMixins: _widget2.default,\n metadataMixin: _metadata2.default,\n baseInputMixin: _baseInput2.default\n}; /**\n * @file\n * @since v3.7\n */\n\nexports.fieldsMixin = _fields2.default;\nexports.mediaMixin = _media2.default;\nexports.geoMixin = _geo2.default;\nexports.resizeMixin = _resize2.default;\nexports.selectMixin = _select2.default;\nexports.select2Mixin = _select4.default;\nexports.formInputsMixins = _formInputs2.default;\nexports.widgetMixins = _widget2.default;\nexports.metadataMixin = _metadata2.default;\nexports.baseInputMixin = _baseInput2.default;\nexports.autocompleteMixin = _autocomplete2.default;\nexports.mixins = mixins;\nexports.default = mixins;\n\n},{\"mixins/autocomplete\":268,\"mixins/base-input\":269,\"mixins/fields\":271,\"mixins/form-inputs\":272,\"mixins/geo\":273,\"mixins/media\":275,\"mixins/metadata\":276,\"mixins/resize\":277,\"mixins/select\":278,\"mixins/select2\":279,\"mixins/widget\":280}],275:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n computed: {\n filename: function filename() {\n return this.value ? this.value.split('/').pop() : this.value;\n }\n },\n methods: {\n isMedia: function isMedia(value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Object) {\n return !!value.mime_type;\n }\n return false;\n },\n getMediaType: function getMediaType(mime_type) {\n var media = {\n type: null,\n options: {}\n };\n switch (mime_type) {\n case 'image/gif':\n case 'image/png':\n case 'image/jpeg':\n case 'image/bmp':\n media.type = 'image';\n break;\n case 'application/pdf':\n media.type = 'pdf';\n break;\n case 'video/mp4':\n case 'video/ogg':\n case 'video/x-ms-wmv':\n case 'video/x-msvideo':\n case 'video/quicktime':\n media.type = 'video';\n media.options.format = mime_type;\n break;\n case 'application/gzip':\n case 'application/zip':\n media.type = 'zip';\n break;\n case 'application/msword':\n case 'application/vnd.oasis.opendocument.text':\n media.type = 'text';\n break;\n case 'application/vnd.ms-office':\n case 'application/vnd.oasis.opendocument.spreadsheet':\n media.type = 'excel';\n break;\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n case 'application/vnd.ms-powerpoint':\n case 'application/vnd.oasis.opendocument.presentation':\n media.type = 'ppt';\n break;\n default:\n media.type = 'unknow';\n }\n return media;\n }\n }\n};\n\n},{}],276:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n methods: {\n findAttributeFormMetadataAttribute: function findAttributeFormMetadataAttribute(name) {\n return this.state.metadata ? undefined !== this.state.metadata[name] : false;\n },\n findMetadataAttribute: function findMetadataAttribute(name) {\n return this.state[name] !== undefined;\n }\n }\n};\n\n},{}],277:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } /**\n * @file\n * @since v3.7\n */\n\nvar _require = require('utils'),\n throttle = _require.throttle,\n debounce = _require.debounce;\n\nvar DELAY_TYPE = {\n throttle: throttle,\n debounce: debounce\n};\n\nexports.default = {\n created: function created() {\n var delayWrapper = this.delayType && DELAY_TYPE[this.delayType] || DELAY_TYPE.throttle;\n this.delayResize = this.resize ? delayWrapper(this.resize.bind(this), this.delayTime) : null;\n _gui2.default.on('resize', this.delayResize);\n },\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n yield this.$nextTick();\n if (this.resize) {\n this.resize();\n }\n });\n\n function mounted() {\n return _ref.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n _gui2.default.off('resize', this.delayResize);\n this.delayResize = null;\n this.delayTime = null;\n }\n};\n\n},{\"services/gui\":286,\"utils\":388}],278:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\n/**\n * @file\n * @since v3.7\n */\nvar _require = require('core/i18n/i18n.service'),\n getAppLanguage = _require.getAppLanguage;\n\nexports.default = {\n methods: {\n getLanguage: function getLanguage() {\n return getAppLanguage();\n },\n changeSelect: function () {\n var _ref = _asyncToGenerator(function* (value) {\n this.state.value = 'null' === value ? null : value;\n //need to be waited in case of autocomplete\n yield this.$nextTick();\n this.change();\n });\n\n function changeSelect(_x) {\n return _ref.apply(this, arguments);\n }\n\n return changeSelect;\n }(),\n getValue: function getValue(value) {\n return null === value ? 'null' : value;\n },\n resetValues: function resetValues() {\n this.state.input.options.values.splice(0);\n }\n },\n computed: {\n autocomplete: function autocomplete() {\n return 'select_autocomplete' === this.state.input.type && this.state.input.options.usecompleter;\n }\n },\n watch: {\n notvalid: function () {\n var _ref2 = _asyncToGenerator(function* (value) {\n yield this.$nextTick();\n if (this.select2) {\n this.select2.data('select2').$container[value ? \"addClass\" : \"removeClass\"](\"input-error-validation\");\n }\n });\n\n function notvalid(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return notvalid;\n }()\n }\n};\n\n},{\"core/i18n/i18n.service\":12}],279:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _resize = require('mixins/resize');\n\nvar _resize2 = _interopRequireDefault(_resize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n mixins: [_resize2.default],\n methods: {\n setValue: function setValue() {\n this.select2.val(this.state.value).trigger('change');\n },\n resize: function resize() {\n if (this.select2 && !_applicationState2.default.ismobile) {\n this.select2.select2('close');\n }\n }\n },\n beforeDestroy: function beforeDestroy() {\n //destroy a select2 dom element\n if (this.select2) {\n this.select2.select2('destroy');\n // remove all events\n this.select2.off();\n this.select2 = null;\n }\n }\n};\n\n},{\"mixins/resize\":277,\"store/application-state\":294}],280:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file\n * @since v3.7\n */\n\nexports.default = {\n data: function data() {\n return {\n changed: false\n };\n },\n\n methods: {\n widgetChanged: function widgetChanged() {\n this.changed = true;\n this.change();\n },\n stateValueChanged: function stateValueChanged(value) {\n console.log('need to be implemented by widget'); // method to overwrite\n }\n },\n watch: {\n 'state.value': function stateValue(value) {\n this.changed ? this.changed = false : this.stateValueChanged(value);\n }\n }\n};\n\n},{}],281:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @file\n * @since v3.6\n */\n\nvar _require = require('utils'),\n base = _require.base,\n inherit = _require.inherit,\n reject = _require.reject;\n\nvar G3WObject = require('core/g3wobject');\n\n// Class Api Service\nfunction ApiService() {\n this._config = null;\n this._baseUrl = null;\n this.init = function () {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var d = $.Deferred();\n this._config = config;\n // get url from base api of application config\n this._baseUrl = config.urls.api;\n this._apiEndpoints = config.urls.apiEndpoints;\n d.resolve();\n return d.promise();\n };\n var howManyAreLoading = 0;\n this._incrementLoaders = function () {\n if (0 === howManyAreLoading) {\n this.emit('apiquerystart');\n }\n howManyAreLoading += 1;\n };\n\n this._decrementLoaders = function () {\n howManyAreLoading -= 1;\n if (0 === howManyAreLoading) {\n this.emit('apiqueryend');\n }\n };\n\n this.get = function (api, options) {\n var _this = this;\n\n var apiEndPoint = this._apiEndpoints[api];\n if (apiEndPoint) {\n var url = this._baseUrl + '/' + apiEndPoint + (options.request ? '/' + options.request : '');\n this.emit(api + 'querystart');\n this._incrementLoaders();\n return $.get(url, options.params || {}).done(function (response) {\n _this.emit(api + 'queryend', response);\n return response;\n }).fail(function (e) {\n _this.emit(api + 'queryfail', e);\n return e;\n }).always(function () {\n return _this._decrementLoaders();\n });\n } else {\n return reject();\n }\n };\n base(this);\n}\n\ninherit(ApiService, G3WObject);\n\nexports.default = new ApiService();\n\n},{\"core/g3wobject\":11,\"utils\":388}],282:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _config = require('config');\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _constant = require('app/constant');\n\nvar _applicationState = require('store/application-state');\n\nvar _applicationState2 = _interopRequireDefault(_applicationState);\n\nvar _data = require('services/data');\n\nvar _data2 = _interopRequireDefault(_data);\n\nvar _plugins = require('store/plugins');\n\nvar _plugins2 = _interopRequireDefault(_plugins);\n\nvar _projects = require('store/projects');\n\nvar _projects2 = _interopRequireDefault(_projects);\n\nvar _api = require('services/api');\n\nvar _api2 = _interopRequireDefault(_api);\n\nvar _clipboard = require('services/clipboard');\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _router = require('services/router');\n\nvar _router2 = _interopRequireDefault(_router);\n\nvar _gui = require('services/gui');\n\nvar _gui2 = _interopRequireDefault(_gui);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; } /**\n * @file\n * @since v3.6\n */\n\nvar _require = require('core/i18n/i18n.service'),\n i18ninit = _require.init,\n changeLanguage = _require.changeLanguage;\n\nvar _require2 = require('utils'),\n base = _require2.base,\n inherit = _require2.inherit,\n XHR = _require2.XHR,\n uniqueId = _require2.uniqueId;\n\nvar G3WObject = require('core/g3wobject');\n\n/** @deprecated */\nvar _cloneDeep = require('lodash.clonedeep');\n\n/**\n * Manage Application \n */\nvar ApplicationService = function ApplicationService() {\n var _this = this;\n\n this.version = _constant.APP_VERSION;\n\n _applicationState2.default.iframe = window.top !== window.self;\n\n _applicationState2.default.online = navigator.onLine;\n\n _applicationState2.default.ismobile = isMobile.any;\n\n this.complete = false;\n\n /**\n * set base url\n */\n this.baseurl = '/';\n\n this.download_caller_id = null;\n\n /**\n * store all services sidebar etc..\n */\n this._applicationServices = {};\n\n this.config = {};\n\n this._initConfigUrl = null;\n\n this._initConfig = null;\n\n this._groupId = null;\n\n this._gid = null;\n\n this.setters = {\n changeProject: function changeProject() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n gid = _ref.gid,\n host = _ref.host;\n\n return this._changeProject({ gid: gid, host: host });\n },\n\n\n /**\n * @since 3.8.0\n */\n changeMapProject: function changeMapProject() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n url = _ref2.url,\n epsg = _ref2.epsg;\n\n url = _gui2.default.getService('map').addMapExtentUrlParameterToUrl(url, epsg);\n history.replaceState(null, null, url);\n location.replace(url);\n },\n online: function online() {\n this.setOnline();\n },\n offline: function offline() {\n this.setOffline();\n },\n setFilterToken: function setFilterToken(filtertoken) {\n this._setFilterToken(filtertoken);\n }\n };\n\n base(this);\n\n /**\n * Set application user from intiConfig (passed as parameter)\n */\n this.on('initconfig', function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n user = _ref3.user;\n\n _this.setApplicationUser(user);\n });\n\n /**\n * init application\n */\n this.init = _asyncToGenerator(function* () {\n try {\n var config = yield this.createApplicationConfig();\n this.setConfig(config);\n this.setLayout('app', config.layout);\n return yield this.bootstrap();\n } catch (error) {\n var browserLanguage = navigator && navigator.language || 'en';\n var language = _config2.default.supportedLanguages.find(function (language) {\n return browserLanguage.indexOf(language) !== -1;\n });\n return Promise.reject({ error: error, language: language });\n }\n });\n\n /**\n * Load application translations (i18n languages)\n */\n this.setupI18n = function () {\n var _this2 = this;\n\n this._config._i18n.appLanguages = (this._config.i18n || []).map(function (l) {\n return l[0];\n });\n this.setApplicationLanguage(this._config._i18n.language);\n i18ninit(this._config._i18n);\n this._groupId = this._config.group.slug || this._config.group.name.replace(/\\s+/g, '-').toLowerCase();\n // set Accept-Language request header based on config language\n $.ajaxSetup({\n beforeSend: function beforeSend(xhr) {\n xhr.setRequestHeader('Accept-Language', _this2._config.user.i18n || 'en');\n }\n });\n };\n\n /**\n * @TODO check if deprecated\n */\n this.getCurrentProject = function () {\n return _projects2.default.getCurrentProject();\n };\n\n /**\n * Only one caller can set download application to true\n * @param {boolean} bool\n * @param {string | null} download_caller_id\n * \n * @returns {null | string}\n */\n this.setDownload = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var download_caller_id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n //set the current application download state\n _applicationState2.default.download = bool;\n //Set this.download caller id. If download_caller_id is provided, reset to null (start value)\n this.download_caller_id = download_caller_id ? null : uniqueId();\n\n return this.download_caller_id;\n };\n\n this.getDownload = function () {\n return _applicationState2.default.download;\n };\n\n /**\n * @param {string} plugin name of plugin\n */\n this.loadingPlugin = function (plugin) {\n _applicationState2.default.plugins.push(plugin);\n };\n\n /**\n * @param {string} plugin name of plugin\n */\n this.loadedPlugin = function (plugin) {\n //remove from list loading plugin\n _applicationState2.default.plugins = _applicationState2.default.plugins.filter(function (p) {\n return plugin !== p;\n });\n };\n\n /**\n * @param {string} filtertoken a string passed by server and used as parameter in XHR request\n */\n this._setFilterToken = function (filtertoken) {\n _applicationState2.default.tokens.filtertoken = filtertoken;\n };\n\n this.getFilterToken = function () {\n return _applicationState2.default.tokens.filtertoken;\n };\n\n /**\n * @param {string} language \n */\n this.changeLanguage = function (language) {\n changeLanguage(language);\n /**\n * @deprecated Since v3.8. Will be deleted in v4.x. Use ApplicationState.language instead\n */\n _applicationState2.default.lng = language;\n _applicationState2.default.language = language;\n var pathArray = window.location.pathname.split('/');\n pathArray[1] = language;\n\n history.replaceState(null, null, pathArray.join('/'));\n };\n\n this.registerOnlineOfflineEvent = function () {\n var _this3 = this;\n\n this.registerWindowEvent({ evt: 'online', cb: function cb() {\n return _this3.online();\n } });\n this.registerWindowEvent({ evt: 'offline', cb: function cb() {\n return _this3.offline();\n } });\n };\n\n this.getBaseLayerId = function () {\n return _applicationState2.default.baseLayerId;\n };\n\n /**\n * @param {string} baseLayerId \n */\n this.setBaseLayerId = function (baseLayerId) {\n _applicationState2.default.baseLayerId = baseLayerId;\n };\n\n /**\n * @FIXME weird parameter name (`bool`)\n * @FIXME unsued function paramater (`message`)\n */\n this.registerLeavePage = function () {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref5$bool = _ref5.bool,\n bool = _ref5$bool === undefined ? false : _ref5$bool,\n _ref5$message = _ref5.message,\n message = _ref5$message === undefined ? '' : _ref5$message;\n\n var _return = !bool ? undefined : bool;\n window.onbeforeunload = function (event) {\n return _return;\n };\n };\n\n this.unregisterOnlineOfflineEvent = function () {\n window.removeEventListener('online');\n window.removeEventListener('offline');\n };\n\n this.getState = function () {\n return _applicationState2.default;\n };\n\n /**\n * @FIXME weird parameter name (`bool`)\n */\n this.disableApplication = function () {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n _applicationState2.default.gui.app.disabled = bool;\n };\n\n /**\n * @param {string} language \n */\n this.setApplicationLanguage = function () {\n var language = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';\n\n /**\n * @deprecated Since v3.8. Will be deleted in v4.x. Use ApplicationState.language instead\n */\n _applicationState2.default.lng = language;\n _applicationState2.default.language = language;\n };\n\n this.getApplicationLanguage = function () {\n return _applicationState2.default.language;\n };\n\n this.setOnline = function () {\n _applicationState2.default.online = true;\n };\n\n this.setOffline = function () {\n _applicationState2.default.online = false;\n };\n\n this.isOnline = function () {\n return _applicationState2.default.online;\n };\n\n /**\n * @param {string} id \n * @param {Object} data \n */\n this.setOfflineItem = function () {\n var _ref6 = _asyncToGenerator(function* (id) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this.setLocalItem({ id: id, data: data });\n });\n\n return function (_x10) {\n return _ref6.apply(this, arguments);\n };\n }();\n\n this.setLocalItem = function () {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n id = _ref7.id,\n data = _ref7.data;\n\n try {\n window.localStorage.setItem(id, JSON.stringify(data));\n } catch (e) {\n console.warn(e);return e;\n }\n };\n\n /**\n * @param {string} id \n */\n this.removeLocalItem = function (id) {\n window.localStorage.removeItem(id);\n };\n\n /**\n * @param {string} id \n */\n this.getLocalItem = function (id) {\n var item = window.localStorage.getItem(id);\n return item ? JSON.parse(item) : undefined;\n };\n\n /**\n * @param {string} id \n */\n this.getOfflineItem = function (id) {\n return this.getLocalItem(id);\n };\n\n /**\n * @param {string} id \n */\n this.removeOfflineItem = function (id) {\n this.removeLocalItem(id);\n };\n\n /**\n * @returns {boolean} whether application is loaded within an