From 0ba943e50d638b72a1722c880fac0d9c2b96074e Mon Sep 17 00:00:00 2001 From: volterra79 Date: Thu, 5 Dec 2024 15:28:15 +0100 Subject: [PATCH] :arrow_up: Client https://github.com/g3w-suite/g3w-client-plugin-editing/pull/140 --- g3w-admin/editing/static/editing/js/plugin.js | 2 +- g3w-admin/editing/static/editing/js/plugin.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/g3w-admin/editing/static/editing/js/plugin.js b/g3w-admin/editing/static/editing/js/plugin.js index fa823ae86..ee85fb609 100644 --- a/g3w-admin/editing/static/editing/js/plugin.js +++ b/g3w-admin/editing/static/editing/js/plugin.js @@ -1,2 +1,2 @@ -(()=>{var e=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;e&&(e.editing=Object.assign(e.editing||{},{version:"3.9.0-issue_137",hash:"7eb93aa",branch:"issue_137"}))})(),function n(r,a,o){function s(t,e){if(!a[t]){if(!r[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}i=a[t]={exports:{}},r[t][0].call(i.exports,function(e){return s(r[t][1][e]||e)},i,i.exports,n,r,a,o)}return a[t].exports}for(var l="function"==typeof require&&require,e=0;eli[data-v-31b52cc3]{margin-bottom:8px}ins[data-v-31b52cc3]{background-color:lime;text-decoration-line:none}del[data-v-31b52cc3]{background-color:tomato}dl[data-v-31b52cc3]{display:grid;grid-template:auto/.5fr 1fr;margin-bottom:0;word-break:break-all}dt[data-v-31b52cc3]{background:#fee}dd[data-v-31b52cc3]{background:#f1f2f4}dd[data-v-31b52cc3],dt[data-v-31b52cc3]{margin:0;padding:.3em .5em;border-top:1px solid #fff}");function o(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),r=e("../utils/areCoordinatesEqual"),a=e("../utils/getFeatureTableFieldValue"),i.default={name:"changes",props:{commits:{type:Object,required:!0},layer:{type:Object,required:!0},relation:{type:Boolean,default:!1}},data:function(){return{features:this.layer.readFeatures(),efeatures:this.layer.readEditingFeatures()}},methods:{getFormattedValue:function(e,t){if(e)return"geometry"===t&&e.get(t)?"("+e.get(t).getFlatCoordinates().length/2+")":(0,a.getFeatureTableFieldValue)({layerId:this.layer.getId(),feature:e,property:t})},getValue:function(e,t){return this.getFormattedValue(this.getFeature(e),t)},getEditingValue:function(e,t){return this.getFormattedValue(this.getEditingFeature(e),t)},hasValue:function(e,t){var i=this.getFeature(e),e=this.getEditingFeature(e);return!(i&&e&&null===i.get(t)&&null===e.get(t)||i&&!e&&null===i.get(t))},getId:function(e){return e.id||e},getEditingFeature:function(t){var i=this;return this.efeatures.find(function(e){return i.getId(t)===e.getId()})},getFeature:function(t){var i=this;return this.features.find(function(e){return i.getId(t)===e.getId()})},getType:function(e){e=this.getEditingFeature(e)||this.getFeature(e);return e&&e.getGeometry&&e.getGeometry()?e.getGeometry().getType():""},isEdited:function(e,t){var i=this.getFeature(e),n=this.getEditingFeature(e);return![i,n].includes(void 0)&&(this.getType(e)&&"geometry"===t?!(0,r.areCoordinatesEqual)({feature:i,coordinates:n.get(t).getCoordinates()}):n.get(t)!==i.get(t))},getAttrs:function(e){e=this.getEditingFeature(e)||this.getFeature(e);return Object.entries(e?e.getProperties():{}).sort(function(e,t){return e[0]>t[0]})},getLayerById:function(e){return g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").service.getLayerById(e)}},mounted:(n=o(function*(){this.$refs.value.filter(function(e){return!e.textContent}).forEach(function(e){return e.innerHTML="<empty>"})}),function(){return n.apply(this,arguments)})},t.exports.__esModule&&(t.exports=t.exports.default);e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("div",[i.relation?n("h4",{directives:[{name:"t-plugin",rawName:"v-t-plugin:pre",value:"editing.messages.commit.header_relation",expression:"'editing.messages.commit.header_relation'",arg:"pre"}],staticClass:"skin-color g3w-long-text",staticStyle:{"font-weight":"bold",margin:"15px 0"}},[i._v(": "+i._s(i.layer.getName()))]):i._e(),i._v(" "),i._l(Object.keys(i.commits).filter(function(e){return i.commits[e].length}),function(e){return[n("h4",{directives:[{name:"t-plugin",rawName:"v-t-plugin:pre",value:"editing.messages.commit."+e,expression:"`editing.messages.commit.${c}`",arg:"pre"}]},[i._v(" ("+i._s(i.commits[e].length)+") ")]),i._v(" "),n("divider"),i._v(" "),n("ul",i._l(i.commits[e],function(t){return n("li",[n("details",[n("summary",[i._v(i._s(i.getType(t))+" #"+i._s(i.getId(t)))]),i._v(" "),i._l(i.getAttrs(t),function(e){e=e[0];return[i.hasValue(t,e)?n("dl",[n("dt",[i._v(i._s(e)+":")]),i._v(" "),n("dd",[i.isEdited(t,e)?[n("del",{ref:"value",refInFor:!0},[i._v(i._s(i.getValue(t,e)))]),i._v(" ← "),n("ins",{ref:"value",refInFor:!0},[i._v(i._s(i.getEditingValue(t,e)))])]:n("span",{ref:"value",refInFor:!0},[i._v(i._s(i.getEditingValue(t,e)||i.getValue(t,e)))]),i._v(" "),"geometry"===e?n("i",[n("code",[i._v("")])]):i._e()],2)]):i._e()]})],2)])}),0)]}),i._v(" "),i._l(Object.entries(i.commits.relations),function(e){var t=e[0],e=e[1];return n("changes",{attrs:{commits:{add:e.add,update:e.update,delete:e.delete,relations:e.relations},relation:!0,layer:i.getLayerById(t)}})})],2)},e.staticRenderFns=[],e._scopeId="data-v-31b52cc3"},{"../utils/areCoordinatesEqual":31,"../utils/getFeatureTableFieldValue":43,"vueify/lib/insert-css":1}],3:[function(e,t,i){e("vueify/lib/insert-css").insert(".choose-and-zoom-to-feature[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between}#editing-layers-choose-feature .editing-choose-feature-radio-input[data-v-ad674338]{align-items:center;padding:5px;position:relative;display:flex;justify-content:space-between;border-bottom:1px solid #eee}.ztf[data-v-ad674338]{padding-left:3px;font-size:1.3em;cursor:pointer;margin-top:10px}.magic-radio+label[data-v-ad674338]{color:transparent}.feature-attributes[data-v-ad674338]{overflow-x:auto;display:flex}.feature-attributes>div[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between;padding:5px}.f-attr[data-v-ad674338]{font-weight:700;margin-bottom:10px}.f-val[data-v-ad674338]{align-self:start;white-space:nowrap}");Object.defineProperty(i,"__esModule",{value:!0}),n=g3wsdk.gui.GUI,i.default={name:"choosefeature",data:function(){return{feature:this.$options.feature}},methods:{selectFeature:function(e){this.feature.splice(0),this.feature.push(e)},getAttributesFeature:function(e){var t=e.getProperties();return this.$options.attributes.map(function(e){return{attribute:e.label,value:t[e.name]}})},zoomToFeature:function(e){n.getService("map").zoomToFeatures([e],{highlight:!0,duration:1e3})}},mounted:function(){n.closeContent()}},t.exports.__esModule&&(t.exports=t.exports.default);var n,e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("div",{attrs:{id:"editing-layers-choose-feature"}},i._l(i.$options.features,function(t,e){return n("div",{staticClass:"editing-choose-feature-radio-input"},[n("section",{staticClass:"choose-and-zoom-to-feature"},[n("div",[n("input",{staticClass:"magic-radio",attrs:{id:"choose_feature_"+e,name:"radio",type:"radio"},on:{click:function(e){return e.stopPropagation(),i.selectFeature(t)}}}),i._v(" "),n("label",{attrs:{for:"choose_feature_"+e}},[i._v("id")])]),i._v(" "),n("div",{staticClass:"ztf skin-color",class:i.g3wtemplate.font.marker,on:{click:function(e){return e.stopPropagation(),i.zoomToFeature(t)}}})]),i._v(" "),n("section",{staticClass:"feature-attributes"},i._l(i.getAttributesFeature(t),function(e){var t=e.attribute,e=e.value;return n("div",[n("span",{staticClass:"f-attr"},[i._v(i._s(t))]),i._v(" "),n("span",{staticClass:"f-val"},[i._v(i._s(e))])])}),0)])}),0)},e.staticRenderFns=[],e._scopeId="data-v-ad674338"},{"vueify/lib/insert-css":1}],4:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),g3wsdk.gui.GUI,i.default={name:"Copyfeaturesfromotherlayers",data:function(){return{id:this.$options.layers.find(function(e){return e.selected}).id}},watch:{id:function(t){this.$options.layers.forEach(function(e){return e.selected=t===e.id})}}},t.exports.__esModule&&(t.exports=t.exports.default);i="function"==typeof t.exports?t.exports.options:t.exports;i.render=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("section",[i("div",{attrs:{id:"g3w-select-editable-layers-content"}},[i("select",{directives:[{name:"select2",rawName:"v-select2",value:"id",expression:"'id'"}],attrs:{id:"g3w-select-editable-layers-to-copy"}},t._l(t.$options.layers,function(e){return i("option",{key:e.id,domProps:{value:e.id}},[t._v(t._s(e.name))])}),0)])])},i.staticRenderFns=[]},{}],5:[function(e,t,i){var n,r,d,a,o,s,l,u,c,f,g,p,y,h;e("vueify/lib/insert-css").insert(".g3w-editing-panel .editing-button .editing-icon{background-color:#3a4448;color:#222d32;font-size:1.8em;padding:10px;margin:5px;width:45px;height:45px;border-radius:30%;text-align:center}.g3w-editing-panel .editing-button.enabled .editing-icon{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.7)}.g3w-editing-panel .editing-button{cursor:not-allowed}.g3w-editing-panel .editing-button.enabled{cursor:pointer}.g3w-editing-panel .editbtn{border-radius:30%;padding:10px;display:inline-block;opacity:.4;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 4px 0 rgba(0,0,0,.3)}.g3w-editing-panel .editbtn.enabled{opacity:1;cursor:pointer}.g3w-editing-panel .editbtn.enabled.toggled{box-shadow:0 0;background-color:#ddd}\n.g3w-editing-panel[data-v-14424d18]{margin-bottom:50px}#onlineofflinemessage[data-v-14424d18]{margin-bottom:5px;padding:5px;border-radius:3px;background-color:orange;color:#fff;font-weight:700}.commitbar[data-v-14424d18]{display:flex;justify-content:flex-end;margin-bottom:5px}.commitbar>div[data-v-14424d18]:first-of-type{margin-right:auto}#g3w-select-editable-layers-content[data-v-14424d18]{margin-bottom:10px;font-weight:700}#g3w-select-editable-layers-content label[data-v-14424d18]{color:#fff!important}#g3w-select-editable-layers-to-show[data-v-14424d18]{cursor:pointer}");function v(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var i=t,n=[],r=!0,t=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!i||n.length!==i);r=!0);}catch(e){t=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw a}}return n}throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=(r=r=e("./Toolbox.vue"))&&r.__esModule?r:{default:r},d=e("../utils/promisify"),f=g3wsdk.gui.GUI,g=(e=g3wsdk.core).ApplicationState,p=e.ApplicationService,y=g3wsdk.core.catalog.CatalogLayersStoresRegistry,h=g3wsdk.core.data.DataRouterService,i.default={name:"Editing",data:function(){return{state:this.$options.service.state,service:this.$options.service,resourcesurl:this.$options.resourcesurl,showcommitbar:this.$options.showcommitbar,saving:!1,layersInEditing:0,editingButtonsEnabled:!0,selectedlayers:[],editinglayers:Object.entries(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").getEditableLayers()).filter(function(e){e=n(e,2);e[0];return e[1].config.editing.visible}).map(function(e){var e=n(e,2),t=e[0],e=e[1];return{id:t,name:e.getName(),title:e.getTitle()}}),activetool:null}},components:{toolbox:r.default},transitions:{addremovetransition:"showhide"},methods:{updateFilterLayers:function(){var e=0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t.g3w-icon[data-v-2b09c990]{font-weight:700;cursor:pointer}.divider[data-v-2b09c990]{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}");function O(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function R(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t !r.select)"}],on:{click:function(e){return e.stopPropagation(),a.editAttributesRelations()}}},[n("img",{attrs:{height:"25",width:"25",src:a.resourcesurl+"images/multiEditAttributes.png"}})])]):a._e(),a._v(" "),a.capabilities.includes("change_attr_feature")?n("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:bottom.create",value:"plugins.editing.form.relations.tooltips.link_relation",expression:"'plugins.editing.form.relations.tooltips.link_relation'",arg:"bottom",modifiers:{create:!0}}],staticClass:"g3w-icon add-link",class:[{disabled:!a.show_add_link},a.g3wtemplate.font.link],attrs:{align:"center"},on:{click:function(e){e.stopPropagation(),a.show_add_link&&a.linkRelation()}}}):a._e(),a._v(" "),a.capabilities.includes("add_feature")?n("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:bottom.create",value:"plugins.editing.form.relations.tooltips.add_relation",expression:"'plugins.editing.form.relations.tooltips.add_relation'",arg:"bottom",modifiers:{create:!0}}],staticClass:"g3w-icon add-link pull-right",class:[{disabled:!a.show_add_link},a.g3wtemplate.font.plus],on:{click:function(e){e.stopPropagation(),a.show_add_link&&a.addRelationAndLink()}}}):a._e()])]),a._v(" "),a.show_vector_tools?n("section",{ref:"relation_vector_tools",staticClass:"relation_vector_tools"},[n("span",{staticClass:"close_vector_relation_tool",on:{click:function(e){return e.stopPropagation(),a.closeVectorTools(e)}}},[n("i",{staticClass:"g3w-icon skin-color",class:a.g3wtemplate.font.close})]),a._v(" "),n("div",[n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.draw_new_feature",expression:"'editing.relation.draw_new_feature'"}],staticClass:"g3w-editing-new-relation-vector-type"}),a._v(" "),n("button",{staticClass:"btn skin-button",staticStyle:{width:"100%"},on:{click:function(e){return e.stopPropagation(),a.addVectorRelation(e)}}},[n("i",{class:a.g3wtemplate.font.pencil})])]),a._v(" "),n("section",[n("span",{staticClass:"divider"}),a._v(" "),n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.draw_or_copy",expression:"'editing.relation.draw_or_copy'"}],staticStyle:{"align-self":"center"}}),a._v(" "),n("span",{staticClass:"divider"}),a._v(" "),n("div",{attrs:{id:"g3w-select-editable-layers-content"}},[n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.copy_feature_from_other_layer",expression:"'editing.relation.copy_feature_from_other_layer'"}],staticClass:"g3w-editing-new-relation-vector-type"}),a._v(" "),n("select",{directives:[{name:"select2",rawName:"v-select2",value:"copylayerid",expression:"'copylayerid'"}],attrs:{id:"g3w-select-editable-layers-to-copy"}},a._l(a.copyFeatureLayers,function(e){return n("option",{key:e.id,domProps:{value:e.id}},[a._v(a._s(e.name))])}),0),a._v(" "),n("button",{directives:[{name:"disabled",rawName:"v-disabled",value:0===a.copyFeatureLayers.length,expression:"0 === copyFeatureLayers.length"}],staticClass:"btn skin-button",on:{click:function(e){return e.stopPropagation(),a.copyFeatureFromOtherLayer(e)}}},[n("i",{class:a.g3wtemplate.font.clipboard})])])])]):a._e(),a._v(" "),n("div",{directives:[{name:"disabled",rawName:"v-disabled",value:a.disabled,expression:"disabled"}],ref:"relation_body",staticClass:"relation_body box-body"},[0"+m("editing.messages.delete_feature")+'\n
'+(n?m("editing.messages.delete_feature_relations"):"")+"
",function(e){var t,i,n;(e?(e=s.state.features.findIndex(function(e){return e.getUid()===o}),t=s.state.features[e],i=s.state.context.session,n=s.state.inputs.layer.getId(),s.state.inputs.layer.getEditingSource().removeFeature(t),i.pushDelete(n,t),s.state.rows.splice(e,1),r):a)()})}),this.dataTable.row(e).remove().draw(),yield this.$nextTick()}catch(e){}}),function(e){return h.apply(this,arguments)}),copyFeature:(s=w(function*(o){var i,s=this;yield new Promise((i=w(function*(e,t){var i=(0,f.cloneFeature)(s.state.features.find(function(e){return o===e.getUid()}),s.state.inputs.layer.getEditingLayer());s.state.workflow=new d.Workflow({type:"addtablefeature",steps:[new u.Step({help:"editing.steps.help.new",run:p.addTableFeature}),new c.OpenFormStep]}),s.state.inputs.features.push(i);try{var n=yield(0,y.promisify)(s.state.workflow.start({context:s.state.context,inputs:s.state.inputs})),r=n.features[n.features.length-1],a={};Object.entries(s.state.rows[0]).forEach(function(e){e=l(e,2),e=e[0];a[e]=(0,g.getFeatureTableFieldValue)({layerId:s.state.layerId,feature:r,property:e})}),a.__gis3w_feature_uid=r.getUid(),s.state.rows.push(a),e(a)}catch(e){t(e)}finally{s.state.workflow.stop()}}),function(e,t){return i.apply(this,arguments)})),this.show=!1,this.dataTable.destroy(),yield this.$nextTick(),this.show=!0,yield this.$nextTick(),this.setDataTable()}),function(e){return s.apply(this,arguments)}),editFeature:(o=w(function*(t){var i=this,n=this.state.features.findIndex(function(e){return t===e.getUid()}),e=this.state.features[n],r=(this.state.workflow=new d.Workflow({type:"edittablefeature",steps:[new c.OpenFormStep]}),this.state.inputs);r.features.push(e);try{var a=yield(0,y.promisify)(this.state.workflow.start({context:this.state.context,inputs:r})),o=a.features[a.features.length-1];Object.entries(this.state.rows[n]).forEach(function(e){e=l(e,2),e=e[0];i.state.rows[n][e]=(0,g.getFeatureTableFieldValue)({layerId:i.state.layerId,feature:o,property:e})})}catch(e){}finally{this.state.workflow.stop()}}),function(e){return o.apply(this,arguments)}),linkFeature:function(t,e){e.target.checked?this._linkFeatures.push(t):this._linkFeatures=this._linkFeatures.filter(function(e){return e!==t})},getValue:function(e){return e&&"object"===(void 0===e?"undefined":n(e))&&Object===e.constructor?e=e.value:"string"==typeof e&&0===e.indexOf("_new_")&&(e=null),e},setDataTable:function(){this.dataTable=$("#editing_table table").DataTable({columnDefs:[{orderable:!1,targets:0}],order:[1,"asc"],pageLength:10,scrollCollapse:!0,scrollResize:!0,scrollX:!0}),this.resize()}},beforeCreate:function(){this.delayType="debounce",_.disableSideBar(!0),_.showUserMessage({type:"loading",message:"plugins.editing.messages.loading_table_data",autoclose:!1,closable:!1})},mounted:(a=w(function*(){yield this.$nextTick(),this.state.isrelation&&(this._linkFeatures=[]),this.setDataTable(),this.resize(),setTimeout(function(){return _.closeUserMessage()},300)}),function(){return a.apply(this,arguments)}),beforeDestroy:function(){this.cancel(),this._linkFeatures=null,this.dataTable.destroy()}},t.exports.__esModule&&(t.exports=t.exports.default);i="function"==typeof t.exports?t.exports.options:t.exports;i.render=function(){var n=this,e=n.$createElement,r=n._self._c||e;return r("div",{staticClass:"g3w-editing-table",attrs:{id:"editing_table"}},[r("div",{ref:"editing_table_header",staticClass:"editing_table_header"},[r("div",{staticClass:"editing_table_header_content"},[r("h3",{staticClass:"editing_table_title"},[n._v(n._s(n.state.title))])]),n._v(" "),n.state.isrelation?r("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.table.info",expression:"'editing.relation.table.info'"}],staticClass:"editing_table_relation_messagge"}):n._e()]),n._v(" "),n.show?r("table",{staticClass:"display",staticStyle:{width:"100%"}},[r("thead",[r("tr",[n.state.isrelation?n._e():r("th",{staticStyle:{"max-width":"60px"}}),n._v(" "),n.state.isrelation?r("th"):n._e(),n._v(" "),n._l(n.state.headers,function(e){return r("th",[n._v(n._s(e.label))])})],2)]),n._v(" "),r("tbody",n._l(n.state.rows,function(t,i){return r("tr",{key:t.__gis3w_feature_uid,attrs:{id:t.__gis3w_feature_uid}},[n.state.isrelation?n._e():r("td",[r("div",{attrs:{id:"table-editing-tools"}},[r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.edit",expression:"'plugins.editing.table.edit'",arg:"right",modifiers:{create:!0}}]},[n.showTool("change_attr_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font.pencil,staticStyle:{color:"#30cce7"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.editFeature(t.__gis3w_feature_uid)}}}):n._e()]),n._v(" "),r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.copy",expression:"'plugins.editing.table.copy'",arg:"right",modifiers:{create:!0}}]},[n.showTool("add_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font["copy-paste"],staticStyle:{color:"#d98b14",padding:"5px 7px 5px 7px"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.copyFeature(t.__gis3w_feature_uid)}}}):n._e()]),n._v(" "),r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.delete",expression:"'plugins.editing.table.delete'",arg:"right",modifiers:{create:!0}}]},[n.showTool("delete_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font["trash-o"],staticStyle:{color:"red"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.deleteFeature(t.__gis3w_feature_uid)}}}):n._e()])])]),n._v(" "),n.state.isrelation?r("td",[r("input",{staticClass:"magic-checkbox",attrs:{id:"relation__"+i,type:"checkbox"},on:{change:function(e){return n.linkFeature(i,e)}}}),n._v(" "),r("label",{attrs:{for:"relation__"+i}})]):n._e(),n._v(" "),n._l(t,function(e,t){return n.showValue(t)?r("td",{key:t},[n.getValue(e)&&n.isMediaField(t)?r("g3w-media",{attrs:{state:e}}):r("p",[n._v(n._s(n.getValue(e)))])],1):n._e()})],2)}),0)]):n._e(),n._v(" "),r("div",{ref:"table_editing_footer_buttons",staticClass:"table_editing_footer_buttons",attrs:{id:"buttons"}},[r("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:n.state.isrelation?"editing.form.buttons.save_and_back":"editing.form.buttons.save",expression:"state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'"}],staticClass:"btn btn-success",staticStyle:{"margin-right":"10px"},on:{click:function(e){return e.stopPropagation(),n.save(e)}}}),n._v(" "),r("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.form.buttons.cancel",expression:"'editing.form.buttons.cancel'"}],staticClass:"btn btn-danger",on:{click:function(e){return e.stopPropagation(),n.cancel(e)}}})])])},i.staticRenderFns=[],i._scopeId="data-v-c130bb64"},{"../g3wsdk/workflow/step":14,"../g3wsdk/workflow/workflow":15,"../utils/addTableFeature":30,"../utils/cloneFeature":35,"../utils/getFeatureTableFieldValue":43,"../utils/getRelationsInEditing":51,"../utils/promisify":58,"../workflows":65,"vueify/lib/insert-css":1}],8:[function(e,t,i){var n,r,o,s,a,l,u;e("vueify/lib/insert-css").insert(".panel.mobile[data-v-17ba9f33]{margin-bottom:5px}.panel.mobile .panel-heading[data-v-17ba9f33]{display:flex;justify-content:space-between}.panel.mobile .panel-heading .panel-title[data-v-17ba9f33]{margin-top:auto;margin-bottom:auto}.panel.mobile .panel-heading .start-editing[data-v-17ba9f33]{margin:auto;margin-right:0;padding:6px}.panel.mobile .tools-content .editbtn[data-v-17ba9f33]{padding:9px}.panel.mobile .toolbox .panel-body[data-v-17ba9f33]{padding:5px!important}.toolbox_help_message[data-v-17ba9f33]{font-weight:lighter}.toolbox[data-v-17ba9f33]{padding-bottom:5px}.panel[data-v-17ba9f33]{border:0!important;margin-bottom:8px}.panel-heading[data-v-17ba9f33]{padding:5px 10px;width:100%}.toolboxselected[data-v-17ba9f33]{box-shadow:0 0 0 3px var(--skin-color)}.panel:not(.toolboxselected) .info[data-v-17ba9f33]{opacity:.4}.panel:not(.toolboxactive) .panel-heading[data-v-17ba9f33]{border-radius:3px;filter:grayscale(.8)}.panel:not(.geolayer) .panel-body[data-v-17ba9f33]{padding-top:0}.panel.toolboxactive:not(.geolayer) .editbtn.start-editing[data-v-17ba9f33]{color:#fff!important}.panel:not(.geolayer) .panel-heading[data-v-17ba9f33]{color:#3a4448}.editbtn.start-editing[data-v-17ba9f33]{padding:13px;color:currentColor!important;font-size:1.1em;margin:0}.panel-title[data-v-17ba9f33]{font-weight:700;word-break:break-word;padding:8px 0;display:inline-block}#toolsoftoolcontainer[data-v-17ba9f33]{display:flex;flex-direction:column;margin:5px;padding:5px;border-radius:5px}.info[data-v-17ba9f33]{color:#000}.info>i[data-v-17ba9f33]{color:#007bff;padding-right:2px}.info+.tools-content[data-v-17ba9f33]{margin-top:1em}.filter-by-relation[data-v-17ba9f33]{margin-right:5px;cursor:pointer;color:currentColor!important}.tools-content[data-v-17ba9f33]{display:flex;flex-wrap:wrap;gap:10px}.message[data-v-17ba9f33]{margin-bottom:5px;font-size:1.1em;color:#000;margin-top:5px}.snap-tool[data-v-17ba9f33]{display:flex}.snap-tool label>b[data-v-17ba9f33]{color:#222d32!important}.tools-of-tool-snap[data-v-17ba9f33]{display:flex;width:100%;justify-content:space-between}.tools-of-tool-snap label span[data-v-17ba9f33]{color:#222d32!important}.panel-body.disabled[data-v-17ba9f33]{opacity:.7}.panel-body.disabled>[data-v-17ba9f33]{pointer-events:none}");function d(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),o=g3wsdk.gui.GUI,s=g3wsdk.core.layer.Layer,a=g3wsdk.ol.utils.getResolutionFromScale,l=g3wsdk.core.i18n.tPlugin,u=void 0,i.default={name:"Toolbox",props:["state","resourcesurl"],data:function(){return{active:!1,helpmessage:null,toggled:{relation:!1,layer:!1},snapAll:!1}},computed:{editDisabled:function(){return this.state.loading&&!this.state.startstopediting},hasRelations:function(){return 0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t.description[data-v-1689d33c]{font-weight:700}.dynamic-step[data-v-1689d33c]{padding:10px;font-size:1.2em}.button-step[data-v-1689d33c]{display:inline-flex;align-items:center}.button-step[data-v-1689d33c],button.btn-success[data-v-1689d33c]{font-weight:700;align-self:normal}");Object.defineProperty(i,"__esModule",{value:!0}),i.default={data:function(){return{steps:{}}},methods:{completeStep:function(e){e.done=!0,e.buttonnext.done()}}},t.exports.__esModule&&(t.exports=t.exports.default);e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("ul",{staticClass:"steps-list"},i._l(i.steps,function(t,e){return n("li",{key:e,class:{done:t.done},style:{display:t.buttonnext&&"inline-flex"}},[t.buttonnext?n("span",{staticClass:"button-step"},[n("span",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:t.description,expression:"step.description"}],staticClass:"description"}),i._v(" "),t.dynamic?n("span",{staticClass:"dynamic-step"},[i._v(i._s(t.dynamic))]):i._e(),i._v(" "),n("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.workflow.next",expression:"'editing.workflow.next'"}],class:"btn btn-success"+(t.buttonnext.disabled?" g3w-disabled":""),staticStyle:{"margin-left":"10px"},on:{click:function(e){return i.completeStep(t)}}})]):[n("i",{class:i.g3wtemplate.getFontClass(t.done?"success":"empty-circle")}),i._v(" "),n("span",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:t.description,expression:"step.description"}]})]],2)}),0)},e.staticRenderFns=[],e._scopeId="data-v-1689d33c"},{"vueify/lib/insert-css":1}],10:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Session=i.ChangesManager=i.Flow=void 0;var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=function(e,t,i){return t&&r(e.prototype,t),i&&r(e,i),e};function r(e,t){for(var i=0;it){i=n;break}if(r.id===t){i=-1;break}}-1e,this._constrains.undo}},{key:"__canRedo",value:function(){return this._constrains.redo=this.getLastHistoryState()&&this.getLastStateId()!=this.state.current||null===this.state.current&&0{var e=n,t=l;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);function n(){var e=0{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(n.__proto__||Object.getPrototypeOf(n)).call(this)))._options=e,t._run=(e.run||t.run||s(function*(){return!0})).bind(t),t._stop=(e.stop||t.stop||s(function*(){return!0})).bind(t),t._inputs=e.inputs||null,t._context=e.context||null,t._outputs=e.outputs||null,t.state={id:e.id||null,name:e.name||null,help:e.help||null,running:!1,error:null,message:e.message||null,usermessagesteps:{}},t.registerEscKeyEvent(e.escKeyPressEventHandler),t.selectStyle=e.selectStyle,e.steps&&t.setSteps(e.steps),e.onRun&&t.on("run",e.onRun),e.onStop&&t.on("run",e.onStop),e.tools&&(t._tools=e.tools),t;throw new TypeError("Cannot call a class as a function")}return e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t),a(n,[{key:"setInputs",value:function(e){this._inputs=this.inputs=e}},{key:"getInputs",value:function(){return this._inputs}},{key:"setContext",value:function(e){return this._context=this.context=e}},{key:"getContext",value:function(){return this.context}},{key:"panic",value:function(){}},{key:"setRoot",value:function(e){this.state.root=e}},{key:"getUserMessageSteps",value:function(){return this.state.usermessagesteps}},{key:"setUserMessageSteps",value:function(){this.state.usermessagesteps=0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t{var i,e=o,t=f;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);function o(){var e=0{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(o.__proto__||Object.getPrototypeOf(o)).call(this)))._type=void 0!==e.type?e.type:null,t._options=e,t._promise=null,t._inputs=void 0!==e.inputs?e.inputs:null,t._context=void 0!==e.context?e.context:null,t._steps=e.steps||[],t._child=null,t._stackIndex=null,t.runOnce=e.runOnce||!1,t._messages=a.Step.MESSAGES,t._userMessageSteps={},0Hinzufgefügt Die Anzahl der hinzugefügten Features anzeigen",header_update_delete:"Bearbeitet und Gelöscht Die Liste der Feature-ID anzeigen",add:"Hinzugefügt",delete:"Gelöscht",update:"Bearbeitet"},loading_table_data:"Datentabelle wird erstellt. Bitte warten ...",copy_and_paste_from_other_layer_mandatory_fields:"Vor dem Speichern müssen alle Pflichtfelder des eingegebenen features ausgefüllt werden",no_feature_selected:"Keine feature ausgewählt",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Wählen Sie Relationen aus, um sie mit dem aktuellen Feature zu verknüpfen.
"},draw_new_feature:"Zeichnen Sie eine neue feature",draw_or_copy:"oder",copy_feature_from_other_layer:"Kopieren Sie feature aus einer anderen layer"},form:{relations:{tooltips:{back_to_father:"Zurück zur Bearbeitung des Vaters",add_relation:"Neue Relation erstellen und verknüpfen",link_relation:"Eine Relation zu diesem Feature herstellen",open_relation_tools:"Relationstools anzeigen",unlink_relation:"Relation trennen"}},buttons:{save:"Einfügung/Bearbeiten",save_and_back:"Speichern und zurück",save_and_back_table:"Speichern und zurück",cancel:"Änderungen ignorieren"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select one feature"}}}}},{}],17:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"An error occurs. It's no possible to edit layers",some_layers:"An error occurs: It's no possible to edit some layers",editing_multiple_relations:"Editing multiple relationships is not currently supported"},search:"Search",editing_changes:"Editing Changes",editing_data:"Editing Layers",editing_attributes:"Editing attributes",relations:"Relations",edit_relation:"Edit relation",back_to_relations:"Back to Relations",no_relations_found:"No relations found",relation_data:"Relation data",relation_already_added:"Relation already added",list_of_relations_feature:"List of relations feature ",tooltip:{edit_layer:"Edit Layer",filter_by_relation:"Filter layers by relation"},toolbox:{title:"Edit"},table:{edit:"Edit feature",copy:"Create a copy",delete:"Delete feature"},tools:{copy:"Copy features",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Add part to multipart",deletepart:"Delete part from multipart",merge:"Dissolve features",split:"Split Feature",add_feature:"Add feature",delete_feature:"Delete feature",move_feature:"Move feature",update_vertex:"Update feature vertex",update_feature:"Update feature attribute",update_multi_features:"Update attributes of selected features",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Select features",select_element:"Select feature",copy:"Create new copy of selected features",merge:"Dissolve features",split:"Split Feature",new:"Create new feature",edit_table:"Edit table features",draw_new_feature:"Draw feature on map",action_confirm:"Confirm action",double_click_delete:"Select feature on map to delete",edit_feature_vertex:"Modify or add a vertex on selected feature",move:"Move selected feature",select_feature_to_relation:"Select feature that you bind relation",show_edit_feature_form:"Show feature form to edit attributes",pick_feature:"Select feature on map to modify",insert_attributes_feature:"Insert attributes of the feature"}},workflow:{steps:{select:"Click on feature to select",draw_part:"Draw new part",draw_geometry:"Draw geometry",merge:"Select featurewhere dissolve",selectSHIFT:"Select features drawing a rectangle pressing SHIFT",selectDrawBox:"Select features drawing a rectangle by two point of opposite corners",selectDrawBoxAtLeast2Feature:"Select at least features drawing a rectangle by two point of opposite corners",selectPoint:"Click on feature to select",selectPointSHIFT:"Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature",selectMultiPointSHIFT:"Select features drawing a rectangle pressing SHIFT or click on feature",selectMultiPointSHIFTAtLeast2Feature:"Select at least 2 features drawing a rectangle pressing SHIFT or click on feature",copyCTRL:"Copy selected features using CTRL+C",selectStartVertex:"Select starting vertex of selected features",selectToPaste:"Select the point where paste the features selected",draw_split_line:"Draw a line to split selected feature"},title:{steps:"Steps"},next:"Next"},messages:{featureslockbyotheruser:"Some geometries/records are not editable because in editing by other user",splitted:"Splitted",nosplittedfeature:"Feature not spitted",press_esc:"Press ESC to back",online:"Back ONLINE. Now you can save your changes on database",offline:"You are OFFLINE. All changes are saved locally",delete_feature:"Do you want delete selected feature ?",delete_feature_relations:"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature",unlink_relation:"Do you want unlink relation?",commit_feature:"Summary of changes",toolbox_has_no_geometry:"this layer has no geometry",toolbox_has_relation:"this layer is part of a relation",saved:"Data saved successfully",saved_local:"Data saved locally successfully",loading_data:"Loading data",saving:"Saving data. Please wait ...",constraints:{enable_editing:"Please Zoom In to enable editing tools \nActivation scale at 1:"},pdf:"Document preview not available. Please click here ",commit:{header:"The following list show all changes to commit.",header_relation:"Relation",header_add:"Added show the number of features added",header_update_delete:"Modified and Deleted show the list of features id",add:"Added",delete:"Deleted",update:"Updated"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Select relations to link it to current editing feature.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Create and link new relation",link_relation:"Join a relation to this feature",open_relation_tools:"Show relation tools",unlink_relation:"Unlink relation"}},buttons:{save:"Insert/Edit",save_and_back:"Save and Back",save_and_back_table:"Save and Back",cancel:"Ignore Changes"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],18:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Tapahtui virhe. Tasoja ei ole mahdollista muokata.",some_layers:"Tapahtui virhe. Jotkin tasot eivät ole muokattavissa."},search:"Haku",editing_changes:"Editing Changes",editing_data:"Muokataan tasoja",editing_attributes:"Muokataan attribuutteja",relations:"Relaatiot",edit_relation:"Muokkaa relaatiota",back_to_relations:"Takaisin relaatioihin",no_relations_found:"Relaatioita ei löytynyt",relation_data:"Relaation tiedot",relation_already_added:"Relaatio on jo lisätty",list_of_relations_feature:"Lista relaation ominaisuuksista",tooltip:{edit_layer:"Muokkaa tasoa"},toolbox:{title:"Muokkaa"},table:{edit:"Muokkaa ominaisuutta",copy:"Luo kopio",delete:"Poista ominaisuus"},tools:{copy:"Kopio ominaisuuksia",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Lisää osa",deletepart:"Poista osa",merge:"Yhdistä ominaisuudet",split:"Leikkaa ominaisuus",add_feature:"Lisää ominaisuus",delete_feature:"Poista ominaisuus",move_feature:"Siirrä ominaisuutta",update_vertex:"Päivitä pisteen ominaisuutta",update_feature:"Päivitä ominaisuus",update_multi_features:"Muokkaa valittujen ominaisuuksien attribuutteja",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Valitse ominaisuudet",select_element:"Valitse ominaisuus",copy:"Luo kopio valituista ominaisuuksista",merge:"Yhdistä ominaisuudet",split:"Leikkaa ominaisuus",new:"Luo uusi ominaisuus",edit_table:"Muuta taulun ominaisuuksia",draw_new_feature:"Piirrä ominaisuus kartalle",action_confirm:"Hyväksy toiminto",double_click_delete:"Valitse poistettava ominaisuus kartalta",edit_feature_vertex:"Muuta pistettä tai lisää piste valittuun ominaisuuteen",move:"Siirrä valittu ominaisuus",select_feature_to_relation:"Valitse relaatio",show_edit_feature_form:"Näytä ominaisuuslomake muokataksesi attribuutteja",pick_feature:"Valitse muokattava ominaisuus kartalta",insert_attributes_feature:"Lisää ominaisuuden attribuutit"}},workflow:{steps:{select:"Valitse ominaisuus",draw_part:"Piirrä uusi osa",merge:"Valitse ominaisuus yhdistääksesi",draw_geometry:"Piirrä geometria",selectSHIFT:"Paina SHIFT, jos haluat valita kohteita suorakulmiovalinnalla.",selectDrawBox:"Piirrä suorakulmio, jonka siältä kohteet valitaan ",selectDrawBoxAtLeast2Feature:"Piirrä suorakulmio, jonka siältä kohteet vähintään 2 valitaan ",selectPoint:"Valitse ominaisuus",selectPointSHIFT:"Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",selectMultiPointSHIFT:"Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",selectMultiPointSHIFTAtLeast2Feature:"Paina SHIFT, jos haluat valita vähintään 2 ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",copyCTRL:"CTRL+C, voit kopioida valitut ominaisuudet.",selectStartVertex:"Osoita valittujen ominaisuuksien alkupiste.",selectToPaste:"Valitse kohta, johon liität valitut ominaisuudet.",draw_split_line:"Piirrä viiva, jonka mukaan valittu ominaisuus jaetaan."},title:{steps:"Vaiheet"},next:"Seuraava"},messages:{featureslockbyotheruser:"Some features are locked by another user",splitted:"Jaettu",nosplittedfeature:"Ominaisuutta ei jaettu",press_esc:"Paina ESC palataksesi",online:"Yhteys muodostettu. Muutokset voidaan tallentaa tietokantaan.",offline:"Olet offline-tilassa. Muutokset tallennetaan paikallisesti",delete_feature:"Haluatko poistaa valitun ominaisuuden?",delete_feature_relations:"Mikäli ominaisuudella on sitovia relaatioita, näistä relaatiosta tulee orpoja. Suosittelemme käsittelemään nämä relaatiot ennen poistamista",unlink_relation:"Haluatko poistaa relaation?",commit_feature:"Yhteenveto muutoksista",toolbox_has_relation:"tämä kerros on osa relaatiota",saved:"Tiedot tallennettu onnistuneesti",saved_local:"Tiedot on tallennettu onnistuneesti paikallisesti.",loading_data:"Ladataan tietoja",saving:"Tallentaan tietoja. Odota...",constraints:{enable_editing:"Lähennä ottaaksesi muokkaustyökalut käyttöön \nAktivointi mittakaava 1:"},pdf:"Dokumentin esikatselu ei ole saatavilla. Paina tästä ",commit:{header:"Seuraava luettelo näyttää kaikki muutokset.",header_relation:"Relation",header_add:"Lisätty näytä lisättyjen ominaisuuksien lukumäärä",header_update_delete:"Muokattu ja Poistettu Näytä listä ominaisuuksien id:stä",add:"Lisätty",delete:"Poistettu",update:"Muokattu"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Valitse relaatiota linkittääksesi ne muokattavaan ominaisuuteen.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Luo ja linkitä uusi relaatio",link_relation:"Liitä relaatio tähän ominaisuuteen",open_relation_tools:"Näytä relaatiotyökalut",unlink_relation:"Poista relaatio"}},buttons:{save:"Lisää/muokkaa",save_and_back:"Tallenna ja palaa",save_and_back_table:"Tallenna ja palaa",cancel:"Peruuta"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],19:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Une erreur s'est produite lors du chargement des layers dans l'édition.",some_layers:"Une erreur s'est produite lors du chargement de certaines layers dans l'édition."},search:"Recherche",editing_changes:"Editing Changes",editing_data:"Modifier les donnes",editing_attributes:"Modifier les attributs",relations:"Relations",edit_relation:"Modifier la relation",back_to_relations:"Retour aux relations",no_relations_found:"Il n'y a pas de relations",relation_data:"Données sur les relations",relation_already_added:"Relation déjà présente",list_of_relations_feature:"Lister les relations de la fonctionnalité",tooltip:{edit_layer:"Modifier le layer"},toolbox:{title:"Modifier"},table:{edit:"Modifier fonctionnalités",copy:"Créer une copie",delete:"Supprimer la fonctionnalité"},tools:{copy:"Copier les fonctionnalités",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Ajouter une pièce à la géométrie",deletepart:"Supprimer la partie de la géométrie",merge:"Dissoudre les fonctionnalités",split:"Couper la fonctionnalité",add_feature:"Ajouter une fonctionnalité",delete_feature:"Supprimer la fonctionnalité",move_feature:"Déplacez la fonctionnalité",update_vertex:"Mettre à jour les sommets des fonctionnalités",update_feature:"Modifier les attributs des fonctionnalités",update_multi_features:"Modifier les attributs des fonctionnalités sélectionnées",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Sélectionner les fonctionnalités",select_element:"Sélectionner une fonctionnalité",copy:"Créer une copie des fonctionnalités sélectionnées",merge:"Dissoudre les fonctionnalités",split:"Couper la fonctionnalité",new:"Créer une nouvelle fonctionnalité",edit_table:"Modifier les fonctionnalités de la table",draw_new_feature:"Dessiner une fonctionnalité sur la carte",action_confirm:"Confirmer l'action",double_click_delete:"Sélectionner la fonctionnalité sur la carte à supprimer",edit_feature_vertex:"Modifier ou ajouter un sommet à la fonctionnalité sélectionnée",move:"Déplacer la fonctionnalité sélectionnée",select_feature_to_relation:"Sélectionner la fonctionnalité que vous souhaitez mettre en relation",show_edit_feature_form:"Afficher le formulaire de la fonctionnalité permettant de modifier les attributs",pick_feature:"Sélectionner l'élément de la carte à modifier",insert_attributes_feature:"Insérer les attributs de la fonctionnalité"}},workflow:{steps:{select:"Cliquer sur la fonctionnalité à sélectionner",draw_part:"Dessiner la nouvelle partie",draw_geometry:"Dessiner la géométrie",merge:"Sélectionner la fonction à introduire en fondu",selectPoint:"Cliquer sur la fonctionnalité pour la sélectionner",selectSHIFT:"Sélectionner des fonctionnalités en maintenant la touche SHIFT enfoncée",selectDrawBox:"Sélectionner les fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale",selectDrawBoxAtLeast2Feature:"Sélectionner au moins 2 fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale",selectPointSHIFT:"Sélectionner des caractéristiques en maintenant la touche SHIFT enfoncée (multi-sélection) ou en cliquant sur une seule caractéristique",selectMultiPointSHIFT:"Sélectionner des fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle",selectMultiPointSHIFTAtLeast2Feature:"Sélectionner au moins 2 fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle",copyCTRL:"Copier les fonctionnalités sélectionnées avec CTRL+C",selectStartVertex:"Sélectionner le sommet de départ des fonctionnalités choisies",selectToPaste:"Sélectionner le point où les fonctionnalités sélectionnées seront collées",draw_split_line:"Tracez une ligne pour couper la fonctionnalité sélectionnée"},title:{steps:"Étapes"},next:"Suivant"},messages:{featureslockbyotheruser:"Certaines géométries/enregistrements ne sont pas modifiables car ils ont été modifiés par un autre utilisateur",splitted:"Fonctionnalité(s) divisé(es)",nosplittedfeature:"La (les) fonctionnalité(s) n’a (n'ont) pas été divisé(es)",press_esc:"Appuyez sur ESC pour revenir",online:"Vous êtes à nouveau EN LIGNE. Vous pouvez enregistrer les modifications de façon permanente",offline:"Vous êtes HORS LIGNE. Toutes les modifications seront enregistrées temporairement en local",delete_feature:"Voulez-vous supprimer la fonctionnalité sélectionnée ?",delete_feature_relations:"La suppression d'une fonctionnalité avec des relations associées laissera ces relations orphelines. Il est recommandé de gérer ces relations avant de supprimer la fonctionnalité",unlink_relation:"Voulez-vous détacher la relation ?",commit_feature:"Sommaire des changements",toolbox_has_relation:"cette couche fait partie d'une relation",saved:"Les données ont été enregistrées correctement",saved_local:"Les données ont été correctement sauvegardées localement",loading_data:"Chargement des données",saving:"Sauvegarde des données. Veuillez patienter ...",constraints:{enable_editing:"Augmenter le niveau de zoom pour permettre l'édition \nEchelle de déclenchement 1 :"},pdf:"Aperçu du document non disponible. Cliquez ici ",commit:{header:"La liste ci-dessous montre toutes les modifications qui seront enregistrées.",header_relation:"Relation",header_add:"Ajouts indique le nombre de fonctionnalités ajoutées",header_update_delete:"Modifié e Supprimé liste les ids",add:"Ajouté",delete:"Supprimé",update:"Modifié"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"Avant d'enregistrer, il est nécessaire de remplir tous les champs obligatoires du features saisi",no_feature_selected:"Aucune feature sélectionnée",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Sélectionner les relations pour les associer à l'élément en cours d'édition.
"},draw_new_feature:"Dessiner une nouvelle feature",draw_or_copy:"ou",copy_feature_from_other_layer:"Copier feature d'une autre layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Créer et ajouter une nouvelle relation",link_relation:"Associer une relation existante à cette fonctionnalité",open_relation_tools:"Outils de relation ouverte",unlink_relation:"Annuler la relation"}},buttons:{save:"Insérer/Modifier",save_and_back:"Sauvegarder et retourner au parent",save_and_back_table:"Sauvegarder et et revenir en arrière",cancel:"Ignorer modifications"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],20:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0});var n=d(e("./it")),r=d(e("./en")),a=d(e("./fi")),o=d(e("./se")),s=d(e("./fr")),l=d(e("./de")),u=d(e("./ro")),e=d(e("./pl"));function d(e){return e&&e.__esModule?e:{default:e}}i.default={it:n.default,en:r.default,fi:a.default,se:o.default,fr:s.default,de:l.default,ro:u.default,pl:e.default}},{"./de":16,"./en":17,"./fi":18,"./fr":19,"./it":21,"./pl":22,"./ro":23,"./se":24}],21:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"Terminare l'editing dei singoli layer per chiudere la sessione"},errors:{no_layers:"Si è verificato un errore nel caricamento dei layers in editing.",some_layers:"Si è verificato un errore nel caricamento di alcuni layers in editing",editing_multiple_relations:"Le modifica di relazioni multiple non è attualmente supportata"},search:"Cerca",editing_changes:"Modifiche Editing",editing_data:"Modifica dati",editing_attributes:"Edita attributi",relations:"Relazioni",edit_relation:"Edita relazione",back_to_relations:"Ritorna alle Relazioni",no_relations_found:"Non ci sono relazioni",relation_data:"Dati relativi alla relazione",relation_already_added:"Relazione già presente",list_of_relations_feature:"Elenco Relazioni della feature ",tooltip:{edit_layer:"Modifica livello",filter_by_relation:"Filtra i livelli per relazione"},toolbox:{title:"Edita"},table:{edit:"Edita feature",copy:"Crea una copia",delete:"Cancella feature"},tools:{copy:"Copia elementi",pastefeaturesfromotherlayers:"Incolla elemento da altro livello",addpart:"Aggiungi parte alla geometria",deletepart:"Cancella parte dalla geometria",merge:"Dissolvi elementi",split:"Dividi elementi",add_feature:"Aggiungi elemento",delete_feature:"Elimina elemento",move_feature:"Muovi elemento",update_vertex:"Aggiorna vertici elemento",update_feature:"Modifica attributi elemento",update_multi_features:"Modifica gli attributi degli elementi selezionati",update_multi_features_relations:"Modifica gli attributi di tutte le relazioni selezionate",copyfeaturefromexternallayer:"Crea elemento da un livello esterno"},toolsoftool:{measure:"Visualizza misura",snap:"Snap sul layer",snapall:"Snap su tutti i layer"},steps:{help:{select_elements:"Seleziona le geometrie",select_element:"Seleziona l'elemento",copy:"Crea una copia degli elementi selezionati",merge:"Dissolvi elementi",split:"Dvidi elemento",new:"Crea un nuovo elemento",edit_table:"Modifica gli elementi della tabella",draw_new_feature:"Disegna la nuova geometria",action_confirm:"Conferma azione",double_click_delete:"Seleziona la geometria sulla mappa da cancellare",edit_feature_vertex:"Modifica o aggiungi un vertice alla geometria selezionata",move:"Muovi la geometria selezionata",select_feature_to_relation:"Seleziona la geometria che vuoi mettere in relazione",show_edit_feature_form:"Mostra il modulo per modificare gli attributi del'elemento",pick_feature:"Seleziona la geometria da modificare dalla mappa",insert_attributes_feature:"Inserisci gli attributi dell'elemento"}},workflow:{steps:{select:"Seleziona una geometria",draw_part:"Disegna il nuovo elemento da aggiungere alla geometria",draw_geometry:"Disegna la geometria",merge:"Seleziona la geometria su cui dissolvere",selectPoint:"Clicca sulla geometria per selezionarla",selectSHIFT:"Seleziona le geometrie tenedo premuto il tasto SHIFT",selectDrawBox:"Seleziona le geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale",selectDrawBoxAtLeast2Feature:"Seleziona almeno 2 geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale",selectPointSHIFT:"Seleziona le geometrie
MAIUSC+DRAG seleziona più elementi in un area",selectMultiPointSHIFT:"Seleziona le geometrie
SHIFT+DRAG seleziona più elementi in un area",selectMultiPointSHIFTAtLeast2Feature:"Seleziona almeno 2 geometrie
SHIFT+DRAG seleziona più elementi in un area",copyCTRL:"Copia le geometrie selezionate con CTRL+C",selectStartVertex:"Seleziona il vertice di partenza",selectToPaste:"Seleziona il punto dove verranno incollate le geometrie",draw_split_line:"Disegna una linea per dividere la geometria selezionata"},title:{steps:"Passi"},next:"Avanti"},messages:{featureslockbyotheruser:"Ci sono alcune geometrie/records non editabili perchè in modifica da altri utenti",splitted:"Feature(s) splittata(e)",nosplittedfeature:"La(e) feature(s) non è stata splittata",press_esc:"Premi ESC per tornare indietro",online:"Ora sei di nuovo ONLINE. Puoi slavare le modifiche in modo permanente",offline:"Sei OFFLINE. Tutte le modifiche saranno salvate temporaneamente in locale",delete_feature:"Vuoi eliminare l'elemento selezionato?",delete_feature_relations:"Cancellando una feature con relazioni associate, tale relazioni rimarranno orfane. Si consiglia di gestire tali relazioni prima di cancellare la feature",unlink_relation:"Vuoi staccare la relazione?",commit_feature:"Riepilogo modifiche",toolbox_has_no_geometry:"questo livello non ha geometria",toolbox_has_relation:"questo livello fa parte di una relazione",saved:"I dati sono stati salvati correttamente",saved_local:"I dati sono stati salvati correttamente in locale",loading_data:"Caricamento dati",saving:"Salvataggio dati in corso. Attendere ...",constraints:{enable_editing:"Ingrandisci per modificare \nScala di attivazione 1:"},pdf:"Anteprima del documento non disponibile. Clicca qui ",commit:{header:"La lista sotto riporta tutte le modifiche che verranno salvate.",header_relation:"Relazione",header_add:"Aggiunte riporta il numero delle features aggiunte",header_update_delete:"Modificate e Cancellate riporta la lista degli id",add:"Aggiunte",delete:"Cancellate",update:"Aggiornate"},loading_table_data:"Costruzione tabella dati in corso. Attendere ...",copy_and_paste_from_other_layer_mandatory_fields:"Necessario compilare eventuali campi obbligatori sulle features incollate prima del salvataggio",no_feature_selected:"Nessuna feature selezionata",select_min_2_features:"Seleziona come minimo due features"},relation:{table:{info:"
Seleziona le relazioni per associarle alla feature in editing.
"},draw_new_feature:"Disegna nuova geometria",draw_or_copy:"oppure",copy_feature_from_other_layer:"Copia geometria da altro layer"},form:{relations:{tooltips:{back_to_father:"Torna ad editare il padre",add_relation:"Crea ed aggiungi nuova relazione",link_relation:"Associa una relazione esistente a questa feature",open_relation_tools:"Apri strumenti relatione",unlink_relation:"Annulla relazione"}},buttons:{save:"Inserisci/Modifica",save_table:"Modifica",save_and_back:"Salva e torna al padre",save_and_back_table:"Salva e torna indietro",cancel:"Ignora Modifiche"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Seleziona layer",edit_attributes:"Edita attributi delle features in multiple mode"},copyfeaturefromprojectlayer:{title:"Seleziona una feature"}}}}},{}],22:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={errors:{no_layers:"An error occurs. It's no possible to edit layers",some_layers:"An error occurs: It's no possible to edit some layers"},search:"Search",editing_changes:"Editing Changes",editing_data:"Editing Layers",editing_attributes:"Editing attributes",relations:"Relations",edit_relation:"Edit relation",back_to_relations:"Back to Relations",no_relations_found:"No relations found",relation_data:"Relation data",relation_already_added:"Relation already added",list_of_relations_feature:"List of relations feature ",tooltip:{edit_layer:"Edit Layer"},toolbox:{title:"Edit"},table:{edit:"Edit feature",copy:"Create a copy",delete:"Delete feature"},tools:{copy:"Copy features",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Add part to multipart",deletepart:"Delete part from multipart",merge:"Dissolve features",split:"Split Feature",add_feature:"Add feature",delete_feature:"Delete feature",move_feature:"Move feature",update_vertex:"Update feature vertex",update_feature:"Update feature attribute",update_multi_features:"Update attributes of selected features",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Select features",select_element:"Select feature",copy:"Create new copy of selected features",merge:"Dissolve features",split:"Split Feature",new:"Create new feature",edit_table:"Edit table features",draw_new_feature:"Draw feature on map",action_confirm:"Confirm action",double_click_delete:"Select feature on map to delete",edit_feature_vertex:"Modify or add a vertex on selected feature",move:"Move selected feature",select_feature_to_relation:"Select feature that you bind relation",show_edit_feature_form:"Show feature form to edit attributes",pick_feature:"Select feature on map to modify",insert_attributes_feature:"Insert attributes of the feature"}},workflow:{steps:{select:"Click on feature to select",draw_part:"Draw new part",merge:"Select featurewhere dissolve",selectSHIFT:"Select features drawing a rectangle pressing SHIFT",selectDrawBox:"Select features drawing a rectangle by two point of opposite corners",selectDrawBoxAtLeast2Feature:"Select at least features drawing a rectangle by two point of opposite corners",selectPoint:"Click on feature to select",selectPointSHIFT:"Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature",selectMultiPointSHIFT:"Select features drawing a rectangle pressing SHIFT or click on feature",selectMultiPointSHIFTAtLeast2Feature:"Select at least 2 features drawing a rectangle pressing SHIFT or click on feature",copyCTRL:"Copy selected features using CTRL+C",selectStartVertex:"Select starting vertex of selected features",selectToPaste:"Select the point where paste the features selected",draw_split_line:"Draw a line to split selected feature"},title:{steps:"Steps"},next:"Next"},messages:{featureslockbyotheruser:"Some geometries/records are not editable because in editing by other user",splitted:"Splitted",nosplittedfeature:"Feature not spitted",press_esc:"Press ESC to back",online:"Back ONLINE. Now you can save your changes on database",offline:"You are OFFLINE. All changes are saved locally",delete_feature:"Do you want delete selected feature ?",delete_feature_relations:"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature",unlink_relation:"Do you want unlink relation?",commit_feature:"Do you want to save the changes",toolbox_has_relation:"this layer is part of a relation",saved:"Data saved successfully",saved_local:"Data saved locally successfully",loading_data:"Loading data",saving:"Saving data. Please wait ...",constraints:{enable_editing:"Please Zoom In to enable editing tools \nActivation scale at 1:"},pdf:"Document preview not available. Please click here ",commit:{header:"The following list show all changes to commit.",header_add:"Added show the number of features added",header_update_delete:"Modified and Deleted show the list of features id",add:"Added(n. features)",delete:"Deleted(id)",update:"Modified(id)"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Select relations to link it to current editing feature.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Create and link new relation",link_relation:"Join a relation to this feature",open_relation_tools:"Show relation tools",unlink_relation:"Unlink relation"}},buttons:{save:"Insert/Edit",save_and_back:"Save and Back",save_and_back_table:"Save and Back",cancel:"Ignore Changes"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],23:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Avem o eroare. Straturile nu sunt editabile",some_layers:"Avem o eroare: Anumite straturi nu se pot edita"},search:"Caută",editing_changes:"Modificare schimbări",editing_data:"Modificare straturi",editing_attributes:"Modificare atribute",relations:"Relații",edit_relation:"Modifică relația",back_to_relations:"Înapoi la Relații",no_relations_found:"Nu am găsit relații",relation_data:"Date relații",relation_already_added:"Relație adăugată deja",list_of_relations_feature:"Lista relații entitatea ",tooltip:{edit_layer:"Modifică strat"},toolbox:{title:"Modifică"},table:{edit:"Modifică entitate",copy:"Creează o copie",delete:"Elimină entitatea"},tools:{copy:"Copiază entitățile",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Adaugă o parte la multiparte",deletepart:"Elimină partea din multiparte",merge:"Dizolvare entități",split:"Divizare Entitate",add_feature:"Adaugă entitate",delete_feature:"Eliminare entitate",move_feature:"Mută entitate",update_vertex:"Actualizează vertecșii entității",update_feature:"Actualizează atributul entității",update_multi_features:"Actualizează atributele entităților selectate",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Arată măsurătorile",snap:"Acroșare strat",snapall:"Acroșare pe toate straturile"},steps:{help:{select_elements:"Selectează entități",select_element:"Selectează entitate",copy:"Creează o nouă copie a entităților selectate",merge:"Dizolvă entitățile",split:"Divizare Entitate",new:"Creează o entitate",edit_table:"Modifică entitățile tabelare",draw_new_feature:"Desenează entitate pe hartă",action_confirm:"Confirmă acțiunea",double_click_delete:"Selectează entitatea de eliminat din hartă",edit_feature_vertex:"Modifică sau adaugă un vertex la entitatea selectată",move:"Mută entitatea selectată",select_feature_to_relation:"Selectează entitate pentru relaționare",show_edit_feature_form:"Arată formularul entității pentru modificări",pick_feature:"Selectează entitățile de modificat din hartă",insert_attributes_feature:"Inserează atributele entității"}},workflow:{steps:{select:"Click pe entitate pentru a o selecta",draw_part:"Desenează o parte nouă",draw_geometry:"Desenați geometria",merge:"Selectează partea de dizolvat",selectSHIFT:"Selectează entități prin desen triunghi apăsând SHIFT",selectDrawBox:"Selectează entități desenând un dreptunghi prin două puncte opuse",selectDrawBoxAtLeast2Feature:"Selectează cel puțin 2 entități prin desenul unui dreptunghi",selectPoint:"Click pe entitate pentru selectare",selectPointSHIFT:"Selectează entități prin desen dreptunghi apăsând SHIFT (multientități) sau prin click pe entitate",selectMultiPointSHIFT:"Selectează entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate",selectMultiPointSHIFTAtLeast2Feature:"Selectează cel puțin 2 entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate",copyCTRL:"Copiază entitățile selectate folosint CTRL+C",selectStartVertex:"Selectează vertexul de start a entităților selectate",selectToPaste:"Selectează punctul unde să lipim entitățile selectate",draw_split_line:"Desenează o linie pentru a diviza entitatea selectată"},title:{steps:"Pași"},next:"Următorul"},messages:{featureslockbyotheruser:"Unele geometrii/înregistrări nu sunt editabile deoarece sunt editate de către alt utilizator",splitted:"Divizat",nosplittedfeature:"Entitate nedivizată",press_esc:"ESC pentru înapoi",online:"Înapoi ONLINE. Acum se pot salva schimbările",offline:"OFFLINE. Schimbările sunt salvate local",delete_feature:"Șterg entitatea selectată?",delete_feature_relations:"Dacă entitatea are relații care trimit la ea, acele relații devin orfane. Sugerăm să vă ocupați de acele elemente înainte să eliminați această entitate.",unlink_relation:"Dorești să eliminați legătura cu relația?",commit_feature:"Rezumatul modificărilor",toolbox_has_relation:"acest strat face parte dintr-o relație",saved:"Datele sunt salvate",saved_local:"Datele s-au salvat local",loading_data:"Datele se încarcă.",saving:"Salvăm datele. Așteptați ...",constraints:{enable_editing:"Pentru a activa Modificare faceți zoom la \nScara de activare 1:"},pdf:"Previzualizarea documentului nu este disponibilă. Click aici ",commit:{header:"Lista cu toate modificările.",header_relation:"Relation",header_add:"Adăugate arată nr. de entități adăugate",header_update_delete:"Modificate și Șterse arată lista de id-uri de entități",add:"Adăugate",delete:"Eliminate",update:"Modificate"},loading_table_data:"Încărcăm tabelul de date ...",copy_and_paste_from_other_layer_mandatory_fields:"Înainte de a salva, este necesar să completați toate câmpurile obligatorii ale entități introduse",no_feature_selected:"Nicio feature selectată",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Selectează relațiile pentru a face legătura cu entitatea curentă.
"},draw_new_feature:"Desenați o nouă feature",draw_or_copy:"sau",copy_feature_from_other_layer:"Copiați feature dintr-un alt layer"},form:{relations:{tooltips:{back_to_father:"Înapoi la modificările entității părinte",add_relation:"Creează și fă legătura unei relații noi",link_relation:"Leagă o relație de entitate",open_relation_tools:"Arată instrumentele pentru relații",unlink_relation:"Elimină legătura la relație"}},buttons:{save:"Inserați/Editați",save_and_back:"Salvează și dă înapoi",save_and_back_table:"Salvează și dă înapoi",cancel:"Ignorați modificările"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],24:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Ett fel uppstod. Nivåerna kan inte redigeras.",some_layers:"Ett fel uppstod. Vissa nivåer kan inte redigeras."},search:"Sökning",editing_changes:"Editing Changes",editing_data:"Nivåerna redigeras",editing_attributes:"Attributen redigeras",relations:"Relationer",edit_relation:"Redigera relationen",back_to_relations:"Tillbaka till relationerna",no_relations_found:"Inga relationer hittades",relation_data:"Relationsuppgifter",relation_already_added:"Relationen har redan lagts till",list_of_relations_feature:"Lista på relationens egenskaper",tooltip:{edit_layer:"Redigera nivån"},toolbox:{title:"Redigera"},table:{edit:"Redigera egenskap",copy:"Skapa en kopia",delete:"Ta bort egenskap"},tools:{copy:"Kopiera egenskaper",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Lägg till del",deletepart:"Ta bort del",merge:"Slå samman egenskaper",split:"Dela upp egenskap",add_feature:"Lägg till egenskap",delete_feature:"Ta bort egenskap",move_feature:"Flytta egenskap",update_vertex:"Uppdatera punktens egenskap",update_feature:"Uppdatera egenskap",update_multi_features:"Ändra attributen för de valda funktionerna",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Välj egenskaper",select_element:"Välj egenskapalitse ominaisuus",copy:"Skapa kopia av valda egenskaper",merge:"Slå samman egenskaper",split:"Dela upp egenskap",new:"Skapa ny egenskap",edit_table:"Ändra egenskaper i tabellen",draw_new_feature:"Piirrä ominaisuus kartalle",action_confirm:"Godkänn funktionen",double_click_delete:"Välj funktionen som du vill ta bort på kartan",edit_feature_vertex:"Ändra punkten eller lägg till punkten till den valda egenskapen",move:"Flytta den valda egenskapen",select_feature_to_relation:"Välj relation",show_edit_feature_form:"Visa egenskapsformuläret för redigering av attribut",pick_feature:"Välj funktion på kartan för att ändras",insert_attributes_feature:"Lägg till egenskapens attribut"}},workflow:{steps:{select:"Välj egenskap",draw_part:"Rita ny del",draw_geometry:"Rita geometri",merge:"Välj egenskap att slå samman",selectSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel.",selectDrawBox:"Rita upp den rektangel inom vilken objekten väljs ",selectDrawBoxAtLeast2Feature:"Rita rektangeln inom vilken minst två objekt är markerade ",selectPoint:"Välj egenskap",selectPointSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.",selectMultiPointSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.",selectMultiPointSHIFTAtLeast2Feature:"Tryck på SKIFT för att välja minst två objekt med en rektangel eller välj en enda egenskap. ",copyCTRL:"CTRL+C, du kan kopiera valda egenskaper.",selectStartVertex:"Visa startpunkten för valda egenskaper.",selectToPaste:"Välj punkt till vilken de valda egenskaperna ska fogas.",draw_split_line:"Rita en linje enligt vilken den valda egenskapen ska uppdelas."},title:{steps:"Skeden"},next:"Nästa"},messages:{featureslockbyotheruser:"Jotkut geometriat/tietueet eivät ole muokattavissa, koska muut käyttäjät muokkaavat niitä",splitted:"Uppdelad",nosplittedfeature:"Egenskapen har inte delats upp",press_esc:"Tryck ESC för att gå tillbaka",online:"Förbindelsen har upprättats. Ändringar kan sparas i databasen.",offline:"Du är i offline-läge. Ändringarna sparas lokalt",delete_feature:"Vill du ta bort den valda egenskapen?",delete_feature_relations:"Om egenskapen saknar bindande relationer blir dessa relationer föräldralösa. Vi rekommenderar att du behandlar dessa relationer innan du lämnar programmet",unlink_relation:"Vill du ta bort relationen?",commit_feature:"Sammanfattning av ändringar",toolbox_has_relation:"detta lager är en del av en relation",saved:"Uppgifterna sparades",saved_local:"Uppgifterna sparades lokalt.",loading_data:"Uppgifterna laddas",saving:"Uppgifterna sparas. Vänta...",constraints:{enable_editing:"Zooma in för att börja använda redigeringsverktyg \nAktivering skala 1:"},pdf:"Förhandsgranskning av dokument är inte tillgänglig. Tryck här",commit:{header:"Följande lista visar alla ändringar.",header_relation:"Relation",header_add:"Tillagda visar antalet egenskaper som lagts till",header_update_delete:"Redigerad och Borttagen Visa en lista på egenskapernas id",add:"har lagts till",delete:"Borttagen",update:"Redigerad"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Välj relation för länkning till egenskap som ska redigeras.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Skapa och länka ny relation",link_relation:"Foga relationen till denna egenskap",open_relation_tools:"Visa relationsverktyg",unlink_relation:"Ta bort relation"}},buttons:{save:"Infoga/Redigera",save_and_back:"Spara och gå tillbaka",save_and_back_table:"Spara och gå tillbaka",cancel:"Ignorera ändringar"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],25:[function(F,i,r){var x=Object.assign||function(e){for(var t=1;t{var t,i,e,n,r,a,o,s,l=d,u=B;if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);function d(){var t;if(this instanceof d)return(t=((e,t)=>{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,{name:"editing",i18n:g.default,fontClasses:[{name:"measure",className:"fas fa-ruler-combined"},{name:"magnete",className:"fas fa-magnet"},{name:"clipboard",className:"fas fa-clipboard"}]}))).state={open:!1,toolboxes:[],_toolboxes:[],toolboxselected:null,showselectlayers:!0,message:null,relations:[],sessions:{},layers_in_error:!1,formComponents:{},subscribers:{},constraints:{toolboxes:{},showToolboxesExcluded:!0},featuresOnClose:{},uniqueFieldsValues:{},saveConfig:{mode:"default",modal:!1,messages:void 0,cb:{done:function(){},error:function(){}}},editableLayers:{},events:{"start-editing":{},"show-relation-editing":{},layer:{start_editing:{before:{},after:{}}}},show_errors:!1,editFeatureKey:void 0,panel:null,currentLayout:h.getCurrentLayoutName(),unwatchLayout:(new Vue).$watch(function(){return R.gui.layout.__current},function(e){return t.state.currentLayout=e!==t.getName()?e:t.state.currentLayout}),onMapControlToggled:function(e){e=e.target;e.isToggled()&&e.isClickMap()&&t.state.toolboxselected&&t.state.toolboxselected.getActiveTool()&&t.state.toolboxselected.stopActiveTool()}},t.setService(Object.assign(new D,{state:t.state,config:t.config,getSession:t.getSession.bind(t),getFeature:t.getFeature.bind(t),subscribe:t.subscribe.bind(t),unsubscribe:t.unsubscribe.bind(t),fireEvent:t.fireEvent.bind(t),undo:t.undo.bind(t),redo:t.redo.bind(t),getEditingLayer:t.getEditingLayer.bind(t),addToolBox:t.addToolBox.bind(t),runEventHandler:t.runEventHandler.bind(t),resetDefault:t.resetDefault.bind(t),resetAPIDefault:t.resetAPIDefault.bind(t),getLayers:t.getLayers.bind(t),getLayerById:t.getLayerById.bind(t),getToolBoxById:t.getToolBoxById.bind(t),getSessionById:t.getSessionById.bind(t),setApplicationEditingConstraints:t.setApplicationEditingConstraints.bind(t),getToolBoxes:t.getToolBoxes.bind(t),getEditableLayers:t.getEditableLayers.bind(t),stop:t.stop.bind(t),saveChange:t.saveChange.bind(t),commit:t.commit.bind(t),undoRedoLayerUniqueFieldValues:t.undoRedoLayerUniqueFieldValues.bind(t),undoRedoRelationUniqueFieldValues:t.undoRedoRelationUniqueFieldValues.bind(t),stopEditing:t.stopEditing.bind(t),startEditing:t.startEditing.bind(t),addLayerFeature:t.addLayerFeature.bind(t)})),G.getService("map").on("mapcontrol:toggled",t.state.onMapControlToggled),t._init(),t;throw new TypeError("Cannot call a class as a function")}return l.prototype=Object.create(u&&u.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(l,u):l.__proto__=u),c(d,[{key:"_init",value:(s=O(function*(){var i,d=this;b.getLayers({EDITABLE:!0}).length&&(this.setHookLoading({loading:!0}),this.service.setApi({api:{getSession:this.getSession.bind(this),getFeature:this.getFeature.bind(this),subscribe:this.subscribe.bind(this),unsubscribe:this.unsubscribe.bind(this),getToolBoxById:this.getToolBoxById.bind(this),addNewFeature:p.createFeature,commitChanges:this.commit.bind(this),setApplicationEditingConstraints:this.setApplicationEditingConstraints.bind(this),getMapService:function(){return G.getService("map")},updateLayerFeature:U,deleteLayerFeature:U,addLayerFeature:this.addLayerFeature.bind(this),hidePanel:this.hideEditingPanel.bind(this),resetDefault:this.resetAPIDefault.bind(this),startEditing:this.startEditing.bind(this),stopEditing:this.stopEditing.bind(this),showPanel:this.showPanel.bind(this),setSaveConfig:this.setSaveConfig.bind(this),addFormComponents:this.addFormComponents.bind(this)}}),S.addLayersStore(new w({id:"editing",queryable:!1})),this.state.editableLayers={},this.state._toolboxes=[],this.state.toolboxes=[],(yield Promise.allSettled(b.getLayers({EDITABLE:!0},{TOC_ORDER:!0}).map(function(e){return e.getLayerForEditing({vectorurl:d.config.vectorurl,project_type:d.config.project_type})}))).forEach(function(e){var t=e.status,u=e.value;"fulfilled"!==t?d.state.layers_in_error=!0:(d.state.editableLayers[u.getId()]=u,d.state.uniqueFieldsValues[u.getId()]={},u.getEditingFields().filter(function(e){return e.input&&"select_autocomplete"===e.input.type&&!e.input.options.filter_expression&&!e.input.options.usecompleter}).forEach(function(l){return["start-editing","show-relation-editing"].forEach(function(e){var t=u.getId();d.state.events[e][t]=d.state.events[e][t]||[],d.state.events[e][t].push(O(function*(){var t=l.input.options,e=(t.loading.state="loading",t.values=[],t.layer_id&&b.getLayerById(t.layer_id)),i=[void 0,null].includes(t.filter_fields||[])||0===(t.filter_fields||[]).length;try{if(t.relation_reference&&i){var n,r=yield u.getFilterData({fformatter:l.name});if(r&&r.data)return(n=t.values).push.apply(n,L(r.data.map(function(e){var e=f(e,2),t=e[0];return{key:e[1],value:t}}))),t.loading.state="ready",d.fireEvent("autocomplete",{field:l,data:[r.data]}),t.values}if(e){var a,o=yield(0,C.promisify)(e.getDataTable({ordering:t.orderbyvalue?t.value:t.key}));if(o&&o.features)return(a=t.values).push.apply(a,L((o.features||[]).map(function(e){return{key:e.properties[t.value],value:e.properties[t.key]}}))),t.loading.state="ready",d.fireEvent("autocomplete",{field:l,features:o.features}),t.values}var s=[];return t.loading.state="ready",d.fireEvent("autocomplete",{field:l,features:s}),s}catch(e){return t.loading.state="error",Promise.reject(e)}}))})}),d.state.sessions[u.getId()]=null)}),i=0,this.getLayers().forEach(function(e){var t=e.getId();b.getLayerById(t).getRelations().getArray().filter(function(e){return"ONE"===e.getType()&&t===e.getFather()}).forEach(function(t){var i=void 0!==d.getLayerById(t.getChild());d.getLayerById(t.getFather()).getEditingFields().filter(function(e){return e.vectorjoin_id&&e.vectorjoin_id===t.getId()}).forEach(function(e){e.editable=e.editable&&i})}),e.getColor()||e.setColor(e.isGeoLayer()?["#C43C39","#d95f02","#91522D","#7F9801","#0B2637","#8D5A99","#85B66F","#8D2307","#2B83BA","#7D8B8F","#E8718D","#1E434C","#9B4F07","#1b9e77","#FF9E17","#7570b3","#204B24","#9795A3","#C94F44","#7B9F35","#373276","#882D61","#AA9039","#F38F3A","#712333","#3B3A73","#9E5165","#A51E22","#261326","#e4572e","#29335c","#f3a712","#669bbc","#eb6841","#4f372d","#cc2a36","#00a0b0","#00b159","#f37735","#ffc425"][i++%40]:"#fff")}),S.getLayersStore("editing").addLayers(this.getLayers()),this.getLayers().forEach(function(e){return d.addToolBox(new y.ToolBox(e,[].concat(L(e.getChildren()),L(e.getFathers())).filter(function(e){return d.getLayerById(e)})))}),yield G.isReady(),this._setupGUI(),this.setHookLoading({loading:!1}),this.setReady(!0))}),function(){return s.apply(this,arguments)})},{key:"_setupGUI",value:(o=O(function*(){var h=this;this.registerPlugin(this.config.gid)&&!1!==this.config.visible&&0!==this.getLayers().filter(function(e){return e.config.editing.visible}).length&&(this.state.editFeatureKey=G.getService("queryresults").onafter("editFeature",O(function*(){var e=0\n {var n,t,e,i,r,a=f,o=A;if("function"!=typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function, not "+typeof o);function f(t){var a,e,i,n,r,o,s,p,l,u=1{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(f.__proto__||Object.getPrototypeOf(f)).call(this)),c=(d=[void 0,V.LayerTypes.VECTOR].includes(t.getType()))&&t.getGeometryType(),r=d&&B.isPointGeometryType(c),e=d&&B.isLineGeometryType(c),i=d&&B.isPolygonGeometryType(c),n=V.LayerTypes.TABLE===t.getType(),c=c&&B.isMultiGeometry(c),r=d&&(r?"Point":e?"Line":"Polygon"),o=t.getRelations().getArray().filter(function(e){e=j.getLayerById((0,_.getRelationId)({layerId:t.getId(),relation:e}));return e.isEditable()&&e.config.editing.visible}).map(function(e){return e}),a._start=!1,a.constraints={filter:null,show:null,tools:[]},a._constrains={commit:!1,undo:!1,redo:!1},a._states=[],a._history={id:t.getId(),state:new Proxy({},{get:function(e,t){return a._constrains[t]}}),add:a.__add.bind(a),undo:a.__undo.bind(a),clear:a.__clearHistory.bind(a),redo:a.__redo.bind(a),getState:a.__getState.bind(a),getLastState:a.__getLastHistoryState.bind(a),commit:a.__commit.bind(a)},a._session=Object.assign(new A({setters:{start:function(){return(0,T.$promisify)(a.__startSession(0"+D("editing.messages.delete_feature")+'
'+(s.layer.getChildren().length&&(0,m.getRelationsInEditing)({layerId:o,relations:s.layer.getRelations().getArray()}).length?D("editing.messages.delete_feature_relations"):"")+"
",function(e){var t;(e?(r.getSource().removeFeature(a),(t=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").state.uniqueFieldsValues[o])&&Object.keys(a.getProperties()).filter(function(e){return void 0!==t[e]}).forEach(function(e){return t[e].delete(a.get(e))}),i):n)(s)})});return s.features&&(0,b.setAndUnsetSelectedFeaturesStyle)({promise:(0,T.$promisify)(O(function*(){try{return yield e}catch(e){return Promise.reject(e)}})),inputs:s,style:t.selectStyle}),e}))}})]})},(e||i)&&s.includes("change_feature")&&{id:"movevertex",type:["change_feature"],name:"editing.tools.update_vertex",icon:"moveVertex.png",op:new g.Workflow({layer:t,type:"modifygeometryvertex",helpMessage:"editing.tools.update_vertex",steps:[new P.PickFeatureStep({layer:t}),new h.Step({run:w.chooseFeature}),new P.ModifyGeometryVertexStep({tools:["snap","measure"]})]})},d&&s.includes("change_attr_feature")&&{id:"editmultiattributes",type:["change_attr_feature"],name:"editing.tools.update_multi_features",icon:"multiEditAttributes.png",op:new g.Workflow({layer:t,type:"editmultiattributes",helpMessage:"editing.tools.update_multi_features",registerEscKeyEvent:!0,runOnce:!0,steps:[new P.SelectElementsStep({type:"multiple",steps:{select:{description:"editing.workflow.steps."+(M.ismobile?"selectDrawBoxAtLeast2Feature":"selectMultiPointSHIFTAtLeast2Feature"),buttonnext:{disabled:!0,condition:function(e){e=e.features;return(void 0===e?[]:e).length<2},done:function(){g.Workflow.Stack.getCurrent().clearUserMessagesSteps()}},dynamic:0,done:!1,reset:function(){this.dynamic=0}}}}),new P.OpenFormStep({multi:!0})]})},d&&s.includes("change_attr_feature")&&0{function i(){function t(e){return e&&(0,C.isSameBaseGeometryType)(a,e)&&(a===e||B.isMultiGeometry(a)||!B.isMultiGeometry(e))}return p=[].concat(L(j.getLayers({GEOLAYER:!0,BASELAYER:!1}).filter(function(e){return r!==e.getId()&&t(e.getGeometryType())})),L(n.getExternalLayers({type:"vector"}).filter(function(e){return t(e.geometryType)}))).map(function(e,t){return{id:(e.state||{id:e.id}).id,name:(e.state||{name:e.name}).name,external:e.external||!1,selected:0===t}}),o.tool.enabled=0{var t=(0,G.cloneFeature)(u[e],l);r?t.getGeometry().translate(r.x,r.y):(e=t.getGeometry().getCoordinates(),e=(0,S.getDeltaXY)({x:i,y:n,coordinates:e}),t.getGeometry().translate(e.x,e.y)),l.getEditingMediaFields({}).forEach(function(e){return t.set(e,null)}),a.push((0,k.evaluateExpressionFields)({inputs:p,context:y,feature:t}))})(o);Promise.allSettled(a).then(function(e){return e.forEach(function(e){e.status;var e=e.value,t=(0,z.getNotEditableFieldsNoPkValues)({layer:l,feature:e}),i=g.pushAdd(f,e);Object.entries(t).length&&Object.entries(t).forEach(function(e){var e=v(e,2),t=e[0];return i.set(t,e[1])}),c.addFeature(i),p.features.push(i)})}).finally(function(){h.setUserMessageStepDone("to"),s(p)})}}),h.addInteraction(new ol.interaction.Snap({source:c,edge:!1}))});return(0,b.setAndUnsetSelectedFeaturesStyle)({promise:(0,T.$promisify)(O(function*(){try{return yield e}catch(e){return Promise.reject(e)}})),inputs:p,style:h.selectStyle}),e}))}})].filter(Boolean),registerEscKeyEvent:!0})},d&&s.includes("add_feature")&&s.includes("change_feature")&&{id:"addPart",type:["add_feature","change_feature"],name:"editing.tools.addpart",icon:"addPart.png",visible:c,op:new g.Workflow({layer:t,type:"addparttomultigeometries",helpMessage:"editing.tools.addpart",runOnce:!0,steps:[new P.PickFeatureStep({steps:{select:{description:"editing.workflow.steps.select",done:!1}}}),new h.Step({run:w.chooseFeature,help:"editing.steps.help.select_element"}),new P.AddFeatureStep({layer:t,help:"editing.steps.help.select_element",add:!1,steps:{addfeature:{description:"editing.workflow.steps.draw_part",done:!1}},tools:["snap","measure"]}),new h.Step({layer:t,help:"editing.steps.help.select_element",run:K.addPartToMultigeometries})],registerEscKeyEvent:!0})},d&&s.includes("change_feature")&&{id:"deletePart",type:["change_feature"],name:"editing.tools.deletepart",icon:"deletePart.png",visible:c,op:new g.Workflow({layer:t,type:"deletepartfrommultigeometries",steps:[new P.PickFeatureStep,new h.Step({run:w.chooseFeature}),new h.Step({layer:t,run:function(y,h){var v=this;return(0,T.$promisify)(new Promise(function(n,e){var t=y.layer,r=y.layer.getEditingLayer(),a=t.getId(),o=h.session,t=y.features,i=y.coordinate,s=t[0],l=s.clone(),u=s.getGeometry(),d=[];switch(u.getType()){case R.MULTIPOLYGON:d=u.getPolygons();break;case R.MULTILINE:case R.MULTILINESTRING:d=u.getLineStrings();break;case R.MULTIPOINT:d=u.getPoints()}var c=new ol.source.Vector({features:d.map(function(e){return new ol.Feature(e)})}),f=v.getMap(),g=f.getPixelFromCoordinate(i),p=new ol.layer.Vector({source:c,style:r.getStyle()});f.addLayer(p),f.once("postrender",function(){var i=!1;f.forEachFeatureAtPixel(g,function(e){var t;i||(c.removeFeature(e),c.getFeatures().length?(t=(e=c.getFeatures().map(function(e){return e.getGeometry()}))[0]&&e[0].getType(),s.setGeometry(t&&new ol.geom["Multi"+t](e.map(function(e){return e.getCoordinates()}))),(0,k.evaluateExpressionFields)({inputs:y,context:h,feature:s}).finally(function(){o.pushUpdate(a,s,l),n(y)})):(r.getSource().removeFeature(s),o.pushDelete(a,s),n(y)),i=!0)},{layerFilter:function(e){return e===p},hitTolerance:1}),f.removeLayer(p),p=null})}))}})],helpMessage:"editing.tools.deletepart"})},(e||i)&&s.includes("change_feature")&&{id:"splitfeature",type:["change_feature"],name:"editing.tools.split",icon:"splitFeatures.png",op:new g.Workflow({layer:t,type:"splitfeature",runOnce:!0,steps:[new P.SelectElementsStep({layer:t,help:"editing.steps.help.split",type:M.ismobile?"single":"multiple",steps:{select:{description:"editing.workflow.steps."+(M.ismobile?"selectPoint":"selectPointSHIFT"),done:!1}}},!0),new h.Step({layer:t,help:"",steps:{draw_line:{description:"editing.workflow.steps.draw_split_line",done:!1}},run:function(s,l){var i=this;return(0,T.$promisify)(O(function*(){var e=s.layer.getEditingLayer().getSource(),t=new Promise(function(a,o){var t;i.addInteraction(new ol.interaction.Draw({type:"LineString",features:new ol.Collection,freehandCondition:ol.events.condition.never}),{drawend:(t=O(function*(e){for(var i=!1,n=(0,Z.splitFeatures)(s.features,e.feature),t=n.length,r=0;rfunction(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})})(function*(){var e,t=void 0,i=void 0;1function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})})(function*(){try{var e;return 1!==t.features.length&&(e=yield(0,n.chooseFeatureFromFeatures)({features:t.features,inputs:t}),t.features=[e]),t}catch(e){return Promise.reject(e)}}))};var n=e("../utils/chooseFeatureFromFeatures"),r=e("../utils/promisify")},{"../utils/chooseFeatureFromFeatures":34,"../utils/promisify":58}],34:[function(s,e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.chooseFeatureFromFeatures=function(e){var t=e.features,a=void 0===t?[]:t,o=e.inputs;return new Promise(function(e,t){var i=[],n=new(Vue.extend(s("../components/ChooseFeatureToEdit.vue")))({features:Array.isArray(a)?a:[],feature:i,attributes:o.layer.getEditingFields().map(function(e){return{name:e.name,label:e.label}})}),r=g3wsdk.gui.GUI.showModalDialog({title:l("editing.modal.tools.copyfeaturefromprojectlayer.title"),className:"modal-left",closeButton:!1,message:n.$mount().$el,buttons:{cancel:{label:"Cancel",className:"btn-danger",callback:function(){t()}},ok:{label:"Ok",className:"btn-success",callback:function(){e(i[0])}}}});r.find("button.btn-success").prop("disabled",!0),n.$watch("feature",function(e){return r.find("button.btn-success").prop("disabled",null===e)})})};var l=g3wsdk.core.i18n.tPlugin},{"../components/ChooseFeatureToEdit.vue":3}],35:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.cloneFeature=function(e,t){e=e.cloneNew(),t=t&&t.getEditingFields().find(function(e){return e.pk});t&&!1===t.editable&&e.set(t.name,null);return e}},{}],36:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.convertToGeometry=function(){var e=0(t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e))({},r.name,r.value)),relations:[n]}),t.un("featuresLockedByOtherUser",i),void 0===u)?e.getLayerById(o).getEditingSource().readFeatures().find(function(e){return r.value===e.get(s)}):u))try{var d=g.getLayerById(o),c=(yield p.getData("search:features",{inputs:{layer:d,formatter:0,filter:g3wsdk.core.utils.createFilterFormInputs({layer:d,search_endpoint:"api",inputs:[{attribute:s,value:r.value}]}),search_endpoint:"api"},outputs:!1})).data;c&&c[0]&&1===c[0].features.length&&(l=!0,u=c[0].features[0])}catch(e){}return{feature:u,locked:l}},r=function(){var s=n.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})},function(e){return r.apply(this,arguments)});var n,r,f=e("../utils/getLayersDependencyFeatures");var g=g3wsdk.core.catalog.CatalogLayersStoresRegistry,p=g3wsdk.core.data.DataRouterService},{"../utils/getLayersDependencyFeatures":45}],49:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.getRelationFieldsFromRelation=function(){var e=0{e=function*(t){try{t.resolve(yield i instanceof Promise?i:i())}catch(e){t.reject(e)}};var e,t=function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})};return function(e){return t.apply(this,arguments)}})()).promise()}},{}],59:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.setAndUnsetSelectedFeaturesStyle=function(){function e(){var t=(0,l.setFeaturesSelectedStyle)(a,r);(0,s.promisify)(i).finally(function(){a.flat().forEach(function(e){return e.setStyle(t)})})}var t=0({originalStyle:e.getStyle(),selectedStyle:e.getGeometry()?g3wsdk.core.geoutils.createSelectedStyle({geometryType:e.getGeometry().getType()}):e.getStyle()}))(e[0]),n=i.originalStyle,r=i.selectedStyle,e.forEach(function(e){return e.setStyle(t||r)}),n}}},{}],61:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0});var n,r,a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var i=t,n=[],r=!0,t=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!i||n.length!==i);r=!0);}catch(e){t=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw a}}return n}throw new TypeError("Invalid attempt to destructure non-iterable instance")};i.setLayerUniqueFieldValues=(n=function*(n){var r=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing");return yield new Promise(function(t,i){var e=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").getLayerById(n);e.getWidgetData({type:"unique",fields:Object.values(e.getEditingFields().filter(function(e){return!(e.pk&&!1===e.editable)&&("unique"===e.input.type||e.validate.unique)})).map(function(e){return e.name}).join()}).then(function(e){Object.entries(e.data||{}).forEach(function(e){var e=a(e,2),t=e[0];r.state.uniqueFieldsValues[n][t]=new Set(e[1])}),t(r.state.uniqueFieldsValues[n][name])}).fail(function(e){i(e)})}),r.state.uniqueFieldsValues[n]},r=function(){var s=n.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})},function(e){return r.apply(this,arguments)});g3wsdk.core.catalog.CatalogLayersStoresRegistry},{}],62:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.splitFeatures=function(e,n){return(e||[]).reduce(function(e,t){var i=r({splitfeature:n,feature:t});return 1\n \n \n
\n \n \n ',name:"Saveall",props:{update:{type:Boolean},valid:{type:Boolean}},data:function(){return{enabled:x.Workflow.Stack._workflows.slice(0,x.Workflow.Stack.getLength()-1).every(function(e){e=(e.getContext().service instanceof Y?e.getContext().service.getState():{}).valid;return e||void 0===e})}},computed:{disabled:function(){return!this.enabled||!(this.valid&&this.update)}},methods:{saveAll:(l=I(function*(){P.setLoadingContent(!0),P.disableContent(!0),yield Promise.allSettled([].concat(E(x.Workflow.Stack._workflows)).reverse().filter(function(e){return"function"==typeof e.getLastStep()._saveAll}).map(function(r){return new Promise((t=I(function*(e){var t,i=r.getLastStep(),n=r.getContext().service.state.fields.filter(function(e){return!i._multi||null!==e.value});if(0!==n.length)return yield x.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies(),i._features.forEach(function(e){return i.getInputs().layer.setFieldsWithValues(e,n)}),t=i._features.map(function(e){return e.clone()}),i._isContentChild&&(i.getInputs().relationFeatures={newFeatures:t,originalFeatures:i._originalFeatures}),yield i.fireEvent("saveform",{newFeatures:t,originalFeatures:i._originalFeatures}),t.forEach(function(e,t){return i.getContext().session.pushUpdate(i.layerId,e,i._originalFeatures[t])}),yield(0,w.handleRelation1_1LayerFields)({layerId:i.layerId,features:t,fields:n,task:i}),i.fireEvent("savedfeature",t),i.fireEvent("savedfeature_"+i.layerId,t),i.getContext().session.save(),e()}),function(e){return t.apply(this,arguments)}));var t}));try{yield(0,S.promisify)(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").service.commit({modal:!1})),[].concat(E(x.Workflow.Stack._workflows)).reverse().filter(function(e){return"function"==typeof e.getLastStep()._saveAll}).forEach(function(e){var n=e.getContext().service,t=(n.setUpdate(!1,{force:!1}),n.feature);t.isNew()&&(t.state.new=!1,n.force.update=!1),Object.entries(e.getInputs().layer.getEditingSource().readFeatures().find(function(e){return e.getUid()===t.getUid()}).getProperties()).forEach(function(e){var e=p(e,2),t=e[0],e=e[1],i=n.getFields().find(function(e){return t===e.name});i&&(i.value=i._value=e)})})}catch(e){}P.setLoadingContent(!1),P.disableContent(!1)}),function(){return l.apply(this,arguments)})}},buttons:[{id:"save",title:f._isContentChild?x.Workflow.Stack.getParent().getBackButtonLabel()||"plugins.editing.form.buttons.save_and_back":"plugins.editing.form.buttons.save",type:"save",class:"btn-success",cbk:(s=I(function*(t){var i;0!==(t=f._multi?t.filter(function(e){return null!==e.value}):t).length&&(i=[],P.setLoadingContent(!0),P.disableContent(!0),yield x.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies(),P.setLoadingContent(!1),P.disableContent(!1),f._features.forEach(function(e){d.layer.setFieldsWithValues(e,t),i.push(e.clone())}),f._isContentChild&&(d.relationFeatures={newFeatures:i,originalFeatures:f._originalFeatures}),yield f.fireEvent("saveform",{newFeatures:i,originalFeatures:f._originalFeatures}),i.forEach(function(e,t){return c.session.pushUpdate(f.layerId,e,f._originalFeatures[t])}),yield(0,w.handleRelation1_1LayerFields)({layerId:f.layerId,features:i,fields:t,task:f}),P.setModal(!1),f.fireEvent("savedfeature",i),f.fireEvent("savedfeature_"+f.layerId,i),f._isContentChild)&&x.Workflow.Stack.getParents().forEach(function(e){return e.getContextService().setUpdate(!0,{force:!0})}),e(d)}),function(e){return s.apply(this,arguments)})},{id:"cancel",title:"plugins.editing.form.buttons.cancel",type:"cancel",class:"btn-danger",eventButtons:{update:{false:{id:"close",title:"close",type:"cancel",class:"btn-danger"}}},cbk:function(){f._isContentChild||(P.setModal(!1),f.fireEvent("cancelform",d.features)),t(d)}}]})).handleRelation=(u=I(function*(e){f._multi?P.showUserMessage({type:"info",message:"plugins.editing.errors.editing_multiple_relations",duration:3e3,autoclose:!0}):(P.setLoadingContent(!0),yield(0,U.setLayerUniqueFieldValues)(d.layer.getRelationById(e.relation.name).getChild()),o.setCurrentComponentById(e.relation.name),P.setLoadingContent(!1))}),function(e){return u.apply(this,arguments)}),o.addComponents([].concat(E(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").state.formComponents[a]||[]),E((0,G.getRelationsInEditingByFeature)({layerId:a,relations:f._multi?[]:d.layer.getRelations().getArray().filter(function(e){return"ONE"!==e.getType()&&e.getFather()===a}),feature:!f._multi&&d.features[d.features.length-1]}).map(function(e){var t=e.relation,i=e.relations;return{title:"plugins.editing.edit_relation",name:t.name,id:t.id,header:!1,component:Vue.extend({mixins:[g("../components/FormRelation.vue")],name:"relation_"+Date.now(),data:function(){return{layerId:a,relation:t,relations:i}}})}})))),f.fireEvent("openform",{layerId:f.layerId,session:c.session,feature:f._originalFeature,formService:o}),x.Workflow.Stack.getCurrent()&&x.Workflow.Stack.getCurrent().setContextService(o),(0,B.listenRelation1_1FieldChange)({layerId:f.layerId,fields:n}).then(function(e){return f._unwatchs=e}),f.disableSidebar(!0))}),function(e,t){return i.apply(this,arguments)}));return(0,S.$promisify)(I(function*(){return(0,m.setAndUnsetSelectedFeaturesStyle)({promise:(0,S.$promisify)(e),inputs:d,style:f.selectStyle}),e}))}},{key:"stop",value:function(){this.disableSidebar(!1);var e=!1===this._isContentChild||2===x.Workflow.Stack.getLength()&&x.Workflow.Stack.getParent().isType("edittable"),e=(e&&P.getService("map").disableClickMapControls(!1),e&&x.Workflow.Stack.getCurrent().getContextService());e&&!1===this._isContentChild&&e.setUpdate(!1,{force:!1}),P.closeForm({pop:this.push||this._isContentChild&&1{e=function*(t){try{t.resolve(yield i instanceof Promise?i:i())}catch(e){t.reject(e)}};var e,t=function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})};return function(e){return t.apply(this,arguments)}})()).promise()}},{}]},{},[25]); +(()=>{var e=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;e&&(e.editing=Object.assign(e.editing||{},{version:"3.9.0-issue_137",hash:"daf91d9",branch:"issue_137"}))})(),function n(r,a,o){function s(t,e){if(!a[t]){if(!r[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}i=a[t]={exports:{}},r[t][0].call(i.exports,function(e){return s(r[t][1][e]||e)},i,i.exports,n,r,a,o)}return a[t].exports}for(var l="function"==typeof require&&require,e=0;eli[data-v-31b52cc3]{margin-bottom:8px}ins[data-v-31b52cc3]{background-color:lime;text-decoration-line:none}del[data-v-31b52cc3]{background-color:tomato}dl[data-v-31b52cc3]{display:grid;grid-template:auto/.5fr 1fr;margin-bottom:0;word-break:break-all}dt[data-v-31b52cc3]{background:#fee}dd[data-v-31b52cc3]{background:#f1f2f4}dd[data-v-31b52cc3],dt[data-v-31b52cc3]{margin:0;padding:.3em .5em;border-top:1px solid #fff}");function o(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),r=e("../utils/areCoordinatesEqual"),a=e("../utils/getFeatureTableFieldValue"),i.default={name:"changes",props:{commits:{type:Object,required:!0},layer:{type:Object,required:!0},relation:{type:Boolean,default:!1}},data:function(){return{features:this.layer.readFeatures(),efeatures:this.layer.readEditingFeatures()}},methods:{getFormattedValue:function(e,t){if(e)return"geometry"===t&&e.get(t)?"("+e.get(t).getFlatCoordinates().length/2+")":(0,a.getFeatureTableFieldValue)({layerId:this.layer.getId(),feature:e,property:t})},getValue:function(e,t){return this.getFormattedValue(this.getFeature(e),t)},getEditingValue:function(e,t){return this.getFormattedValue(this.getEditingFeature(e),t)},hasValue:function(e,t){var i=this.getFeature(e),e=this.getEditingFeature(e);return!(i&&e&&null===i.get(t)&&null===e.get(t)||i&&!e&&null===i.get(t))},getId:function(e){return e.id||e},getEditingFeature:function(t){var i=this;return this.efeatures.find(function(e){return i.getId(t)===e.getId()})},getFeature:function(t){var i=this;return this.features.find(function(e){return i.getId(t)===e.getId()})},getType:function(e){e=this.getEditingFeature(e)||this.getFeature(e);return e&&e.getGeometry&&e.getGeometry()?e.getGeometry().getType():""},isEdited:function(e,t){var i=this.getFeature(e),n=this.getEditingFeature(e);return![i,n].includes(void 0)&&(this.getType(e)&&"geometry"===t?!(0,r.areCoordinatesEqual)({feature:i,coordinates:n.get(t).getCoordinates()}):n.get(t)!==i.get(t))},getAttrs:function(e){e=this.getEditingFeature(e)||this.getFeature(e);return Object.entries(e?e.getProperties():{}).sort(function(e,t){return e[0]>t[0]})},getLayerById:function(e){return g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").service.getLayerById(e)}},mounted:(n=o(function*(){this.$refs.value.filter(function(e){return!e.textContent}).forEach(function(e){return e.innerHTML="<empty>"})}),function(){return n.apply(this,arguments)})},t.exports.__esModule&&(t.exports=t.exports.default);e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("div",[i.relation?n("h4",{directives:[{name:"t-plugin",rawName:"v-t-plugin:pre",value:"editing.messages.commit.header_relation",expression:"'editing.messages.commit.header_relation'",arg:"pre"}],staticClass:"skin-color g3w-long-text",staticStyle:{"font-weight":"bold",margin:"15px 0"}},[i._v(": "+i._s(i.layer.getName()))]):i._e(),i._v(" "),i._l(Object.keys(i.commits).filter(function(e){return i.commits[e].length}),function(e){return[n("h4",{directives:[{name:"t-plugin",rawName:"v-t-plugin:pre",value:"editing.messages.commit."+e,expression:"`editing.messages.commit.${c}`",arg:"pre"}]},[i._v(" ("+i._s(i.commits[e].length)+") ")]),i._v(" "),n("divider"),i._v(" "),n("ul",i._l(i.commits[e],function(t){return n("li",[n("details",[n("summary",[i._v(i._s(i.getType(t))+" #"+i._s(i.getId(t)))]),i._v(" "),i._l(i.getAttrs(t),function(e){e=e[0];return[i.hasValue(t,e)?n("dl",[n("dt",[i._v(i._s(e)+":")]),i._v(" "),n("dd",[i.isEdited(t,e)?[n("del",{ref:"value",refInFor:!0},[i._v(i._s(i.getValue(t,e)))]),i._v(" ← "),n("ins",{ref:"value",refInFor:!0},[i._v(i._s(i.getEditingValue(t,e)))])]:n("span",{ref:"value",refInFor:!0},[i._v(i._s(i.getEditingValue(t,e)||i.getValue(t,e)))]),i._v(" "),"geometry"===e?n("i",[n("code",[i._v("")])]):i._e()],2)]):i._e()]})],2)])}),0)]}),i._v(" "),i._l(Object.entries(i.commits.relations),function(e){var t=e[0],e=e[1];return n("changes",{attrs:{commits:{add:e.add,update:e.update,delete:e.delete,relations:e.relations},relation:!0,layer:i.getLayerById(t)}})})],2)},e.staticRenderFns=[],e._scopeId="data-v-31b52cc3"},{"../utils/areCoordinatesEqual":31,"../utils/getFeatureTableFieldValue":43,"vueify/lib/insert-css":1}],3:[function(e,t,i){e("vueify/lib/insert-css").insert(".choose-and-zoom-to-feature[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between}#editing-layers-choose-feature .editing-choose-feature-radio-input[data-v-ad674338]{align-items:center;padding:5px;position:relative;display:flex;justify-content:space-between;border-bottom:1px solid #eee}.ztf[data-v-ad674338]{padding-left:3px;font-size:1.3em;cursor:pointer;margin-top:10px}.magic-radio+label[data-v-ad674338]{color:transparent}.feature-attributes[data-v-ad674338]{overflow-x:auto;display:flex}.feature-attributes>div[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between;padding:5px}.f-attr[data-v-ad674338]{font-weight:700;margin-bottom:10px}.f-val[data-v-ad674338]{align-self:start;white-space:nowrap}");Object.defineProperty(i,"__esModule",{value:!0}),n=g3wsdk.gui.GUI,i.default={name:"choosefeature",data:function(){return{feature:this.$options.feature}},methods:{selectFeature:function(e){this.feature.splice(0),this.feature.push(e)},getAttributesFeature:function(e){var t=e.getProperties();return this.$options.attributes.map(function(e){return{attribute:e.label,value:t[e.name]}})},zoomToFeature:function(e){n.getService("map").zoomToFeatures([e],{highlight:!0,duration:1e3})}},mounted:function(){n.closeContent()}},t.exports.__esModule&&(t.exports=t.exports.default);var n,e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("div",{attrs:{id:"editing-layers-choose-feature"}},i._l(i.$options.features,function(t,e){return n("div",{staticClass:"editing-choose-feature-radio-input"},[n("section",{staticClass:"choose-and-zoom-to-feature"},[n("div",[n("input",{staticClass:"magic-radio",attrs:{id:"choose_feature_"+e,name:"radio",type:"radio"},on:{click:function(e){return e.stopPropagation(),i.selectFeature(t)}}}),i._v(" "),n("label",{attrs:{for:"choose_feature_"+e}},[i._v("id")])]),i._v(" "),n("div",{staticClass:"ztf skin-color",class:i.g3wtemplate.font.marker,on:{click:function(e){return e.stopPropagation(),i.zoomToFeature(t)}}})]),i._v(" "),n("section",{staticClass:"feature-attributes"},i._l(i.getAttributesFeature(t),function(e){var t=e.attribute,e=e.value;return n("div",[n("span",{staticClass:"f-attr"},[i._v(i._s(t))]),i._v(" "),n("span",{staticClass:"f-val"},[i._v(i._s(e))])])}),0)])}),0)},e.staticRenderFns=[],e._scopeId="data-v-ad674338"},{"vueify/lib/insert-css":1}],4:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),g3wsdk.gui.GUI,i.default={name:"Copyfeaturesfromotherlayers",data:function(){return{id:this.$options.layers.find(function(e){return e.selected}).id}},watch:{id:function(t){this.$options.layers.forEach(function(e){return e.selected=t===e.id})}}},t.exports.__esModule&&(t.exports=t.exports.default);i="function"==typeof t.exports?t.exports.options:t.exports;i.render=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("section",[i("div",{attrs:{id:"g3w-select-editable-layers-content"}},[i("select",{directives:[{name:"select2",rawName:"v-select2",value:"id",expression:"'id'"}],attrs:{id:"g3w-select-editable-layers-to-copy"}},t._l(t.$options.layers,function(e){return i("option",{key:e.id,domProps:{value:e.id}},[t._v(t._s(e.name))])}),0)])])},i.staticRenderFns=[]},{}],5:[function(e,t,i){var n,r,d,a,o,s,l,u,c,f,g,p,y,h;e("vueify/lib/insert-css").insert(".g3w-editing-panel .editing-button .editing-icon{background-color:#3a4448;color:#222d32;font-size:1.8em;padding:10px;margin:5px;width:45px;height:45px;border-radius:30%;text-align:center}.g3w-editing-panel .editing-button.enabled .editing-icon{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.7)}.g3w-editing-panel .editing-button{cursor:not-allowed}.g3w-editing-panel .editing-button.enabled{cursor:pointer}.g3w-editing-panel .editbtn{border-radius:30%;padding:10px;display:inline-block;opacity:.4;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 4px 0 rgba(0,0,0,.3)}.g3w-editing-panel .editbtn.enabled{opacity:1;cursor:pointer}.g3w-editing-panel .editbtn.enabled.toggled{box-shadow:0 0;background-color:#ddd}\n.g3w-editing-panel[data-v-14424d18]{margin-bottom:50px}#onlineofflinemessage[data-v-14424d18]{margin-bottom:5px;padding:5px;border-radius:3px;background-color:orange;color:#fff;font-weight:700}.commitbar[data-v-14424d18]{display:flex;justify-content:flex-end;margin-bottom:5px}.commitbar>div[data-v-14424d18]:first-of-type{margin-right:auto}#g3w-select-editable-layers-content[data-v-14424d18]{margin-bottom:10px;font-weight:700}#g3w-select-editable-layers-content label[data-v-14424d18]{color:#fff!important}#g3w-select-editable-layers-to-show[data-v-14424d18]{cursor:pointer}");function v(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var i=t,n=[],r=!0,t=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!i||n.length!==i);r=!0);}catch(e){t=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw a}}return n}throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=(r=r=e("./Toolbox.vue"))&&r.__esModule?r:{default:r},d=e("../utils/promisify"),f=g3wsdk.gui.GUI,g=(e=g3wsdk.core).ApplicationState,p=e.ApplicationService,y=g3wsdk.core.catalog.CatalogLayersStoresRegistry,h=g3wsdk.core.data.DataRouterService,i.default={name:"Editing",data:function(){return{state:this.$options.service.state,service:this.$options.service,resourcesurl:this.$options.resourcesurl,showcommitbar:this.$options.showcommitbar,saving:!1,layersInEditing:0,editingButtonsEnabled:!0,selectedlayers:[],editinglayers:Object.entries(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").getEditableLayers()).filter(function(e){e=n(e,2);e[0];return e[1].config.editing.visible}).map(function(e){var e=n(e,2),t=e[0],e=e[1];return{id:t,name:e.getName(),title:e.getTitle()}}),activetool:null}},components:{toolbox:r.default},transitions:{addremovetransition:"showhide"},methods:{updateFilterLayers:function(){var e=0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t.g3w-icon[data-v-2b09c990]{font-weight:700;cursor:pointer}.divider[data-v-2b09c990]{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}");function O(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function R(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t !r.select)"}],on:{click:function(e){return e.stopPropagation(),a.editAttributesRelations()}}},[n("img",{attrs:{height:"25",width:"25",src:a.resourcesurl+"images/multiEditAttributes.png"}})])]):a._e(),a._v(" "),a.capabilities.includes("change_attr_feature")?n("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:bottom.create",value:"plugins.editing.form.relations.tooltips.link_relation",expression:"'plugins.editing.form.relations.tooltips.link_relation'",arg:"bottom",modifiers:{create:!0}}],staticClass:"g3w-icon add-link",class:[{disabled:!a.show_add_link},a.g3wtemplate.font.link],attrs:{align:"center"},on:{click:function(e){e.stopPropagation(),a.show_add_link&&a.linkRelation()}}}):a._e(),a._v(" "),a.capabilities.includes("add_feature")?n("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:bottom.create",value:"plugins.editing.form.relations.tooltips.add_relation",expression:"'plugins.editing.form.relations.tooltips.add_relation'",arg:"bottom",modifiers:{create:!0}}],staticClass:"g3w-icon add-link pull-right",class:[{disabled:!a.show_add_link},a.g3wtemplate.font.plus],on:{click:function(e){e.stopPropagation(),a.show_add_link&&a.addRelationAndLink()}}}):a._e()])]),a._v(" "),a.show_vector_tools?n("section",{ref:"relation_vector_tools",staticClass:"relation_vector_tools"},[n("span",{staticClass:"close_vector_relation_tool",on:{click:function(e){return e.stopPropagation(),a.closeVectorTools(e)}}},[n("i",{staticClass:"g3w-icon skin-color",class:a.g3wtemplate.font.close})]),a._v(" "),n("div",[n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.draw_new_feature",expression:"'editing.relation.draw_new_feature'"}],staticClass:"g3w-editing-new-relation-vector-type"}),a._v(" "),n("button",{staticClass:"btn skin-button",staticStyle:{width:"100%"},on:{click:function(e){return e.stopPropagation(),a.addVectorRelation(e)}}},[n("i",{class:a.g3wtemplate.font.pencil})])]),a._v(" "),n("section",[n("span",{staticClass:"divider"}),a._v(" "),n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.draw_or_copy",expression:"'editing.relation.draw_or_copy'"}],staticStyle:{"align-self":"center"}}),a._v(" "),n("span",{staticClass:"divider"}),a._v(" "),n("div",{attrs:{id:"g3w-select-editable-layers-content"}},[n("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.copy_feature_from_other_layer",expression:"'editing.relation.copy_feature_from_other_layer'"}],staticClass:"g3w-editing-new-relation-vector-type"}),a._v(" "),n("select",{directives:[{name:"select2",rawName:"v-select2",value:"copylayerid",expression:"'copylayerid'"}],attrs:{id:"g3w-select-editable-layers-to-copy"}},a._l(a.copyFeatureLayers,function(e){return n("option",{key:e.id,domProps:{value:e.id}},[a._v(a._s(e.name))])}),0),a._v(" "),n("button",{directives:[{name:"disabled",rawName:"v-disabled",value:0===a.copyFeatureLayers.length,expression:"0 === copyFeatureLayers.length"}],staticClass:"btn skin-button",on:{click:function(e){return e.stopPropagation(),a.copyFeatureFromOtherLayer(e)}}},[n("i",{class:a.g3wtemplate.font.clipboard})])])])]):a._e(),a._v(" "),n("div",{directives:[{name:"disabled",rawName:"v-disabled",value:a.disabled,expression:"disabled"}],ref:"relation_body",staticClass:"relation_body box-body"},[0"+m("editing.messages.delete_feature")+'\n
'+(n?m("editing.messages.delete_feature_relations"):"")+"
",function(e){var t,i,n;(e?(e=s.state.features.findIndex(function(e){return e.getUid()===o}),t=s.state.features[e],i=s.state.context.session,n=s.state.inputs.layer.getId(),s.state.inputs.layer.getEditingSource().removeFeature(t),i.pushDelete(n,t),s.state.rows.splice(e,1),r):a)()})}),this.dataTable.row(e).remove().draw(),yield this.$nextTick()}catch(e){}}),function(e){return h.apply(this,arguments)}),copyFeature:(s=w(function*(o){var i,s=this;yield new Promise((i=w(function*(e,t){var i=(0,f.cloneFeature)(s.state.features.find(function(e){return o===e.getUid()}),s.state.inputs.layer.getEditingLayer());s.state.workflow=new d.Workflow({type:"addtablefeature",steps:[new u.Step({help:"editing.steps.help.new",run:p.addTableFeature}),new c.OpenFormStep]}),s.state.inputs.features.push(i);try{var n=yield(0,y.promisify)(s.state.workflow.start({context:s.state.context,inputs:s.state.inputs})),r=n.features[n.features.length-1],a={};Object.entries(s.state.rows[0]).forEach(function(e){e=l(e,2),e=e[0];a[e]=(0,g.getFeatureTableFieldValue)({layerId:s.state.layerId,feature:r,property:e})}),a.__gis3w_feature_uid=r.getUid(),s.state.rows.push(a),e(a)}catch(e){t(e)}finally{s.state.workflow.stop()}}),function(e,t){return i.apply(this,arguments)})),this.show=!1,this.dataTable.destroy(),yield this.$nextTick(),this.show=!0,yield this.$nextTick(),this.setDataTable()}),function(e){return s.apply(this,arguments)}),editFeature:(o=w(function*(t){var i=this,n=this.state.features.findIndex(function(e){return t===e.getUid()}),e=this.state.features[n],r=(this.state.workflow=new d.Workflow({type:"edittablefeature",steps:[new c.OpenFormStep]}),this.state.inputs);r.features.push(e);try{var a=yield(0,y.promisify)(this.state.workflow.start({context:this.state.context,inputs:r})),o=a.features[a.features.length-1];Object.entries(this.state.rows[n]).forEach(function(e){e=l(e,2),e=e[0];i.state.rows[n][e]=(0,g.getFeatureTableFieldValue)({layerId:i.state.layerId,feature:o,property:e})})}catch(e){}finally{this.state.workflow.stop()}}),function(e){return o.apply(this,arguments)}),linkFeature:function(t,e){e.target.checked?this._linkFeatures.push(t):this._linkFeatures=this._linkFeatures.filter(function(e){return e!==t})},getValue:function(e){return e&&"object"===(void 0===e?"undefined":n(e))&&Object===e.constructor?e=e.value:"string"==typeof e&&0===e.indexOf("_new_")&&(e=null),e},setDataTable:function(){this.dataTable=$("#editing_table table").DataTable({columnDefs:[{orderable:!1,targets:0}],order:[1,"asc"],pageLength:10,scrollCollapse:!0,scrollResize:!0,scrollX:!0}),this.resize()}},beforeCreate:function(){this.delayType="debounce",_.disableSideBar(!0),_.showUserMessage({type:"loading",message:"plugins.editing.messages.loading_table_data",autoclose:!1,closable:!1})},mounted:(a=w(function*(){yield this.$nextTick(),this.state.isrelation&&(this._linkFeatures=[]),this.setDataTable(),this.resize(),setTimeout(function(){return _.closeUserMessage()},300)}),function(){return a.apply(this,arguments)}),beforeDestroy:function(){this.cancel(),this._linkFeatures=null,this.dataTable.destroy()}},t.exports.__esModule&&(t.exports=t.exports.default);i="function"==typeof t.exports?t.exports.options:t.exports;i.render=function(){var n=this,e=n.$createElement,r=n._self._c||e;return r("div",{staticClass:"g3w-editing-table",attrs:{id:"editing_table"}},[r("div",{ref:"editing_table_header",staticClass:"editing_table_header"},[r("div",{staticClass:"editing_table_header_content"},[r("h3",{staticClass:"editing_table_title"},[n._v(n._s(n.state.title))])]),n._v(" "),n.state.isrelation?r("div",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.relation.table.info",expression:"'editing.relation.table.info'"}],staticClass:"editing_table_relation_messagge"}):n._e()]),n._v(" "),n.show?r("table",{staticClass:"display",staticStyle:{width:"100%"}},[r("thead",[r("tr",[n.state.isrelation?n._e():r("th",{staticStyle:{"max-width":"60px"}}),n._v(" "),n.state.isrelation?r("th"):n._e(),n._v(" "),n._l(n.state.headers,function(e){return r("th",[n._v(n._s(e.label))])})],2)]),n._v(" "),r("tbody",n._l(n.state.rows,function(t,i){return r("tr",{key:t.__gis3w_feature_uid,attrs:{id:t.__gis3w_feature_uid}},[n.state.isrelation?n._e():r("td",[r("div",{attrs:{id:"table-editing-tools"}},[r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.edit",expression:"'plugins.editing.table.edit'",arg:"right",modifiers:{create:!0}}]},[n.showTool("change_attr_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font.pencil,staticStyle:{color:"#30cce7"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.editFeature(t.__gis3w_feature_uid)}}}):n._e()]),n._v(" "),r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.copy",expression:"'plugins.editing.table.copy'",arg:"right",modifiers:{create:!0}}]},[n.showTool("add_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font["copy-paste"],staticStyle:{color:"#d98b14",padding:"5px 7px 5px 7px"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.copyFeature(t.__gis3w_feature_uid)}}}):n._e()]),n._v(" "),r("span",{directives:[{name:"t-tooltip",rawName:"v-t-tooltip:right.create",value:"plugins.editing.table.delete",expression:"'plugins.editing.table.delete'",arg:"right",modifiers:{create:!0}}]},[n.showTool("delete_feature")?r("i",{staticClass:"g3w-icon",class:n.g3wtemplate.font["trash-o"],staticStyle:{color:"red"},attrs:{"aria-hidden":"true"},on:{click:function(e){return e.stopPropagation(),n.deleteFeature(t.__gis3w_feature_uid)}}}):n._e()])])]),n._v(" "),n.state.isrelation?r("td",[r("input",{staticClass:"magic-checkbox",attrs:{id:"relation__"+i,type:"checkbox"},on:{change:function(e){return n.linkFeature(i,e)}}}),n._v(" "),r("label",{attrs:{for:"relation__"+i}})]):n._e(),n._v(" "),n._l(t,function(e,t){return n.showValue(t)?r("td",{key:t},[n.getValue(e)&&n.isMediaField(t)?r("g3w-media",{attrs:{state:e}}):r("p",[n._v(n._s(n.getValue(e)))])],1):n._e()})],2)}),0)]):n._e(),n._v(" "),r("div",{ref:"table_editing_footer_buttons",staticClass:"table_editing_footer_buttons",attrs:{id:"buttons"}},[r("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:n.state.isrelation?"editing.form.buttons.save_and_back":"editing.form.buttons.save",expression:"state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'"}],staticClass:"btn btn-success",staticStyle:{"margin-right":"10px"},on:{click:function(e){return e.stopPropagation(),n.save(e)}}}),n._v(" "),r("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.form.buttons.cancel",expression:"'editing.form.buttons.cancel'"}],staticClass:"btn btn-danger",on:{click:function(e){return e.stopPropagation(),n.cancel(e)}}})])])},i.staticRenderFns=[],i._scopeId="data-v-c130bb64"},{"../g3wsdk/workflow/step":14,"../g3wsdk/workflow/workflow":15,"../utils/addTableFeature":30,"../utils/cloneFeature":35,"../utils/getFeatureTableFieldValue":43,"../utils/getRelationsInEditing":51,"../utils/promisify":58,"../workflows":65,"vueify/lib/insert-css":1}],8:[function(e,t,i){var n,r,o,s,a,l,u;e("vueify/lib/insert-css").insert(".panel.mobile[data-v-17ba9f33]{margin-bottom:5px}.panel.mobile .panel-heading[data-v-17ba9f33]{display:flex;justify-content:space-between}.panel.mobile .panel-heading .panel-title[data-v-17ba9f33]{margin-top:auto;margin-bottom:auto}.panel.mobile .panel-heading .start-editing[data-v-17ba9f33]{margin:auto;margin-right:0;padding:6px}.panel.mobile .tools-content .editbtn[data-v-17ba9f33]{padding:9px}.panel.mobile .toolbox .panel-body[data-v-17ba9f33]{padding:5px!important}.toolbox_help_message[data-v-17ba9f33]{font-weight:lighter}.toolbox[data-v-17ba9f33]{padding-bottom:5px}.panel[data-v-17ba9f33]{border:0!important;margin-bottom:8px}.panel-heading[data-v-17ba9f33]{padding:5px 10px;width:100%}.toolboxselected[data-v-17ba9f33]{box-shadow:0 0 0 3px var(--skin-color)}.panel:not(.toolboxselected) .info[data-v-17ba9f33]{opacity:.4}.panel:not(.toolboxactive) .panel-heading[data-v-17ba9f33]{border-radius:3px;filter:grayscale(.8)}.panel:not(.geolayer) .panel-body[data-v-17ba9f33]{padding-top:0}.panel.toolboxactive:not(.geolayer) .editbtn.start-editing[data-v-17ba9f33]{color:#fff!important}.panel:not(.geolayer) .panel-heading[data-v-17ba9f33]{color:#3a4448}.editbtn.start-editing[data-v-17ba9f33]{padding:13px;color:currentColor!important;font-size:1.1em;margin:0}.panel-title[data-v-17ba9f33]{font-weight:700;word-break:break-word;padding:8px 0;display:inline-block}#toolsoftoolcontainer[data-v-17ba9f33]{display:flex;flex-direction:column;margin:5px;padding:5px;border-radius:5px}.info[data-v-17ba9f33]{color:#000}.info>i[data-v-17ba9f33]{color:#007bff;padding-right:2px}.info+.tools-content[data-v-17ba9f33]{margin-top:1em}.filter-by-relation[data-v-17ba9f33]{margin-right:5px;cursor:pointer;color:currentColor!important}.tools-content[data-v-17ba9f33]{display:flex;flex-wrap:wrap;gap:10px}.message[data-v-17ba9f33]{margin-bottom:5px;font-size:1.1em;color:#000;margin-top:5px}.snap-tool[data-v-17ba9f33]{display:flex}.snap-tool label>b[data-v-17ba9f33]{color:#222d32!important}.tools-of-tool-snap[data-v-17ba9f33]{display:flex;width:100%;justify-content:space-between}.tools-of-tool-snap label span[data-v-17ba9f33]{color:#222d32!important}.panel-body.disabled[data-v-17ba9f33]{opacity:.7}.panel-body.disabled>[data-v-17ba9f33]{pointer-events:none}");function d(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})}}Object.defineProperty(i,"__esModule",{value:!0}),o=g3wsdk.gui.GUI,s=g3wsdk.core.layer.Layer,a=g3wsdk.ol.utils.getResolutionFromScale,l=g3wsdk.core.i18n.tPlugin,u=void 0,i.default={name:"Toolbox",props:["state","resourcesurl"],data:function(){return{active:!1,helpmessage:null,toggled:{relation:!1,layer:!1},snapAll:!1}},computed:{editDisabled:function(){return this.state.loading&&!this.state.startstopediting},hasRelations:function(){return 0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t.description[data-v-1689d33c]{font-weight:700}.dynamic-step[data-v-1689d33c]{padding:10px;font-size:1.2em}.button-step[data-v-1689d33c]{display:inline-flex;align-items:center}.button-step[data-v-1689d33c],button.btn-success[data-v-1689d33c]{font-weight:700;align-self:normal}");Object.defineProperty(i,"__esModule",{value:!0}),i.default={data:function(){return{steps:{}}},methods:{completeStep:function(e){e.done=!0,e.buttonnext.done()}}},t.exports.__esModule&&(t.exports=t.exports.default);e="function"==typeof t.exports?t.exports.options:t.exports;e.render=function(){var i=this,e=i.$createElement,n=i._self._c||e;return n("ul",{staticClass:"steps-list"},i._l(i.steps,function(t,e){return n("li",{key:e,class:{done:t.done},style:{display:t.buttonnext&&"inline-flex"}},[t.buttonnext?n("span",{staticClass:"button-step"},[n("span",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:t.description,expression:"step.description"}],staticClass:"description"}),i._v(" "),t.dynamic?n("span",{staticClass:"dynamic-step"},[i._v(i._s(t.dynamic))]):i._e(),i._v(" "),n("button",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:"editing.workflow.next",expression:"'editing.workflow.next'"}],class:"btn btn-success"+(t.buttonnext.disabled?" g3w-disabled":""),staticStyle:{"margin-left":"10px"},on:{click:function(e){return i.completeStep(t)}}})]):[n("i",{class:i.g3wtemplate.getFontClass(t.done?"success":"empty-circle")}),i._v(" "),n("span",{directives:[{name:"t-plugin",rawName:"v-t-plugin",value:t.description,expression:"step.description"}]})]],2)}),0)},e.staticRenderFns=[],e._scopeId="data-v-1689d33c"},{"vueify/lib/insert-css":1}],10:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Session=i.ChangesManager=i.Flow=void 0;var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=function(e,t,i){return t&&r(e.prototype,t),i&&r(e,i),e};function r(e,t){for(var i=0;it){i=n;break}if(r.id===t){i=-1;break}}-1e,this._constrains.undo}},{key:"__canRedo",value:function(){return this._constrains.redo=this.getLastHistoryState()&&this.getLastStateId()!=this.state.current||null===this.state.current&&0{var e=n,t=l;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);function n(){var e=0{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(n.__proto__||Object.getPrototypeOf(n)).call(this)))._options=e,t._run=(e.run||t.run||s(function*(){return!0})).bind(t),t._stop=(e.stop||t.stop||s(function*(){return!0})).bind(t),t._inputs=e.inputs||null,t._context=e.context||null,t._outputs=e.outputs||null,t.state={id:e.id||null,name:e.name||null,help:e.help||null,running:!1,error:null,message:e.message||null,usermessagesteps:{}},t.registerEscKeyEvent(e.escKeyPressEventHandler),t.selectStyle=e.selectStyle,e.steps&&t.setSteps(e.steps),e.onRun&&t.on("run",e.onRun),e.onStop&&t.on("run",e.onStop),e.tools&&(t._tools=e.tools),t;throw new TypeError("Cannot call a class as a function")}return e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t),a(n,[{key:"setInputs",value:function(e){this._inputs=this.inputs=e}},{key:"getInputs",value:function(){return this._inputs}},{key:"setContext",value:function(e){return this._context=this.context=e}},{key:"getContext",value:function(){return this.context}},{key:"panic",value:function(){}},{key:"setRoot",value:function(e){this.state.root=e}},{key:"getUserMessageSteps",value:function(){return this.state.usermessagesteps}},{key:"setUserMessageSteps",value:function(){this.state.usermessagesteps=0{if(Array.isArray(e)){for(var t=0,i=Array(e.length);t{var i,e=o,t=f;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);function o(){var e=0{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(o.__proto__||Object.getPrototypeOf(o)).call(this)))._type=void 0!==e.type?e.type:null,t._options=e,t._promise=null,t._inputs=void 0!==e.inputs?e.inputs:null,t._context=void 0!==e.context?e.context:null,t._steps=e.steps||[],t._child=null,t._stackIndex=null,t.runOnce=e.runOnce||!1,t._messages=a.Step.MESSAGES,t._userMessageSteps={},0Hinzufgefügt Die Anzahl der hinzugefügten Features anzeigen",header_update_delete:"Bearbeitet und Gelöscht Die Liste der Feature-ID anzeigen",add:"Hinzugefügt",delete:"Gelöscht",update:"Bearbeitet"},loading_table_data:"Datentabelle wird erstellt. Bitte warten ...",copy_and_paste_from_other_layer_mandatory_fields:"Vor dem Speichern müssen alle Pflichtfelder des eingegebenen features ausgefüllt werden",no_feature_selected:"Keine feature ausgewählt",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Wählen Sie Relationen aus, um sie mit dem aktuellen Feature zu verknüpfen.
"},draw_new_feature:"Zeichnen Sie eine neue feature",draw_or_copy:"oder",copy_feature_from_other_layer:"Kopieren Sie feature aus einer anderen layer"},form:{relations:{tooltips:{back_to_father:"Zurück zur Bearbeitung des Vaters",add_relation:"Neue Relation erstellen und verknüpfen",link_relation:"Eine Relation zu diesem Feature herstellen",open_relation_tools:"Relationstools anzeigen",unlink_relation:"Relation trennen"}},buttons:{save:"Einfügung/Bearbeiten",save_and_back:"Speichern und zurück",save_and_back_table:"Speichern und zurück",cancel:"Änderungen ignorieren"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select one feature"}}}}},{}],17:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"An error occurs. It's no possible to edit layers",some_layers:"An error occurs: It's no possible to edit some layers",editing_multiple_relations:"Editing multiple relationships is not currently supported"},search:"Search",editing_changes:"Editing Changes",editing_data:"Editing Layers",editing_attributes:"Editing attributes",relations:"Relations",edit_relation:"Edit relation",back_to_relations:"Back to Relations",no_relations_found:"No relations found",relation_data:"Relation data",relation_already_added:"Relation already added",list_of_relations_feature:"List of relations feature ",tooltip:{edit_layer:"Edit Layer",filter_by_relation:"Filter layers by relation"},toolbox:{title:"Edit"},table:{edit:"Edit feature",copy:"Create a copy",delete:"Delete feature"},tools:{copy:"Copy features",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Add part to multipart",deletepart:"Delete part from multipart",merge:"Dissolve features",split:"Split Feature",add_feature:"Add feature",delete_feature:"Delete feature",move_feature:"Move feature",update_vertex:"Update feature vertex",update_feature:"Update feature attribute",update_multi_features:"Update attributes of selected features",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Select features",select_element:"Select feature",copy:"Create new copy of selected features",merge:"Dissolve features",split:"Split Feature",new:"Create new feature",edit_table:"Edit table features",draw_new_feature:"Draw feature on map",action_confirm:"Confirm action",double_click_delete:"Select feature on map to delete",edit_feature_vertex:"Modify or add a vertex on selected feature",move:"Move selected feature",select_feature_to_relation:"Select feature that you bind relation",show_edit_feature_form:"Show feature form to edit attributes",pick_feature:"Select feature on map to modify",insert_attributes_feature:"Insert attributes of the feature"}},workflow:{steps:{select:"Click on feature to select",draw_part:"Draw new part",draw_geometry:"Draw geometry",merge:"Select featurewhere dissolve",selectSHIFT:"Select features drawing a rectangle pressing SHIFT",selectDrawBox:"Select features drawing a rectangle by two point of opposite corners",selectDrawBoxAtLeast2Feature:"Select at least features drawing a rectangle by two point of opposite corners",selectPoint:"Click on feature to select",selectPointSHIFT:"Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature",selectMultiPointSHIFT:"Select features drawing a rectangle pressing SHIFT or click on feature",selectMultiPointSHIFTAtLeast2Feature:"Select at least 2 features drawing a rectangle pressing SHIFT or click on feature",copyCTRL:"Copy selected features using CTRL+C",selectStartVertex:"Select starting vertex of selected features",selectToPaste:"Select the point where paste the features selected",draw_split_line:"Draw a line to split selected feature"},title:{steps:"Steps"},next:"Next"},messages:{featureslockbyotheruser:"Some geometries/records are not editable because in editing by other user",splitted:"Splitted",nosplittedfeature:"Feature not spitted",press_esc:"Press ESC to back",online:"Back ONLINE. Now you can save your changes on database",offline:"You are OFFLINE. All changes are saved locally",delete_feature:"Do you want delete selected feature ?",delete_feature_relations:"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature",unlink_relation:"Do you want unlink relation?",commit_feature:"Summary of changes",toolbox_has_no_geometry:"this layer has no geometry",toolbox_has_relation:"this layer is part of a relation",saved:"Data saved successfully",saved_local:"Data saved locally successfully",loading_data:"Loading data",saving:"Saving data. Please wait ...",constraints:{enable_editing:"Please Zoom In to enable editing tools \nActivation scale at 1:"},pdf:"Document preview not available. Please click here ",commit:{header:"The following list show all changes to commit.",header_relation:"Relation",header_add:"Added show the number of features added",header_update_delete:"Modified and Deleted show the list of features id",add:"Added",delete:"Deleted",update:"Updated"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Select relations to link it to current editing feature.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Create and link new relation",link_relation:"Join a relation to this feature",open_relation_tools:"Show relation tools",unlink_relation:"Unlink relation"}},buttons:{save:"Insert/Edit",save_and_back:"Save and Back",save_and_back_table:"Save and Back",cancel:"Ignore Changes"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],18:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Tapahtui virhe. Tasoja ei ole mahdollista muokata.",some_layers:"Tapahtui virhe. Jotkin tasot eivät ole muokattavissa."},search:"Haku",editing_changes:"Editing Changes",editing_data:"Muokataan tasoja",editing_attributes:"Muokataan attribuutteja",relations:"Relaatiot",edit_relation:"Muokkaa relaatiota",back_to_relations:"Takaisin relaatioihin",no_relations_found:"Relaatioita ei löytynyt",relation_data:"Relaation tiedot",relation_already_added:"Relaatio on jo lisätty",list_of_relations_feature:"Lista relaation ominaisuuksista",tooltip:{edit_layer:"Muokkaa tasoa"},toolbox:{title:"Muokkaa"},table:{edit:"Muokkaa ominaisuutta",copy:"Luo kopio",delete:"Poista ominaisuus"},tools:{copy:"Kopio ominaisuuksia",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Lisää osa",deletepart:"Poista osa",merge:"Yhdistä ominaisuudet",split:"Leikkaa ominaisuus",add_feature:"Lisää ominaisuus",delete_feature:"Poista ominaisuus",move_feature:"Siirrä ominaisuutta",update_vertex:"Päivitä pisteen ominaisuutta",update_feature:"Päivitä ominaisuus",update_multi_features:"Muokkaa valittujen ominaisuuksien attribuutteja",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Valitse ominaisuudet",select_element:"Valitse ominaisuus",copy:"Luo kopio valituista ominaisuuksista",merge:"Yhdistä ominaisuudet",split:"Leikkaa ominaisuus",new:"Luo uusi ominaisuus",edit_table:"Muuta taulun ominaisuuksia",draw_new_feature:"Piirrä ominaisuus kartalle",action_confirm:"Hyväksy toiminto",double_click_delete:"Valitse poistettava ominaisuus kartalta",edit_feature_vertex:"Muuta pistettä tai lisää piste valittuun ominaisuuteen",move:"Siirrä valittu ominaisuus",select_feature_to_relation:"Valitse relaatio",show_edit_feature_form:"Näytä ominaisuuslomake muokataksesi attribuutteja",pick_feature:"Valitse muokattava ominaisuus kartalta",insert_attributes_feature:"Lisää ominaisuuden attribuutit"}},workflow:{steps:{select:"Valitse ominaisuus",draw_part:"Piirrä uusi osa",merge:"Valitse ominaisuus yhdistääksesi",draw_geometry:"Piirrä geometria",selectSHIFT:"Paina SHIFT, jos haluat valita kohteita suorakulmiovalinnalla.",selectDrawBox:"Piirrä suorakulmio, jonka siältä kohteet valitaan ",selectDrawBoxAtLeast2Feature:"Piirrä suorakulmio, jonka siältä kohteet vähintään 2 valitaan ",selectPoint:"Valitse ominaisuus",selectPointSHIFT:"Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",selectMultiPointSHIFT:"Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",selectMultiPointSHIFTAtLeast2Feature:"Paina SHIFT, jos haluat valita vähintään 2 ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.",copyCTRL:"CTRL+C, voit kopioida valitut ominaisuudet.",selectStartVertex:"Osoita valittujen ominaisuuksien alkupiste.",selectToPaste:"Valitse kohta, johon liität valitut ominaisuudet.",draw_split_line:"Piirrä viiva, jonka mukaan valittu ominaisuus jaetaan."},title:{steps:"Vaiheet"},next:"Seuraava"},messages:{featureslockbyotheruser:"Some features are locked by another user",splitted:"Jaettu",nosplittedfeature:"Ominaisuutta ei jaettu",press_esc:"Paina ESC palataksesi",online:"Yhteys muodostettu. Muutokset voidaan tallentaa tietokantaan.",offline:"Olet offline-tilassa. Muutokset tallennetaan paikallisesti",delete_feature:"Haluatko poistaa valitun ominaisuuden?",delete_feature_relations:"Mikäli ominaisuudella on sitovia relaatioita, näistä relaatiosta tulee orpoja. Suosittelemme käsittelemään nämä relaatiot ennen poistamista",unlink_relation:"Haluatko poistaa relaation?",commit_feature:"Yhteenveto muutoksista",toolbox_has_relation:"tämä kerros on osa relaatiota",saved:"Tiedot tallennettu onnistuneesti",saved_local:"Tiedot on tallennettu onnistuneesti paikallisesti.",loading_data:"Ladataan tietoja",saving:"Tallentaan tietoja. Odota...",constraints:{enable_editing:"Lähennä ottaaksesi muokkaustyökalut käyttöön \nAktivointi mittakaava 1:"},pdf:"Dokumentin esikatselu ei ole saatavilla. Paina tästä ",commit:{header:"Seuraava luettelo näyttää kaikki muutokset.",header_relation:"Relation",header_add:"Lisätty näytä lisättyjen ominaisuuksien lukumäärä",header_update_delete:"Muokattu ja Poistettu Näytä listä ominaisuuksien id:stä",add:"Lisätty",delete:"Poistettu",update:"Muokattu"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Valitse relaatiota linkittääksesi ne muokattavaan ominaisuuteen.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Luo ja linkitä uusi relaatio",link_relation:"Liitä relaatio tähän ominaisuuteen",open_relation_tools:"Näytä relaatiotyökalut",unlink_relation:"Poista relaatio"}},buttons:{save:"Lisää/muokkaa",save_and_back:"Tallenna ja palaa",save_and_back_table:"Tallenna ja palaa",cancel:"Peruuta"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],19:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Une erreur s'est produite lors du chargement des layers dans l'édition.",some_layers:"Une erreur s'est produite lors du chargement de certaines layers dans l'édition."},search:"Recherche",editing_changes:"Editing Changes",editing_data:"Modifier les donnes",editing_attributes:"Modifier les attributs",relations:"Relations",edit_relation:"Modifier la relation",back_to_relations:"Retour aux relations",no_relations_found:"Il n'y a pas de relations",relation_data:"Données sur les relations",relation_already_added:"Relation déjà présente",list_of_relations_feature:"Lister les relations de la fonctionnalité",tooltip:{edit_layer:"Modifier le layer"},toolbox:{title:"Modifier"},table:{edit:"Modifier fonctionnalités",copy:"Créer une copie",delete:"Supprimer la fonctionnalité"},tools:{copy:"Copier les fonctionnalités",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Ajouter une pièce à la géométrie",deletepart:"Supprimer la partie de la géométrie",merge:"Dissoudre les fonctionnalités",split:"Couper la fonctionnalité",add_feature:"Ajouter une fonctionnalité",delete_feature:"Supprimer la fonctionnalité",move_feature:"Déplacez la fonctionnalité",update_vertex:"Mettre à jour les sommets des fonctionnalités",update_feature:"Modifier les attributs des fonctionnalités",update_multi_features:"Modifier les attributs des fonctionnalités sélectionnées",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Sélectionner les fonctionnalités",select_element:"Sélectionner une fonctionnalité",copy:"Créer une copie des fonctionnalités sélectionnées",merge:"Dissoudre les fonctionnalités",split:"Couper la fonctionnalité",new:"Créer une nouvelle fonctionnalité",edit_table:"Modifier les fonctionnalités de la table",draw_new_feature:"Dessiner une fonctionnalité sur la carte",action_confirm:"Confirmer l'action",double_click_delete:"Sélectionner la fonctionnalité sur la carte à supprimer",edit_feature_vertex:"Modifier ou ajouter un sommet à la fonctionnalité sélectionnée",move:"Déplacer la fonctionnalité sélectionnée",select_feature_to_relation:"Sélectionner la fonctionnalité que vous souhaitez mettre en relation",show_edit_feature_form:"Afficher le formulaire de la fonctionnalité permettant de modifier les attributs",pick_feature:"Sélectionner l'élément de la carte à modifier",insert_attributes_feature:"Insérer les attributs de la fonctionnalité"}},workflow:{steps:{select:"Cliquer sur la fonctionnalité à sélectionner",draw_part:"Dessiner la nouvelle partie",draw_geometry:"Dessiner la géométrie",merge:"Sélectionner la fonction à introduire en fondu",selectPoint:"Cliquer sur la fonctionnalité pour la sélectionner",selectSHIFT:"Sélectionner des fonctionnalités en maintenant la touche SHIFT enfoncée",selectDrawBox:"Sélectionner les fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale",selectDrawBoxAtLeast2Feature:"Sélectionner au moins 2 fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale",selectPointSHIFT:"Sélectionner des caractéristiques en maintenant la touche SHIFT enfoncée (multi-sélection) ou en cliquant sur une seule caractéristique",selectMultiPointSHIFT:"Sélectionner des fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle",selectMultiPointSHIFTAtLeast2Feature:"Sélectionner au moins 2 fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle",copyCTRL:"Copier les fonctionnalités sélectionnées avec CTRL+C",selectStartVertex:"Sélectionner le sommet de départ des fonctionnalités choisies",selectToPaste:"Sélectionner le point où les fonctionnalités sélectionnées seront collées",draw_split_line:"Tracez une ligne pour couper la fonctionnalité sélectionnée"},title:{steps:"Étapes"},next:"Suivant"},messages:{featureslockbyotheruser:"Certaines géométries/enregistrements ne sont pas modifiables car ils ont été modifiés par un autre utilisateur",splitted:"Fonctionnalité(s) divisé(es)",nosplittedfeature:"La (les) fonctionnalité(s) n’a (n'ont) pas été divisé(es)",press_esc:"Appuyez sur ESC pour revenir",online:"Vous êtes à nouveau EN LIGNE. Vous pouvez enregistrer les modifications de façon permanente",offline:"Vous êtes HORS LIGNE. Toutes les modifications seront enregistrées temporairement en local",delete_feature:"Voulez-vous supprimer la fonctionnalité sélectionnée ?",delete_feature_relations:"La suppression d'une fonctionnalité avec des relations associées laissera ces relations orphelines. Il est recommandé de gérer ces relations avant de supprimer la fonctionnalité",unlink_relation:"Voulez-vous détacher la relation ?",commit_feature:"Sommaire des changements",toolbox_has_relation:"cette couche fait partie d'une relation",saved:"Les données ont été enregistrées correctement",saved_local:"Les données ont été correctement sauvegardées localement",loading_data:"Chargement des données",saving:"Sauvegarde des données. Veuillez patienter ...",constraints:{enable_editing:"Augmenter le niveau de zoom pour permettre l'édition \nEchelle de déclenchement 1 :"},pdf:"Aperçu du document non disponible. Cliquez ici ",commit:{header:"La liste ci-dessous montre toutes les modifications qui seront enregistrées.",header_relation:"Relation",header_add:"Ajouts indique le nombre de fonctionnalités ajoutées",header_update_delete:"Modifié e Supprimé liste les ids",add:"Ajouté",delete:"Supprimé",update:"Modifié"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"Avant d'enregistrer, il est nécessaire de remplir tous les champs obligatoires du features saisi",no_feature_selected:"Aucune feature sélectionnée",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Sélectionner les relations pour les associer à l'élément en cours d'édition.
"},draw_new_feature:"Dessiner une nouvelle feature",draw_or_copy:"ou",copy_feature_from_other_layer:"Copier feature d'une autre layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Créer et ajouter une nouvelle relation",link_relation:"Associer une relation existante à cette fonctionnalité",open_relation_tools:"Outils de relation ouverte",unlink_relation:"Annuler la relation"}},buttons:{save:"Insérer/Modifier",save_and_back:"Sauvegarder et retourner au parent",save_and_back_table:"Sauvegarder et et revenir en arrière",cancel:"Ignorer modifications"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],20:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0});var n=d(e("./it")),r=d(e("./en")),a=d(e("./fi")),o=d(e("./se")),s=d(e("./fr")),l=d(e("./de")),u=d(e("./ro")),e=d(e("./pl"));function d(e){return e&&e.__esModule?e:{default:e}}i.default={it:n.default,en:r.default,fi:a.default,se:o.default,fr:s.default,de:l.default,ro:u.default,pl:e.default}},{"./de":16,"./en":17,"./fi":18,"./fr":19,"./it":21,"./pl":22,"./ro":23,"./se":24}],21:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"Terminare l'editing dei singoli layer per chiudere la sessione"},errors:{no_layers:"Si è verificato un errore nel caricamento dei layers in editing.",some_layers:"Si è verificato un errore nel caricamento di alcuni layers in editing",editing_multiple_relations:"Le modifica di relazioni multiple non è attualmente supportata"},search:"Cerca",editing_changes:"Modifiche Editing",editing_data:"Modifica dati",editing_attributes:"Edita attributi",relations:"Relazioni",edit_relation:"Edita relazione",back_to_relations:"Ritorna alle Relazioni",no_relations_found:"Non ci sono relazioni",relation_data:"Dati relativi alla relazione",relation_already_added:"Relazione già presente",list_of_relations_feature:"Elenco Relazioni della feature ",tooltip:{edit_layer:"Modifica livello",filter_by_relation:"Filtra i livelli per relazione"},toolbox:{title:"Edita"},table:{edit:"Edita feature",copy:"Crea una copia",delete:"Cancella feature"},tools:{copy:"Copia elementi",pastefeaturesfromotherlayers:"Incolla elemento da altro livello",addpart:"Aggiungi parte alla geometria",deletepart:"Cancella parte dalla geometria",merge:"Dissolvi elementi",split:"Dividi elementi",add_feature:"Aggiungi elemento",delete_feature:"Elimina elemento",move_feature:"Muovi elemento",update_vertex:"Aggiorna vertici elemento",update_feature:"Modifica attributi elemento",update_multi_features:"Modifica gli attributi degli elementi selezionati",update_multi_features_relations:"Modifica gli attributi di tutte le relazioni selezionate",copyfeaturefromexternallayer:"Crea elemento da un livello esterno"},toolsoftool:{measure:"Visualizza misura",snap:"Snap sul layer",snapall:"Snap su tutti i layer"},steps:{help:{select_elements:"Seleziona le geometrie",select_element:"Seleziona l'elemento",copy:"Crea una copia degli elementi selezionati",merge:"Dissolvi elementi",split:"Dvidi elemento",new:"Crea un nuovo elemento",edit_table:"Modifica gli elementi della tabella",draw_new_feature:"Disegna la nuova geometria",action_confirm:"Conferma azione",double_click_delete:"Seleziona la geometria sulla mappa da cancellare",edit_feature_vertex:"Modifica o aggiungi un vertice alla geometria selezionata",move:"Muovi la geometria selezionata",select_feature_to_relation:"Seleziona la geometria che vuoi mettere in relazione",show_edit_feature_form:"Mostra il modulo per modificare gli attributi del'elemento",pick_feature:"Seleziona la geometria da modificare dalla mappa",insert_attributes_feature:"Inserisci gli attributi dell'elemento"}},workflow:{steps:{select:"Seleziona una geometria",draw_part:"Disegna il nuovo elemento da aggiungere alla geometria",draw_geometry:"Disegna la geometria",merge:"Seleziona la geometria su cui dissolvere",selectPoint:"Clicca sulla geometria per selezionarla",selectSHIFT:"Seleziona le geometrie tenedo premuto il tasto SHIFT",selectDrawBox:"Seleziona le geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale",selectDrawBoxAtLeast2Feature:"Seleziona almeno 2 geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale",selectPointSHIFT:"Seleziona le geometrie
MAIUSC+DRAG seleziona più elementi in un area",selectMultiPointSHIFT:"Seleziona le geometrie
SHIFT+DRAG seleziona più elementi in un area",selectMultiPointSHIFTAtLeast2Feature:"Seleziona almeno 2 geometrie
SHIFT+DRAG seleziona più elementi in un area",copyCTRL:"Copia le geometrie selezionate con CTRL+C",selectStartVertex:"Seleziona il vertice di partenza",selectToPaste:"Seleziona il punto dove verranno incollate le geometrie",draw_split_line:"Disegna una linea per dividere la geometria selezionata"},title:{steps:"Passi"},next:"Avanti"},messages:{featureslockbyotheruser:"Ci sono alcune geometrie/records non editabili perchè in modifica da altri utenti",splitted:"Feature(s) splittata(e)",nosplittedfeature:"La(e) feature(s) non è stata splittata",press_esc:"Premi ESC per tornare indietro",online:"Ora sei di nuovo ONLINE. Puoi slavare le modifiche in modo permanente",offline:"Sei OFFLINE. Tutte le modifiche saranno salvate temporaneamente in locale",delete_feature:"Vuoi eliminare l'elemento selezionato?",delete_feature_relations:"Cancellando una feature con relazioni associate, tale relazioni rimarranno orfane. Si consiglia di gestire tali relazioni prima di cancellare la feature",unlink_relation:"Vuoi staccare la relazione?",commit_feature:"Riepilogo modifiche",toolbox_has_no_geometry:"questo livello non ha geometria",toolbox_has_relation:"questo livello fa parte di una relazione",saved:"I dati sono stati salvati correttamente",saved_local:"I dati sono stati salvati correttamente in locale",loading_data:"Caricamento dati",saving:"Salvataggio dati in corso. Attendere ...",constraints:{enable_editing:"Ingrandisci per modificare \nScala di attivazione 1:"},pdf:"Anteprima del documento non disponibile. Clicca qui ",commit:{header:"La lista sotto riporta tutte le modifiche che verranno salvate.",header_relation:"Relazione",header_add:"Aggiunte riporta il numero delle features aggiunte",header_update_delete:"Modificate e Cancellate riporta la lista degli id",add:"Aggiunte",delete:"Cancellate",update:"Aggiornate"},loading_table_data:"Costruzione tabella dati in corso. Attendere ...",copy_and_paste_from_other_layer_mandatory_fields:"Necessario compilare eventuali campi obbligatori sulle features incollate prima del salvataggio",no_feature_selected:"Nessuna feature selezionata",select_min_2_features:"Seleziona come minimo due features"},relation:{table:{info:"
Seleziona le relazioni per associarle alla feature in editing.
"},draw_new_feature:"Disegna nuova geometria",draw_or_copy:"oppure",copy_feature_from_other_layer:"Copia geometria da altro layer"},form:{relations:{tooltips:{back_to_father:"Torna ad editare il padre",add_relation:"Crea ed aggiungi nuova relazione",link_relation:"Associa una relazione esistente a questa feature",open_relation_tools:"Apri strumenti relatione",unlink_relation:"Annulla relazione"}},buttons:{save:"Inserisci/Modifica",save_table:"Modifica",save_and_back:"Salva e torna al padre",save_and_back_table:"Salva e torna indietro",cancel:"Ignora Modifiche"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Seleziona layer",edit_attributes:"Edita attributi delle features in multiple mode"},copyfeaturefromprojectlayer:{title:"Seleziona una feature"}}}}},{}],22:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={errors:{no_layers:"An error occurs. It's no possible to edit layers",some_layers:"An error occurs: It's no possible to edit some layers"},search:"Search",editing_changes:"Editing Changes",editing_data:"Editing Layers",editing_attributes:"Editing attributes",relations:"Relations",edit_relation:"Edit relation",back_to_relations:"Back to Relations",no_relations_found:"No relations found",relation_data:"Relation data",relation_already_added:"Relation already added",list_of_relations_feature:"List of relations feature ",tooltip:{edit_layer:"Edit Layer"},toolbox:{title:"Edit"},table:{edit:"Edit feature",copy:"Create a copy",delete:"Delete feature"},tools:{copy:"Copy features",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Add part to multipart",deletepart:"Delete part from multipart",merge:"Dissolve features",split:"Split Feature",add_feature:"Add feature",delete_feature:"Delete feature",move_feature:"Move feature",update_vertex:"Update feature vertex",update_feature:"Update feature attribute",update_multi_features:"Update attributes of selected features",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Select features",select_element:"Select feature",copy:"Create new copy of selected features",merge:"Dissolve features",split:"Split Feature",new:"Create new feature",edit_table:"Edit table features",draw_new_feature:"Draw feature on map",action_confirm:"Confirm action",double_click_delete:"Select feature on map to delete",edit_feature_vertex:"Modify or add a vertex on selected feature",move:"Move selected feature",select_feature_to_relation:"Select feature that you bind relation",show_edit_feature_form:"Show feature form to edit attributes",pick_feature:"Select feature on map to modify",insert_attributes_feature:"Insert attributes of the feature"}},workflow:{steps:{select:"Click on feature to select",draw_part:"Draw new part",merge:"Select featurewhere dissolve",selectSHIFT:"Select features drawing a rectangle pressing SHIFT",selectDrawBox:"Select features drawing a rectangle by two point of opposite corners",selectDrawBoxAtLeast2Feature:"Select at least features drawing a rectangle by two point of opposite corners",selectPoint:"Click on feature to select",selectPointSHIFT:"Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature",selectMultiPointSHIFT:"Select features drawing a rectangle pressing SHIFT or click on feature",selectMultiPointSHIFTAtLeast2Feature:"Select at least 2 features drawing a rectangle pressing SHIFT or click on feature",copyCTRL:"Copy selected features using CTRL+C",selectStartVertex:"Select starting vertex of selected features",selectToPaste:"Select the point where paste the features selected",draw_split_line:"Draw a line to split selected feature"},title:{steps:"Steps"},next:"Next"},messages:{featureslockbyotheruser:"Some geometries/records are not editable because in editing by other user",splitted:"Splitted",nosplittedfeature:"Feature not spitted",press_esc:"Press ESC to back",online:"Back ONLINE. Now you can save your changes on database",offline:"You are OFFLINE. All changes are saved locally",delete_feature:"Do you want delete selected feature ?",delete_feature_relations:"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature",unlink_relation:"Do you want unlink relation?",commit_feature:"Do you want to save the changes",toolbox_has_relation:"this layer is part of a relation",saved:"Data saved successfully",saved_local:"Data saved locally successfully",loading_data:"Loading data",saving:"Saving data. Please wait ...",constraints:{enable_editing:"Please Zoom In to enable editing tools \nActivation scale at 1:"},pdf:"Document preview not available. Please click here ",commit:{header:"The following list show all changes to commit.",header_add:"Added show the number of features added",header_update_delete:"Modified and Deleted show the list of features id",add:"Added(n. features)",delete:"Deleted(id)",update:"Modified(id)"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Select relations to link it to current editing feature.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Create and link new relation",link_relation:"Join a relation to this feature",open_relation_tools:"Show relation tools",unlink_relation:"Unlink relation"}},buttons:{save:"Insert/Edit",save_and_back:"Save and Back",save_and_back_table:"Save and Back",cancel:"Ignore Changes"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],23:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Avem o eroare. Straturile nu sunt editabile",some_layers:"Avem o eroare: Anumite straturi nu se pot edita"},search:"Caută",editing_changes:"Modificare schimbări",editing_data:"Modificare straturi",editing_attributes:"Modificare atribute",relations:"Relații",edit_relation:"Modifică relația",back_to_relations:"Înapoi la Relații",no_relations_found:"Nu am găsit relații",relation_data:"Date relații",relation_already_added:"Relație adăugată deja",list_of_relations_feature:"Lista relații entitatea ",tooltip:{edit_layer:"Modifică strat"},toolbox:{title:"Modifică"},table:{edit:"Modifică entitate",copy:"Creează o copie",delete:"Elimină entitatea"},tools:{copy:"Copiază entitățile",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Adaugă o parte la multiparte",deletepart:"Elimină partea din multiparte",merge:"Dizolvare entități",split:"Divizare Entitate",add_feature:"Adaugă entitate",delete_feature:"Eliminare entitate",move_feature:"Mută entitate",update_vertex:"Actualizează vertecșii entității",update_feature:"Actualizează atributul entității",update_multi_features:"Actualizează atributele entităților selectate",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Arată măsurătorile",snap:"Acroșare strat",snapall:"Acroșare pe toate straturile"},steps:{help:{select_elements:"Selectează entități",select_element:"Selectează entitate",copy:"Creează o nouă copie a entităților selectate",merge:"Dizolvă entitățile",split:"Divizare Entitate",new:"Creează o entitate",edit_table:"Modifică entitățile tabelare",draw_new_feature:"Desenează entitate pe hartă",action_confirm:"Confirmă acțiunea",double_click_delete:"Selectează entitatea de eliminat din hartă",edit_feature_vertex:"Modifică sau adaugă un vertex la entitatea selectată",move:"Mută entitatea selectată",select_feature_to_relation:"Selectează entitate pentru relaționare",show_edit_feature_form:"Arată formularul entității pentru modificări",pick_feature:"Selectează entitățile de modificat din hartă",insert_attributes_feature:"Inserează atributele entității"}},workflow:{steps:{select:"Click pe entitate pentru a o selecta",draw_part:"Desenează o parte nouă",draw_geometry:"Desenați geometria",merge:"Selectează partea de dizolvat",selectSHIFT:"Selectează entități prin desen triunghi apăsând SHIFT",selectDrawBox:"Selectează entități desenând un dreptunghi prin două puncte opuse",selectDrawBoxAtLeast2Feature:"Selectează cel puțin 2 entități prin desenul unui dreptunghi",selectPoint:"Click pe entitate pentru selectare",selectPointSHIFT:"Selectează entități prin desen dreptunghi apăsând SHIFT (multientități) sau prin click pe entitate",selectMultiPointSHIFT:"Selectează entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate",selectMultiPointSHIFTAtLeast2Feature:"Selectează cel puțin 2 entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate",copyCTRL:"Copiază entitățile selectate folosint CTRL+C",selectStartVertex:"Selectează vertexul de start a entităților selectate",selectToPaste:"Selectează punctul unde să lipim entitățile selectate",draw_split_line:"Desenează o linie pentru a diviza entitatea selectată"},title:{steps:"Pași"},next:"Următorul"},messages:{featureslockbyotheruser:"Unele geometrii/înregistrări nu sunt editabile deoarece sunt editate de către alt utilizator",splitted:"Divizat",nosplittedfeature:"Entitate nedivizată",press_esc:"ESC pentru înapoi",online:"Înapoi ONLINE. Acum se pot salva schimbările",offline:"OFFLINE. Schimbările sunt salvate local",delete_feature:"Șterg entitatea selectată?",delete_feature_relations:"Dacă entitatea are relații care trimit la ea, acele relații devin orfane. Sugerăm să vă ocupați de acele elemente înainte să eliminați această entitate.",unlink_relation:"Dorești să eliminați legătura cu relația?",commit_feature:"Rezumatul modificărilor",toolbox_has_relation:"acest strat face parte dintr-o relație",saved:"Datele sunt salvate",saved_local:"Datele s-au salvat local",loading_data:"Datele se încarcă.",saving:"Salvăm datele. Așteptați ...",constraints:{enable_editing:"Pentru a activa Modificare faceți zoom la \nScara de activare 1:"},pdf:"Previzualizarea documentului nu este disponibilă. Click aici ",commit:{header:"Lista cu toate modificările.",header_relation:"Relation",header_add:"Adăugate arată nr. de entități adăugate",header_update_delete:"Modificate și Șterse arată lista de id-uri de entități",add:"Adăugate",delete:"Eliminate",update:"Modificate"},loading_table_data:"Încărcăm tabelul de date ...",copy_and_paste_from_other_layer_mandatory_fields:"Înainte de a salva, este necesar să completați toate câmpurile obligatorii ale entități introduse",no_feature_selected:"Nicio feature selectată",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Selectează relațiile pentru a face legătura cu entitatea curentă.
"},draw_new_feature:"Desenați o nouă feature",draw_or_copy:"sau",copy_feature_from_other_layer:"Copiați feature dintr-un alt layer"},form:{relations:{tooltips:{back_to_father:"Înapoi la modificările entității părinte",add_relation:"Creează și fă legătura unei relații noi",link_relation:"Leagă o relație de entitate",open_relation_tools:"Arată instrumentele pentru relații",unlink_relation:"Elimină legătura la relație"}},buttons:{save:"Inserați/Editați",save_and_back:"Salvează și dă înapoi",save_and_back_table:"Salvează și dă înapoi",cancel:"Ignorați modificările"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],24:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default={close_editing_panel:{message:"To close editing form need to exit from editing layer"},errors:{no_layers:"Ett fel uppstod. Nivåerna kan inte redigeras.",some_layers:"Ett fel uppstod. Vissa nivåer kan inte redigeras."},search:"Sökning",editing_changes:"Editing Changes",editing_data:"Nivåerna redigeras",editing_attributes:"Attributen redigeras",relations:"Relationer",edit_relation:"Redigera relationen",back_to_relations:"Tillbaka till relationerna",no_relations_found:"Inga relationer hittades",relation_data:"Relationsuppgifter",relation_already_added:"Relationen har redan lagts till",list_of_relations_feature:"Lista på relationens egenskaper",tooltip:{edit_layer:"Redigera nivån"},toolbox:{title:"Redigera"},table:{edit:"Redigera egenskap",copy:"Skapa en kopia",delete:"Ta bort egenskap"},tools:{copy:"Kopiera egenskaper",pastefeaturesfromotherlayers:"Paste features from other layer",addpart:"Lägg till del",deletepart:"Ta bort del",merge:"Slå samman egenskaper",split:"Dela upp egenskap",add_feature:"Lägg till egenskap",delete_feature:"Ta bort egenskap",move_feature:"Flytta egenskap",update_vertex:"Uppdatera punktens egenskap",update_feature:"Uppdatera egenskap",update_multi_features:"Ändra attributen för de valda funktionerna",update_multi_features_relations:"Update attributes of all selected relations",copyfeaturefromexternallayer:"Create Feature from added layer"},toolsoftool:{measure:"Show measure",snap:"Snap layer",snapall:"Snap to all layers"},steps:{help:{select_elements:"Välj egenskaper",select_element:"Välj egenskapalitse ominaisuus",copy:"Skapa kopia av valda egenskaper",merge:"Slå samman egenskaper",split:"Dela upp egenskap",new:"Skapa ny egenskap",edit_table:"Ändra egenskaper i tabellen",draw_new_feature:"Piirrä ominaisuus kartalle",action_confirm:"Godkänn funktionen",double_click_delete:"Välj funktionen som du vill ta bort på kartan",edit_feature_vertex:"Ändra punkten eller lägg till punkten till den valda egenskapen",move:"Flytta den valda egenskapen",select_feature_to_relation:"Välj relation",show_edit_feature_form:"Visa egenskapsformuläret för redigering av attribut",pick_feature:"Välj funktion på kartan för att ändras",insert_attributes_feature:"Lägg till egenskapens attribut"}},workflow:{steps:{select:"Välj egenskap",draw_part:"Rita ny del",draw_geometry:"Rita geometri",merge:"Välj egenskap att slå samman",selectSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel.",selectDrawBox:"Rita upp den rektangel inom vilken objekten väljs ",selectDrawBoxAtLeast2Feature:"Rita rektangeln inom vilken minst två objekt är markerade ",selectPoint:"Välj egenskap",selectPointSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.",selectMultiPointSHIFT:"Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.",selectMultiPointSHIFTAtLeast2Feature:"Tryck på SKIFT för att välja minst två objekt med en rektangel eller välj en enda egenskap. ",copyCTRL:"CTRL+C, du kan kopiera valda egenskaper.",selectStartVertex:"Visa startpunkten för valda egenskaper.",selectToPaste:"Välj punkt till vilken de valda egenskaperna ska fogas.",draw_split_line:"Rita en linje enligt vilken den valda egenskapen ska uppdelas."},title:{steps:"Skeden"},next:"Nästa"},messages:{featureslockbyotheruser:"Jotkut geometriat/tietueet eivät ole muokattavissa, koska muut käyttäjät muokkaavat niitä",splitted:"Uppdelad",nosplittedfeature:"Egenskapen har inte delats upp",press_esc:"Tryck ESC för att gå tillbaka",online:"Förbindelsen har upprättats. Ändringar kan sparas i databasen.",offline:"Du är i offline-läge. Ändringarna sparas lokalt",delete_feature:"Vill du ta bort den valda egenskapen?",delete_feature_relations:"Om egenskapen saknar bindande relationer blir dessa relationer föräldralösa. Vi rekommenderar att du behandlar dessa relationer innan du lämnar programmet",unlink_relation:"Vill du ta bort relationen?",commit_feature:"Sammanfattning av ändringar",toolbox_has_relation:"detta lager är en del av en relation",saved:"Uppgifterna sparades",saved_local:"Uppgifterna sparades lokalt.",loading_data:"Uppgifterna laddas",saving:"Uppgifterna sparas. Vänta...",constraints:{enable_editing:"Zooma in för att börja använda redigeringsverktyg \nAktivering skala 1:"},pdf:"Förhandsgranskning av dokument är inte tillgänglig. Tryck här",commit:{header:"Följande lista visar alla ändringar.",header_relation:"Relation",header_add:"Tillagda visar antalet egenskaper som lagts till",header_update_delete:"Redigerad och Borttagen Visa en lista på egenskapernas id",add:"har lagts till",delete:"Borttagen",update:"Redigerad"},loading_table_data:"Building Data Table. Please wait ...",copy_and_paste_from_other_layer_mandatory_fields:"It is necessary to fill in any mandatory fields on the features pasted before saving",no_feature_selected:"No feature selected",select_min_2_features:"Select at least 2 features"},relation:{table:{info:"
Välj relation för länkning till egenskap som ska redigeras.
"},draw_new_feature:"Draw new feature",draw_or_copy:"or",copy_feature_from_other_layer:"Copy feature from other layer"},form:{relations:{tooltips:{back_to_father:"Back to edit father",add_relation:"Skapa och länka ny relation",link_relation:"Foga relationen till denna egenskap",open_relation_tools:"Visa relationsverktyg",unlink_relation:"Ta bort relation"}},buttons:{save:"Infoga/Redigera",save_and_back:"Spara och gå tillbaka",save_and_back_table:"Spara och gå tillbaka",cancel:"Ignorera ändringar"}},modal:{tools:{copyfeaturefromotherlayer:{title:"Select layer",edit_attributes:"Edit attributes of pasted features in multiple mode"},copyfeaturefromprojectlayer:{title:"Select a feature"}}}}},{}],25:[function(F,i,r){var x=Object.assign||function(e){for(var t=1;t{var t,i,e,n,r,a,o,s,l=d,u=B;if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);function d(){var t;if(this instanceof d)return(t=((e,t)=>{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(d.__proto__||Object.getPrototypeOf(d)).call(this,{name:"editing",i18n:g.default,fontClasses:[{name:"measure",className:"fas fa-ruler-combined"},{name:"magnete",className:"fas fa-magnet"},{name:"clipboard",className:"fas fa-clipboard"}]}))).state={open:!1,toolboxes:[],_toolboxes:[],toolboxselected:null,showselectlayers:!0,message:null,relations:[],sessions:{},layers_in_error:!1,formComponents:{},subscribers:{},constraints:{toolboxes:{},showToolboxesExcluded:!0},featuresOnClose:{},uniqueFieldsValues:{},saveConfig:{mode:"default",modal:!1,messages:void 0,cb:{done:function(){},error:function(){}}},editableLayers:{},events:{"start-editing":{},"show-relation-editing":{},layer:{start_editing:{before:{},after:{}}}},show_errors:!1,editFeatureKey:void 0,panel:null,currentLayout:h.getCurrentLayoutName(),unwatchLayout:(new Vue).$watch(function(){return R.gui.layout.__current},function(e){return t.state.currentLayout=e!==t.getName()?e:t.state.currentLayout}),onMapControlToggled:function(e){e=e.target;e.isToggled()&&e.isClickMap()&&t.state.toolboxselected&&t.state.toolboxselected.getActiveTool()&&t.state.toolboxselected.stopActiveTool()}},t.setService(Object.assign(new D,{state:t.state,config:t.config,getSession:t.getSession.bind(t),getFeature:t.getFeature.bind(t),subscribe:t.subscribe.bind(t),unsubscribe:t.unsubscribe.bind(t),fireEvent:t.fireEvent.bind(t),undo:t.undo.bind(t),redo:t.redo.bind(t),getEditingLayer:t.getEditingLayer.bind(t),addToolBox:t.addToolBox.bind(t),runEventHandler:t.runEventHandler.bind(t),resetDefault:t.resetDefault.bind(t),resetAPIDefault:t.resetAPIDefault.bind(t),getLayers:t.getLayers.bind(t),getLayerById:t.getLayerById.bind(t),getToolBoxById:t.getToolBoxById.bind(t),getSessionById:t.getSessionById.bind(t),setApplicationEditingConstraints:t.setApplicationEditingConstraints.bind(t),getToolBoxes:t.getToolBoxes.bind(t),getEditableLayers:t.getEditableLayers.bind(t),stop:t.stop.bind(t),saveChange:t.saveChange.bind(t),commit:t.commit.bind(t),undoRedoLayerUniqueFieldValues:t.undoRedoLayerUniqueFieldValues.bind(t),undoRedoRelationUniqueFieldValues:t.undoRedoRelationUniqueFieldValues.bind(t),stopEditing:t.stopEditing.bind(t),startEditing:t.startEditing.bind(t),addLayerFeature:t.addLayerFeature.bind(t)})),G.getService("map").on("mapcontrol:toggled",t.state.onMapControlToggled),t._init(),t;throw new TypeError("Cannot call a class as a function")}return l.prototype=Object.create(u&&u.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(l,u):l.__proto__=u),c(d,[{key:"_init",value:(s=O(function*(){var i,d=this;b.getLayers({EDITABLE:!0}).length&&(this.setHookLoading({loading:!0}),this.service.setApi({api:{getSession:this.getSession.bind(this),getFeature:this.getFeature.bind(this),subscribe:this.subscribe.bind(this),unsubscribe:this.unsubscribe.bind(this),getToolBoxById:this.getToolBoxById.bind(this),addNewFeature:p.createFeature,commitChanges:this.commit.bind(this),setApplicationEditingConstraints:this.setApplicationEditingConstraints.bind(this),getMapService:function(){return G.getService("map")},updateLayerFeature:V,deleteLayerFeature:V,addLayerFeature:this.addLayerFeature.bind(this),hidePanel:this.hideEditingPanel.bind(this),resetDefault:this.resetAPIDefault.bind(this),startEditing:this.startEditing.bind(this),stopEditing:this.stopEditing.bind(this),showPanel:this.showPanel.bind(this),setSaveConfig:this.setSaveConfig.bind(this),addFormComponents:this.addFormComponents.bind(this)}}),S.addLayersStore(new w({id:"editing",queryable:!1})),this.state.editableLayers={},this.state._toolboxes=[],this.state.toolboxes=[],(yield Promise.allSettled(b.getLayers({EDITABLE:!0},{TOC_ORDER:!0}).map(function(e){return e.getLayerForEditing({vectorurl:d.config.vectorurl,project_type:d.config.project_type})}))).forEach(function(e){var t=e.status,u=e.value;"fulfilled"!==t?d.state.layers_in_error=!0:(d.state.editableLayers[u.getId()]=u,d.state.uniqueFieldsValues[u.getId()]={},u.getEditingFields().filter(function(e){return e.input&&"select_autocomplete"===e.input.type&&!e.input.options.filter_expression&&!e.input.options.usecompleter}).forEach(function(l){return["start-editing","show-relation-editing"].forEach(function(e){var t=u.getId();d.state.events[e][t]=d.state.events[e][t]||[],d.state.events[e][t].push(O(function*(){var t=l.input.options,e=(t.loading.state="loading",t.values=[],t.layer_id&&b.getLayerById(t.layer_id)),i=[void 0,null].includes(t.filter_fields||[])||0===(t.filter_fields||[]).length;try{if(t.relation_reference&&i){var n,r=yield u.getFilterData({fformatter:l.name});if(r&&r.data)return(n=t.values).push.apply(n,L(r.data.map(function(e){var e=f(e,2),t=e[0];return{key:e[1],value:t}}))),t.loading.state="ready",d.fireEvent("autocomplete",{field:l,data:[r.data]}),t.values}if(e){var a,o=yield(0,C.promisify)(e.getDataTable({ordering:t.orderbyvalue?t.value:t.key}));if(o&&o.features)return(a=t.values).push.apply(a,L((o.features||[]).map(function(e){return{key:e.properties[t.value],value:e.properties[t.key]}}))),t.loading.state="ready",d.fireEvent("autocomplete",{field:l,features:o.features}),t.values}var s=[];return t.loading.state="ready",d.fireEvent("autocomplete",{field:l,features:s}),s}catch(e){return t.loading.state="error",Promise.reject(e)}}))})}),d.state.sessions[u.getId()]=null)}),i=0,this.getLayers().forEach(function(e){var t=e.getId();b.getLayerById(t).getRelations().getArray().filter(function(e){return"ONE"===e.getType()&&t===e.getFather()}).forEach(function(t){var i=void 0!==d.getLayerById(t.getChild());d.getLayerById(t.getFather()).getEditingFields().filter(function(e){return e.vectorjoin_id&&e.vectorjoin_id===t.getId()}).forEach(function(e){e.editable=e.editable&&i})}),e.getColor()||e.setColor(e.isGeoLayer()?["#C43C39","#d95f02","#91522D","#7F9801","#0B2637","#8D5A99","#85B66F","#8D2307","#2B83BA","#7D8B8F","#E8718D","#1E434C","#9B4F07","#1b9e77","#FF9E17","#7570b3","#204B24","#9795A3","#C94F44","#7B9F35","#373276","#882D61","#AA9039","#F38F3A","#712333","#3B3A73","#9E5165","#A51E22","#261326","#e4572e","#29335c","#f3a712","#669bbc","#eb6841","#4f372d","#cc2a36","#00a0b0","#00b159","#f37735","#ffc425"][i++%40]:"#fff")}),S.getLayersStore("editing").addLayers(this.getLayers()),this.getLayers().forEach(function(e){return d.addToolBox(new y.ToolBox(e,[].concat(L(e.getChildren()),L(e.getFathers())).filter(function(e){return d.getLayerById(e)})))}),yield G.isReady(),this._setupGUI(),this.setHookLoading({loading:!1}),this.setReady(!0))}),function(){return s.apply(this,arguments)})},{key:"_setupGUI",value:(o=O(function*(){var h=this;this.registerPlugin(this.config.gid)&&!1!==this.config.visible&&0!==this.getLayers().filter(function(e){return e.config.editing.visible}).length&&(this.state.editFeatureKey=G.getService("queryresults").onafter("editFeature",O(function*(){var e=0\n {var n,t,e,i,r,a=f,o=j;if("function"!=typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function, not "+typeof o);function f(t){var a,e,i,n,r,s,o,p,l,u=1{if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(f.__proto__||Object.getPrototypeOf(f)).call(this)),c=(d=[void 0,V.LayerTypes.VECTOR].includes(t.getType()))&&t.getGeometryType(),r=d&&D.isPointGeometryType(c),e=d&&D.isLineGeometryType(c),i=d&&D.isPolygonGeometryType(c),n=V.LayerTypes.TABLE===t.getType(),c=c&&D.isMultiGeometry(c),r=d&&(r?"Point":e?"Line":"Polygon"),s=t.getRelations().getArray().filter(function(e){e=B.getLayerById((0,b.getRelationId)({layerId:t.getId(),relation:e}));return e.isEditable()&&e.config.editing.visible}).map(function(e){return e}),a._start=!1,a.constraints={filter:null,show:null,tools:[]},a._constrains={commit:!1,undo:!1,redo:!1},a._states=[],a._history={id:t.getId(),state:new Proxy({},{get:function(e,t){return a._constrains[t]}}),add:a.__add.bind(a),undo:a.__undo.bind(a),clear:a.__clearHistory.bind(a),redo:a.__redo.bind(a),getState:a.__getState.bind(a),getLastState:a.__getLastHistoryState.bind(a),commit:a.__commit.bind(a)},a._session=Object.assign(new j({setters:{start:function(){return(0,C.$promisify)(a.__startSession(0"+U("editing.messages.delete_feature")+'
'+(s.layer.getChildren().length&&(0,_.getRelationsInEditing)({layerId:o,relations:s.layer.getRelations().getArray()}).length?U("editing.messages.delete_feature_relations"):"")+"
",function(e){var t;(e?(r.getSource().removeFeature(a),(t=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").state.uniqueFieldsValues[o])&&Object.keys(a.getProperties()).filter(function(e){return void 0!==t[e]}).forEach(function(e){return t[e].delete(a.get(e))}),i):n)(s)})});return s.features&&(0,w.setAndUnsetSelectedFeaturesStyle)({promise:(0,C.$promisify)(R(function*(){try{return yield e}catch(e){return Promise.reject(e)}})),inputs:s,style:t.selectStyle}),e}))}})]})},(e||i)&&o.includes("change_feature")&&{id:"movevertex",type:["change_feature"],name:"editing.tools.update_vertex",icon:"moveVertex.png",op:new g.Workflow({layer:t,type:"modifygeometryvertex",helpMessage:"editing.tools.update_vertex",steps:[new L.PickFeatureStep({layer:t}),new h.Step({run:k.chooseFeature}),new L.ModifyGeometryVertexStep({tools:["snap","measure"]})]})},d&&o.includes("change_attr_feature")&&{id:"editmultiattributes",type:["change_attr_feature"],name:"editing.tools.update_multi_features",icon:"multiEditAttributes.png",op:new g.Workflow({layer:t,type:"editmultiattributes",helpMessage:"editing.tools.update_multi_features",registerEscKeyEvent:!0,runOnce:!0,steps:[new L.SelectElementsStep({type:"multiple",steps:{select:{description:"editing.workflow.steps."+(A.ismobile?"selectDrawBoxAtLeast2Feature":"selectMultiPointSHIFTAtLeast2Feature"),buttonnext:{disabled:!0,condition:function(e){e=e.features;return(void 0===e?[]:e).length<2},done:function(){g.Workflow.Stack.getCurrent().clearUserMessagesSteps()}},dynamic:0,done:!1,reset:function(){this.dynamic=0}}}}),new L.OpenFormStep({multi:!0})]})},d&&o.includes("change_attr_feature")&&0\n \n \n ',data:function(){return{relations:this.$options.relations,relationId:this.$options.relationId}}}))({relations:r,relationId:r[0].state.id});G.showModalDialog({title:U("editing.relations"),className:"modal-left",closeButton:!1,message:n.$mount().$el,buttons:{cancel:{label:"Cancel",className:"btn-danger",callback:function(){t()}},ok:{label:"Ok",className:"btn-success",callback:(i=R(function*(){a=r.find(function(e){return n.relationId===e.state.id}).getChild(),e()}),function(){return i.apply(this,arguments)})}}}).on("hide.bs.modal",function(){return n.$destroy()})})}catch(e){return G.setModal(!1),(0,C.$promisify)(Promise.reject(e))}var i=new g.Workflow({type:"editmultiattributes",steps:[new L.OpenFormStep({multi:!0})]}),n=(0,T.getEditingLayerById)(a),o=(0,E.getRelationFieldsFromRelation)({layerId:r[0].getChild(),relation:r[0]}),o={context:{session:g.Workflow.Stack.getCurrent().getSession(),excludeFields:o.ownField,isContentChild:!1},inputs:{features:n.readFeatures(),layer:n}};try{yield(0,m.setLayerUniqueFieldValues)(a),yield(0,C.promisify)(i.start(o))}catch(e){}return i.stop(),G.setModal(!1),(0,C.$promisify)(Promise.resolve(t,e))}),function(e,t){return l.apply(this,arguments)})})]})},d&&o.includes("change_feature")&&{id:"movefeature",type:["change_feature"],name:"editing.tools.move_feature",icon:"move"+r+".png",op:new g.Workflow({layer:t,type:"movefeature",helpMessage:"editing.tools.move_feature",steps:[new L.PickFeatureStep,new h.Step({run:k.chooseFeature}),new L.MoveFeatureStep]})},(p=[],d&&o.includes("add_feature")&&{id:"copyfeaturesfromotherlayer",type:["add_feature"],name:"editing.tools.pastefeaturesfromotherlayers",icon:"pasteFeaturesFromOtherLayers.png",enable:(()=>{function i(){function t(e){return e&&(0,P.isSameBaseGeometryType)(a,e)&&(a===e||D.isMultiGeometry(a)||!D.isMultiGeometry(e))}return p=[].concat(O(B.getLayers({GEOLAYER:!0,BASELAYER:!1}).filter(function(e){return r!==e.getId()&&t(e.getGeometryType())})),O(n.getExternalLayers({type:"vector"}).filter(function(e){return t(e.geometryType)}))).map(function(e,t){return{id:(e.state||{id:e.id}).id,name:(e.state||{name:e.name}).name,external:e.external||!1,selected:0===t}}),o.tool.enabled=0{var t=(0,z.cloneFeature)(u[e],l);r?t.getGeometry().translate(r.x,r.y):(e=t.getGeometry().getCoordinates(),e=(0,F.getDeltaXY)({x:i,y:n,coordinates:e}),t.getGeometry().translate(e.x,e.y)),l.getEditingMediaFields({}).forEach(function(e){return t.set(e,null)}),a.push((0,S.evaluateExpressionFields)({inputs:p,context:y,feature:t}))})(o);Promise.allSettled(a).then(function(e){return e.forEach(function(e){e.status;var e=e.value,t=(0,N.getNotEditableFieldsNoPkValues)({layer:l,feature:e}),i=g.pushAdd(f,e);Object.entries(t).length&&Object.entries(t).forEach(function(e){var e=v(e,2),t=e[0];return i.set(t,e[1])}),c.addFeature(i),p.features.push(i)})}).finally(function(){h.setUserMessageStepDone("to"),s(p)})}}),h.addInteraction(new ol.interaction.Snap({source:c,edge:!1}))});return(0,w.setAndUnsetSelectedFeaturesStyle)({promise:(0,C.$promisify)(R(function*(){try{return yield e}catch(e){return Promise.reject(e)}})),inputs:p,style:h.selectStyle}),e}))}})].filter(Boolean),registerEscKeyEvent:!0})},d&&o.includes("add_feature")&&o.includes("change_feature")&&{id:"addPart",type:["add_feature","change_feature"],name:"editing.tools.addpart",icon:"addPart.png",visible:c,op:new g.Workflow({layer:t,type:"addparttomultigeometries",helpMessage:"editing.tools.addpart",runOnce:!0,steps:[new L.PickFeatureStep({steps:{select:{description:"editing.workflow.steps.select",done:!1}}}),new h.Step({run:k.chooseFeature,help:"editing.steps.help.select_element"}),new L.AddFeatureStep({layer:t,help:"editing.steps.help.select_element",add:!1,steps:{addfeature:{description:"editing.workflow.steps.draw_part",done:!1}},tools:["snap","measure"]}),new h.Step({layer:t,help:"editing.steps.help.select_element",run:Y.addPartToMultigeometries})],registerEscKeyEvent:!0})},d&&o.includes("change_feature")&&{id:"deletePart",type:["change_feature"],name:"editing.tools.deletepart",icon:"deletePart.png",visible:c,op:new g.Workflow({layer:t,type:"deletepartfrommultigeometries",steps:[new L.PickFeatureStep,new h.Step({run:k.chooseFeature}),new h.Step({layer:t,run:function(y,h){var v=this;return(0,C.$promisify)(new Promise(function(n,e){var t=y.layer,r=y.layer.getEditingLayer(),a=t.getId(),o=h.session,t=y.features,i=y.coordinate,s=t[0],l=s.clone(),u=s.getGeometry(),d=[];switch(u.getType()){case M.MULTIPOLYGON:d=u.getPolygons();break;case M.MULTILINE:case M.MULTILINESTRING:d=u.getLineStrings();break;case M.MULTIPOINT:d=u.getPoints()}var c=new ol.source.Vector({features:d.map(function(e){return new ol.Feature(e)})}),f=v.getMap(),g=f.getPixelFromCoordinate(i),p=new ol.layer.Vector({source:c,style:r.getStyle()});f.addLayer(p),f.once("postrender",function(){var i=!1;f.forEachFeatureAtPixel(g,function(e){var t;i||(c.removeFeature(e),c.getFeatures().length?(t=(e=c.getFeatures().map(function(e){return e.getGeometry()}))[0]&&e[0].getType(),s.setGeometry(t&&new ol.geom["Multi"+t](e.map(function(e){return e.getCoordinates()}))),(0,S.evaluateExpressionFields)({inputs:y,context:h,feature:s}).finally(function(){o.pushUpdate(a,s,l),n(y)})):(r.getSource().removeFeature(s),o.pushDelete(a,s),n(y)),i=!0)},{layerFilter:function(e){return e===p},hitTolerance:1}),f.removeLayer(p),p=null})}))}})],helpMessage:"editing.tools.deletepart"})},(e||i)&&o.includes("change_feature")&&{id:"splitfeature",type:["change_feature"],name:"editing.tools.split",icon:"splitFeatures.png",op:new g.Workflow({layer:t,type:"splitfeature",runOnce:!0,steps:[new L.SelectElementsStep({layer:t,help:"editing.steps.help.split",type:A.ismobile?"single":"multiple",steps:{select:{description:"editing.workflow.steps."+(A.ismobile?"selectPoint":"selectPointSHIFT"),done:!1}}},!0),new h.Step({layer:t,help:"",steps:{draw_line:{description:"editing.workflow.steps.draw_split_line",done:!1}},run:function(s,l){var i=this;return(0,C.$promisify)(R(function*(){var e=s.layer.getEditingLayer().getSource(),t=new Promise(function(a,o){var t;i.addInteraction(new ol.interaction.Draw({type:"LineString",features:new ol.Collection,freehandCondition:ol.events.condition.never}),{drawend:(t=R(function*(e){for(var i=!1,n=(0,J.splitFeatures)(s.features,e.feature),t=n.length,r=0;rfunction(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})})(function*(){var e,t=void 0,i=void 0;1function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})})(function*(){try{var e;return 1!==t.features.length&&(e=yield(0,n.chooseFeatureFromFeatures)({features:t.features,inputs:t}),t.features=[e]),t}catch(e){return Promise.reject(e)}}))};var n=e("../utils/chooseFeatureFromFeatures"),r=e("../utils/promisify")},{"../utils/chooseFeatureFromFeatures":34,"../utils/promisify":58}],34:[function(s,e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.chooseFeatureFromFeatures=function(e){var t=e.features,a=void 0===t?[]:t,o=e.inputs;return new Promise(function(e,t){var i=[],n=new(Vue.extend(s("../components/ChooseFeatureToEdit.vue")))({features:Array.isArray(a)?a:[],feature:i,attributes:o.layer.getEditingFields().map(function(e){return{name:e.name,label:e.label}})}),r=g3wsdk.gui.GUI.showModalDialog({title:l("editing.modal.tools.copyfeaturefromprojectlayer.title"),className:"modal-left",closeButton:!1,message:n.$mount().$el,buttons:{cancel:{label:"Cancel",className:"btn-danger",callback:function(){t()}},ok:{label:"Ok",className:"btn-success",callback:function(){e(i[0])}}}});r.find("button.btn-success").prop("disabled",!0),n.$watch("feature",function(e){return r.find("button.btn-success").prop("disabled",null===e)})})};var l=g3wsdk.core.i18n.tPlugin},{"../components/ChooseFeatureToEdit.vue":3}],35:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.cloneFeature=function(e,t){e=e.cloneNew(),t=t&&t.getEditingFields().find(function(e){return e.pk});t&&!1===t.editable&&e.set(t.name,null);return e}},{}],36:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.convertToGeometry=function(){var e=0(t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e))({},r.name,r.value)),relations:[n]}),t.un("featuresLockedByOtherUser",i),void 0===u)?e.getLayerById(o).getEditingSource().readFeatures().find(function(e){return r.value===e.get(s)}):u))try{var d=g.getLayerById(o),c=(yield p.getData("search:features",{inputs:{layer:d,formatter:0,filter:g3wsdk.core.utils.createFilterFormInputs({layer:d,search_endpoint:"api",inputs:[{attribute:s,value:r.value}]}),search_endpoint:"api"},outputs:!1})).data;c&&c[0]&&1===c[0].features.length&&(l=!0,u=c[0].features[0])}catch(e){}return{feature:u,locked:l}},r=function(){var s=n.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})},function(e){return r.apply(this,arguments)});var n,r,f=e("../utils/getLayersDependencyFeatures");var g=g3wsdk.core.catalog.CatalogLayersStoresRegistry,p=g3wsdk.core.data.DataRouterService},{"../utils/getLayersDependencyFeatures":45}],49:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.getRelationFieldsFromRelation=function(){var e=0{e=function*(t){try{t.resolve(yield i instanceof Promise?i:i())}catch(e){t.reject(e)}};var e,t=function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})};return function(e){return t.apply(this,arguments)}})()).promise()}},{}],59:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.setAndUnsetSelectedFeaturesStyle=function(){function e(){var t=(0,l.setFeaturesSelectedStyle)(a,r);(0,s.promisify)(i).finally(function(){a.flat().forEach(function(e){return e.setStyle(t)})})}var t=0({originalStyle:e.getStyle(),selectedStyle:e.getGeometry()?g3wsdk.core.geoutils.createSelectedStyle({geometryType:e.getGeometry().getType()}):e.getStyle()}))(e[0]),n=i.originalStyle,r=i.selectedStyle,e.forEach(function(e){return e.setStyle(t||r)}),n}}},{}],61:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0});var n,r,a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e)){var i=t,n=[],r=!0,t=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!i||n.length!==i);r=!0);}catch(e){t=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw a}}return n}throw new TypeError("Invalid attempt to destructure non-iterable instance")};i.setLayerUniqueFieldValues=(n=function*(n){var r=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing");return yield new Promise(function(t,i){var e=g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").getLayerById(n);e.getWidgetData({type:"unique",fields:Object.values(e.getEditingFields().filter(function(e){return!(e.pk&&!1===e.editable)&&("unique"===e.input.type||e.validate.unique)})).map(function(e){return e.name}).join()}).then(function(e){Object.entries(e.data||{}).forEach(function(e){var e=a(e,2),t=e[0];r.state.uniqueFieldsValues[n][t]=new Set(e[1])}),t(r.state.uniqueFieldsValues[n][name])}).fail(function(e){i(e)})}),r.state.uniqueFieldsValues[n]},r=function(){var s=n.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})},function(e){return r.apply(this,arguments)});g3wsdk.core.catalog.CatalogLayersStoresRegistry},{}],62:[function(e,t,i){Object.defineProperty(i,"__esModule",{value:!0}),i.splitFeatures=function(e,n){return(e||[]).reduce(function(e,t){var i=r({splitfeature:n,feature:t});return 1\n \n \n
\n \n \n ',name:"Saveall",props:{update:{type:Boolean},valid:{type:Boolean}},data:function(){return{enabled:x.Workflow.Stack._workflows.slice(0,x.Workflow.Stack.getLength()-1).every(function(e){e=(e.getContext().service instanceof Y?e.getContext().service.getState():{}).valid;return e||void 0===e})}},computed:{disabled:function(){return!this.enabled||!(this.valid&&this.update)}},methods:{saveAll:(l=I(function*(){P.setLoadingContent(!0),P.disableContent(!0),yield Promise.allSettled([].concat(E(x.Workflow.Stack._workflows)).reverse().filter(function(e){return"function"==typeof e.getLastStep()._saveAll}).map(function(r){return new Promise((t=I(function*(e){var t,i=r.getLastStep(),n=r.getContext().service.state.fields.filter(function(e){return!i._multi||null!==e.value});if(0!==n.length)return yield x.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies(),i._features.forEach(function(e){return i.getInputs().layer.setFieldsWithValues(e,n)}),t=i._features.map(function(e){return e.clone()}),i._isContentChild&&(i.getInputs().relationFeatures={newFeatures:t,originalFeatures:i._originalFeatures}),yield i.fireEvent("saveform",{newFeatures:t,originalFeatures:i._originalFeatures}),t.forEach(function(e,t){return i.getContext().session.pushUpdate(i.layerId,e,i._originalFeatures[t])}),yield(0,w.handleRelation1_1LayerFields)({layerId:i.layerId,features:t,fields:n,task:i}),i.fireEvent("savedfeature",t),i.fireEvent("savedfeature_"+i.layerId,t),i.getContext().session.save(),e()}),function(e){return t.apply(this,arguments)}));var t}));try{yield(0,S.promisify)(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").service.commit({modal:!1})),[].concat(E(x.Workflow.Stack._workflows)).reverse().filter(function(e){return"function"==typeof e.getLastStep()._saveAll}).forEach(function(e){var n=e.getContext().service,t=(n.setUpdate(!1,{force:!1}),n.feature);t.isNew()&&(t.state.new=!1,n.force.update=!1),Object.entries(e.getInputs().layer.getEditingSource().readFeatures().find(function(e){return e.getUid()===t.getUid()}).getProperties()).forEach(function(e){var e=p(e,2),t=e[0],e=e[1],i=n.getFields().find(function(e){return t===e.name});i&&(i.value=i._value=e)})})}catch(e){}P.setLoadingContent(!1),P.disableContent(!1)}),function(){return l.apply(this,arguments)})}},buttons:[{id:"save",title:f._isContentChild?x.Workflow.Stack.getParent().getBackButtonLabel()||"plugins.editing.form.buttons.save_and_back":"plugins.editing.form.buttons.save",type:"save",class:"btn-success",cbk:(s=I(function*(t){var i;0!==(t=f._multi?t.filter(function(e){return null!==e.value}):t).length&&(i=[],P.setLoadingContent(!0),P.disableContent(!0),yield x.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies(),P.setLoadingContent(!1),P.disableContent(!1),f._features.forEach(function(e){d.layer.setFieldsWithValues(e,t),i.push(e.clone())}),f._isContentChild&&(d.relationFeatures={newFeatures:i,originalFeatures:f._originalFeatures}),yield f.fireEvent("saveform",{newFeatures:i,originalFeatures:f._originalFeatures}),i.forEach(function(e,t){return c.session.pushUpdate(f.layerId,e,f._originalFeatures[t])}),yield(0,w.handleRelation1_1LayerFields)({layerId:f.layerId,features:i,fields:t,task:f}),P.setModal(!1),f.fireEvent("savedfeature",i),f.fireEvent("savedfeature_"+f.layerId,i),f._isContentChild)&&x.Workflow.Stack.getParents().filter(function(e){return e.getContextService()&&e.getContextService().setUpdate}).forEach(function(e){return e.getContextService().setUpdate(!0,{force:!0})}),e(d)}),function(e){return s.apply(this,arguments)})},{id:"cancel",title:"plugins.editing.form.buttons.cancel",type:"cancel",class:"btn-danger",eventButtons:{update:{false:{id:"close",title:"close",type:"cancel",class:"btn-danger"}}},cbk:function(){f._isContentChild||(P.setModal(!1),f.fireEvent("cancelform",d.features)),t(d)}}]})).handleRelation=(u=I(function*(e){f._multi?P.showUserMessage({type:"info",message:"plugins.editing.errors.editing_multiple_relations",duration:3e3,autoclose:!0}):(P.setLoadingContent(!0),yield(0,V.setLayerUniqueFieldValues)(d.layer.getRelationById(e.relation.name).getChild()),o.setCurrentComponentById(e.relation.name),P.setLoadingContent(!1))}),function(e){return u.apply(this,arguments)}),o.addComponents([].concat(E(g3wsdk.core.plugin.PluginsRegistry.getPlugin("editing").state.formComponents[a]||[]),E((0,G.getRelationsInEditingByFeature)({layerId:a,relations:f._multi?[]:d.layer.getRelations().getArray().filter(function(e){return"ONE"!==e.getType()&&e.getFather()===a}),feature:!f._multi&&d.features[d.features.length-1]}).map(function(e){var t=e.relation,i=e.relations;return{title:"plugins.editing.edit_relation",name:t.name,id:t.id,header:!1,component:Vue.extend({mixins:[g("../components/FormRelation.vue")],name:"relation_"+Date.now(),data:function(){return{layerId:a,relation:t,relations:i}}})}})))),f.fireEvent("openform",{layerId:f.layerId,session:c.session,feature:f._originalFeature,formService:o}),x.Workflow.Stack.getCurrent()&&x.Workflow.Stack.getCurrent().setContextService(o),(0,B.listenRelation1_1FieldChange)({layerId:f.layerId,fields:n}).then(function(e){return f._unwatchs=e}),f.disableSidebar(!0))}),function(e,t){return i.apply(this,arguments)}));return(0,S.$promisify)(I(function*(){return(0,m.setAndUnsetSelectedFeaturesStyle)({promise:(0,S.$promisify)(e),inputs:d,style:f.selectStyle}),e}))}},{key:"stop",value:function(){this.disableSidebar(!1);var e=!1===this._isContentChild||2===x.Workflow.Stack.getLength()&&x.Workflow.Stack.getParent().isType("edittable"),e=(e&&P.getService("map").disableClickMapControls(!1),e&&x.Workflow.Stack.getCurrent().getContextService());e&&e.setUpdate&&!1===this._isContentChild&&e.setUpdate(!1,{force:!1}),P.closeForm({pop:this.push||this._isContentChild&&1{e=function*(t){try{t.resolve(yield i instanceof Promise?i:i())}catch(e){t.reject(e)}};var e,t=function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,i){try{var n=s[e](i),r=n.value}catch(e){return void o(e)}if(!n.done)return Promise.resolve(r).then(function(e){t("next",e)},function(e){t("throw",e)});a(r)}("next")})};return function(e){return t.apply(this,arguments)}})()).promise()}},{}]},{},[25]); //# sourceMappingURL=plugin.js.map diff --git a/g3w-admin/editing/static/editing/js/plugin.js.map b/g3w-admin/editing/static/editing/js/plugin.js.map index b1232a229..4e3e21ede 100644 --- a/g3w-admin/editing/static/editing/js/plugin.js.map +++ b/g3w-admin/editing/static/editing/js/plugin.js.map @@ -1 +1 @@ -{"version":3,"file":"plugin.js","sources":["plugin.js"],"sourcesContent":["(()=>{var n=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;n&&(n[\"editing\"]=Object.assign(n[\"editing\"]||{},{version:\"3.9.0-issue_137\",hash:\"7eb93aa\",branch:\"issue_137\"}))})();\n(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;ili[data-v-31b52cc3]{margin-bottom:8px}ins[data-v-31b52cc3]{background-color:lime;text-decoration-line:none}del[data-v-31b52cc3]{background-color:tomato}dl[data-v-31b52cc3]{display:grid;grid-template:auto/.5fr 1fr;margin-bottom:0;word-break:break-all}dt[data-v-31b52cc3]{background:#fee}dd[data-v-31b52cc3]{background:#f1f2f4}dd[data-v-31b52cc3],dt[data-v-31b52cc3]{margin:0;padding:.3em .5em;border-top:1px solid #fff}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _areCoordinatesEqual = require('../utils/areCoordinatesEqual');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\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: \"changes\",\n\n props: {\n commits: {\n type: Object,\n required: true\n },\n layer: {\n type: Object,\n required: true\n },\n relation: {\n type: Boolean,\n default: false\n }\n },\n\n data: function data() {\n return {\n features: this.layer.readFeatures(),\n efeatures: this.layer.readEditingFeatures() };\n },\n\n\n methods: {\n getFormattedValue: function getFormattedValue(feat, key) {\n if (!feat) {\n return;\n }\n\n if ('geometry' === key && feat.get(key)) {\n return '(' + feat.get(key).getFlatCoordinates().length / 2 + ')';\n }\n return (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: this.layer.getId(),\n feature: feat,\n property: key\n });\n },\n getValue: function getValue(item, key) {\n return this.getFormattedValue(this.getFeature(item), key);\n },\n getEditingValue: function getEditingValue(item, key) {\n return this.getFormattedValue(this.getEditingFeature(item), key);\n },\n hasValue: function hasValue(item, key) {\n var feat = this.getFeature(item);\n var efeat = this.getEditingFeature(item);\n return !(feat && efeat && null === feat.get(key) && null === efeat.get(key) || feat && !efeat && null === feat.get(key));\n },\n getId: function getId(item) {\n return item.id || item;\n },\n getEditingFeature: function getEditingFeature(item) {\n var _this = this;\n\n return this.efeatures.find(function (f) {\n return _this.getId(item) === f.getId();\n });\n },\n getFeature: function getFeature(item) {\n var _this2 = this;\n\n return this.features.find(function (f) {\n return _this2.getId(item) === f.getId();\n });\n },\n getType: function getType(item) {\n var feat = this.getEditingFeature(item) || this.getFeature(item);\n return feat && feat.getGeometry && feat.getGeometry() ? feat.getGeometry().getType() : '';\n },\n isEdited: function isEdited(item, key) {\n var feat = this.getFeature(item);\n var efeat = this.getEditingFeature(item);\n if ([feat, efeat].includes(undefined)) {\n return false;\n }\n if (this.getType(item) && 'geometry' === key) {\n return !(0, _areCoordinatesEqual.areCoordinatesEqual)({ feature: feat, coordinates: efeat.get(key).getCoordinates() });\n }\n return efeat.get(key) !== feat.get(key);\n },\n getAttrs: function getAttrs(item) {\n var feat = this.getEditingFeature(item) || this.getFeature(item);\n return Object.entries(feat ? feat.getProperties() : {}).sort(function (a, b) {\n return a[0] > b[0];\n });\n },\n getLayerById: function getLayerById(id) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').service.getLayerById(id);\n }\n },\n\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n this.$refs.value.filter(function (d) {\n return !d.textContent;\n }).forEach(function (d) {\n return d.innerHTML = '<empty>';\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',[(_vm.relation)?_c('h4',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin:pre\",value:('editing.messages.commit.header_relation'),expression:\"'editing.messages.commit.header_relation'\",arg:\"pre\"}],staticClass:\"skin-color g3w-long-text\",staticStyle:{\"font-weight\":\"bold\",\"margin\":\"15px 0\"}},[_vm._v(\": \"+_vm._s(_vm.layer.getName()))]):_vm._e(),_vm._v(\" \"),_vm._l((Object.keys(_vm.commits).filter(function (c) { return _vm.commits[c].length; })),function(c){return [_c('h4',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin:pre\",value:((\"editing.messages.commit.\" + c)),expression:\"`editing.messages.commit.${c}`\",arg:\"pre\"}]},[_vm._v(\" (\"+_vm._s(_vm.commits[c].length)+\") \")]),_vm._v(\" \"),_c('divider'),_vm._v(\" \"),_c('ul',_vm._l((_vm.commits[c]),function(item){return _c('li',[_c('details',[_c('summary',[_vm._v(_vm._s(_vm.getType(item))+\" #\"+_vm._s(_vm.getId(item)))]),_vm._v(\" \"),_vm._l((_vm.getAttrs(item)),function(ref){\nvar key = ref[0];\nvar val = ref[1];\nreturn [(_vm.hasValue(item, key))?_c('dl',[_c('dt',[_vm._v(_vm._s(key)+\":\")]),_vm._v(\" \"),_c('dd',[(_vm.isEdited(item, key))?[_c('del',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getValue(item, key)))]),_vm._v(\" ← \"),_c('ins',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getEditingValue(item, key)))])]:_c('span',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getEditingValue(item, key) || _vm.getValue(item, key)))]),_vm._v(\" \"),('geometry' === key)?_c('i',[_c('code',[_vm._v(\"\")])]):_vm._e()],2)]):_vm._e()]})],2)])}),0)]}),_vm._v(\" \"),_vm._l((Object.entries(_vm.commits.relations)),function(ref){\nvar id = ref[0];\nvar commits = ref[1];\nreturn _c('changes',{attrs:{\"commits\":{\n add: commits.add,\n update: commits.update,\n delete: commits.delete,\n relations: commits.relations\n },\"relation\":true,\"layer\":_vm.getLayerById(id)}})})],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-31b52cc3\"\n\n},{\"../utils/areCoordinatesEqual\":31,\"../utils/getFeatureTableFieldValue\":43,\"vueify/lib/insert-css\":1}],3:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".choose-and-zoom-to-feature[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between}#editing-layers-choose-feature .editing-choose-feature-radio-input[data-v-ad674338]{align-items:center;padding:5px;position:relative;display:flex;justify-content:space-between;border-bottom:1px solid #eee}.ztf[data-v-ad674338]{padding-left:3px;font-size:1.3em;cursor:pointer;margin-top:10px}.magic-radio+label[data-v-ad674338]{color:transparent}.feature-attributes[data-v-ad674338]{overflow-x:auto;display:flex}.feature-attributes>div[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between;padding:5px}.f-attr[data-v-ad674338]{font-weight:700;margin-bottom:10px}.f-val[data-v-ad674338]{align-self:start;white-space:nowrap}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GUI = g3wsdk.gui.GUI;\nexports.default = {\n\n name: 'choosefeature',\n\n data: function data() {\n return {\n feature: this.$options.feature\n };\n },\n\n\n methods: {\n selectFeature: function selectFeature(feature) {\n this.feature.splice(0);\n this.feature.push(feature);\n },\n getAttributesFeature: function getAttributesFeature(feature) {\n var properties = feature.getProperties();\n return this.$options.attributes.map(function (_ref) {\n var label = _ref.label,\n name = _ref.name;\n return { attribute: label, value: properties[name] };\n });\n },\n zoomToFeature: function zoomToFeature(feature) {\n GUI.getService('map').zoomToFeatures([feature], { highlight: true, duration: 1000 });\n }\n },\n\n mounted: function mounted() {\n GUI.closeContent();\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\":\"editing-layers-choose-feature\"}},_vm._l((_vm.$options.features),function(feature,index){return _c('div',{staticClass:\"editing-choose-feature-radio-input\"},[_c('section',{staticClass:\"choose-and-zoom-to-feature\"},[_c('div',[_c('input',{staticClass:\"magic-radio\",attrs:{\"id\":(\"choose_feature_\" + index),\"name\":\"radio\",\"type\":\"radio\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.selectFeature(feature)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"choose_feature_\" + index)}},[_vm._v(\"id\")])]),_vm._v(\" \"),_c('div',{staticClass:\"ztf skin-color\",class:_vm.g3wtemplate.font['marker'],on:{\"click\":function($event){$event.stopPropagation();return _vm.zoomToFeature(feature)}}})]),_vm._v(\" \"),_c('section',{staticClass:\"feature-attributes\"},_vm._l((_vm.getAttributesFeature(feature)),function(ref){\nvar attribute = ref.attribute;\nvar value = ref.value;\nreturn _c('div',[_c('span',{staticClass:\"f-attr\"},[_vm._v(_vm._s(attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"f-val\"},[_vm._v(_vm._s(value))])])}),0)])}),0)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-ad674338\"\n\n},{\"vueify/lib/insert-css\":1}],4:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GUI = g3wsdk.gui.GUI;\nexports.default = {\n\n name: 'Copyfeaturesfromotherlayers',\n\n data: function data() {\n return {\n id: this.$options.layers.find(function (l) {\n return l.selected;\n }).id\n };\n },\n\n\n watch: {\n 'id': function id(_id) {\n this.$options.layers.forEach(function (l) {\n return l.selected = _id === l.id;\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('section',[_c('div',{attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('id'),expression:\"'id'\"}],attrs:{\"id\":\"g3w-select-editable-layers-to-copy\"}},_vm._l((_vm.$options.layers),function(layer){return _c('option',{key:layer.id,domProps:{\"value\":layer.id}},[_vm._v(_vm._s(layer.name))])}),0)])])}\n__vue__options__.staticRenderFns = []\n\n},{}],5:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-panel .editing-button .editing-icon{background-color:#3a4448;color:#222d32;font-size:1.8em;padding:10px;margin:5px;width:45px;height:45px;border-radius:30%;text-align:center}.g3w-editing-panel .editing-button.enabled .editing-icon{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.7)}.g3w-editing-panel .editing-button{cursor:not-allowed}.g3w-editing-panel .editing-button.enabled{cursor:pointer}.g3w-editing-panel .editbtn{border-radius:30%;padding:10px;display:inline-block;opacity:.4;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 4px 0 rgba(0,0,0,.3)}.g3w-editing-panel .editbtn.enabled{opacity:1;cursor:pointer}.g3w-editing-panel .editbtn.enabled.toggled{box-shadow:0 0;background-color:#ddd}\\n.g3w-editing-panel[data-v-14424d18]{margin-bottom:50px}#onlineofflinemessage[data-v-14424d18]{margin-bottom:5px;padding:5px;border-radius:3px;background-color:orange;color:#fff;font-weight:700}.commitbar[data-v-14424d18]{display:flex;justify-content:flex-end;margin-bottom:5px}.commitbar>div[data-v-14424d18]:first-of-type{margin-right:auto}#g3w-select-editable-layers-content[data-v-14424d18]{margin-bottom:10px;font-weight:700}#g3w-select-editable-layers-content label[data-v-14424d18]{color:#fff!important}#g3w-select-editable-layers-to-show[data-v-14424d18]{cursor:pointer}\")\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 _Toolbox = require('./Toolbox.vue');\n\nvar _Toolbox2 = _interopRequireDefault(_Toolbox);\n\nvar _promisify = require('../utils/promisify');\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 GUI = g3wsdk.gui.GUI;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n ApplicationService = _g3wsdk$core.ApplicationService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nexports.default = {\n\n name: 'Editing',\n\n data: function data() {\n return {\n state: this.$options.service.state,\n service: this.$options.service,\n resourcesurl: this.$options.resourcesurl,\n showcommitbar: this.$options.showcommitbar,\n saving: false,\n layersInEditing: 0,\n editingButtonsEnabled: true,\n\n selectedlayers: [],\n\n editinglayers: Object.entries(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getEditableLayers()).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ = _ref2[0],\n l = _ref2[1];\n\n return l.config.editing.visible;\n }).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n layer = _ref4[1];\n\n return { id: id, name: layer.getName(), title: layer.getTitle() };\n }),\n\n activetool: null\n };\n },\n\n\n components: {\n toolbox: _Toolbox2.default\n },\n\n transitions: {\n 'addremovetransition': 'showhide'\n },\n\n methods: {\n updateFilterLayers: function updateFilterLayers() {\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (layers.length > 0) {\n this._selectedlayers = this.selectedlayers;\n this.selectedlayers = layers;\n } else {\n this.selectedlayers = this._selectedlayers;\n this._selectedlayers = layers;\n }\n\n $(this.$refs.selectlayers).val(this.selectedlayers).trigger('change');\n },\n updateLayersInEditing: function updateLayersInEditing(bool) {\n this.layersInEditing += bool ? 1 : -1;\n },\n undo: function undo() {\n if (this.canUndo) {\n this.service.undo();\n }\n },\n redo: function redo() {\n if (this.canRedo) {\n this.service.redo();\n }\n },\n commit: function commit(toolboxId) {\n var _this = this;\n\n if (this.canCommit) {\n this.saving = true;\n this.service.commit({\n toolbox: this.service.getToolBoxById(toolboxId),\n modal: false\n }).always(function () {\n return _this.saving = false;\n });\n }\n },\n startToolBox: function () {\n var _ref5 = _asyncToGenerator(function* (id) {\n var _this2 = this;\n\n var toolbox = this.service.getToolBoxById(id);\n\n var layerId = ApplicationState.online && toolbox.getDependencies().find(function (id) {\n return _this2.service.getToolBoxById(id).isDirty();\n });\n if (layerId) {\n yield this.commit_dirty(layerId);\n }\n toolbox.start();\n });\n\n function startToolBox(_x2) {\n return _ref5.apply(this, arguments);\n }\n\n return startToolBox;\n }(),\n stopToolBox: function () {\n var _ref6 = _asyncToGenerator(function* (id) {\n var toolbox = this.service.getToolBoxById(id);\n\n try {\n if (toolbox.state.editing.history.commit) {\n yield (0, _promisify.promisify)(this.service.commit());\n }\n } catch (e) {\n console.warn(e);\n }\n\n yield toolbox.stop();\n\n var control = undefined === this.service.getToolBoxes().find(function (t) {\n return t.state.editing.on;\n }) && GUI.getService('map').getMapControlByType({ type: 'query' });\n if (control && !control.isToggled()) {\n control.toggle();\n }\n });\n\n function stopToolBox(_x3) {\n return _ref6.apply(this, arguments);\n }\n\n return stopToolBox;\n }(),\n startTool: function () {\n var _ref7 = _asyncToGenerator(function* (toolId, toolboxId) {\n var _this3 = this;\n\n var toolbox = this.service.getToolBoxById(toolboxId);\n var enabled = this.activetool && toolboxId === this.activetool;\n\n if (!enabled && this.service.getToolBoxById(toolbox.getDependencies().find(function (id) {\n return id === _this3.activetool;\n }))) {\n yield this.commit_dirty(this.activetool);\n }\n\n if (!enabled) {\n this.stopTool(this.activetool);\n }\n\n this.activetool = toolboxId;\n toolbox.setActiveTool(toolbox.getToolById(toolId));\n });\n\n function startTool(_x4, _x5) {\n return _ref7.apply(this, arguments);\n }\n\n return startTool;\n }(),\n stopTool: function stopTool(id) {\n if (id) {\n this.service.getToolBoxById(id).stopActiveTool();\n }\n },\n selectToolBox: function () {\n var _ref8 = _asyncToGenerator(function* (id) {\n var toolbox = this.service.getToolBoxById(id);\n var toolboxes = this.service.getToolBoxes();\n var selected = toolboxes.find(function (t) {\n return t.isSelected();\n });\n if (selected) {\n selected.setSelected(false);\n selected.clearMessage();\n }\n\n toolbox.setSelected(true);\n\n this.state.toolboxselected = toolbox;\n });\n\n function selectToolBox(_x6) {\n return _ref8.apply(this, arguments);\n }\n\n return selectToolBox;\n }(),\n commit_dirty: function () {\n var _ref9 = _asyncToGenerator(function* (id) {\n var _this4 = this;\n\n var toolbox = this.service.getToolBoxById(id);\n\n try {\n if (toolbox.isDirty() && toolbox.hasDependencies()) {\n yield (0, _promisify.promisify)(this.service.commit({ toolbox: toolbox }));\n console.info('[EDITING] committed dirty');\n }\n } catch (e) {\n try {\n [layerId].concat(toolbox.getDependencies()).forEach(function (id) {\n var toolbox = _this4.service.getToolBoxById(id);\n var editor = toolbox.getEditor();\n\n editor.getEditingSource().setFeatures((editor.readFeatures() || []).map(function (f) {\n return f.clone();\n }));\n\n toolbox.getSession().getHistory().clear();\n\n toolbox.stopActiveTool();\n });\n console.info('[EDITING] reverted dirty');\n } catch (e) {\n console.warn(e);\n }\n }\n });\n\n function commit_dirty(_x7) {\n return _ref9.apply(this, arguments);\n }\n\n return commit_dirty;\n }(),\n _enableEditingButtons: function _enableEditingButtons(bool) {\n this.editingButtonsEnabled = !bool;\n },\n checkOfflineChanges: function checkOfflineChanges() {\n var _this5 = this;\n\n var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref10$modal = _ref10.modal,\n modal = _ref10$modal === undefined ? true : _ref10$modal,\n _ref10$unlock = _ref10.unlock,\n unlock = _ref10$unlock === undefined ? false : _ref10$unlock;\n\n return new Promise(function (resolve, reject) {\n var changes = JSON.parse(window.localStorage.getItem('EDITING_CHANGES') || null);\n\n if (!changes) {\n return;\n }\n\n var promises = [];\n var layerIds = [];\n\n setTimeout(_asyncToGenerator(function* () {\n for (var _layerId in changes) {\n layerIds.push(_layerId);\n var toolbox = _this5.service.getToolBoxById(_layerId);\n var commitItems = changes[_layerId];\n promises.push(_this5.service.commit({ toolbox: toolbox, commitItems: commitItems, modal: modal }));\n }\n\n try {\n yield (0, _promisify.promisify)($.when.apply(_this5.service, promises));\n resolve();\n } catch (e) {\n console.warn(e);\n reject(e);\n } finally {\n if (unlock) {\n layerIds.forEach(function (layerId) {\n return _this5.service.getLayerById(layerId).unlock();\n });\n }\n\n try {\n window.localStorage.setItem('EDITING_CHANGES', \"{}\");\n } catch (e) {\n console.warn(e);\n }\n }\n }), 1000);\n });\n }\n },\n\n computed: {\n canCommit: function canCommit() {\n return 'default' === this.state.saveConfig.mode && this.state.toolboxselected && this.state.toolboxselected.state.editing.history.commit && this.editingButtonsEnabled;\n },\n canUndo: function canUndo() {\n var canUndo = this.state.toolboxselected && this.state.toolboxselected.state.editing.history.undo && this.editingButtonsEnabled;\n\n this.service.fireEvent('canUndo', canUndo);\n\n return canUndo;\n },\n canRedo: function canRedo() {\n var canRedo = this.state.toolboxselected && this.state.toolboxselected.state.editing.history.redo && this.editingButtonsEnabled;\n\n this.service.fireEvent('canRedo', canRedo);\n\n return canRedo;\n },\n django_admin_url: function django_admin_url() {\n return window.initConfig.user.is_superuser ? new URL('/django-admin/editing/g3weditingfeaturelock/', window.initConfig.baseurl) : false;\n },\n filemanager_url: function filemanager_url() {\n return window.initConfig.user.is_superuser ? new URL('/filemanager/', window.initConfig.baseurl) : false;\n }\n },\n\n watch: {\n canCommit: function canCommit(bool) {\n window.onbeforeunload = function () {\n return bool || undefined;\n };\n },\n layersInEditing: function layersInEditing(n) {\n document.getElementsByClassName('close-pane-button')[0].classList[0 === n ? 'remove' : 'add']('g3w-disabled');\n },\n selectedlayers: function selectedlayers() {\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var has_layers = layers.length > 0;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n this.editinglayers.forEach(function (_ref12) {\n var id = _ref12.id;\n\n var toolbox = service.getToolBoxById(id);\n var is_commit = has_layers && toolbox.state.editing.history.commit;\n var is_selected = layers.includes(id);\n\n toolbox.setShow(has_layers ? is_selected : true);\n\n if (has_layers && !is_selected && is_commit) {\n service.commit({ toolbox: toolbox }).always(function () {\n return toolbox.stop();\n });\n }\n\n if (has_layers && !is_selected && !is_commit) {\n toolbox.stop();\n }\n });\n }\n },\n\n created: function created() {\n var _this6 = this;\n\n this._selectedlayers = [];\n\n this.appState = ApplicationState;\n\n this.unByKeys = this.unByKeys || [];\n\n if (ApplicationState.online) {\n this.checkOfflineChanges({ unlock: true });\n }\n\n this.unByKeys.push({\n owner: ApplicationService,\n setter: 'online',\n key: ApplicationService.onafter('online', function () {\n return _this6.checkOfflineChanges({ modal: false }).catch(function (e) {\n return GUI.notify.error(e);\n });\n })\n });\n\n GUI.closeContent();\n\n this.state.open = false;\n CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).forEach(function (l) {\n return l.setInEditing(true);\n });\n\n GUI.on('opencontent', this._enableEditingButtons);\n GUI.on('closeform', this._enableEditingButtons);\n GUI.on('closecontent', this._enableEditingButtons);\n },\n beforeDestroy: function () {\n var _ref13 = _asyncToGenerator(function* () {\n var _this7 = this;\n\n this.service.stop();\n\n this.state.open = false;\n CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).forEach(function (l) {\n return l.setInEditing(false);\n });\n\n GUI.off('opencontent', this._enableEditingButtons);\n GUI.off('closeform', this._enableEditingButtons);\n GUI.off('closecontent', this._enableEditingButtons);\n\n this.unByKeys.forEach(function (_ref14) {\n var owner = _ref14.owner,\n setter = _ref14.setter,\n key = _ref14.key;\n return owner.un(setter, key);\n });\n\n this.service.fireEvent('closeeditingpanel');\n\n var layerIdChanges = Object.keys(this.state.featuresOnClose);\n if (layerIdChanges.length) {\n var inputs = {\n layers: [],\n fids: [],\n formatter: 1\n };\n layerIdChanges.forEach(function (id) {\n var fids = [].concat(_toConsumableArray(_this7.state.featuresOnClose[id]));\n if (fids.length > 0) {\n var layer = CatalogLayersStoresRegistry.getLayerById(id);\n inputs.layers.push(layer);\n inputs.fids.push(fids);\n }\n });\n\n var promise = inputs.layers.length ? DataRouterService.getData('search:layersfids', {\n inputs: inputs,\n outputs: {\n title: 'plugins.editing.editing_changes',\n show: { loading: false }\n }\n }) : Promise.resolve();\n try {\n yield promise;\n } catch (e) {\n console.warn(e);\n }\n }\n\n this.state.featuresOnClose = {};\n\n this.service.getToolBoxes().forEach(function (t) {\n return t.resetDefault();\n });\n\n var control = GUI.getService('map').getMapControlByType({ type: 'query' });\n if (control && !control.isToggled()) {\n control.toggle();\n }\n });\n\n function beforeDestroy() {\n return _ref13.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 _c('div',{staticClass:\"g3w-editing-panel\"},[_c('bar-loader',{attrs:{\"loading\":_vm.saving}}),_vm._v(\" \"),(_vm.layersInEditing > 0)?_c('helpdiv',{staticStyle:{\"font-weight\":\"bold\"},attrs:{\"message\":\"plugins.editing.close_editing_panel.message\"}}):_vm._e(),_vm._v(\" \"),(!_vm.appState.online)?_c('div',{attrs:{\"id\":\"onlineofflinemessage\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.offline'),expression:\"'editing.messages.offline'\"}]})]):_vm._e(),_vm._v(\" \"),(_vm.showcommitbar)?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.saving),expression:\"saving\"}],staticClass:\"commitbar\"},[_c('div',{class:['editing-button', (_vm.canCommit ? 'enabled' : '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.commit($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['save']]})]),_vm._v(\" \"),_c('div',{class:['editing-button', (_vm.canUndo ? 'enabled': '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.undo($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['arrow-left']]})]),_vm._v(\" \"),_c('div',{class:['editing-button', (_vm.canRedo ? 'enabled' : '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.redo($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['arrow-right']]})])]):_c('div',{staticStyle:{\"height\":\"10px\"}}),_vm._v(\" \"),(_vm.state.showselectlayers && _vm.editinglayers.length > 1)?_c('div',{staticClass:\"skin-color\",attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('Layers'),expression:\"'Layers'\"}],attrs:{\"for\":\"g3w-select-editable-layers-to-show\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('selectedlayers'),expression:\"'selectedlayers'\"}],ref:\"selectlayers\",attrs:{\"id\":\"g3w-select-editable-layers-to-show\",\"multiple\":true,\"clear\":true}},_vm._l((_vm.editinglayers),function(editinglayer){return _c('option',{key:editinglayer.id,domProps:{\"value\":editinglayer.id}},[_vm._v(_vm._s(editinglayer.name))])}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"toolboxes\"}},_vm._l((_vm.state.toolboxes),function(toolbox){return _c('toolbox',{key:toolbox.id,attrs:{\"state\":toolbox,\"resourcesurl\":_vm.resourcesurl},on:{\"setselectedtoolbox\":_vm.selectToolBox,\"starttoolbox\":_vm.startToolBox,\"stoptoolbox\":_vm.stopToolBox,\"setactivetool\":_vm.startTool,\"stopactivetool\":_vm.stopTool,\"on-editing\":_vm.updateLayersInEditing,\"update-filter-layers\":_vm.updateFilterLayers}})}),1),_vm._v(\" \"),(_vm.django_admin_url)?_c('p',[_c('a',{attrs:{\"href\":_vm.django_admin_url,\"target\":\"_blank\"}},[_vm._v(\"🔒 Locked features\")])]):_vm._e(),_vm._v(\" \"),(_vm.filemanager_url)?_c('p',[_c('a',{attrs:{\"href\":_vm.filemanager_url,\"target\":\"_blank\"}},[_vm._v(\"📂 File manager\")])]):_vm._e()],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-14424d18\"\n\n},{\"../utils/promisify\":58,\"./Toolbox.vue\":8,\"vueify/lib/insert-css\":1}],6:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-new-relation-vector-type[data-v-2b09c990]{margin-bottom:5px;font-weight:700}.relation_header_title[data-v-2b09c990]{font-weight:700;font-size:1.3em;align-items:center}.relation_header_title[data-v-2b09c990],.relation_header_tools[data-v-2b09c990]{width:100%;display:flex;background-color:#fff}.g3w-editing-relations-add-link-tools[data-v-2b09c990]{display:flex;justify-content:flex-end}.relation_vector_tools[data-v-2b09c990]{display:flex;flex-direction:column;border:2px solid #eee;background-color:#fff;padding:10px}#g3w-select-editable-layers-content[data-v-2b09c990]{flex-grow:1;display:flex;flex-direction:column}#search-box[data-v-2b09c990]{margin-right:auto}.relation_body[data-v-2b09c990]{padding:0}.g3wform-relation-table[data-v-2b09c990]{width:100%}.close_vector_relation_tool[data-v-2b09c990]{align-self:self-end}.close_vector_relation_tool>.g3w-icon[data-v-2b09c990]{font-weight:700;cursor:pointer}.divider[data-v-2b09c990]{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});\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 _workflow2 = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _promisify = require('../utils/promisify');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _convertToGeometry = require('../utils/convertToGeometry');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _updateWorkflows = require('../utils/updateWorkflows');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _eventbus = require('../eventbus');\n\nvar _workflows = require('../workflows');\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 _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 ProjectsRegistry = g3wsdk.core.project.ProjectsRegistry;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar t = g3wsdk.core.i18n.tPlugin;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar toRawType = g3wsdk.core.utils.toRawType;\nvar GUI = g3wsdk.gui.GUI;\nvar FormService = g3wsdk.gui.vue.services.FormService;\nvar _g3wsdk$gui$vue$Mixin = g3wsdk.gui.vue.Mixins,\n fieldsMixin = _g3wsdk$gui$vue$Mixin.fieldsMixin,\n resizeMixin = _g3wsdk$gui$vue$Mixin.resizeMixin,\n mediaMixin = _g3wsdk$gui$vue$Mixin.mediaMixin;\nvar _g3wsdk$ol$interactio = g3wsdk.ol.interactions,\n PickFeatureInteraction = _g3wsdk$ol$interactio.PickFeatureInteraction,\n PickCoordinatesInteraction = _g3wsdk$ol$interactio.PickCoordinatesInteraction;\n\n\nObject.entries({\n Workflow: _workflow2.Workflow,\n Step: _step.Step,\n OpenFormStep: _workflows.OpenFormStep,\n OpenTableStep: _workflows.OpenTableStep,\n AddFeatureStep: _workflows.AddFeatureStep,\n ModifyGeometryVertexStep: _workflows.ModifyGeometryVertexStep,\n MoveFeatureStep: _workflows.MoveFeatureStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nvar color = 'rgb(255,89,0)';\n\nvar SELECTED_STYLES = {\n 'Point': new ol.style.Style({ image: new ol.style.Circle({ radius: 8, fill: new ol.style.Fill({ color: color }) }) }),\n 'MultiPoint': new ol.style.Style({ image: new ol.style.Circle({ radius: 8, fill: new ol.style.Fill({ color: color }) }) }),\n 'Linestring': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }) }),\n 'MultiLinestring': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }) }),\n 'Polygon': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }), fill: new ol.style.Fill({ color: color }) }),\n 'MultiPolygon': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }), fill: new ol.style.Fill({ color: color }) })\n};\n\nexports.default = {\n\n mixins: [mediaMixin, fieldsMixin, resizeMixin],\n\n name: 'g3w-relation',\n\n data: function data() {\n return {\n loading: false,\n show_vector_tools: false,\n disabled: false,\n copylayerid: null,\n copyFeatureLayers: [],\n active: false,\n value: null,\n placeholdersearch: t('editing.search') + ' ...',\n resourcesurl: GUI.getResourcesUrl()\n };\n },\n\n\n methods: {\n resize: function resize() {\n if (!(this.active && 'none' !== this.$el.style.display)) {\n return;\n }\n\n var table = this.$refs.relation_body.querySelector('div.dataTables_scrollBody');\n\n if (table) {\n table.style.height = ((document.querySelector('.g3wform_body') || {}).offsetHeight || 0) - ((document.querySelector('.g3wform_footer') || {}).offsetHeight || 0) - ((this.$refs.relation_header_title || {}).offsetHeight || 0) - ((this.$refs.relation_header_tools || {}).offsetHeight || 0) - ((this.$el.querySelector('.dataTables_scrollHead') || {}).offsetHeight || 0) - ((this.$el.querySelector('.dataTables_paginate.paging_simple_numbers') || {}).offsetHeight || 0) - ((document.querySelector('.editing-save-all-form') || {}).offsetHeight || 0) - ((this.isVectorRelation && this.show_vector_tools && this.$refs.relation_vector_tools || {}).offsetHeight || 0) + 'px';\n }\n\n if (this.relationsTable) {\n this.relationsTable.columns.adjust();\n }\n },\n copyFeatureFromOtherLayer: function copyFeatureFromOtherLayer() {\n var _this = this;\n\n var copyLayer = this.copyFeatureLayers.find(function (l) {\n return _this.copylayerid === l.id;\n });\n var external = copyLayer.external;\n var layer = external ? GUI.getService('map').getLayerById(this.copylayerid) : CatalogLayersStoresRegistry.getLayerById(this.copylayerid);\n var is_vector = external || layer.isGeoLayer();\n this.runAddRelationWorkflow({\n workflow: is_vector ? new this._add_link_workflow.selectandcopy({\n copyLayer: layer,\n isVector: true,\n help: 'editing.steps.help.copy',\n external: external\n }) : undefined,\n isVector: is_vector\n });\n },\n closeVectorTools: function () {\n var _ref3 = _asyncToGenerator(function* () {\n this.show_vector_tools = false;\n yield this.$nextTick();\n this.resize();\n });\n\n function closeVectorTools() {\n return _ref3.apply(this, arguments);\n }\n\n return closeVectorTools;\n }(),\n addVectorRelation: function addVectorRelation() {\n this.runAddRelationWorkflow({\n workflow: new this._add_link_workflow.add(),\n isVector: Layer.LayerTypes.VECTOR === this._layerType\n });\n this.show_vector_tools = false;\n },\n updateSelectRelations: function updateSelectRelations() {\n var bool = !this.selectall || !this.relations.some(function (r) {\n return r.select;\n });\n this.relations.forEach(function (r) {\n return r.select = bool;\n });\n },\n editAttributesRelations: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var workflow = new _workflow2.Workflow({\n type: 'editmultiattributes',\n steps: [new _workflows.OpenFormStep({ multi: true })]\n });\n var options = this._createWorkflowOptions({\n features: this.relations.filter(function (r) {\n return r.select;\n }).map(function (_ref5) {\n var id = _ref5.id;\n return _this2.getLayer().getEditingSource().getFeatureById(id);\n })\n });\n try {\n yield (0, _promisify.promisify)(workflow.start(options));\n } catch (e) {\n console.warn(e);\n }\n\n workflow.stop();\n });\n\n function editAttributesRelations() {\n return _ref4.apply(this, arguments);\n }\n\n return editAttributesRelations;\n }(),\n addRelationAndLink: function () {\n var _ref6 = _asyncToGenerator(function* () {\n if (this.isVectorRelation) {\n this.show_vector_tools = !this.show_vector_tools;\n yield this.$nextTick();\n this.resize();\n } else {\n this.runAddRelationWorkflow({\n workflow: new this._add_link_workflow.add(),\n isVector: Layer.LayerTypes.VECTOR === this._layerType\n });\n }\n });\n\n function addRelationAndLink() {\n return _ref6.apply(this, arguments);\n }\n\n return addRelationAndLink;\n }(),\n relationAttributesSubset: function relationAttributesSubset(relation) {\n return relation.fields.map(function (_ref7) {\n var label = _ref7.label,\n name = _ref7.name,\n value = _ref7.value;\n return { name: name, label: label, value: value };\n }).flatMap(function (_ref8) {\n var name = _ref8.name,\n label = _ref8.label,\n value = _ref8.value;\n return Array.isArray(value) ? [] : [{ name: name, label: label, value: value }];\n });\n },\n getValue: function getValue(value) {\n if (value && 'Object' === toRawType(value)) {\n value = value.value;\n } else if ('string' == typeof value && 0 === value.indexOf('_new_')) {\n value = null;\n }\n this.value = value;\n return value;\n },\n _createDataTable: function _createDataTable() {\n var _this3 = this;\n\n this.relationsTable = $(this.$refs.relationTable).DataTable({\n autoWidth: false,\n columnDefs: [{ orderable: false, targets: [0, 1] }],\n destroy: true,\n order: [2, 'asc'],\n pageLength: 10,\n responsive: true,\n scrollCollapse: true,\n scrollResize: true,\n scrollX: true\n });\n\n $(\".dataTables_filter, .dataTables_length\").hide();\n\n $('#filterRelation').on('keyup', function (e) {\n return _this3.relationsTable.search(e.target.value).draw();\n });\n },\n destroyTable: function destroyTable() {\n if (this.relationsTable) {\n this.relationsTable = this.relationsTable.destroy();\n this.relationsTable = null;\n $('#filterRelation').off();\n }\n },\n updateTable: function () {\n var _ref9 = _asyncToGenerator(function* () {\n var _this4 = this;\n\n this.destroyTable();\n yield this.$nextTick();\n this._createDataTable();\n setTimeout(function () {\n return _this4.resize();\n });\n });\n\n function updateTable() {\n return _ref9.apply(this, arguments);\n }\n\n return updateTable;\n }(),\n updateNewRelationId: function updateNewRelationId() {\n var _this5 = this;\n\n this._new_relations_ids.forEach(function (_ref10) {\n var clientid = _ref10.clientid,\n id = _ref10.id;\n\n var newrelation = _this5.relations.find(function (r) {\n return clientid === r.id;\n });\n if (newrelation) {\n newrelation.id = id;\n\n (_this5.tools.find(function (ts) {\n return ts.find(function (t) {\n return t.state.id.split(clientid + '_').length > 1;\n });\n }) || []).forEach(function (t) {\n return t.state.id = t.state.id.replace(clientid + '_', id + '_');\n });\n }\n });\n },\n onCommit: function onCommit(_ref11) {\n var _ref11$new_relations = _ref11.new_relations,\n new_relations = _ref11$new_relations === undefined ? {} : _ref11$new_relations;\n\n var relationLayer = (0, _getEditingLayerById.getEditingLayerById)(this.relation.child);\n\n if (new_relations[relationLayer.getId()] && Array.isArray(new_relations[relationLayer.getId()].new)) {\n this._new_relations_ids = [].concat(_toConsumableArray(this._new_relations_ids || []), _toConsumableArray(new_relations[relationLayer.getId()].new.map(function (_ref12) {\n var clientid = _ref12.clientid,\n id = _ref12.id;\n return { clientid: clientid, id: id };\n })));\n }\n },\n getRelationFeatureValue: function getRelationFeatureValue(featureId, property) {\n return (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: this._relationLayerId,\n feature: this.getLayer().getEditingSource().getFeatureById(featureId),\n property: property\n });\n },\n enableDOMElements: function enableDOMElements() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n document.querySelectorAll('.editing-save-all-form').forEach(function (c) {\n if (bool && c.classList.contains('g3w-disabled')) {\n c.classList.remove('g3w-disabled');\n }\n if (!bool && !c.querySelector('.save-all-icon').classList.contains('g3w-disabled')) {\n c.classList.add('g3w-disabled');\n }\n });\n document.querySelectorAll('.g3w-editing-relations-add-link-tools, .g3wform_footer').forEach(function (c) {\n return c.classList.toggle('g3w-disabled', !bool);\n });\n },\n addTools: function addTools(id) {\n var _this6 = this;\n\n var tools = [this.capabilities.includes('change_attr_feature') && {\n state: Vue.observable({\n icon: 'editAttributes.png',\n id: id + '_editattributes',\n name: 'editing.tools.update_feature',\n enabled: true,\n active: false\n }),\n type: 'editfeatureattributes'\n }, Layer.LayerTypes.TABLE === this._layerType && this.capabilities.includes('add_feature') && {\n state: Vue.observable({\n icon: 'pasteFeaturesFromOtherLayers.png',\n id: id + '_copyfeature',\n name: 'editing.tools.copy',\n enabled: true,\n active: false\n }),\n type: 'addfeature'\n }, this.capabilities.includes('delete_feature') && {\n state: Vue.observable({\n icon: 'deleteTableRow.png',\n id: id + '_deletefeature',\n name: 'editing.tools.delete_feature',\n enabled: true,\n active: false\n }),\n type: 'deletefeature'\n }, this.capabilities.includes('change_feature') && Layer.LayerTypes.VECTOR === this._layerType && g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById(this._relationLayerId).getTools().filter(function (t) {\n return Geometry.isPointGeometryType(_this6.getLayer().getGeometryType()) ? 'movefeature' === t.getId() : ['movefeature', 'movevertex'].includes(t.getId());\n }).map(function (tool) {\n return {\n state: Vue.observable(_extends({}, tool, { id: id + '_' + tool.id })),\n type: tool.getOperator().type\n };\n })].flat().filter(Boolean);\n\n this.tools.push(tools);\n return tools;\n },\n startTool: function () {\n var _ref13 = _asyncToGenerator(function* (relationtool, index) {\n var _this7 = this;\n\n try {\n relationtool.state.active = !relationtool.state.active;\n\n if (!relationtool.state.active) {\n return Promise.resolve();\n }\n\n this.tools.forEach(function (tools) {\n tools.forEach(function (t) {\n if (relationtool.state.id !== t.state.id) {\n t.state.active = false;\n }\n });\n });\n\n yield _eventbus.VM.$nextTick();\n\n var d = {};\n var promise = new Promise(function (resolve, reject) {\n Object.assign(d, { resolve: resolve, reject: reject });\n });\n\n var is_vector = Layer.LayerTypes.VECTOR === this._layerType;\n var relation = this.relations[index];\n var toolId = relationtool.state.id.split(relation.id + '_')[1];\n var relationfeature = this.getLayer().getEditingSource().getFeatureById(relation.id);\n var selectStyle = is_vector && SELECTED_STYLES[this.getLayer().getGeometryType()];\n var options = this._createWorkflowOptions({ features: [relationfeature] });\n\n if ('copyfeature' === toolId) {\n yield new Promise(function () {\n var _ref14 = _asyncToGenerator(function* (resolve, reject) {\n options.inputs.features = [(0, _cloneFeature.cloneFeature)(relationfeature, _this7.getLayer())];\n\n var workflow = new _workflow2.Workflow({\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n });\n try {\n var outputs = yield (0, _promisify.promisify)(workflow.start(options));\n var feature = outputs.features[outputs.features.length - 1];\n _this7.relations.push({ id: feature.getId(), fields: _this7.getLayer().getFieldsWithValues(feature, { relation: true }) });\n resolve(feature);\n } catch (e) {\n console.warn(e);\n\n if (options.inputs && options.inputs.relationFeatures) {\n var _relations;\n\n (_relations = _this7.relations).push.apply(_relations, _toConsumableArray((options.inputs.relationFeatures.newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this7.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n }\n reject(e);\n } finally {\n workflow.stop();\n relationtool.state.active = false;\n }\n });\n\n return function (_x4, _x5) {\n return _ref14.apply(this, arguments);\n };\n }());\n }\n\n if ('deletefeature' === toolId) {\n\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: promise, inputs: { features: [relationfeature], layer: this.getLayer() }, style: selectStyle });\n\n GUI.dialog.confirm(t(\"editing.messages.delete_feature\"), function (res) {\n if (res) {\n _workflow2.Workflow.Stack.getCurrent().getSession().pushDelete(_this7._relationLayerId, relationfeature);\n\n _this7.relations.splice(index, 1);\n\n _this7.tools.splice(index, 1);\n\n var unique_fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this7._relationLayerId];\n\n if (undefined !== unique_fields) {\n Object.keys(relationfeature.getProperties()).filter(function (p) {\n return undefined !== unique_fields[p];\n }).forEach(function (p) {\n var values = new Set(unique_fields[p]);\n\n values.delete(relationfeature.get(p));\n });\n }\n\n _this7.getLayer().getEditingSource().removeFeature(relationfeature);\n\n if (relationfeature.isNew() && undefined === _workflow2.Workflow.Stack._workflows.find(function (w) {\n return w.getSession().state.changes.filter(function (_ref15) {\n var feature = _ref15.feature;\n return relationfeature.getUid() !== feature.getUid();\n }).length > 0;\n })) {\n _workflow2.Workflow.Stack._workflows.filter(function (w) {\n return w.getContextService() instanceof FormService;\n }).forEach(function (w) {\n return setTimeout(function () {\n return w.getContextService().state.update = false;\n });\n });\n } else {\n (0, _updateWorkflows.updateWorkflows)();\n }\n\n d.resolve(res);\n }\n\n if (!res) {\n d.reject();\n }\n });\n }\n\n if ('editattributes' === toolId) {\n var workflow = new _workflow2.Workflow({ type: 'edittablefeature', steps: [new _workflows.OpenFormStep({ selectStyle: selectStyle })] });\n\n try {\n yield (0, _promisify.promisify)(workflow.start(options));\n\n this.getLayer().getFieldsWithValues(relationfeature, { relation: true }).forEach(function (f) {\n relation.fields.forEach(function (rf) {\n if (rf.name === f.name) {\n rf.value = f.value;\n }\n });\n });\n d.resolve(true);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n\n workflow.stop();\n }\n\n if (['movevertex', 'movefeature'].includes(toolId) && this.currentRelationFeatureId !== relationfeature.getId()) {\n this.currentRelationFeatureId = relationfeature.getId();\n GUI.getService('map').zoomToFeatures([relationfeature]);\n }\n\n if (['movevertex', 'movefeature'].includes(toolId)) {\n GUI.setModal(false);\n this.enableDOMElements(false);\n var _workflow = new _workflow2.Workflow({\n type: relationtool.type,\n steps: [new {\n 'movevertex': _workflows.ModifyGeometryVertexStep,\n 'movefeature': _workflows.MoveFeatureStep\n }[toolId]({ selectStyle: selectStyle })]\n });\n\n var unwatch = _eventbus.VM.$watch(function () {\n return relationtool.state.active;\n }, function (bool) {\n if (!bool) {\n _this7.enableDOMElements(true);\n GUI.setModal(true);\n _workflow.unbindEscKeyUp();\n _workflow.stop();\n unwatch();\n d.reject(false);\n }\n });\n\n _workflow.bindEscKeyUp(function () {\n GUI.setModal(true);\n unwatch();\n d.reject(false);\n });\n\n try {\n yield (0, _promisify.promisify)(_workflow.start(options));\n\n _workflow2.Workflow.Stack.getParents().filter(function (w) {\n return w.getContextService().setUpdate;\n }).forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n d.resolve(true);\n setTimeout(function () {\n return _this7.startTool(relationtool, index);\n });\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n\n _workflow.unbindEscKeyUp();\n _workflow.stop();\n unwatch();\n }\n\n try {\n yield promise;\n } catch (e) {\n console.trace('START TOOL FAILED', e);\n return Promise.reject(e);\n } finally {\n relationtool.state.active = false;\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n function startTool(_x2, _x3) {\n return _ref13.apply(this, arguments);\n }\n\n return startTool;\n }(),\n getLayer: function getLayer() {\n return (0, _getEditingLayerById.getEditingLayerById)(this._relationLayerId);\n },\n runAddRelationWorkflow: function () {\n var _ref16 = _asyncToGenerator(function* () {\n var _this8 = this;\n\n var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n workflow = _ref17.workflow,\n _ref17$isVector = _ref17.isVector,\n isVector = _ref17$isVector === undefined ? false : _ref17$isVector;\n\n if (isVector) {\n GUI.setModal(false);\n GUI.hideContent(true);\n }\n\n var options = this._createWorkflowOptions();\n\n var _options$context = options.context,\n fatherField = _options$context.fatherField,\n fatherValue = _options$context.fatherValue;\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n }),\n relationField = _getRelationFieldsFro.relationField;\n\n try {\n var _relations2;\n\n var outputs = yield (0, _promisify.promisify)(workflow.start(options));\n\n if (isVector) {\n workflow.bindEscKeyUp();\n }\n\n var _outputs$relationFeat = outputs.relationFeatures,\n newFeatures = _outputs$relationFeat.newFeatures,\n originalFeatures = _outputs$relationFeat.originalFeatures;\n\n var setRelationFieldValue = function setRelationFieldValue(_ref18) {\n var field = _ref18.field,\n value = _ref18.value;\n\n newFeatures.forEach(function (newFeature, i) {\n newFeature.set(field, value);\n if (options.parentFeature.isNew()) {\n originalFeatures[i].set(field, value);\n }\n _this8.getLayer().getEditingSource().updateFeature(newFeature);\n options.context.session.pushUpdate(_this8._relationLayerId, newFeature, originalFeatures[i]);\n });\n };\n fatherField.forEach(function (field, i) {\n return setRelationFieldValue({ field: field, value: fatherValue[i] });\n });\n\n if (options.parentFeature.isNew() && this.getParent().editable.length > 0) {\n var keyRelationFeatureChange = options.parentFeature.on('propertychange', function (evt) {\n if (options.parentFeature.isNew()) {\n if (relationField.find(evt.key)) {\n setRelationFieldValue({\n field: evt.key,\n value: evt.target.get(evt.key)\n });\n }\n } else {\n ol.Observable.unByKey(keyRelationFeatureChange);\n }\n });\n }\n\n (_relations2 = this.relations).push.apply(_relations2, _toConsumableArray((newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this8.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n } catch (inputs) {\n console.warn(inputs);\n\n if (inputs && inputs.relationFeatures) {\n var _relations3;\n\n (_relations3 = this.relations).push.apply(_relations3, _toConsumableArray((inputs.relationFeatures.newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this8.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n }\n\n options.context.session.rollbackDependecies([this._relationLayerId]);\n }\n\n workflow.stop();\n\n if (isVector) {\n workflow.unbindEscKeyUp();\n GUI.hideContent(false);\n GUI.setModal(true);\n\n setTimeout(function () {\n return _this8.resize();\n });\n }\n });\n\n function runAddRelationWorkflow() {\n return _ref16.apply(this, arguments);\n }\n\n return runAddRelationWorkflow;\n }(),\n linkRelation: function () {\n var _ref19 = _asyncToGenerator(function* () {\n var _this9 = this;\n\n this.disabled = true;\n\n var is_vector = Layer.LayerTypes.VECTOR === this._layerType;\n var workflow = new this._add_link_workflow.link(is_vector ? {\n selectStyle: SELECTED_STYLES[this.getLayer().getGeometryType()]\n } : {});\n var options = this._createWorkflowOptions();\n\n var _getRelationFieldsFro2 = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n }),\n ownField = _getRelationFieldsFro2.ownField,\n relationField = _getRelationFieldsFro2.relationField;\n\n options.context.excludeFeatures = relationField.reduce(function (accumulator, rField, index) {\n accumulator[ownField[index]] = _this9.getParent().values[rField];\n return accumulator;\n }, {});\n\n if (is_vector) {\n GUI.setModal(false);\n }\n\n var feature = _workflow2.Workflow.Stack.getCurrent().getCurrentFeature();\n\n var getRelationFeatures = function getRelationFeatures() {\n return (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(_this9.layerId, {\n relations: [_this9.relation],\n feature: feature,\n operator: 'not',\n filterType: is_vector ? 'bbox' : 'fid'\n });\n };\n\n var response = {\n promise: undefined,\n showContent: false\n };\n\n if (is_vector) {\n options.context.beforeRun = _asyncToGenerator(function* () {\n yield new Promise(function (resolve) {\n return setTimeout(resolve);\n });\n yield getRelationFeatures();\n });\n\n workflow.bindEscKeyUp();\n\n response = {\n promise: workflow.start(options),\n showContent: true\n };\n\n this.enableDOMElements(false);\n } else {\n yield getRelationFeatures();\n }\n\n var linked = false;\n\n try {\n var outputs = yield (0, _promisify.promisify)(response.promise || workflow.start(options));\n\n (outputs.features || []).forEach(function (relation) {\n if (undefined === _this9.relations.find(function (rel) {\n return rel.id === relation.getId();\n })) {\n linked = linked || true;\n var originalRelation = relation.clone();\n Object.entries(_this9.getParent().values).forEach(function (_ref21) {\n var _ref22 = _slicedToArray(_ref21, 2),\n field = _ref22[0],\n value = _ref22[1];\n\n relation.set(ownField[relationField.findIndex(function (rF) {\n return field === rF;\n })], value);\n });\n _workflow2.Workflow.Stack.getCurrent().getSession().pushUpdate(_this9._relationLayerId, relation, originalRelation);\n _this9.relations.push({\n fields: _this9.getLayer().getFieldsWithValues(relation, { relation: true }),\n id: relation.getId()\n });\n } else {\n GUI.notify.warning(t(\"editing.relation_already_added\"));\n }\n });\n } catch (e) {\n console.warn(e);\n options.context.session.rollbackDependecies([this._relationLayerId]);\n }\n\n if (is_vector) {\n this.enableDOMElements(true);\n }\n\n if (response.showContent) {\n GUI.closeUserMessage();\n workflow.unbindEscKeyUp();\n }\n\n if (linked) {\n (0, _updateWorkflows.updateWorkflows)();\n }\n\n workflow.stop();\n\n this.disabled = false;\n });\n\n function linkRelation() {\n return _ref19.apply(this, arguments);\n }\n\n return linkRelation;\n }(),\n unlinkRelation: function (_unlinkRelation) {\n function unlinkRelation(_x8) {\n return _unlinkRelation.apply(this, arguments);\n }\n\n unlinkRelation.toString = function () {\n return _unlinkRelation.toString();\n };\n\n return unlinkRelation;\n }(function (index) {\n var dialog = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n return unlinkRelation({\n layerId: this.layerId,\n relation: this.relation,\n relations: this.relations,\n index: index,\n dialog: dialog\n });\n }),\n getParent: function getParent() {\n var _this10 = this;\n\n var parentLayer = this.parentWorkflow.getLayer();\n\n var _getRelationFieldsFro3 = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: this.layerId, relation: this.relation }),\n ownField = _getRelationFieldsFro3.ownField;\n\n var pk = ownField.find(function (f) {\n return parentLayer.isPkField(f);\n });\n\n return {\n editable: ownField.filter(function (f) {\n return parentLayer.isEditingFieldEditable(f);\n }),\n\n pk: pk,\n\n values: ownField.reduce(function (father, field) {\n var feature = _this10.parentWorkflow.getCurrentFeature();\n\n var fields = _this10.parentWorkflow.getInputs().fields;\n return Object.assign(father, _defineProperty({}, field, pk === field && feature.isNew() ? feature.getId() : fields ? fields.find(function (f) {\n return field === f.name;\n }).value : feature.get(field)));\n }, {})\n };\n },\n _createWorkflowOptions: function _createWorkflowOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var fields = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n });\n var parent = Object.entries(this.getParent().values);\n return {\n parentFeature: _workflow2.Workflow.Stack.getCurrent().getCurrentFeature(),\n context: {\n session: _workflow2.Workflow.Stack.getCurrent().getSession(),\n excludeFields: fields.ownField,\n fatherValue: parent.map(function (_ref23) {\n var _ref24 = _slicedToArray(_ref23, 2),\n _ = _ref24[0],\n value = _ref24[1];\n\n return value;\n }),\n fatherField: parent.map(function (_ref25) {\n var _ref26 = _slicedToArray(_ref25, 1),\n field = _ref26[0];\n\n return fields.ownField[fields.relationField.findIndex(function (rField) {\n return field === rField;\n })];\n }) },\n inputs: {\n features: options.features || [],\n layer: this.getLayer()\n }\n };\n }\n },\n\n computed: {\n selectall: function selectall() {\n return this.relations.every(function (r) {\n return r.select;\n });\n },\n relationsLength: function relationsLength() {\n return this.relations.length;\n },\n fieldrequired: function fieldrequired() {\n var _this11 = this;\n\n return (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: this._relationLayerId, relation: this.relation }).ownField.some(function (field) {\n return (0, _getEditingLayerById.getEditingLayerById)(_this11._relationLayerId).isFieldRequired(field);\n });\n },\n show_add_link: function show_add_link() {\n return 0 === this.relations.length || 'ONE' !== this.relation.type;\n }\n },\n\n watch: {\n relations: function relations(_) {\n var updatedrelations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (0 === updatedrelations.length) {\n this.destroyTable();\n } else {\n this.updateNewRelationId();\n this.updateTable();\n }\n },\n show_vector_tools: function show_vector_tools(bool) {\n this.enableDOMElements(!bool);\n this.disabled = bool;\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n },\n created: function created() {\n var _this12 = this,\n _Layer$LayerTypes$TAB;\n\n var relationLayer = (0, _getEditingLayerById.getEditingLayerById)(this.relation.child);\n\n this._new_relations_ids = [];\n\n this.onCommit = this.onCommit.bind(this);\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').on('commit', this.onCommit);\n\n this.isVectorRelation = Layer.LayerTypes.VECTOR === relationLayer.getType();\n\n if (this.isVectorRelation) {\n var geometryType = relationLayer.getGeometryType();\n this.copyFeatureLayers = [].concat(_toConsumableArray(CatalogLayersStoresRegistry.getLayers({\n QUERYABLE: true,\n GEOLAYER: true\n }).filter(function (l) {\n return l.getGeometryType && l.getGeometryType() && ![_this12.relation.child, _this12.relation.father].includes(l.getId()) && (l.getGeometryType() === geometryType || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(l.getGeometryType(), geometryType) && Geometry.isMultiGeometry(geometryType));\n }).map(function (l) {\n return {\n id: l.getId(),\n name: l.getName(),\n external: false\n };\n })), _toConsumableArray(GUI.getService('map').getExternalLayers('vector').filter(function (l) {\n var features = l.getSource().getFeatures() || [];\n\n if (!features[0] || !features[0].getGeometry()) {\n return false;\n }\n var type = features[0].getGeometry().getType();\n return geometryType === type || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, type) && (Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(type));\n }).map(function (l) {\n return {\n id: l.get('id'),\n name: l.get('name'),\n external: true\n };\n }))).sort(function (a, b) {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n this.addExternalLayerKey = GUI.getService('catalog').onafter('addExternalLayer', function (_ref27) {\n var layer = _ref27.layer,\n type = _ref27.type;\n\n if ('vector' === type) {\n var externalLayer = GUI.getService('map').getExternalLayers().find(function (l) {\n return layer.id === l.get('id');\n });\n if (externalLayer) {\n var features = externalLayer.getSource().getFeatures() || [];\n if (!features[0] || !features[0].getGeometry()) {\n return;\n }\n var _type = features[0].getGeometry().getType();\n if (geometryType === _type || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, _type) && (Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(_type))) {\n _this12.copyFeatureLayers.push({\n id: externalLayer.get('id'),\n name: externalLayer.get('name'),\n external: true\n });\n }\n }\n }\n });\n }\n\n this.copylayerid = this.copyFeatureLayers.length ? this.copyFeatureLayers[0].id : null;\n\n this.loadEventuallyRelationValuesForInputs = false;\n\n this.currentRelationFeatureId = null;\n\n this._relationLayerId = this.relation.child === this.layerId ? this.relation.father : this.relation.child;\n\n this._layerType = this.getLayer().getType();\n\n this.parentWorkflow = _workflow2.Workflow.Stack.getCurrent();\n\n this.capabilities = this.parentWorkflow.getLayer().getEditingCapabilities();\n\n this.tools = [];\n\n var self = this;\n\n this._add_link_workflow = (_Layer$LayerTypes$TAB = {}, _defineProperty(_Layer$LayerTypes$TAB, Layer.LayerTypes.TABLE, {\n link: function link() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'edittable',\n backbuttonlabel: 'plugins.editing.form.buttons.save_and_back_table',\n steps: [new _workflows.OpenTableStep()]\n }));\n },\n add: function add() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n }));\n }\n }), _defineProperty(_Layer$LayerTypes$TAB, Layer.LayerTypes.VECTOR, {\n link: function link() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow({\n type: 'linkrelation',\n steps: [new _step.Step(_extends({}, options, {\n help: \"editing.steps.help.select_feature_to_relation\",\n run: function run(inputs, context) {\n var _this13 = this;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref28 = _asyncToGenerator(function* (resolve, reject) {\n var promise = new Promise(function (r) {\n return _this13.resolve = r;\n });\n GUI.setModal(false);\n var editingLayer = inputs.layer.getEditingLayer();\n try {\n if (context.beforeRun && 'function' === typeof context.beforeRun) {\n yield (0, _promisify.promisify)(context.beforeRun());\n }\n var features = editingLayer.getSource().getFeatures().filter(function (f) {\n return Object.entries(context.excludeFeatures || {}).reduce(function (bool, _ref29) {\n var _ref30 = _slicedToArray(_ref29, 2),\n field = _ref30[0],\n value = _ref30[1];\n\n return bool && value != f.get(field);\n }, true);\n });\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({\n promise: (0, _promisify.$promisify)(promise),\n inputs: { layer: inputs.layer, features: features },\n style: _this13.selectStyle\n });\n\n _this13.addInteraction(new PickFeatureInteraction({ layers: [editingLayer], features: features }), {\n 'picked': function picked(e) {\n inputs.features.push(e.feature);\n GUI.setModal(true);\n resolve(inputs);\n }\n });\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x14, _x15) {\n return _ref28.apply(this, arguments);\n };\n }()));\n },\n stop: function stop() {\n GUI.setModal(true);\n\n this.resolve(true);\n this.resolve = null;\n return true;\n }\n }))]\n });\n },\n\n add: function add() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var addStep = new _workflows.AddFeatureStep(_extends({}, options, {\n steps: {\n draw: {\n description: 'editing.steps.help.draw_new_feature',\n done: false\n }\n },\n tools: ['snap', 'measure']\n }));\n\n addStep.on('stop', function () {\n addStep.setUserMessageStepDone('draw');\n GUI.closeUserMessage();\n });\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'addfeature',\n steps: [addStep, new _workflows.OpenFormStep(options)],\n registerEscKeyEvent: true\n }));\n },\n\n selectandcopy: function selectandcopy() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow({\n type: 'selectandcopyfeaturesfromotherlayer',\n steps: [new _step.Step(_extends({}, options, {\n help: \"editing.steps.help.pick_feature\",\n steps: {\n select: {\n description: 'editing.workflow.steps.selectPoint',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this14 = this;\n\n if (!options.copyLayer) {\n return (0, _promisify.$promisify)(Promise.resolve());\n }\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var features = [];\n var geometryType = inputs.layer.getGeometryType();\n\n if (options.isVector) {\n yield new Promise(function () {\n var _ref32 = _asyncToGenerator(function* (resolve) {\n _this14.addInteraction(options.external ? new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: options.copyLayer }) : new PickCoordinatesInteraction(), {\n 'picked': function () {\n var _ref33 = _asyncToGenerator(function* (e) {\n try {\n features = (0, _convertToGeometry.convertToGeometry)(options.external ? e.features : ((yield DataRouterService.getData('query:coordinates', {\n inputs: {\n coordinates: e.coordinate,\n query_point_tolerance: ProjectsRegistry.getCurrentProject().getQueryPointTolerance(),\n layerIds: [options.copyLayer.getId()],\n multilayers: false\n },\n outputs: null\n })).data[0] || { features: [] }).features, geometryType);\n } catch (e) {\n console.warn(e);\n } finally {\n resolve();\n }\n });\n\n function picked(_x19) {\n return _ref33.apply(this, arguments);\n }\n\n return picked;\n }()\n });\n });\n\n return function (_x18) {\n return _ref32.apply(this, arguments);\n };\n }());\n }\n\n var _feature = void 0;\n\n try {\n _feature = features.length > 1 ? yield (0, _promisify.promisify)((0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs })) : features[0];\n } catch (e) {\n console.warn(e);\n }\n\n if (_feature) {\n var feature = new Feature({\n feature: _feature,\n properties: inputs.layer.getEditingFields().filter(function (attr) {\n return !attr.pk;\n }).map(function (attr) {\n return attr.name;\n })\n });\n feature.setTemporaryId();\n inputs.features = [feature];\n inputs.layer.getEditingLayer().getSource().addFeature(feature);\n context.session.pushAdd(inputs.layer.getId(), feature, false);\n return inputs;\n }\n\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n closable: false,\n autoclose: true\n });\n\n return Promise.reject();\n }));\n },\n stop: function stop() {\n self.show_vector_tools = false;\n this.setUserMessageStepDone('select');\n GUI.closeUserMessage();\n }\n })), new _workflows.OpenFormStep(options)],\n registerEscKeyEvent: true\n });\n }\n }), _Layer$LayerTypes$TAB)[this._layerType];\n\n this.relations.forEach(function (r) {\n return _this12.addTools(r.id);\n });\n },\n activated: function () {\n var _ref34 = _asyncToGenerator(function* () {\n if (this.isVectorRelation) {\n this.mapExtent = GUI.getService('map').getMapBBOX();\n }\n\n this.show_vector_tools = false;\n\n if (!this.loadEventuallyRelationValuesForInputs) {\n this.loading = true;\n\n try {\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({\n type: 'show-relation-editing',\n id: (0, _getRelationId.getRelationId)({ layerId: this.layerId, relation: this.relation }),\n component: this\n });\n } catch (e) {\n console.warn(e);\n }\n\n this.loading = false;\n\n this.loadEventuallyRelationValuesForInputs = true;\n }\n\n this.active = true;\n\n yield this.$nextTick();\n\n if (!this.relationsTable && this.relations.length > 0) {\n this._createDataTable();\n }\n\n this.resize();\n });\n\n function activated() {\n return _ref34.apply(this, arguments);\n }\n\n return activated;\n }(),\n deactivated: function deactivated() {\n this.destroyTable();\n this.active = false;\n\n this.relations.forEach(function (r) {\n return r.select = false;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.loadEventuallyRelationValuesForInputs = true;\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').off('commit', this.onCommit);\n\n if (this.isVectorRelation && null !== this.currentRelationFeatureId) {\n GUI.getService('map').zoomToExtent(this.mapExtent);\n this.mapExtent = null;\n }\n\n if (this.addExternalLayerKey) {\n GUI.getService('catalog').un('addExternalLayer', this.addExternalLayerKey);\n this.addExternalLayerKey = 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',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"margin-bottom\":\"5px\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('div',{ref:\"relation_header_title\",staticClass:\"relation_header_title box-header with-border skin-color\"},[_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.edit_relation'),expression:\"'editing.edit_relation'\"}]}),_vm._v(\" \"),_c('span',{staticStyle:{\"margin-left\":\"2px\"}},[_vm._v(\": \"+_vm._s(_vm.relation.name.toUpperCase()))])]),_vm._v(\" \"),_c('div',{ref:\"relation_header_tools\",staticClass:\"relation_header_tools box-header with-border\"},[_c('div',{attrs:{\"id\":\"search-box\"}},[(_vm.relationsLength)?_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"filterRelation\",\"placeholder\":_vm.placeholdersearch}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"g3w-editing-relations-add-link-tools\"},[(_vm.relationsLength > 0 && _vm.capabilities.includes('change_attr_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.tools.update_multi_features_relations'),expression:\"'plugins.editing.tools.update_multi_features_relations'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon\"},[_c('span',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.relations.every(function (r) { return !r.select; })),expression:\"relations.every(r => !r.select)\"}],on:{\"click\":function($event){$event.stopPropagation();return _vm.editAttributesRelations()}}},[_c('img',{attrs:{\"height\":\"25\",\"width\":\"25\",\"src\":(_vm.resourcesurl + \"images/multiEditAttributes.png\")}})])]):_vm._e(),_vm._v(\" \"),(_vm.capabilities.includes('change_attr_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.form.relations.tooltips.link_relation'),expression:\"'plugins.editing.form.relations.tooltips.link_relation'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon add-link\",class:[{ 'disabled': !_vm.show_add_link }, _vm.g3wtemplate.font['link']],attrs:{\"align\":\"center\"},on:{\"click\":function($event){$event.stopPropagation();_vm.show_add_link ? _vm.linkRelation() : null}}}):_vm._e(),_vm._v(\" \"),(_vm.capabilities.includes('add_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.form.relations.tooltips.add_relation'),expression:\"'plugins.editing.form.relations.tooltips.add_relation'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon add-link pull-right\",class:[{ 'disabled' : !_vm.show_add_link }, _vm.g3wtemplate.font['plus']],on:{\"click\":function($event){$event.stopPropagation();_vm.show_add_link ? _vm.addRelationAndLink() : null}}}):_vm._e()])]),_vm._v(\" \"),(_vm.show_vector_tools)?_c('section',{ref:\"relation_vector_tools\",staticClass:\"relation_vector_tools\"},[_c('span',{staticClass:\"close_vector_relation_tool\",on:{\"click\":function($event){$event.stopPropagation();return _vm.closeVectorTools($event)}}},[_c('i',{staticClass:\"g3w-icon skin-color\",class:_vm.g3wtemplate.font['close']})]),_vm._v(\" \"),_c('div',[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.draw_new_feature'),expression:\"'editing.relation.draw_new_feature'\"}],staticClass:\"g3w-editing-new-relation-vector-type\"}),_vm._v(\" \"),_c('button',{staticClass:\"btn skin-button\",staticStyle:{\"width\":\"100%\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addVectorRelation($event)}}},[_c('i',{class:_vm.g3wtemplate.font['pencil']})])]),_vm._v(\" \"),_c('section',[_c('span',{staticClass:\"divider\"}),_vm._v(\" \"),_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.draw_or_copy'),expression:\"'editing.relation.draw_or_copy'\"}],staticStyle:{\"align-self\":\"center\"}}),_vm._v(\" \"),_c('span',{staticClass:\"divider\"}),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.copy_feature_from_other_layer'),expression:\"'editing.relation.copy_feature_from_other_layer'\"}],staticClass:\"g3w-editing-new-relation-vector-type\"}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('copylayerid'),expression:\"'copylayerid'\"}],attrs:{\"id\":\"g3w-select-editable-layers-to-copy\"}},_vm._l((_vm.copyFeatureLayers),function(layer){return _c('option',{key:layer.id,domProps:{\"value\":layer.id}},[_vm._v(_vm._s(layer.name))])}),0),_vm._v(\" \"),_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(0 === _vm.copyFeatureLayers.length),expression:\"0 === copyFeatureLayers.length\"}],staticClass:\"btn skin-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.copyFeatureFromOtherLayer($event)}}},[_c('i',{class:_vm.g3wtemplate.font['clipboard']})])])])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disabled),expression:\"disabled\"}],ref:\"relation_body\",staticClass:\"relation_body box-body\"},[(_vm.relationsLength > 0 && !_vm.update)?_c('table',{ref:\"relationTable\",staticClass:\"table g3wform-relation-table table-striped nowrap\"},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"padding\":\"10px\"}},[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"id\":\"select_all_relations\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.selectall},on:{\"change\":function($event){return _vm.updateSelectRelations()}}}),_vm._v(\" \"),_c('label',{staticStyle:{\"margin\":\"0\"},attrs:{\"for\":\"select_all_relations\"}},[_vm._v(\" \")])]),_vm._v(\" \"),_c('th',{directives:[{name:\"t\",rawName:\"v-t\",value:('tools'),expression:\"'tools'\"}]}),_vm._v(\" \"),_c('th'),_vm._v(\" \"),_vm._l((_vm.relationAttributesSubset(_vm.relations[0])),function(attribute){return _c('th',[_vm._v(_vm._s(attribute.label))])})],2)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.relations),function(relation,index){return _c('tr',{key:relation.id,staticClass:\"featurebox-header\"},[_c('td',{staticStyle:{\"padding-top\":\"0\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(relation.select),expression:\"relation.select\"}],staticClass:\"magic-checkbox\",attrs:{\"id\":(\"select_relation__\" + index),\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(relation.select)?_vm._i(relation.select,null)>-1:(relation.select)},on:{\"change\":function($event){var $$a=relation.select,$$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.$set(relation, \"select\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(relation, \"select\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(relation, \"select\", $$c)}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"select_relation__\" + index)}})]),_vm._v(\" \"),_c('td',[_c('div',{staticStyle:{\"display\":\"flex\"}},_vm._l(((_vm.tools[index] || _vm.addTools(_vm.relations[index].id))),function(tool){\nvar _obj;\nreturn _c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:((\"plugins.\" + (tool.state.name))),expression:\"`plugins.${tool.state.name}`\",arg:\"top\",modifiers:{\"create\":true}}],key:tool.state.id,class:( _obj = { enabled: true, 'toggled': tool.state.active }, _obj[(\"editbtn \" + (tool.state.id))] = true, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.startTool(tool, index)}}},[_c('img',{attrs:{\"height\":\"20px\",\"width\":\"20px\",\"src\":(_vm.resourcesurl + \"images/\" + (tool.state.icon))}})])}),0)]),_vm._v(\" \"),_c('td',{staticClass:\"action-cell\"},[(!_vm.fieldrequired && _vm.capabilities.includes('change_attr_feature'))?_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.form.relations.tooltips.unlink_relation'),expression:\"'plugins.editing.form.relations.tooltips.unlink_relation'\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"g3w-mini-relation-icon g3w-icon\",class:_vm.g3wtemplate.font['unlink'],attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.unlinkRelation(index)}}}):_vm._e()]),_vm._v(\" \"),_vm._l((_vm.relationAttributesSubset(relation)),function(attribute){return _c('td',[(_vm.isMedia(attribute.value) && _vm.getValue(attribute.value))?_c('div',{staticClass:\"preview\"},[_c('a',{attrs:{\"href\":_vm.getValue(attribute.value),\"target\":\"_blank\"}},[_c('div',{staticClass:\"previewtype\",class:_vm.getMediaType(attribute.value.mime_type).type},[_c('i',{staticClass:\"fa-2x\",class:_vm.g3wtemplate.font[_vm.getMediaType(attribute.value.mime_type).type]})])]),_vm._v(\" \"),_c('div',{staticClass:\"filename\"},[_vm._v(_vm._s(_vm.getValue(attribute.value).split('/').pop()))])]):(['photo', 'link'].includes(_vm.getFieldType(attribute)))?_c('a',{attrs:{\"href\":_vm.getValue(attribute.value),\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.getValue(attribute.value))+\"\\n \")]):_c('span',[_vm._v(_vm._s(_vm.getValue(_vm.getRelationFeatureValue(relation.id, attribute.name))))])])})],2)}),0)]):_vm._e()])],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-2b09c990\"\n\n},{\"../eventbus\":11,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addTableFeature\":30,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/cloneFeature\":35,\"../utils/convertToGeometry\":36,\"../utils/getEditingLayerById\":42,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/isSameBaseGeometryType\":56,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/updateWorkflows\":64,\"../workflows\":65,\"vueify/lib/insert-css\":1}],7:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-table table.dataTable tbody td{padding:3px 5px}\\n.editing_table_title[data-v-c130bb64]{margin-top:0;margin-bottom:2px;font-size:1.5em;font-weight:700;color:var(--skin-color)}#table-editing-tools[data-v-c130bb64]{display:flex;justify-content:space-between}#table-editing-tools i[data-v-c130bb64]{margin:5px}#buttons button.btn[data-v-c130bb64]{font-weight:700!important;min-width:80px}.table_editing_footer_buttons[data-v-c130bb64]{position:absolute;bottom:10px;width:100%;display:flex;justify-content:center}.editing_table_header_content[data-v-c130bb64]{display:flex;justify-content:space-between;align-items:baseline}.editing_table_relation_messagge[data-v-c130bb64]{margin-bottom:10px;font-size:1.3em;background-color:#f5f5f5;padding:3px;border-radius:3px;font-weight:700}\")\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 _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 _step = require('../g3wsdk/workflow/step');\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _workflows = require('../workflows');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _promisify = require('../utils/promisify');\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 tPlugin = g3wsdk.core.i18n.tPlugin;\nvar GUI = g3wsdk.gui.GUI;\nvar resizeMixin = g3wsdk.gui.vue.Mixins.resizeMixin;\n\nvar Media_Field = g3wsdk.gui.vue.Fields.media_field;\n\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nexports.default = {\n\n name: 'Table',\n\n mixins: [resizeMixin],\n\n components: {\n 'g3w-media': Media_Field\n },\n\n data: function data() {\n return {\n dataTable: null,\n show: true,\n state: this.$options.service.state\n };\n },\n\n\n methods: {\n showTool: function showTool(type) {\n return undefined !== this.state.capabilities.find(function (cap) {\n return cap === type;\n });\n },\n resize: function () {\n var _ref3 = _asyncToGenerator(function* () {\n if ('none' === this.$el.style.display) {\n return;\n }\n\n yield this.$nextTick();\n\n $('#editing_table div.dataTables_scrollBody').height($(\".content\").height() - $('.close-panel-block').outerHeight() - $('#editing_table div.dataTables_scrollHeadInner').outerHeight() - $('.editing_table_title').outerHeight() - $('.editing_table_header').outerHeight() - $('.editing_table_relation_messagge').outerHeight() - $('.dataTables_length').outerHeight() - $('.dataTables_paginate.paging_simple_numbers').outerHeight() - $('.dataTables_info').outerHeight() - $('.dataTables_filter').outerHeight() - $('.table_editing_footer_buttons').outerHeight() - $('#editing_table .dataTables_paginate.paging_simple_numbers').outerHeight());\n\n if (this.dataTable) {\n this.dataTable.columns.adjust();\n }\n });\n\n function resize() {\n return _ref3.apply(this, arguments);\n }\n\n return resize;\n }(),\n showValue: function showValue(key) {\n return !!this.state.headers.find(function (h) {\n return key === h.name;\n });\n },\n isMediaField: function isMediaField(name) {\n var isMedia = false;\n for (var i = 0; i < this.state.headers.length; i++) {\n var header = this.state.headers[i];\n if (name === header.name && 'media' === header.input.type) {\n isMedia = true;\n break;\n }\n }\n return isMedia;\n },\n stop: function stop() {\n this.state.promise.reject();\n },\n save: function save() {\n var _this = this;\n\n this.state.isrelation ? this.state.promise.resolve({ features: (this._linkFeatures || []).map(function (i) {\n return _this.state.features[i];\n }) }) : this.state.promise.resolve();\n },\n cancel: function cancel() {\n this.state.promise.reject();\n },\n deleteFeature: function () {\n var _ref4 = _asyncToGenerator(function* (uid) {\n var _this2 = this;\n\n var element = $('#editing_table table tr#' + uid);\n var layer = this.state.inputs.layer;\n var layerId = layer.getId();\n var childRelations = layer.getChildren();\n var relationinediting = childRelations.length && (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: layer.getRelations().getArray()\n }).length > 0;\n\n try {\n yield new Promise(function (resolve, reject) {\n GUI.dialog.confirm('

' + tPlugin('editing.messages.delete_feature') + '

\\n
' + (relationinediting ? tPlugin('editing.messages.delete_feature_relations') : '') + '
', function (result) {\n if (result) {\n var index = _this2.state.features.findIndex(function (f) {\n return f.getUid() === uid;\n });\n var feature = _this2.state.features[index];\n var session = _this2.state.context.session;\n var _layerId = _this2.state.inputs.layer.getId();\n _this2.state.inputs.layer.getEditingSource().removeFeature(feature);\n session.pushDelete(_layerId, feature);\n _this2.state.rows.splice(index, 1);\n resolve();\n } else {\n reject();\n }\n });\n });\n\n this.dataTable.row(element).remove().draw();\n\n yield this.$nextTick();\n } catch (e) {\n console.warn(e);\n }\n });\n\n function deleteFeature(_x) {\n return _ref4.apply(this, arguments);\n }\n\n return deleteFeature;\n }(),\n copyFeature: function () {\n var _ref5 = _asyncToGenerator(function* (uid) {\n var _this3 = this;\n\n yield new Promise(function () {\n var _ref6 = _asyncToGenerator(function* (resolve, reject) {\n var feature = (0, _cloneFeature.cloneFeature)(_this3.state.features.find(function (f) {\n return uid === f.getUid();\n }), _this3.state.inputs.layer.getEditingLayer());\n\n _this3.state.workflow = new _workflow.Workflow({\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n });\n _this3.state.inputs.features.push(feature);\n try {\n var outputs = yield (0, _promisify.promisify)(_this3.state.workflow.start({\n context: _this3.state.context,\n inputs: _this3.state.inputs\n }));\n var _feature = outputs.features[outputs.features.length - 1];\n var newFeature = {};\n Object.entries(_this3.state.rows[0]).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n key = _ref8[0],\n _ = _ref8[1];\n\n newFeature[key] = (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: _this3.state.layerId,\n feature: _feature,\n property: key\n });\n });\n newFeature.__gis3w_feature_uid = _feature.getUid();\n _this3.state.rows.push(newFeature);\n resolve(newFeature);\n } catch (e) {\n console.warn(e);reject(e);\n } finally {\n _this3.state.workflow.stop();\n\n console.log('here we are');\n }\n });\n\n return function (_x3, _x4) {\n return _ref6.apply(this, arguments);\n };\n }());\n\n this.show = false;\n this.dataTable.destroy();\n\n yield this.$nextTick();\n\n this.show = true;\n\n yield this.$nextTick();\n\n this.setDataTable();\n });\n\n function copyFeature(_x2) {\n return _ref5.apply(this, arguments);\n }\n\n return copyFeature;\n }(),\n editFeature: function () {\n var _ref9 = _asyncToGenerator(function* (uid) {\n var _this4 = this;\n\n var index = this.state.features.findIndex(function (f) {\n return uid === f.getUid();\n });\n var feature = this.state.features[index];\n\n this.state.workflow = new _workflow.Workflow({ type: 'edittablefeature', steps: [new _workflows.OpenFormStep()] });\n\n var inputs = this.state.inputs;\n\n inputs.features.push(feature);\n\n try {\n var outputs = yield (0, _promisify.promisify)(this.state.workflow.start({\n context: this.state.context,\n inputs: inputs\n }));\n var _feature2 = outputs.features[outputs.features.length - 1];\n Object.entries(this.state.rows[index]).forEach(function (_ref10) {\n var _ref11 = _slicedToArray(_ref10, 2),\n key = _ref11[0],\n _ = _ref11[1];\n\n _this4.state.rows[index][key] = (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: _this4.state.layerId,\n feature: _feature2,\n property: key\n });\n });\n } catch (e) {\n console.warn(e);\n } finally {\n this.state.workflow.stop();\n }\n });\n\n function editFeature(_x5) {\n return _ref9.apply(this, arguments);\n }\n\n return editFeature;\n }(),\n linkFeature: function linkFeature(index, evt) {\n if (evt.target.checked) {\n this._linkFeatures.push(index);\n } else {\n this._linkFeatures = this._linkFeatures.filter(function (addindex) {\n return addindex !== index;\n });\n }\n },\n getValue: function getValue(value) {\n if (value && 'object' === (typeof value === 'undefined' ? 'undefined' : _typeof(value)) && Object === value.constructor) {\n value = value.value;\n } else if ('string' == typeof value && 0 === value.indexOf('_new_')) {\n value = null;\n }\n return value;\n },\n setDataTable: function setDataTable() {\n this.dataTable = $('#editing_table table').DataTable({\n columnDefs: [{ orderable: false, targets: 0 }],\n order: [1, 'asc'],\n pageLength: 10,\n scrollCollapse: true,\n scrollResize: true,\n scrollX: true\n });\n this.resize();\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n\n GUI.disableSideBar(true);\n\n GUI.showUserMessage({\n type: 'loading',\n message: 'plugins.editing.messages.loading_table_data',\n autoclose: false,\n closable: false\n });\n },\n mounted: function () {\n var _ref12 = _asyncToGenerator(function* () {\n\n yield this.$nextTick();\n\n if (this.state.isrelation) {\n this._linkFeatures = [];\n }\n\n this.setDataTable();\n\n this.resize();\n\n setTimeout(function () {\n return GUI.closeUserMessage();\n }, 300);\n });\n\n function mounted() {\n return _ref12.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.cancel();\n this._linkFeatures = null;\n this.dataTable.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('div',{staticClass:\"g3w-editing-table\",attrs:{\"id\":\"editing_table\"}},[_c('div',{ref:\"editing_table_header\",staticClass:\"editing_table_header\"},[_c('div',{staticClass:\"editing_table_header_content\"},[_c('h3',{staticClass:\"editing_table_title\"},[_vm._v(_vm._s(_vm.state.title))])]),_vm._v(\" \"),(_vm.state.isrelation)?_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.table.info'),expression:\"'editing.relation.table.info'\"}],staticClass:\"editing_table_relation_messagge\"}):_vm._e()]),_vm._v(\" \"),(_vm.show)?_c('table',{staticClass:\"display\",staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[(!_vm.state.isrelation)?_c('th',{staticStyle:{\"max-width\":\"60px\"}}):_vm._e(),_vm._v(\" \"),(_vm.state.isrelation)?_c('th'):_vm._e(),_vm._v(\" \"),_vm._l((_vm.state.headers),function(header){return _c('th',[_vm._v(_vm._s(header.label))])})],2)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.state.rows),function(feature,index){return _c('tr',{key:feature.__gis3w_feature_uid,attrs:{\"id\":feature.__gis3w_feature_uid}},[(!_vm.state.isrelation)?_c('td',[_c('div',{attrs:{\"id\":\"table-editing-tools\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.edit'),expression:\"'plugins.editing.table.edit'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('change_attr_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['pencil'],staticStyle:{\"color\":\"#30cce7\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.editFeature(feature.__gis3w_feature_uid)}}}):_vm._e()]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.copy'),expression:\"'plugins.editing.table.copy'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('add_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['copy-paste'],staticStyle:{\"color\":\"#d98b14\",\"padding\":\"5px 7px 5px 7px\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.copyFeature(feature.__gis3w_feature_uid)}}}):_vm._e()]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.delete'),expression:\"'plugins.editing.table.delete'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('delete_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['trash-o'],staticStyle:{\"color\":\"red\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteFeature(feature.__gis3w_feature_uid)}}}):_vm._e()])])]):_vm._e(),_vm._v(\" \"),(_vm.state.isrelation)?_c('td',[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"id\":(\"relation__\" + index),\"type\":\"checkbox\"},on:{\"change\":function($event){return _vm.linkFeature(index, $event)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"relation__\" + index)}})]):_vm._e(),_vm._v(\" \"),_vm._l((feature),function(value,key){return (_vm.showValue(key))?_c('td',{key:key},[(_vm.getValue(value) && _vm.isMediaField(key))?_c('g3w-media',{attrs:{\"state\":value}}):_c('p',[_vm._v(_vm._s(_vm.getValue(value)))])],1):_vm._e()})],2)}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"table_editing_footer_buttons\",staticClass:\"table_editing_footer_buttons\",attrs:{\"id\":\"buttons\"}},[_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'),expression:\"state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'\"}],staticClass:\"btn btn-success\",staticStyle:{\"margin-right\":\"10px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.save($event)}}}),_vm._v(\" \"),_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.form.buttons.cancel'),expression:\"'editing.form.buttons.cancel'\"}],staticClass:\"btn btn-danger\",on:{\"click\":function($event){$event.stopPropagation();return _vm.cancel($event)}}})])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-c130bb64\"\n\n},{\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../utils/addTableFeature\":30,\"../utils/cloneFeature\":35,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getRelationsInEditing\":51,\"../utils/promisify\":58,\"../workflows\":65,\"vueify/lib/insert-css\":1}],8:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".panel.mobile[data-v-17ba9f33]{margin-bottom:5px}.panel.mobile .panel-heading[data-v-17ba9f33]{display:flex;justify-content:space-between}.panel.mobile .panel-heading .panel-title[data-v-17ba9f33]{margin-top:auto;margin-bottom:auto}.panel.mobile .panel-heading .start-editing[data-v-17ba9f33]{margin:auto;margin-right:0;padding:6px}.panel.mobile .tools-content .editbtn[data-v-17ba9f33]{padding:9px}.panel.mobile .toolbox .panel-body[data-v-17ba9f33]{padding:5px!important}.toolbox_help_message[data-v-17ba9f33]{font-weight:lighter}.toolbox[data-v-17ba9f33]{padding-bottom:5px}.panel[data-v-17ba9f33]{border:0!important;margin-bottom:8px}.panel-heading[data-v-17ba9f33]{padding:5px 10px;width:100%}.toolboxselected[data-v-17ba9f33]{box-shadow:0 0 0 3px var(--skin-color)}.panel:not(.toolboxselected) .info[data-v-17ba9f33]{opacity:.4}.panel:not(.toolboxactive) .panel-heading[data-v-17ba9f33]{border-radius:3px;filter:grayscale(.8)}.panel:not(.geolayer) .panel-body[data-v-17ba9f33]{padding-top:0}.panel.toolboxactive:not(.geolayer) .editbtn.start-editing[data-v-17ba9f33]{color:#fff!important}.panel:not(.geolayer) .panel-heading[data-v-17ba9f33]{color:#3a4448}.editbtn.start-editing[data-v-17ba9f33]{padding:13px;color:currentColor!important;font-size:1.1em;margin:0}.panel-title[data-v-17ba9f33]{font-weight:700;word-break:break-word;padding:8px 0;display:inline-block}#toolsoftoolcontainer[data-v-17ba9f33]{display:flex;flex-direction:column;margin:5px;padding:5px;border-radius:5px}.info[data-v-17ba9f33]{color:#000}.info>i[data-v-17ba9f33]{color:#007bff;padding-right:2px}.info+.tools-content[data-v-17ba9f33]{margin-top:1em}.filter-by-relation[data-v-17ba9f33]{margin-right:5px;cursor:pointer;color:currentColor!important}.tools-content[data-v-17ba9f33]{display:flex;flex-wrap:wrap;gap:10px}.message[data-v-17ba9f33]{margin-bottom:5px;font-size:1.1em;color:#000;margin-top:5px}.snap-tool[data-v-17ba9f33]{display:flex}.snap-tool label>b[data-v-17ba9f33]{color:#222d32!important}.tools-of-tool-snap[data-v-17ba9f33]{display:flex;width:100%;justify-content:space-between}.tools-of-tool-snap label span[data-v-17ba9f33]{color:#222d32!important}.panel-body.disabled[data-v-17ba9f33]{opacity:.7}.panel-body.disabled>[data-v-17ba9f33]{pointer-events:none}\")\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\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 GUI = g3wsdk.gui.GUI;\nvar Layer = g3wsdk.core.layer.Layer;\nvar getResolutionFromScale = g3wsdk.ol.utils.getResolutionFromScale;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n\nvar snapInteraction = void 0;\n\nexports.default = {\n\n name: 'Toolbox',\n\n props: ['state', 'resourcesurl'],\n\n data: function data() {\n return {\n active: false,\n helpmessage: null,\n\n toggled: {\n relation: false,\n layer: false },\n snapAll: false\n };\n },\n\n\n computed: {\n editDisabled: function editDisabled() {\n return this.state.loading && !this.state.startstopediting;\n },\n hasRelations: function hasRelations() {\n return this.state.editing.dependencies.length > 0;\n },\n loading: function loading() {\n return this.state.loading || this.state.changingtools;\n },\n canEdit: function canEdit() {\n return this.state.editing.canEdit;\n },\n father: function father() {\n return this.state.editing.father && this.hasRelations;\n },\n showtoolsoftool: function showtoolsoftool() {\n return this.state.toolsoftool.length > 0;\n },\n isLayerReady: function isLayerReady() {\n return this.state.layer.state.editing.ready;\n },\n toolboxCursor: function toolboxCursor() {\n return !this.isLayerReady || !this.canEdit ? 'url(' + this.resourcesurl + 'cursors/mZoomIn.svg), zoom-in' : undefined;\n },\n get_tool_title: function get_tool_title() {\n return function (title) {\n return g3wsdk.core.ApplicationState.language && tPlugin(title);\n };\n }\n },\n\n methods: {\n select: function select() {\n if (this.isLayerReady && !this.state.selected) {\n this.$emit('setselectedtoolbox', this.state.id);\n }\n },\n fitZoomToScale: function fitZoomToScale(e) {\n if (this.state.selected && !this.canEdit) {\n var map = GUI.getService('map');\n map.goToRes(map.getCenter(), getResolutionFromScale(this.state._constraints.scale, map.getMapUnits()));\n }\n },\n toggleEditing: function toggleEditing() {\n this.select();\n this.toggled.layer = !(this.state.editing.on || this.toggled.layer);\n if (this.toggled.layer && this.state.layer.state.editing.ready && !this.state.loading) {\n this.$emit(this.state.editing.on ? 'stoptoolbox' : 'starttoolbox', this.state.id);\n }\n if (!this.toggled.layer) {\n this.$emit('stoptoolbox', this.state.id);\n }\n },\n toggleTool: function toggleTool(toolId) {\n if (undefined === toolId) {\n this.$emit('stopactivetool', this.state.id);\n } else {\n this.$emit('setactivetool', toolId, this.state.id);\n }\n this.select();\n },\n toggleFilterByRelation: function toggleFilterByRelation() {\n this.toggled.relation = !this.toggled.relation;\n this.$emit('update-filter-layers', this.toggled.relation ? [this.state.id].concat(_toConsumableArray(this.state.editing.dependencies)) : []);\n },\n _initSnap: function _initSnap() {\n var _this = this;\n\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n\n if (!tool) {\n return;\n }\n\n this.snapFeatures = new ol.Collection();\n\n this.snapEvents = [];\n\n this.snapToolboxes = [];\n\n this.snapUnwatches = [];\n\n this.$watch(function () {\n return tool.options.checked;\n }, function () {\n return _this.activeSnapInteraction();\n });\n this.$watch(function () {\n return tool.options.checkedAll;\n }, function () {\n return _this.activeSnapInteraction();\n });\n\n this.$watch(function () {\n return tool.options.active;\n }, function () {\n if (tool.options.active) {\n _this.activeSnapInteraction();\n } else if (snapInteraction) {\n GUI.getService('map').removeInteraction(snapInteraction);\n }\n });\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayers().filter(function (l) {\n return Layer.LayerTypes.VECTOR === l.getType();\n }).forEach(function (l) {\n var toolbox = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById(l.getId());\n var source = toolbox.getLayer().getEditingSource();\n\n _this.snapFeatures.extend(source.readFeatures());\n\n _this.snapEvents.push({\n source: source,\n olKey: source.getFeaturesCollection().on('add', function (evt) {\n return _this.addSnapFeatures([evt.element]);\n }),\n settersAndKeys: {\n 'addFeatures': source.onbefore('addFeatures', _this.addSnapFeatures),\n 'addFeature': source.onbefore('addFeature', _this.addSnapFeatures),\n 'clear': source.onbefore('clear', function () {\n source.readFeatures().forEach(function (f) {\n return _this.snapFeatures.remove(f);\n });\n })\n }\n });\n\n if (tool.options.layerId !== l.getId()) {\n var editing = toolbox.getState().editing;\n _this.snapUnwatches.push(_this.$watch(function () {\n return editing.on;\n }, _this.setShowSnapAll));\n _this.snapToolboxes.push(editing);\n }\n });\n\n this.setShowSnapAll();\n },\n _unloadSnap: function _unloadSnap() {\n if (!snapInteraction) {\n return;\n }\n\n try {\n this.snapEvents.forEach(function (d) {\n Object.keys(d.settersAndKeys).forEach(function (event) {\n d.source.un(event, d.settersAndKeys[event]);\n });\n ol.Observable.unByKey(d.olKey);\n });\n this.snapUnwatches.forEach(function (unwatch) {\n return unwatch();\n });\n\n snapInteraction = null;\n\n this.snapUnwatches = null;\n this.snapToolboxes = null;\n this.snapEvents = null;\n } catch (e) {\n console.warn(e);\n }\n },\n addSnapFeatures: function addSnapFeatures(features) {\n this.snapFeatures.extend(features);\n },\n setShowSnapAll: function setShowSnapAll() {\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n if (tool) {\n this.snapAll = !!this.snapToolboxes.find(function (editing) {\n return editing.on;\n });\n tool.options.checkedAll = tool.options.showSnapAll ? tool.options.checkedAll : false;\n }\n },\n activeSnapInteraction: function activeSnapInteraction() {\n var map = GUI.getService('map');\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n\n if (snapInteraction) {\n map.removeInteraction(snapInteraction);\n }\n\n snapInteraction = null;\n\n if ((tool.options.checked || tool.options.checkedAll) && tool.options.active) {\n snapInteraction = new ol.interaction.Snap({\n source: !tool.options.checkedAll && tool.options.checked && tool.options.source,\n features: tool.options.checkedAll && this.snapFeatures });\n map.addInteraction(snapInteraction);\n }\n }\n },\n\n watch: {\n 'state.activetool': function () {\n var _ref = _asyncToGenerator(function* (tool) {\n yield this.$nextTick();\n this.helpmessage = tool && (tool.messages.help || tool.name);\n });\n\n function stateActivetool(_x) {\n return _ref.apply(this, arguments);\n }\n\n return stateActivetool;\n }(),\n 'state.editing.on': function stateEditingOn(bool) {\n this.$emit('on-editing', bool);\n },\n 'state.toolsoftool': function stateToolsoftool(newTools, oldTools) {\n if (!newTools.length) {\n oldTools.filter(function (t) {\n return 'measure' === t.type;\n }).forEach(function (t) {\n return t.options.onChange(false);\n });\n this._unloadSnap();\n } else {\n this._initSnap();\n }\n }\n },\n\n created: function created() {\n this.$emit('canEdit', { id: this.state.id });\n },\n mounted: function () {\n var _ref2 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n });\n\n function mounted() {\n return _ref2.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this._unloadSnap();\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 () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.show),expression:\"state.show\"}],staticClass:\"toolbox\",attrs:{\"id\":'id_toolbox_' + _vm.state.id}},[_c('div',{staticClass:\"panel\",class:{\n 'mobile': _vm.isMobile(),\n 'toolboxselected': _vm.state.selected,\n 'toolboxactive': _vm.state.editing.on && _vm.canEdit,\n 'geolayer': _vm.state.layer.isGeoLayer(),\n },on:{\"click\":function($event){$event.stopPropagation();return _vm.select($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLayerReady),expression:\"!isLayerReady\"}],staticClass:\"bar-loader\"}),_vm._v(\" \"),(_vm.state.toolboxheader)?_c('div',{staticClass:\"panel-heading container\",style:({ background: _vm.state.color})},[(_vm.father)?_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.tooltip.filter_by_relation'),expression:\"'plugins.editing.tooltip.filter_by_relation'\",arg:\"right\",modifiers:{\"create\":true}}],class:'filter-by-relation ' + _vm.g3wtemplate.font['relation'],on:{\"click\":_vm.toggleFilterByRelation}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"panel-title\"},[_vm._v(_vm._s(_vm.state.title))]),_vm._v(\" \"),_c('i',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.editDisabled),expression:\"editDisabled\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('plugins.editing.tooltip.edit_layer'),expression:\"'plugins.editing.tooltip.edit_layer'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"start-editing editbtn skin-tooltip-left\",class:( _obj = {\n 'pull-right': !_vm.isMobile(),\n 'enabled': _vm.isLayerReady,\n 'g3w-icon-toggled': _vm.state.editing.on\n }, _obj[_vm.g3wtemplate.font[(_vm.state.editing.on || _vm.toggled.layer) ? 'checkmark' : 'pencil']] = true, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleEditing($event)}}})]):_vm._e(),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),(!_vm.state.changingtools && (_vm.state.editing.on || _vm.toggled.layer))?_c('div',{class:{ 'panel-body':true, disabled: (!_vm.isLayerReady || !_vm.canEdit) },style:({ cursor: _vm.toolboxCursor }),on:{\"click\":_vm.fitZoomToScale}},[(!_vm.state.layer.isGeoLayer())?_c('div',{staticClass:\"info\"},[_c('i',{class:_vm.g3wtemplate.font['info']}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.toolbox_has_no_geometry'),expression:\"'editing.messages.toolbox_has_no_geometry'\"}]}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),(_vm.hasRelations)?_c('div',{staticClass:\"info\"},[_c('i',{class:_vm.g3wtemplate.font['info']}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.toolbox_has_relation'),expression:\"'editing.messages.toolbox_has_relation'\"}]}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),(_vm.state.message)?_c('div',{staticStyle:{\"color\":\"#000\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.state.message),expression:\"state.message\"}],staticClass:\"text-justify\"}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"tools-content\"},_vm._l((_vm.state.tools),function(tool){\n var _obj;\nreturn (tool.visible)?_c('div',{key:tool.id,class:( _obj = { 'enabled' : tool.enabled, 'toggled' : tool.active }, _obj[(\"editbtn \" + (tool.id))] = true, _obj ),on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();tool.enabled && _vm.toggleTool(tool.active ? undefined : tool.id)}}},[_c('img',{attrs:{\"height\":\"25\",\"width\":\"25\",\"src\":(_vm.resourcesurl + \"images/\" + (tool.icon)),\"title\":_vm.get_tool_title((\"\" + (tool.name)))}})]):_vm._e()}),0),_vm._v(\" \"),_c('div',{staticClass:\"message\",attrs:{\"id\":(\"id_toolbox_messages_\" + (_vm.state.id))}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showtoolsoftool)?_c('div',{attrs:{\"id\":\"toolsoftoolcontainer\"}},[_vm._l((_vm.state.toolsoftool),function(tool){return [('measure' === tool.type)?_c('div',{staticClass:\"snap-tool\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checked),expression:\"tool.options.checked\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"id\":\"g3w_editing_show_measure_tool\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(tool.options.checked)?_vm._i(tool.options.checked,null)>-1:(tool.options.checked)},on:{\"change\":[function($event){var $$a=tool.options.checked,$$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.$set(tool.options, \"checked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checked\", $$c)}},function () { return tool.options.onChange(tool.options.checked); }]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.toolsoftool.measure'),expression:\"'plugins.editing.toolsoftool.measure'\",arg:\"right\",modifiers:{\"create\":true}}],attrs:{\"for\":\"g3w_editing_show_measure_tool\"}},[_c('b',{class:_vm.g3wtemplate.font['measure']})])]):('snap' === tool.type)?_c('div',{staticClass:\"tools-of-tool-snap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checked),expression:\"tool.options.checked\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"type\":\"checkbox\",\"id\":(\"snap_\" + (_vm.state.id))},domProps:{\"checked\":Array.isArray(tool.options.checked)?_vm._i(tool.options.checked,null)>-1:(tool.options.checked)},on:{\"change\":[function($event){var $$a=tool.options.checked,$$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.$set(tool.options, \"checked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checked\", $$c)}},function($event){_vm.snapAll && tool.options.checked ? tool.options.checkedAll = false : null}]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:( 'plugins.editing.toolsoftool.snap'),expression:\" 'plugins.editing.toolsoftool.snap'\",arg:\"right\",modifiers:{\"create\":true}}],attrs:{\"for\":(\"snap_\" + (_vm.state.id))}},[_c('span',{class:_vm.g3wtemplate.font['magnete']})]),_vm._v(\" \"),(_vm.snapAll)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checkedAll),expression:\"tool.options.checkedAll\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"type\":\"checkbox\",\"id\":(\"snap_all_\" + (_vm.state.id))},domProps:{\"checked\":Array.isArray(tool.options.checkedAll)?_vm._i(tool.options.checkedAll,null)>-1:(tool.options.checkedAll)},on:{\"change\":[function($event){var $$a=tool.options.checkedAll,$$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.$set(tool.options, \"checkedAll\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checkedAll\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checkedAll\", $$c)}},function($event){tool.options.checkedAll ? tool.options.checked = false : null}]}}):_vm._e(),_vm._v(\" \"),(_vm.snapAll)?_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('plugins.editing.toolsoftool.snapall'),expression:\"'plugins.editing.toolsoftool.snapall'\",arg:\"left\",modifiers:{\"create\":true}}],attrs:{\"for\":(\"snap_all_\" + (_vm.state.id))}},[_c('span',{class:_vm.g3wtemplate.font['magnete']}),_vm._v(\" \"),_c('b',{class:_vm.g3wtemplate.font['layers']})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('divider')]})],2):_vm._e()]),_vm._v(\" \"),(_vm.helpmessage)?_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.helpmessage),expression:\"helpmessage\"}],staticClass:\"toolbox_help_message\"}):_vm._e()],1)]):_vm._e()],1)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-17ba9f33\"\n\n},{\"vueify/lib/insert-css\":1}],9:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".steps-list[data-v-1689d33c]{align-self:flex-start;list-style:none;padding:10px;margin-bottom:0}li[data-v-1689d33c]{margin-bottom:5px}li.done[data-v-1689d33c]{font-weight:700;color:green}li.done>.description[data-v-1689d33c]{font-weight:700}.dynamic-step[data-v-1689d33c]{padding:10px;font-size:1.2em}.button-step[data-v-1689d33c]{display:inline-flex;align-items:center}.button-step[data-v-1689d33c],button.btn-success[data-v-1689d33c]{font-weight:700;align-self:normal}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n\n data: function data() {\n return { steps: {} };\n },\n\n methods: {\n completeStep: function completeStep(step) {\n step.done = true;\n step.buttonnext.done();\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:\"steps-list\"},_vm._l((_vm.steps),function(step,id){return _c('li',{key:id,class:{ 'done': step.done },style:({ display: step.buttonnext && 'inline-flex' })},[(step.buttonnext)?_c('span',{staticClass:\"button-step\"},[_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(step.description),expression:\"step.description\"}],staticClass:\"description\"}),_vm._v(\" \"),(step.dynamic)?_c('span',{staticClass:\"dynamic-step\"},[_vm._v(_vm._s(step.dynamic))]):_vm._e(),_vm._v(\" \"),_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.workflow.next'),expression:\"'editing.workflow.next'\"}],class:'btn btn-success' + (step.buttonnext.disabled ? ' g3w-disabled' : '' ),staticStyle:{\"margin-left\":\"10px\"},on:{\"click\":function($event){return _vm.completeStep(step)}}})]):[_c('i',{class:_vm.g3wtemplate.getFontClass(step.done ? 'success' : 'empty-circle')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(step.description),expression:\"step.description\"}]})]],2)}),0)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-1689d33c\"\n\n},{\"vueify/lib/insert-css\":1}],10:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Session = exports.ChangesManager = exports.Flow = undefined;\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 _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 _promisify = require('../../utils/promisify');\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 _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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Queque = function () {\n function Queque() {\n _classCallCheck(this, Queque);\n\n this.tasks = [];\n }\n\n _createClass(Queque, [{\n key: 'addTask',\n value: function addTask(task) {\n this.tasks.push(task);\n }\n }, {\n key: 'run',\n value: function run() {\n var reverse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n while (this.tasks.length) {\n var task = reverse ? this.tasks.pop() : this.tasks.shift();task();\n }\n }\n }, {\n key: 'flush',\n value: function flush() {\n return this.tasks.splice(0);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.tasks.length;\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.run();this.tasks = [];\n }\n }]);\n\n return Queque;\n}();\n\n/**\n * Class Flow of workflow step by step\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/flow.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/queque.js@v3.9.1\n */\n\n\nvar Flow = exports.Flow = function (_g3wsdk$core$G3WObjec) {\n _inherits(Flow, _g3wsdk$core$G3WObjec);\n\n function Flow() {\n _classCallCheck(this, Flow);\n\n var _this = _possibleConstructorReturn(this, (Flow.__proto__ || Object.getPrototypeOf(Flow)).call(this));\n\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.Flow is deprecated');\n _this.steps = [];\n _this.counter = 0;\n _this.context = null;\n _this.queques = {\n end: new Queque(),\n micro: new Queque()\n };\n _this.inputs;\n _this.d;\n _this._workflow;\n return _this;\n }\n\n //start workflow\n\n\n _createClass(Flow, [{\n key: 'start',\n value: function start(workflow) {\n this.d = $.Deferred();\n if (this.counter > 0) {\n console.log(\"reset workflow before restarting\");\n }\n this._workflow = workflow;\n this.inputs = workflow.getInputs();\n this.context = workflow.getContext();\n this.steps = workflow.getSteps();\n // check if there are steps\n if (this.steps && this.steps.length) {\n //run step (first)\n this.runStep(this.steps[0], this.inputs, this.context);\n }\n // return a promise that will be reolved if all step go right\n return this.d.promise();\n }\n }, {\n key: 'runStep',\n\n\n //run step\n value: function runStep(step, inputs) {\n var _this2 = this;\n\n //run step that run task\n this._workflow.setMessages({\n help: step.state.help\n });\n var runMicroTasks = this.queques.micro.getLength();\n step.run(inputs, this.context, this.queques).then(function (outputs) {\n runMicroTasks && _this2.queques.micro.run();\n _this2.onDone(outputs);\n }).fail(function (e) {\n return _this2.onError(e);\n });\n }\n }, {\n key: 'onDone',\n\n\n //check if all step are resolved\n value: function onDone(outputs) {\n this.counter++;\n if (this.counter === this.steps.length) {\n this.counter = 0;\n this.d.resolve(outputs);\n return;\n }\n this.runStep(this.steps[this.counter], outputs);\n }\n }, {\n key: 'onError',\n\n\n // in case of error\n value: function onError(e) {\n this.counter = 0;\n this.clearQueques();\n this.d.reject(e);\n }\n }, {\n key: 'stop',\n\n\n // stop flow\n value: function stop() {\n var d = $.Deferred();\n this.steps[counter].isRunning() ? this.steps[this.counter].stop() : null;\n this.clearQueques();\n if (this.counter > 0) {\n // set counter to 0\n this.counter = 0;\n // reject flow\n d.reject();\n } else {\n //reject to force rollback session\n d.resolve();\n }\n return d.promise();\n }\n }, {\n key: 'clearQueques',\n value: function clearQueques() {\n this.queques.micro.clear();\n this.queques.end.clear();\n }\n }]);\n\n return Flow;\n}(g3wsdk.core.G3WObject);\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/services/editing.js@v3.9.1\n */\n\n\nvar ChangesManager = exports.ChangesManager = {\n /** known actions */\n Actions: {\n 'add': {\n fnc: 'addFeature',\n opposite: 'delete'\n },\n 'delete': {\n fnc: 'removeFeature',\n opposite: 'add'\n },\n 'update': {\n fnc: 'updateFeature',\n opposite: 'update'\n }\n },\n /* apply changes to features (undo/redo) */\n execute: function execute(object, items, reverse) {\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.ChangesManager is deprecated');\n var fnc = void 0;\n var feature = void 0;\n items.forEach(function (item) {\n feature = item.feature;\n if (reverse) {\n // change to opposite\n feature[ChangesManager.Actions[feature.getState()].opposite]();\n }\n // get method from object\n fnc = ChangesManager.Actions[feature.getState()].fnc;\n object[fnc](feature);\n });\n }\n};\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n */\n\nvar Session = exports.Session = function (_g3wsdk$core$G3WObjec2) {\n _inherits(Session, _g3wsdk$core$G3WObjec2);\n\n function Session() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Session);\n\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.Session is deprecated');\n\n var _this3 = _possibleConstructorReturn(this, (Session.__proto__ || Object.getPrototypeOf(Session)).call(this, options));\n\n _this3.setters = {\n\n /**\n * Start session\n */\n start: function start() {\n var _this4 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n var features = yield (0, _promisify.promisify)(_this4._editor.start(options));\n _this4.state.started = true;\n d.resolve(features);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x4) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * stop session\n */\n stop: function stop() {\n var _this5 = this;\n\n return $.Deferred(function () {\n var _ref2 = _asyncToGenerator(function* (d) {\n var canStop = _this5.state.started || _this5.state.getfeatures;\n if (!canStop) {\n return d.resolve();\n }\n try {\n yield (0, _promisify.promisify)(_this5._editor.stop());\n _this5.clear();\n d.resolve();\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x5) {\n return _ref2.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * Get features from server (by editor)\n */\n getFeatures: function getFeatures() {\n var _this6 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return $.Deferred(function () {\n var _ref3 = _asyncToGenerator(function* (d) {\n if (_this6._allfeatures) {\n return d.resolve([]);\n }\n _this6._allfeatures = !options.filter;\n try {\n var features = yield (0, _promisify.promisify)(_this6._editor.getFeatures(options));\n _this6.state.getfeatures = true;\n d.resolve(features);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x7) {\n return _ref3.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * Hook to get informed that are saved on server\n * \n * @param commitItems\n */\n saveChangesOnServer: function saveChangesOnServer(commitItems) {}\n };\n\n _this3.state = {\n id: options.id,\n started: false,\n getfeatures: false,\n /** maximum \"buffer history\" lenght for undo/redo */\n maxSteps: 10,\n /** current state of history (useful for undo /redo) */\n current: null,\n /** temporary change not save on history */\n changes: []\n };\n\n /**\n * Array of states of a layer in editing\n * {\n * _states: [\n * {\n * id: unique key\n * state: [state] // example: history contsins features state\n * // array because a tool can apply changes to more than one features at time (split di una feature)\n * },\n * {\n * id: unique key\n * state: [state]\n * },\n * ]\n * ....\n *\n * _current: unique key // usefult to undo redo\n *\n *\n */\n _this3._states = [];\n\n /** reactive state of history */\n _this3._constrains = {\n commit: false,\n undo: false,\n redo: false\n };\n\n // editor\n _this3._editor = options.editor;\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this3._history = {\n id: _this3.state.id,\n state: new Proxy({}, { get: function get(_, prop) {\n return _this3._constrains[prop];\n } }),\n add: _this3.__add.bind(_this3),\n getRelationStates: _this3.__getRelationStates.bind(_this3),\n insertState: _this3.__insertState.bind(_this3),\n removeState: _this3.deleteState.bind(_this3),\n removeStates: _this3.removeChangesFromHistory.bind(_this3),\n insertStates: _this3.__insertStates.bind(_this3),\n undo: _this3.__undo.bind(_this3),\n clear: _this3.clearHistory.bind(_this3),\n redo: _this3.__redo.bind(_this3),\n setItemsFeatureIds: _this3.__setItemsFeatureIds.bind(_this3),\n getState: _this3.__getState.bind(_this3),\n getFirstState: _this3.__getFirstState.bind(_this3),\n getLastState: _this3.getLastHistoryState.bind(_this3),\n getCurrentState: _this3.__getCurrentState.bind(_this3),\n getCurrentStateIndex: _this3.__getCurrentStateIndex.bind(_this3),\n canCommit: _this3.__canCommit.bind(_this3),\n canUndo: _this3.__canUndo.bind(_this3),\n canRedo: _this3.__canRedo.bind(_this3),\n commit: _this3.__commit.bind(_this3)\n };\n\n // register this session on session registry\n _this3.register();\n return _this3;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * check if was done an update (update are array contains two items, old and new value)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(Session, [{\n key: '_checkSessionItems',\n value: function _checkSessionItems(historyId, items, action) {\n /**\n * action: \n * 0: undo;\n * 1: redo;\n **/\n var newItems = {\n own: [], //array of changes of layer of the current session\n dependencies: {} // dependencies\n };\n\n items.forEach(function (item) {\n if (Array.isArray(item)) {\n item = item[action];\n }\n // check if belong to session\n if (historyId === item.layerId) {\n newItems.own.push(item);\n } else {\n newItems.dependencies[item.layerId] = newItems.dependencies[item.layerId] || {\n own: [],\n dependencies: {}\n };\n newItems.dependencies[item.layerId].own.push(item);\n }\n });\n\n return newItems;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n */\n\n }, {\n key: 'getLastHistoryState',\n value: function getLastHistoryState() {\n return this._states.length ? this._states[this._states.length - 1] : null;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getLastStateId',\n value: function getLastStateId() {\n return this.getLastHistoryState().id;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param stateId\n */\n\n }, {\n key: 'deleteState',\n value: function deleteState(stateId) {\n var i = this._states.findIndex(function (s) {\n return s.id === stateId;\n });\n console.assert(i >= 0, 'invalid stateId ' + stateId);\n if (this.state.current === stateId) {\n this.state.current = this._states.length > 1 ? this._states[i - 1].id : null;\n }\n this._states.splice(i, 1);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'register',\n value: function register() {\n Session.Registry.register(this);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'unregister',\n value: function unregister() {\n Session.Registry.unregister(this.getId());\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isStarted',\n value: function isStarted() {\n return this.state.started;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getEditor',\n value: function getEditor() {\n return this._editor;\n }\n\n /**\n * @param editor\n */\n\n }, {\n key: 'setEditor',\n value: function setEditor(editor) {\n this._editor = editor;\n }\n\n /**\n * Save temporary changes to the layer in history instance and feature store\n * \n * @param options\n */\n\n }, {\n key: 'save',\n value: function save() {\n var _this7 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n //fill history\n var d = $.Deferred();\n // add temporary modify to history\n if (this.state.changes.length) {\n var uniqueId = options.id || Date.now();\n this._history.add(uniqueId, this.state.changes).then(function () {\n // clear to temporary changes\n _this7.state.changes = [];\n // resolve if unique id\n d.resolve(uniqueId);\n });\n } else {\n d.resolve(null);\n }\n return d.promise();\n }\n\n /**\n * @param feature\n */\n\n }, {\n key: 'updateTemporaryChanges',\n value: function updateTemporaryChanges(feature) {\n this.state.changes.forEach(function (c) {\n return c.feature.setProperties(feature.getProperties());\n });\n }\n\n /**\n * Add temporary feature\n * \n * @param layerId \n * @param feature \n * @param removeNotEditableProperties \n */\n\n }, {\n key: 'pushAdd',\n value: function pushAdd(layerId, feature) {\n var removeNotEditableProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n /**\n * @TODO check if it need to deprecate it. All properties are need\n * Please take care of this to understand\n * In case of removeNotEditableProperties true, remove not editable field\n * from feature properties\n */\n var editor = layerId === this.getId() ? this._editor : Session.Registry.getSession(layerId).getEditor();\n\n // remove not editable proprierties from feature\n if (removeNotEditableProperties) {\n (editor.getLayer().getEditingNotEditableFields() || []).forEach(function (f) {\n return feature.unset([f]);\n });\n }\n\n var newFeature = feature.clone();\n\n this.push({ layerId: layerId, feature: newFeature.add() });\n\n return newFeature;\n }\n\n /**\n * Delete temporary feature\n * \n * @param layerId \n * @param feature \n */\n\n }, {\n key: 'pushDelete',\n value: function pushDelete(layerId, feature) {\n this.push({ layerId: layerId, feature: feature.delete() });\n return feature;\n }\n\n /**\n * Add temporary feature changes\n * \n * @param layerId\n * @param newFeature\n * @param oldFeature\n */\n\n }, {\n key: 'pushUpdate',\n value: function pushUpdate(layerId, newFeature, oldFeature) {\n // get index of temporary changes\n var is_new = newFeature.isNew();\n var i = is_new && this.state.changes.findIndex(function (c) {\n return layerId === c.layerId && c.feature.getId() === newFeature.getId();\n });\n\n // in case of new feature\n if (is_new && i >= 0) {\n var feature = newFeature.clone();\n feature.add();\n this.state.changes[i].feature = feature;\n return;\n }\n\n this.push({ layerId: layerId, feature: newFeature.update() }, { layerId: layerId, feature: oldFeature.update() });\n }\n\n /**\n * @param stateIds\n */\n\n }, {\n key: 'removeChangesFromHistory',\n value: function removeChangesFromHistory() {\n var _this8 = this;\n\n var stateIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n (stateIds || []).forEach(function (s) {\n return _this8.deleteState(s);\n });\n }\n\n /**\n * @returns { Object } state ids\n */\n\n }, {\n key: 'moveRelationStatesOwnSession',\n value: function moveRelationStatesOwnSession() {\n var ids = {};\n\n var _getCommitItems = this.getCommitItems(),\n relations = _getCommitItems.relations;\n\n for (var id in relations) {\n var states = this._history.getRelationStates(id);\n Session.Registry.getSession(id)._history.insertStates(states);\n ids[id] = states.map(function (s) {\n return s.id;\n });\n }\n return ids;\n }\n\n /**\n * Add temporary features that will be added with save method\n * \n * @param { { layerId: string, feature: * } } NewFeat \n * @param { { layerId: string, feature: * } } OldFeat\n */\n\n }, {\n key: 'push',\n value: function push(newFeat, oldFeat) {\n this.state.changes.push(oldFeat ? [oldFeat, newFeat] : newFeat); // check is set old (edit)\n }\n\n /**\n * Revert (cancel) all changes in history and clean session\n */\n\n }, {\n key: 'revert',\n value: function revert() {\n var _this9 = this;\n\n var d = $.Deferred();\n this._editor.revert().then(function () {\n _this9.clearHistory();\n d.resolve();\n });\n return d.promise();\n }\n\n /**\n * @param changes\n */\n\n }, {\n key: 'rollback',\n value: function rollback(changes) {\n // skip when..\n if (changes) {\n return this._editor.rollback(changes);\n }\n\n // Handle temporary changes of layer\n var d = $.Deferred();\n var id = this.getId();\n changes = {\n own: [],\n dependencies: {}\n };\n this.state.changes.forEach(function (c) {\n var change = Array.isArray(c) ? c[0] : c;\n if (change.layerId === id) {\n changes.own.push(change);\n } else {\n if (!changes.dependencies[change.layerId]) {\n changes.dependencies[change.layerId] = [];\n }\n // FILO\n changes.dependencies[change.layerId].unshift(change);\n }\n });\n\n this._editor.rollback(changes.own).then(function () {\n for (var _id in changes.dependencies) {\n Session.Registry.getSession(_id).rollback(changes.dependencies[_id]);\n }\n d.resolve(changes.dependencies);\n });\n\n this.state.changes = [];\n\n return d.promise();\n }\n\n /**\n * Rollback child changes of current session\n * \n * @param ids [array of child layer id]\n */\n\n }, {\n key: 'rollbackDependecies',\n value: function rollbackDependecies() {\n var _this10 = this;\n\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n ids.forEach(function (id) {\n var changes = [];\n _this10.state.changes = _this10.state.changes.filter(function (temporarychange) {\n if (temporarychange.layerId === id) {\n changes.push(temporarychange);\n return false;\n }\n });\n changes.length && Session.Registry.getSession(id).rollback(changes);\n });\n }\n\n /**\n * undo method\n * \n * @param items \n */\n\n }, {\n key: 'undo',\n value: function undo(items) {\n items = items || this._history.undo();\n this._editor.setChanges(items.own, true);\n this._history.canCommit();\n return items.dependencies;\n }\n\n /**\n * redo method\n * \n * @param items \n */\n\n }, {\n key: 'redo',\n value: function redo(items) {\n items = items || this._history.redo();\n this._editor.setChanges(items.own, true);\n this._history.canCommit();\n return items.dependencies;\n }\n\n /**\n * Serialize commit\n * \n * @returns {{ add: *[], update: *[], relations: {}, delete: *[] }} JSON Object for a commit body send to server\n */\n\n }, {\n key: 'getCommitItems',\n value: function getCommitItems() {\n var _this11 = this;\n\n var itemsToCommit = this._history.commit();\n var id = this.getId();\n var state = void 0;\n var layer = void 0;\n var commitObj = {\n add: [], // features to add\n update: [], // features to update\n delete: [], // features to delete\n relations: {} // relation features\n };\n // key is a layer id that has changes to apply\n for (var key in itemsToCommit) {\n var isRelation = false; //set relation to false\n var items = itemsToCommit[key];\n // case key (layer id) is not equal to id (current layer id on editing)\n if (key !== id) {\n isRelation = true; //set true because these changes belong to features relation items\n var sessionRelation = Session.Registry.getSession(key);\n //check lock ids of relation layer\n var lockids = sessionRelation ? sessionRelation.getEditor().getLockIds() : [];\n //create a relations object\n commitObj.relations[key] = {\n lockids: lockids,\n add: [],\n update: [],\n delete: [],\n relations: {} //@since v3.7.1\n };\n layer = commitObj.relations[key];\n } else {\n layer = commitObj;\n }\n\n items.forEach(function (item) {\n //check state of feature item\n state = item.getState();\n var GeoJSONFormat = new ol.format.GeoJSON();\n switch (state) {\n //item needs to be deleted\n case 'delete':\n //check if is new. If is new mean is not present on server\n //so no need to say to server to delete it\n if (!item.isNew()) {\n layer.delete.push(item.getId());\n }\n break;\n default:\n //convert feature to json ex. {geometry:{tye: 'Point'}, properties:{}.....}\n var itemObj = GeoJSONFormat.writeFeatureObject(item);\n //get properties\n var childs_properties = item.getProperties();\n for (var p in itemObj.properties) {\n // in case the value of property is an object\n if (itemObj.properties[p] && _typeof(itemObj.properties[p]) === 'object' && itemObj.properties[p].constructor === Object) {\n //need to get value from value attribute object\n itemObj.properties[p] = itemObj.properties[p].value;\n }\n // @TODO explain when this condition happen\n if (undefined === itemObj.properties[p] && childs_properties[p]) {\n itemObj.properties[p] = childs_properties[p];\n }\n }\n // in case of add it have to remove not editable properties\n layer[item.isNew() ? 'add' : item.getState()].push(itemObj);\n break;\n }\n });\n // check in case of no edit remove relation key\n if (isRelation && layer.add.length === 0 //no relation features to add\n && layer.update.length === 0 //no relation features to update\n && layer.delete.length === 0 //no relation features to delete\n ) {\n delete commitObj.relations[key];\n }\n }\n\n // Remove deep relations from current layer (commitObj) that are not relative to that layer\n var relations = Object.keys(commitObj.relations || {});\n relations.filter(function (id) {\n return undefined === _this11._editor.getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild();\n });\n }) // child relations\n .map(function (id) {\n commitObj.relations[Session.Registry.getSession(id).getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild() && commitObj.relations[r.getFather()];\n }) // parent relation layer\n .getFather()].relations[id] = commitObj.relations[id];\n return id;\n }).forEach(function (id) {\n return delete commitObj.relations[id];\n });\n\n return commitObj;\n }\n\n /**\n * Set geometry: {type} of geojson to a 3D type if needed\n * \n * @param layerId\n * @param commitItems\n */\n\n }, {\n key: 'set3DGeometryType',\n value: function set3DGeometryType() {\n var _this12 = this;\n\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$layerId = _ref4.layerId,\n layerId = _ref4$layerId === undefined ? this.getId() : _ref4$layerId,\n commitItems = _ref4.commitItems;\n\n var relations = commitItems.relations;\n\n var editingLayer = MapLayersStoresRegistry.getLayerById(layerId).getEditingLayer();\n // check id there is editing layer and if is a vector layer\n if (editingLayer && g3wsdk.core.layer.Layer.LayerTypes.VECTOR === editingLayer.getType()) {\n // get Geometry type layer\n var geometryType = editingLayer.getGeometryType();\n // if is a 3D layer i set on geoJON before send it to server\n if (g3wsdk.core.geoutils.Geometry.is3DGeometry(geometryType)) {\n ['add', 'update'].forEach(function (action) {\n return commitItems[action].forEach(function (feature) {\n return feature.geometry.type = geometryType;\n });\n });\n }\n }\n // the same control of relations layers\n Object.keys(relations).forEach(function (layerId) {\n return _this12.set3DGeometryType({\n layerId: layerId,\n commitItems: relations[layerId]\n });\n });\n }\n\n /**\n * Commit changes on server (save)\n * \n * @param opts.ids\n * @param opts.items\n * @param opts.relations\n */\n\n }, {\n key: 'commit',\n value: function commit() {\n var _this13 = this;\n\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref5$ids = _ref5.ids,\n ids = _ref5$ids === undefined ? null : _ref5$ids,\n items = _ref5.items,\n _ref5$relations = _ref5.relations,\n relations = _ref5$relations === undefined ? true : _ref5$relations,\n _ref5$__esPromise = _ref5.__esPromise,\n __esPromise = _ref5$__esPromise === undefined ? false : _ref5$__esPromise;\n\n var d = $.Deferred();\n\n var commit = void 0; // committed items\n\n // skip when ..\n if (ids) {\n commit = this._history.commit(ids);\n this.clearHistory(ids);\n return d.promise();\n }\n\n commit = items || this.getCommitItems(this._history.commit());\n\n if (!relations) {\n commit.relations = {};\n }\n\n this._editor.commit(commit).then(function (response) {\n\n // skip when response is null or undefined and response.result is false\n if (!(response && response.result)) {\n d.reject(response);\n return;\n }\n\n var _response$response$ne = response.response.new_relations,\n new_relations = _response$response$ne === undefined ? {} : _response$response$ne; // check if new relations are saved on server\n\n // sync server data with local data\n\n for (var id in new_relations) {\n Session.Registry.getSession(id) // get session of relation by id\n .getEditor().applyCommitResponse({ // apply commit response to current editing relation layer\n response: new_relations[id],\n result: true\n });\n }\n\n _this13.clearHistory();\n\n _this13.saveChangesOnServer(commit); // dispatch setter event.\n\n // ES6 promises only accept a single response\n if (__esPromise) {\n d.resolve({ commit: commit, response: response });\n } else {\n d.resolve(commit, response);\n }\n }).fail(function (err) {\n return d.reject(err);\n });\n\n return d.promise();\n }\n\n /**\n * Clear all things bind to session\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n this._allfeatures = false;\n this.state.started = false;\n this.state.getfeatures = false;\n this.clearHistory();\n }\n\n /**\n * @returns history\n */\n\n }, {\n key: 'getHistory',\n value: function getHistory() {\n return this._history;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param ids since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'clearHistory',\n value: function clearHistory(ids) {\n var _this14 = this;\n\n if (ids) {\n this._states.forEach(function (state, idx) {\n if (ids.indexOf(state.id) !== -1) {\n if (_this14.state.current && _this14.state.current === state.id()) {\n _this14._history.undo();\n }\n _this14._states.splice(idx, 1);\n }\n });\n } else {\n // clear all\n this._states = [];\n this.state.current = null;\n this._constrains.commit = false;\n this._constrains.redo = false;\n this._constrains.undo = false;\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param uniqueId\n * @param items\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__add',\n value: function __add(uniqueId, items) {\n var _this15 = this;\n\n //state object is an array of feature/features changed in a transaction\n var d = $.Deferred();\n // before insert an item into the history\n // check if are at last state step (no redo was done)\n // If we are in the middle of undo, delete all changes\n // in the history from the current \"state\" so if it\n // can create a new history\n if (null === this.state.current) {\n this._states = [{ id: uniqueId, items: items }];\n } else {\n if (this._states.length > 0 && this.state.current < this.getLastStateId()) {\n this._states = this._states.filter(function (s) {\n return s.id <= _this15.state.current;\n });\n }\n this._states.push({ id: uniqueId, items: items });\n }\n\n this.state.current = uniqueId;\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n // return unique id key\n // it can be used in save relation\n d.resolve(uniqueId);\n return d.promise();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param layerId\n * @param clear\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getRelationStates',\n value: function __getRelationStates(layerId) {\n var _ref6 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref6$clear = _ref6.clear,\n clear = _ref6$clear === undefined ? false : _ref6$clear;\n\n var relationStates = [];\n for (var i = 0; i < this._states.length; i++) {\n var state = this._states[i];\n var items = state.items.filter(function (item) {\n return (Array.isArray(item) ? item[0].layerId : item.layerId) === layerId;\n });\n if (items.length > 0) {\n relationStates.push({ id: state.id, items: items });\n }\n }\n return relationStates;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param state\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__insertState',\n value: function __insertState(state) {\n var stateId = state.id;\n var index = this._states.length;\n for (var i = 0; i < this._states.length; i++) {\n var _state = this._states[i];\n if (_state.id > stateId) {\n index = i;\n break;\n } else if (_state.id === stateId) {\n index = -1;\n break;\n }\n }\n if (index > -1) {\n if (this.state.current < stateId) {\n this.state.current = stateId;\n }\n this._states.splice(index, 0, state);\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param states\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__insertStates',\n value: function __insertStates() {\n var states = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n for (var i = 0; i < states.length; i++) {\n this._history.insertState(states[i]);\n }\n this._history.canCommit();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * undo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undo',\n value: function __undo() {\n var _this16 = this;\n\n var items = void 0;\n if (this.state.current === this._history.getFirstState().id) {\n this.state.current = null;\n items = this._states[0].items;\n } else {\n this._states.find(function (state, idx) {\n if (state.id === _this16.state.current) {\n items = _this16._states[idx].items;\n _this16.state.current = _this16._states[idx - 1].id;\n return true;\n }\n });\n }\n items = this._checkSessionItems(this._history.id, items, 0);\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * redo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redo',\n value: function __redo() {\n var _this17 = this;\n\n var items = void 0;\n // if not set get first state\n if (!this.state.current) {\n items = this._states[0].items;\n // set current to first\n this.state.current = this._states[0].id;\n } else {\n this._states.find(function (state, idx) {\n if (_this17.state.current === state.id) {\n _this17.state.current = _this17._states[idx + 1].id;\n items = _this17._states[idx + 1].items;\n return true;\n }\n });\n }\n items = this._checkSessionItems(this._history.id, items, 1);\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param { Array } unsetnewids\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__setItemsFeatureIds',\n value: function __setItemsFeatureIds() {\n var _this18 = this;\n\n var unsetnewids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n unsetnewids.forEach(function (unsetnewid) {\n _this18._states.forEach(function (state) {\n state.items.forEach(function (item) {\n var feature = item.feature.getId() === unsetnewid.clientid && item.feature;\n if (feature) {\n feature.setId(unsetnewid.id);\n }\n });\n });\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param id\n * \n * @returns {T}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getState',\n value: function __getState(id) {\n return this._states.find(function (s) {\n return s.id === id;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getFirstState',\n value: function __getFirstState() {\n return this._states.length ? this._states[0] : null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {null}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCurrentState',\n value: function __getCurrentState() {\n var _this19 = this;\n\n var currentState = null;\n if (this.state.current && this._states.length) {\n currentState = this._states.find(function (state) {\n return _this19.state.current === state.id;\n });\n }\n return currentState;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { number | null } index of current state\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCurrentStateIndex',\n value: function __getCurrentStateIndex() {\n var _this20 = this;\n\n var currentStateIndex = null;\n if (this.state.current && this._states.length) {\n this._states.forEach(function (state, idx) {\n if (_this20.state.current === state.id) {\n currentStateIndex = idx;\n return false;\n }\n });\n }\n return currentStateIndex;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { boolean } true if we can commit\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canCommit',\n value: function __canCommit() {\n var checkCommitItems = this._history.commit();\n var canCommit = false;\n for (var layerId in checkCommitItems) {\n var commitItem = checkCommitItems[layerId];\n canCommit = canCommit || commitItem.length > 0;\n }\n this._constrains.commit = canCommit;\n return this._constrains.commit;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canUdo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canUndo',\n value: function __canUndo() {\n var steps = this._states.length - 1 - this._history.getCurrentStateIndex();\n this._constrains.undo = null !== this.state.current && this.state.maxSteps > steps;\n return this._constrains.undo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canRedo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canRedo',\n value: function __canRedo() {\n this._constrains.redo = this.getLastHistoryState() && this.getLastStateId() != this.state.current || null === this.state.current && this._states.length > 0;\n return this._constrains.redo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * get all changes to send to server (mandare al server)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__commit',\n value: function __commit() {\n var _this21 = this;\n\n var commitItems = {};\n var statesToCommit = this._states.filter(function (s) {\n return s.id <= _this21.state.current;\n });\n statesToCommit.forEach(function (state) {\n state.items.forEach(function (item) {\n var add = true;\n if (Array.isArray(item)) {\n item = item[1];\n }\n if (commitItems[item.layerId]) {\n commitItems[item.layerId].forEach(function (commitItem, index) {\n // check if already inserted feature\n if (commitItem.getUid() === item.feature.getUid()) {\n if (item.feature.isNew() && !commitItem.isDeleted() && item.feature.isUpdated()) {\n var _item = item.feature.clone();\n _item.add();\n commitItems[item.layerId][index] = _item;\n } else if (item.feature.isNew() && item.feature.isDeleted()) {\n commitItems[item.layerId].splice(index, 1);\n } else if (item.feature.isUpdated() || item.feature.isDeleted()) {\n commitItems[item.layerId][index] = item.feature;\n }\n add = false;\n return false;\n }\n });\n }\n if (add) {\n var feature = item.feature;\n var layerId = item.layerId;\n if (!(!feature.isNew() && feature.isAdded())) {\n if (!commitItems[layerId]) {\n commitItems[layerId] = [];\n }\n commitItems[layerId].push(feature);\n }\n }\n });\n });\n return commitItems;\n }\n }]);\n\n return Session;\n}(g3wsdk.core.G3WObject);\n\n/** @type { Object } */\n\n\nvar sessions = {};\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/store/sessions.js@v3.9.1\n *\n * Store user session (login / logout)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nSession.Registry = {\n _sessions: sessions,\n register: function register(session) {\n sessions[session.getId()] = session;\n },\n unregister: function unregister(id) {\n delete sessions[id];\n },\n getSession: function getSession(id) {\n return sessions[id];\n },\n setSession: function setSession(id, session) {\n sessions[id] = session;\n },\n getSessions: function getSessions() {\n return sessions;\n },\n clear: function clear() {\n Object.keys(sessions).forEach(Session.Registry.unregister);\n }\n};\n\n},{\"../../utils/promisify\":66}],11:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file shared vue instance used to watch object changes or to emit events\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar VM = exports.VM = new Vue();\n\nexports.default = { VM: VM };\n\n},{}],12:[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 _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 _toolbox = require('../../toolboxes/toolbox');\n\nvar _promisify = require('../../utils/promisify');\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 _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\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 * \n * ORIGINAL SOURCE: g3w-client/src/core/editing/editor.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n G3WObject = _g3wsdk$core.G3WObject;\nvar FeaturesStore = g3wsdk.core.layer.features.FeaturesStore;\nvar Layer = g3wsdk.core.layer.Layer;\n\n/**\n * ORIGINAL SOURE: g3w-client/src/app/core/layers/features/olfeaturesstore.js@v3.10.2\n */\n\nvar OlFeaturesStore = function (_FeaturesStore) {\n _inherits(OlFeaturesStore, _FeaturesStore);\n\n function OlFeaturesStore() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OlFeaturesStore);\n\n var _this = _possibleConstructorReturn(this, (OlFeaturesStore.__proto__ || Object.getPrototypeOf(OlFeaturesStore)).call(this, opts));\n\n _this._features = opts.features || new ol.Collection([]);\n return _this;\n }\n\n /**\n * Get number of features stored\n * @return { Number }\n */\n\n\n _createClass(OlFeaturesStore, [{\n key: 'getLength',\n value: function getLength() {\n return this._features.getLength();\n }\n\n /**\n * Store features\n * @param { Array } features\n */\n\n }, {\n key: 'setFeatures',\n value: function setFeatures() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n //remove features\n this._features.clear();\n //add new features\n this.addFeatures(features);\n this._features.dispatchEvent('change');\n }\n }, {\n key: 'readFeatures',\n\n\n /**\n * @returns {*[]}\n */\n value: function readFeatures() {\n return this._features.getArray();\n }\n }, {\n key: 'getFeaturesCollection',\n\n\n /**\n * @return {*|ol.Collection}\n */\n value: function getFeaturesCollection() {\n return this._features;\n }\n\n /**\n * @param id\n * @returns {*}\n */\n\n }, {\n key: 'getFeatureById',\n value: function getFeatureById(id) {\n return this._features.getArray().find(function (f) {\n return id == f.getId();\n });\n }\n }, {\n key: 'getFeatureByUid',\n value: function getFeatureByUid(uid) {\n return this._features.getArray().find(function (f) {\n return uid === f.getUid();\n });\n }\n\n /**\n *\n * @param feature\n * @private\n */\n\n }, {\n key: '_addFeature',\n value: function _addFeature(feature) {\n this._features.push(feature);\n // useful for ol.source.Vector\n this._features.dispatchEvent('change');\n }\n\n /**\n * Substitute the feature after modifying\n * @param feature\n * @private\n */\n\n }, {\n key: '_updateFeature',\n value: function _updateFeature(feature) {\n var index = this._features.getArray().findIndex(function (f) {\n return feature.getUid() === f.getUid();\n });\n if (index >= 0) {\n this._features.removeAt(index);\n this._features.insertAt(index, feature);\n this._features.dispatchEvent('change');\n }\n }\n\n /**\n * Remove feature from store\n * @param feature\n * @private\n */\n\n }, {\n key: '_removeFeature',\n value: function _removeFeature(feature) {\n var index = this._features.getArray().findIndex(function (f) {\n return feature.getUid() === f.getUid();\n });\n if (index >= 0) {\n this._features.removeAt(index);\n this._features.dispatchEvent('change');\n }\n }\n\n /**\n * @private\n */\n\n }, {\n key: '_clearFeatures',\n value: function _clearFeatures() {\n try {\n // Used remove single features instead use clear method\n // because some time trows an error\n for (var i = 0; i < this._features.getArray().length; i++) {\n this._features.removeAt(i);\n }\n } catch (e) {\n console.warn(e);\n }\n //Need to set a new Collection to avoid duplicate\n this._features = null; //@TODO is still usefully ????\n this._features = new ol.Collection([]);\n }\n }]);\n\n return OlFeaturesStore;\n}(FeaturesStore);\n\n/**\n * Editor Class: bind editor to layer to do main actions\n *\n * @param config\n *\n * @constructor\n */\n\n\nvar Editor = function (_G3WObject) {\n _inherits(Editor, _G3WObject);\n\n function Editor() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Editor);\n\n /**\n * Setter hooks.\n */\n var _this2 = _possibleConstructorReturn(this, (Editor.__proto__ || Object.getPrototypeOf(Editor)).call(this));\n\n _this2.setters = {\n save: function save() {\n this._layer.save();\n },\n addFeature: function addFeature(feature) {\n this._featuresstore.addFeature(feature);\n },\n updateFeature: function updateFeature(feature) {\n this._featuresstore.updateFeature(feature);\n },\n deleteFeature: function deleteFeature(feature) {\n this._featuresstore.deleteFeature(feature);\n },\n setFeatures: function setFeatures() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this._featuresstore.setFeatures(features);\n },\n\n /**\n * Get features from server method.\n * Used when vector Layer's bbox is contained into an already requested bbox (so no a new request is done).\n *\n * @param { number[] } options.filter.bbox bounding box Array [xmin, ymin, xmax, ymax]\n *\n * @returns { boolean } whether can perform a server request\n */\n getFeatures: function getFeatures() {\n var _this3 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // skip is not onlien or all features of layers are already got\n if (!ApplicationState.online || this._allfeatures) {\n return (0, _promisify.$promisify)(Promise.resolve());\n }\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n\n var doRequest = true; // default --> perform request\n\n var _ref2 = options.filter || {},\n bbox = _ref2.bbox;\n //check if bbox options filter (bbox of a current map) is passed and is a vector layer\n\n\n var is_vector = bbox && Layer.LayerTypes.VECTOR === _this3._layer.getType();\n\n // first request --> need to perform request\n if (is_vector && null === _this3._filter.bbox) {\n _this3._filter.bbox = bbox; // store bbox\n doRequest = true;\n }\n\n // subsequent requests --> check if bbox is contained into an already requested bbox\n else if (is_vector) {\n //Boolean - Check if features are already got inside bbox\n var is_cached = ol.extent.containsExtent(_this3._filter.bbox, bbox);\n if (!is_cached) {\n _this3._filter.bbox = ol.extent.extend(_this3._filter.bbox, bbox);\n }\n doRequest = !is_cached;\n }\n\n /** @TODO simplfy nested promises */\n if (doRequest) {\n var features = yield (0, _promisify.promisify)(_this3._layer.getFeatures(options));\n // add features from server to editing features store (cloned from original)\n _this3._featuresstore.addFeatures((features || []).map(function (f) {\n return f.clone();\n }));\n //set all features to true if no filter is set (e.g., Table layer)\n _this3._allfeatures = !options.filter;\n return features;\n }\n }));\n }\n };\n\n /**\n * Filter to getFeaturerequest\n */\n _this2._filter = {\n bbox: null\n };\n\n /**\n * { Boolean } true, mean all features of layer are get (e.g. Table layer)\n */\n _this2._allfeatures = false;\n\n /**\n * Referred layer\n */\n _this2._layer = options.layer;\n\n /**\n * Store editing features\n * \n * @type { FeaturesStore | OlFeaturesStore }\n */\n _this2._featuresstore = Layer.LayerTypes.TABLE === _this2._layer.getType() ? new FeaturesStore() : new OlFeaturesStore();\n\n /**\n * Whether editor is active or not\n *\n * @type { boolean }\n */\n _this2._started = false;\n\n return _this2;\n }\n\n /**\n * Get editing source layer feature\n * \n * @returns { FeaturesStore | OlFeaturesStore }\n */\n\n\n _createClass(Editor, [{\n key: 'getEditingSource',\n value: function getEditingSource() {\n return this._featuresstore;\n }\n\n /**\n * get Source\n */\n\n }, {\n key: 'getSource',\n value: function getSource() {\n this._layer.getSource();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/services/editing.js@v3.9.1\n * \n * Apply changes to source features (undo/redo)\n * \n * @param items\n * @param { boolean } reverse whether change to opposite\n */\n\n }, {\n key: 'setChanges',\n value: function setChanges() {\n var _this4 = this;\n\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n /** known actions */\n var Actions = {\n 'add': { fnc: 'addFeature', opposite: 'delete' },\n 'delete': { fnc: 'removeFeature', opposite: 'add' },\n 'update': { fnc: 'updateFeature', opposite: 'update' }\n };\n items.forEach(function (item) {\n if (reverse) {\n item.feature[Actions[item.feature.getState()].opposite]();\n }\n // get method from object\n _this4._featuresstore[Actions[item.feature.getState()].fnc](item.feature);\n });\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this._layer;\n }\n\n /**\n * @param layer\n */\n\n }, {\n key: 'setLayer',\n value: function setLayer(layer) {\n return this._layer = layer;\n }\n\n /**\n * Rollback changes\n * \n * @param changes\n * \n * @returns {*}\n */\n\n }, {\n key: 'rollback',\n value: function rollback() {\n var _this5 = this;\n\n var changes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return (0, _promisify.$promisify)(function () {\n return _this5.setChanges(changes, true);\n });\n }\n\n /**\n * Apply response data from server in case of new inserted feature\n * @param { Object } response\n * @param response.response.new array of new ids\n * @param response.response.new.clientid temporary id created by client __new__\n * @param response.response.new.id the new id created and stored on server\n * @param response.response.new.properties properties of the feature saved on server\n * @param response.response.new_lockids array of new lockIds\n * \n * @param relations\n */\n\n }, {\n key: 'applyCommitResponse',\n value: function applyCommitResponse() {\n var _this6 = this;\n\n var response = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var relations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n\n // skip when no response and response.result is false\n if (!(response && response.result)) {\n return;\n }\n\n //Loop on new features saved on server\n // clientid - temporary id of new feature\n // id - id saved on server (autogenerate, next value) to subtituite to clientid feature id\n // properties - properties of feature returned by server\n response.response.new.forEach(function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n clientid = _ref3.clientid,\n id = _ref3.id,\n properties = _ref3.properties;\n\n //get feature from current layer in editing\n var feature = _this6._featuresstore.getFeatureById(clientid);\n // set new id\n feature.setId(id);\n //set properties\n feature.setProperties(properties);\n //Loop on eventual relation updated or created\n relations.forEach(function (r) {\n // handle relations (if provided)\n Object.entries(r).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n id = _ref5[0],\n _ref5$ = _ref5[1],\n opts = _ref5$ === undefined ? {} : _ref5$;\n\n // id - relation layer id, opts - Object contain relation properties\n //get the editing source of relation layer\n var source = _toolbox.ToolBox.get(id).getSession().getEditor().getEditingSource();\n // handle value to relation field saved on server\n (opts.ids || []).forEach(function (id) {\n var rFeature = source.getFeatureById(id);\n if (rFeature) {\n opts.fatherField.forEach(function (ff, i) {\n // loop relation ids\n rFeature.set(opts.childField[i], feature.get(ff)); // set father feature `value` and `name`\n });\n }\n });\n });\n });\n });\n\n var features = this.readEditingFeatures();\n\n features.forEach(function (f) {\n return f.clearState();\n }); // reset state of the editing features (update, new etc..)\n\n this._layer.setFeatures([].concat(_toConsumableArray(features))); // substitute layer features with actual editing features (\"cloned\" to prevent layer actions duplicates, eg. addFeatures)\n\n this.addLockIds(response.response.new_lockids); // add lock ids\n }\n\n /**\n * @param lockids locks be added to current layer\n *\n * @since 3.9.0\n */\n\n }, {\n key: 'addLockIds',\n value: function addLockIds(lockids) {\n this._layer.getSource().addLockIds(lockids);\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLockIds',\n value: function getLockIds() {\n return this._layer.getSource().getLockIds();\n }\n\n /**\n * Run after server has applied changes to origin resource\n *\n * @param commit commit items\n *\n * @returns jQuery promise\n */\n\n }, {\n key: 'commit',\n value: function commit(_commit) {\n var _this7 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var relations = [];\n\n // check if there are commit relations binded to new feature\n if (_commit.add.length) {\n relations = Object.keys(_commit.relations).map(function (relationId) {\n var relation = _this7._layer.getRelations().getRelationByFatherChildren(_this7._layer.getId(), relationId);\n return _defineProperty({}, relationId, {\n ids: [].concat(_toConsumableArray(_commit.relations[relationId].add.map(function (r) {\n return r.id;\n })), _toConsumableArray(_commit.relations[relationId].update.map(function (r) {\n return r.id;\n }))),\n fatherField: relation.getFatherField(), // father Fields \n childField: relation.getChildField() // child Fields \n });\n });\n }\n\n /** @TODO simplfy nested promises */\n var r = yield (0, _promisify.promisify)(_this7._layer.commit(_commit));\n _this7.applyCommitResponse(r, relations);\n return r;\n }));\n }\n\n /**\n * start editing\n */\n\n }, {\n key: 'start',\n value: function start() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /** @TODO simplfy nested promises */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var features = yield (0, _promisify.promisify)(_this8.getFeatures(options)); // load layer features based on filter type\n _this8._started = true; // if all ok set to started\n return features; // features are already inside featuresstore\n }));\n }\n\n /**\n * Read features (action to layer)\n */\n\n }, {\n key: 'readFeatures',\n value: function readFeatures() {\n return this._layer.readFeatures();\n }\n\n /**\n * @returns features stored in editor featurestore\n */\n\n }, {\n key: 'readEditingFeatures',\n value: function readEditingFeatures() {\n return this._featuresstore.readFeatures();\n }\n\n /**\n * stop editor\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this9 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var response = yield (0, _promisify.promisify)(_this9._layer.unlock());\n _this9.clear();\n return response;\n }));\n }\n\n /**\n * @returns { boolean } whether has started editor \n */\n\n }, {\n key: 'isStarted',\n value: function isStarted() {\n return this._started;\n }\n\n /**\n * Method to clear all filled variables\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n this._started = false;\n this._filter.bbox = null;\n this._allfeatures = false;\n\n this._featuresstore.clear();\n this._layer.getFeaturesStore().clear();\n\n // vector layer\n if (Layer.LayerTypes.VECTOR === this._layer.getType()) {\n this._layer.resetEditingSource(this._featuresstore.getFeaturesCollection());\n }\n }\n }]);\n\n return Editor;\n}(G3WObject);\n\nexports.default = Editor;\n\n},{\"../../toolboxes/toolbox\":27,\"../../utils/promisify\":58}],13:[function(require,module,exports){\nvar _editor = require('./editing/editor');\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _step = require('./workflow/step');\n\nvar _deprecated = require('../deprecated');\n\nvar _workflow = require('./workflow/workflow');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Editing APIs will be removed from core after g3w-client@v.4.x\n */\nif (window.g3wsdk.core.editing || window.g3wsdk.core.workflow || window.g3wsdk.constant.DEFAULT_EDITING_CAPABILITIES || g3wsdk.version < '4') {\n console.warn('Editing APIs will be removed from g3wsdk after v4.x');\n}\n\n/**\n * Object to provide external plugin to use editing objects\n */\nwindow.g3wsdk.core.editing = {\n Session: _deprecated.Session,\n SessionsRegistry: _deprecated.Session.Registry,\n Editor: _editor2.default,\n ChangesManager: _deprecated.ChangesManager\n};\n\n/**\n * Default editing capabilities\n *\n * @type {string[]}\n */\nwindow.g3wsdk.constant.DEFAULT_EDITING_CAPABILITIES = ['add_feature', 'change_feature', 'change_attr_feature', 'delete_feature'];\n\n/**\n * Object to provide to external plugins to use workflow objects\n */\nwindow.g3wsdk.core.workflow = {\n Task: _step.Step,\n Step: _step.Step,\n Flow: _deprecated.Flow,\n Workflow: _workflow.Workflow,\n WorkflowsStack: _workflow.Workflow.Stack\n};\n\n},{\"../deprecated\":10,\"./editing/editor\":12,\"./workflow/step\":14,\"./workflow/workflow\":15}],14:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Step = undefined;\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 _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 _promisify = require('../../utils/promisify');\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\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 * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/step.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\n\nvar G3WObject = g3wsdk.core.G3WObject;\nvar isPointGeometryType = g3wsdk.core.geoutils.Geometry.isPointGeometryType;\nvar Layer = g3wsdk.core.layer.Layer;\nvar GUI = g3wsdk.gui.GUI;\n\n/**\n * @param options.input\n * @param options.context\n * @param options.task\n * @param options.outputs\n * @param options.escKeyPressEventHandler\n * @param options.id\n * @param options.name\n * @param options.help\n * @param options.message\n */\n\nvar Step = exports.Step = function (_G3WObject) {\n _inherits(Step, _G3WObject);\n\n function Step() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Step);\n\n var _this = _possibleConstructorReturn(this, (Step.__proto__ || Object.getPrototypeOf(Step)).call(this));\n\n _this._options = options;\n\n _this._run = (options.run || _this.run || _asyncToGenerator(function* () {\n return true;\n })).bind(_this);\n _this._stop = (options.stop || _this.stop || _asyncToGenerator(function* () {\n return true;\n })).bind(_this);\n\n /**\n * @FIXME add description\n */\n _this._inputs = options.inputs || null;\n\n /**\n * @FIXME add description\n */\n _this._context = options.context || null;\n\n /**\n * @FIXME add description\n */\n _this._outputs = options.outputs || null;\n\n /**\n * Dynamic state of a step\n */\n _this.state = {\n id: options.id || null,\n name: options.name || null,\n help: options.help || null, // help to show what the user has to do\n running: false, // running\n error: null, // error\n message: options.message || null, // message\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n usermessagesteps: {}\n };\n\n _this.registerEscKeyEvent(options.escKeyPressEventHandler);\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this.selectStyle = options.selectStyle;\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.steps) {\n _this.setSteps(options.steps);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.onRun) {\n _this.on('run', options.onRun);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.onStop) {\n _this.on('run', options.onStop);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.tools) {\n _this._tools = options.tools;\n }\n\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * Set and get task usefult properties used to run\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(Step, [{\n key: 'setInputs',\n value: function setInputs(inputs) {\n this._inputs = this.inputs = inputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getInputs',\n value: function getInputs() {\n return this._inputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param context\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setContext',\n value: function setContext(context) {\n return this._context = this.context = context;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getContext',\n value: function getContext() {\n return this.context;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'panic',\n value: function panic() {\n console.log('Panic to implement ..');\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param task\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setRoot',\n value: function setRoot(task) {\n this.state.root = task;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @returns { Object }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getUserMessageSteps',\n value: function getUserMessageSteps() {\n return this.state.usermessagesteps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param steps\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setUserMessageSteps',\n value: function setUserMessageSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.state.usermessagesteps = steps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param type\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setUserMessageStepDone',\n value: function setUserMessageStepDone(type) {\n if (type) {\n this.state.usermessagesteps[type].done = true;\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addInteraction',\n value: function addInteraction(interaction) {\n var _this2 = this;\n\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n GUI.getService('map').addInteraction(interaction);\n Object.entries(events).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n type = _ref4[0],\n handler = _ref4[1];\n\n return interaction.on(type, handler);\n });\n this.on('stop', function () {\n return _this2.removeInteraction(interaction);\n });\n return interaction;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'removeInteraction',\n value: function removeInteraction(interaction) {\n setTimeout(function () {\n return GUI.getService('map').removeInteraction(interaction);\n }); // timeout needed to work around an Openlayers issue\n }\n\n /**\n * @TODO code implementation\n *\n * Get editing type from editing config\n *\n * @returns { null }\n */\n\n }, {\n key: 'getEditingType',\n value: function getEditingType() {\n return null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'registerPointerMoveCursor',\n value: function registerPointerMoveCursor() {\n GUI.getService('map').getMap().on(\"pointermove\", this._pointerMoveCursor);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'unregisterPointerMoveCursor',\n value: function unregisterPointerMoveCursor() {\n GUI.getService('map').getMap().un(\"pointermove\", this._pointerMoveCursor);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param evt\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_pointerMoveCursor',\n value: function _pointerMoveCursor(evt) {\n this.getTargetElement().style.cursor = this.forEachFeatureAtPixel(evt.pixel, function () {\n return true;\n }) ? 'pointer' : '';\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param steps\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setSteps',\n value: function setSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._steps = steps;\n this.setUserMessageSteps(steps);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @returns { Object }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getSteps',\n value: function getSteps() {\n return this._steps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getMap',\n value: function getMap() {\n return GUI.getService('map').getMap();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * Disable sidebar\n *\n * @param {Boolean} bool\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'disableSidebar',\n value: function disableSidebar() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this._isContentChild) {\n GUI.disableSideBar(bool);\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * @param event\n * @param options\n *\n * @returns {*}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'fireEvent',\n value: function fireEvent(event) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').fireEvent(event, options);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Handle single task\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'saveSingle',\n value: function saveSingle(input, context) {\n context.session.save().then(function () {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').saveChange();\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Cancel single task\n *\n * @param input\n * @param context\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'cancelSingle',\n value: function cancelSingle(input, context) {\n context.session.rollback();\n }\n\n /**\n * Bind interrupt event on keys escape pressed\n * \n * @param evt.key\n * @param evt.data.callback\n * @param evt.data.task\n */\n\n }, {\n key: 'escKeyUpHandler',\n value: function escKeyUpHandler(evt) {\n if ('Escape' === evt.key) {\n evt.data.callback({ task: evt.data.task });\n }\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'unbindEscKeyUp',\n value: function unbindEscKeyUp() {\n $(document).unbind('keyup', this.escKeyUpHandler);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'bindEscKeyUp',\n value: function bindEscKeyUp() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n $(document).on('keyup', { callback: callback, task: this }, this.escKeyUpHandler);\n }\n\n /**\n * @listens run\n * @listens stop\n */\n\n }, {\n key: 'registerEscKeyEvent',\n value: function registerEscKeyEvent(callback) {\n var _this3 = this;\n\n if (callback) {\n this.on('run', function () {\n return _this3.bindEscKeyUp(callback);\n });\n this.on('stop', function () {\n return _this3.unbindEscKeyUp();\n });\n }\n }\n\n /**\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Start task\n * \n * @param inputs\n * @param context\n * \n * @returns jQuery promise\n * \n * @fires run\n */\n\n }, {\n key: '__run',\n value: function __run(inputs, context) {\n var _this4 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n _this4.setInputs(inputs);\n _this4.setContext(context);\n\n var step = _this4;\n var toolsOfTools = {\n\n snap: {\n type: 'snap',\n options: {\n checkedAll: false,\n checked: false,\n active: true,\n run: function run(_ref6) {\n var layer = _ref6.layer;\n\n this.active = true;\n this.layerId = layer.getId();\n this.source = layer.getEditingLayer().getSource();\n },\n stop: function stop() {\n this.active = false;\n }\n }\n },\n\n measure: {\n type: 'measure',\n options: {\n checked: false,\n run: function run() {\n var _this5 = this;\n\n setTimeout(function () {\n _this5.onChange(_this5.checked);\n });\n },\n stop: function stop() {\n step.removeMeasureInteraction();\n this.onChange(false);\n },\n onChange: function onChange(bool) {\n this.checked = bool;\n step[bool ? 'addMeasureInteraction' : 'removeMeasureInteraction']();\n }\n }\n }\n\n };\n\n if (_this4._tools && 0 === _this4._workflow._toolsoftool.length) {\n var _workflow$_toolsoftoo;\n\n (_workflow$_toolsoftoo = _this4._workflow._toolsoftool).push.apply(_workflow$_toolsoftoo, _toConsumableArray(_this4._tools.filter(function (tool) {\n return 'measure' !== tool || Layer.LayerTypes.VECTOR === inputs.layer.getType() && !isPointGeometryType(inputs.layer.getGeometryType());\n }).map(function (tool) {\n return toolsOfTools[tool];\n })));\n }\n\n if (_this4._tools) {\n _this4._workflow._toolsoftool.forEach(function (t) {\n return t.options.run({ layer: inputs.layer });\n });\n _this4._workflow.emit('settoolsoftool', _this4._workflow._toolsoftool);\n }\n\n _this4.emit('run', { inputs: inputs, context: context });\n\n try {\n _this4.state.running = true; // change state to running\n return yield (0, _promisify.promisify)(_this4._run(inputs, context));\n } catch (e) {\n console.warn(e);\n _this4.state.error = e;\n return Promise.reject(e);\n } finally {\n _this4.__stop();\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * Stop step\n *\n * @fires stop\n */\n\n }, {\n key: '__stop',\n value: function __stop() {\n this._stop(this._inputs, this._context); // stop task\n this.state.running = false; // remove running state\n if (this._workflow) {\n this._workflow._toolsoftool.forEach(function (t) {\n return t.options.stop();\n });\n }\n this.emit('stop');\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getName',\n value: function getName() {\n return this.state.name;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getHelp',\n value: function getHelp() {\n return this.state.help;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getError',\n value: function getError() {\n return this.state.error;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getMessage',\n value: function getMessage() {\n return this.state.message;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'isRunning',\n value: function isRunning() {\n return this.state.running;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getTask',\n value: function getTask() {\n return this;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'setOutputs',\n value: function setOutputs(outputs) {\n this._outputs = outputs;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getOutputs',\n value: function getOutputs() {\n return this._outputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @param workflow\n * @param tools\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'setToolsOfTools',\n value: function setToolsOfTools(workflow) {\n var tools = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n this._workflow = workflow;\n this._tools = tools;\n }\n }]);\n\n return Step;\n}(G3WObject);\n\n/**\n * @FIXME add description\n */\n\n\nStep.MESSAGES = {\n help: null\n};\n\n},{\"../../utils/promisify\":58}],15:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Workflow = undefined;\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 _step = require('./step');\n\nvar _promisify = require('../../utils/promisify');\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 _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/**\n * @file\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/workflow.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\nvar GUI = g3wsdk.gui.GUI;\nvar G3WObject = g3wsdk.core.G3WObject;\n\n/**\n * Workflow Class (manage flow of steps)\n *\n * @param options.inputs\n * @param options.context\n * @param options.flow\n * @param options.steps\n * @param options.runOnce\n * @param options.backbuttonlabel\n */\n\nvar Workflow = exports.Workflow = function (_G3WObject) {\n _inherits(Workflow, _G3WObject);\n\n function Workflow() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Workflow);\n\n /** @since g3w-client-plugin-editing@v3.8.0*/\n var _this = _possibleConstructorReturn(this, (Workflow.__proto__ || Object.getPrototypeOf(Workflow)).call(this));\n\n _this._type = undefined !== options.type ? options.type : null;\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._options = options;\n\n /**\n * @FIXME add description\n */\n _this._promise = null;\n\n /**\n * Mandatory inputs to work with editing\n */\n _this._inputs = undefined !== options.inputs ? options.inputs : null;\n\n /**\n * @FIXME add description\n */\n _this._context = undefined !== options.context ? options.context : null;\n\n /**\n * All steps of flow\n */\n _this._steps = options.steps || [];\n\n /**\n * Whether is child of another workflow\n */\n _this._child = null;\n\n /**\n * stack workflowindex\n */\n _this._stackIndex = null;\n\n /**\n * Stop when flow stop\n */\n _this.runOnce = options.runOnce || false;\n\n /**\n * @FIXME add description\n */\n _this._messages = _step.Step.MESSAGES;\n\n /**\n * Store user messages steps to show when workflow\n * use a mandatory steps (ex. select: {description}, merge: {description}}\n */\n _this._userMessageSteps = {};\n\n if (_this._steps.length > 0) {\n _this.setUserMessagesSteps(_this._steps);\n }\n\n /**\n * Holds back button label (in case of child workflow)\n * \n * @since 3.9.0\n */\n _this.backbuttonlabel = undefined !== options.backbuttonlabel ? options.backbuttonlabel : null;\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this.helpMessage = options.helpMessage ? { help: options.helpMessage } : null;\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this._toolsoftool = [];\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n if (true === options.registerEscKeyEvent) {\n _this.registerEscKeyEvent();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/flow.js@v3.9.1\n * \n * Current flow step\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this._stepIndex = 0;\n\n return _this;\n }\n\n /**\n *\n * @param steps\n */\n\n\n _createClass(Workflow, [{\n key: 'setUserMessagesSteps',\n value: function setUserMessagesSteps(steps) {\n this._userMessageSteps = steps.reduce(function (messagesSteps, step) {\n return _extends({}, messagesSteps, step.getUserMessageSteps() || {});\n }, {});\n }\n\n /**\n * Check if it is in same type\n *\n * @param {String | Array.} type\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'isType',\n value: function isType(type) {\n var _this2 = this;\n\n if (Array.isArray(type)) {\n return Boolean(type.find(function (t) {\n return t === _this2._type;\n }));\n }\n return type === this._type;\n }\n\n /**\n * @returns { * }\n */\n\n }, {\n key: 'getContextService',\n value: function getContextService() {\n return this.getContext().service;\n }\n\n /**\n * @param service\n */\n\n }, {\n key: 'setContextService',\n value: function setContextService(service) {\n this.getContext().service = service;\n }\n\n /**\n * @returns { null | * }\n */\n\n }, {\n key: 'getStackIndex',\n value: function getStackIndex() {\n return this._stackIndex;\n }\n\n /**\n * @param workflow\n */\n\n }, {\n key: 'addChild',\n value: function addChild(workflow) {\n if (this._child) {\n this._child.addChild(workflow);\n } else {\n this._child = workflow;\n }\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild() {\n if (this._child) {\n Workflow.Stack.removeAt(this._child.getStackIndex());\n }\n this._child = null;\n }\n\n /**\n * @param input.key\n * @param input.value\n */\n\n }, {\n key: 'setInput',\n value: function setInput(_ref) {\n var key = _ref.key,\n value = _ref.value;\n\n this._inputs[key] = value;\n }\n\n /**\n * @returns { null | * }\n */\n\n }, {\n key: 'getInputs',\n value: function getInputs() {\n return this._inputs;\n }\n\n /**\n * @param context\n */\n\n }, {\n key: 'setContext',\n value: function setContext(context) {\n this._context = context;\n }\n\n /**\n * @returns { * | {} | null }\n */\n\n }, {\n key: 'getContext',\n value: function getContext() {\n return this._context;\n }\n\n /**\n * @param step\n */\n\n }, {\n key: 'addStep',\n value: function addStep(step) {\n this._steps.push(step);\n }\n\n /**\n * @param steps\n */\n\n }, {\n key: 'setSteps',\n value: function setSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n this._steps = steps;\n this.setUserMessagesSteps(steps);\n }\n\n /**\n * @returns { * | Array }\n */\n\n }, {\n key: 'getSteps',\n value: function getSteps() {\n return this._steps;\n }\n\n /**\n * @param index\n * \n * @returns { * }\n */\n\n }, {\n key: 'getStep',\n value: function getStep(index) {\n return this._steps[index];\n }\n\n /**\n * @param messages\n */\n\n }, {\n key: 'setMessages',\n value: function setMessages(messages) {\n Object.assign(this._messages, messages);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getMessages',\n value: function getMessages() {\n return this._messages;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'clearMessages',\n value: function clearMessages() {\n this._messages.help = null;\n if (Object.keys(this._userMessageSteps).length) {\n this.clearUserMessagesSteps();\n }\n }\n\n /**\n * @returns { * | null }\n */\n\n }, {\n key: 'getLastStep',\n value: function getLastStep() {\n return this._steps.length ? this._steps[this._steps.length - 1] : null;\n }\n\n /**\n * @returns { Step }\n */\n\n }, {\n key: 'getRunningStep',\n value: function getRunningStep() {\n return this._steps.find(function (step) {\n return step.isRunning();\n });\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'reject',\n value: function reject() {\n if (this._promise) {\n this._promise.reject();\n }\n this.emit('reject');\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'resolve',\n value: function resolve() {\n if (this._promise) {\n this._promise.resolve();\n }\n }\n }, {\n key: 'runStep',\n value: function () {\n var _ref2 = _asyncToGenerator(function* (step, inputs) {\n try {\n this.setMessages({ help: step.state.help });\n var outputs = yield (0, _promisify.promisify)(step.__run(inputs, this.getContext()));\n // onDone → check if all step is resolved\n this._stepIndex++;\n if (this._stepIndex === this.getSteps().length) {\n this._stepIndex = 0;\n return outputs;\n } else {\n return this.runStep(this.getSteps()[this._stepIndex], outputs);\n }\n } catch (e) {\n this._stepIndex = 0;\n return Promise.reject(e);\n }\n });\n\n function runStep(_x3, _x4) {\n return _ref2.apply(this, arguments);\n }\n\n return runStep;\n }()\n\n /**\n * Start workflow\n * \n * @param options.inputs\n * @param options.context\n * @param options.flow\n * @param options.steps\n * \n * @fires start\n */\n\n }, {\n key: 'start',\n value: function start() {\n var _this3 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n _this3._promise = { resolve: resolve, reject: reject };\n _this3._inputs = options.inputs;\n _this3._context = options.context || {};\n\n var isChild = _this3._context.isChild || false;\n\n // stop child when a workflow is running \n if (!isChild && Workflow.Stack.getLength() && Workflow.Stack.getCurrent() !== _this3) {\n Workflow.Stack.getCurrent().addChild(_this3);\n }\n\n _this3._stackIndex = Workflow.Stack.push(_this3);\n _this3._steps = options.steps || _this3._steps;\n\n (_this3._steps || []).forEach(function (s) {\n return s._workflow = _this3;\n });\n\n var showUserMessage = Object.keys(_this3._userMessageSteps).length;\n\n if (showUserMessage) {\n GUI.showUserMessage({\n title: 'plugins.editing.workflow.title.steps',\n type: 'tool',\n position: 'left',\n size: 'small',\n closable: false,\n hooks: {\n body: _extends({}, require('../../components/UserMessage.vue'), {\n data: function data() {\n return {\n steps: _this3._userMessageSteps\n };\n }\n })\n }\n });\n }\n //emit start\n _this3.emit('start');\n\n try {\n console.assert(0 === _this3._stepIndex, 'reset workflow before restarting: ' + _this3._stepIndex);\n //start flow of workflow\n var outputs = yield _this3.runStep(_this3.getSteps()[_this3._stepIndex], _this3.getInputs());\n if (showUserMessage) {\n setTimeout(function () {\n _this3.clearUserMessagesSteps();resolve(outputs);\n }, 500);\n } else {\n resolve(outputs);\n }\n } catch (e) {\n console.warn(e);\n if (showUserMessage) {\n _this3.clearUserMessagesSteps();\n }\n reject(e);\n }\n\n if (_this3.runOnce) {\n _this3.stop();\n }\n });\n\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * Stop workflow during flow\n * \n * @fires stop\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this4 = this;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref4 = _asyncToGenerator(function* (resolve, reject) {\n _this4._promise = null;\n\n try {\n // stop child workflow\n if (_this4._child) {\n yield (0, _promisify.promisify)(_this4._child.stop());\n }\n } catch (e) {\n console.warn(e);\n }\n\n // ensure that child is always removed\n _this4.removeChild();\n\n Workflow.Stack.removeAt(_this4.getStackIndex());\n\n // stop flow\n try {\n if (_this4.getSteps()[_this4._stepIndex].isRunning()) {\n //clear messages steps\n _this4.clearMessages();\n //stop a current step\n _this4.getSteps()[_this4._stepIndex].__stop();\n }\n // reset counter and reject flow\n if (_this4._stepIndex > 0) {\n _this4._stepIndex = 0;\n reject();\n return Promise.reject();\n } else {\n resolve();\n }\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n\n _this4.emit('stop');\n });\n\n return function (_x8, _x9) {\n return _ref4.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * Reset user message steps\n */\n\n }, {\n key: 'clearUserMessagesSteps',\n value: function clearUserMessagesSteps() {\n var _this5 = this;\n\n Object.keys(this._userMessageSteps).forEach(function (type) {\n var step = _this5._userMessageSteps[type];\n step.done = false;\n if (step.buttonnext) {\n step.buttonnext.disabled = true;\n }\n });\n GUI.closeUserMessage();\n }\n\n /**\n * @since 3.9.0\n */\n\n }, {\n key: 'setBackButtonLabel',\n value: function setBackButtonLabel() {\n var label = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n this.backbuttonlabel = label;\n }\n\n /**\n * @returns { null }\n * \n * @since 3.9.0\n */\n\n }, {\n key: 'getBackButtonLabel',\n value: function getBackButtonLabel() {\n return this.backbuttonlabel;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @param step\n * @param tools\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'addToolsOfTools',\n value: function addToolsOfTools(_ref5) {\n var step = _ref5.step,\n _ref5$tools = _ref5.tools,\n tools = _ref5$tools === undefined ? [] : _ref5$tools;\n\n step.setToolsOfTools(this, tools);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'setHelpMessage',\n value: function setHelpMessage(message) {\n this.helpMessage = { help: message };\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getHelpMessage',\n value: function getHelpMessage() {\n return this.helpMessage;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getFeatures',\n value: function getFeatures() {\n return this.getInputs().features;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'startFromLastStep',\n value: function startFromLastStep(options) {\n this.setSteps([this.getSteps().pop()]);\n return this.start(options);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getCurrentFeature',\n value: function getCurrentFeature() {\n var feats = this.getFeatures();\n return feats[feats.length - 1];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this.getInputs().layer;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n return this.getContext().session;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * bind interupt event\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'escKeyUpHandler',\n value: function escKeyUpHandler(evt) {\n if (evt.keyCode === 27) {\n evt.data.workflow.reject();\n evt.data.callback();\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'unbindEscKeyUp',\n value: function unbindEscKeyUp() {\n $(document).unbind('keyup', this.escKeyUpHandler);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'bindEscKeyUp',\n value: function bindEscKeyUp() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n $(document).on('keyup', { workflow: this, callback: callback }, this.escKeyUpHandler);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'registerEscKeyEvent',\n value: function registerEscKeyEvent(callback) {\n var _this6 = this;\n\n this.on('start', function () {\n return _this6.bindEscKeyUp(callback);\n });\n this.on('stop', function () {\n return _this6.unbindEscKeyUp();\n });\n }\n }]);\n\n return Workflow;\n}(G3WObject);\n\n/** @type { Workflow[] } */\n\n\nvar workflows = [];\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/services/workflow.js@v3.9.1\n * \n * Store all activated workflows\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nWorkflow.Stack = {\n _workflows: workflows,\n push: function push(workflow) {\n return workflows.includes(workflow) ? workflows.indexOf(workflow) : workflows.push(workflow) - 1;\n },\n getParent: function getParent() {\n return workflows.slice(-2)[0];\n },\n getParents: function getParents() {\n return workflows.slice(0, -1);\n },\n pop: function pop() {\n return workflows.pop();\n },\n getLength: function getLength() {\n return workflows.length;\n },\n getFirst: function getFirst() {\n return workflows[0];\n },\n getCurrent: function getCurrent() {\n return Workflow.Stack.getLast();\n },\n getLast: function getLast() {\n return workflows.slice(-1)[0];\n },\n removeAt: function removeAt(i) {\n workflows.splice(i, 1);\n },\n insertAt: function insertAt(i, w) {\n workflows[i] = w;\n },\n getAt: function getAt(i) {\n return workflows[i];\n },\n clear: function clear() {\n while (workflows.length) {\n workflows.pop().stop();\n }\n }\n};\n\n},{\"../../components/UserMessage.vue\":9,\"../../utils/promisify\":58,\"./step\":14}],16:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Es tritt ein Fehler auf. Es ist nicht möglich, Layer zu bearbeiten\",\n some_layers: \"Es tritt ein Fehler auf: Es ist nicht möglich, einige Layer zu bearbeiten\"\n },\n search: \"Suche\",\n editing_changes: \"Änderungen bearbeiten\",\n editing_data: \"Layer bearbeiten\",\n editing_attributes: \"Attribute bearbeiten\",\n relations: \"Relationen\",\n edit_relation: \"Relation bearbeiten\",\n back_to_relations: \"Zurück zu Relationen\",\n no_relations_found: \"Keine Relationen gefunden\",\n relation_data: \"Relationsdaten\",\n relation_already_added: \"Relation bereits hinzugefügt\",\n list_of_relations_feature: \"Liste der Relations-Features \",\n tooltip: {\n edit_layer: \"Layer bearbeiten\"\n },\n toolbox: {\n title: 'bearbeiten'\n },\n table: {\n edit: \"Feature bearbeiten\",\n copy: \"Kopie erstellen\",\n delete: \"Feature löschen\"\n },\n tools: {\n copy: \"Features kopieren\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Teil zu Multipart hinzufügen\",\n deletepart: \"Teil aus Multipart löschen\",\n merge: \"Feature auflösen\",\n split: \"Feature trennen\",\n add_feature: \"Feature hinzufügen\",\n delete_feature: \"Feature löschen\",\n move_feature: \"Feature verschieben\",\n update_vertex: \"Feature vertex aktualisieren\",\n update_feature: \"Feature-Attribut aktualisieren\",\n update_multi_features: \"Attribute ausgewählter Features aktualisieren\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Messung anzeigen\",\n snap: \"Snap Layer\",\n snapall: \"Snap auf alle Layer\"\n },\n steps: {\n help: {\n select_elements: \"Features auswählen\",\n select_element: \"Feature auswählen\",\n copy: \"Neue Kopie der ausgewählten Features erstellen\",\n merge: \"Features auflösen\",\n split: \"Feature trennen\",\n new: \"Neues Feature erstellen\",\n edit_table: \"Features der Tabelle bearbeiten\",\n draw_new_feature: \"Feature auf Karte zeichnen\",\n action_confirm: \"Aktion bestätigen\",\n double_click_delete: \"Zu löschendes Feature auf der Karte auswählen\",\n edit_feature_vertex: \"Ändern oder Hinzufügen eines Eckpunktes auf dem ausgewählten Feature\",\n move: \"Ausgewähltes Feature verschieben\",\n select_feature_to_relation: \"Feature auswählen, welches die Relation verknüpft\",\n show_edit_feature_form: \"Feature-Formular zum Bearbeiten von Attributen anzeigen\",\n pick_feature: \"Zu änderndes Feature auf der Karte auswählen\",\n insert_attributes_feature: \"Attribute des Features einfügen\"\n }\n },\n workflow: {\n steps: {\n select: 'Zum Auswählen auf ein Feature klicken',\n draw_part: \"Neues Teil zeichnen\",\n draw_geometry: \"Geometrie zeichnen\",\n merge: 'Feature zum Auflösen auswählen',\n selectSHIFT: 'Features auswählen indem ein Rechteck mit SHIFT gezeichnet wird',\n selectDrawBox: \"Features auswählen, indem man ein Rechteck mit zwei gegenüberliegenden Eckpunkten zeichnet\",\n selectDrawBoxAtLeast2Feature: \"Mindestens Features auswählen, indem man ein Rechteck mit zwei gegenüberliegenden Eckpunkten zeichnet\",\n selectPoint: \"Zum Auswählen auf ein Feature klicken\",\n selectPointSHIFT: 'Features auswählen, indem ein Rechteck mit SHIFT gezeichnet wird (Multifeatures) oder auf ein Feature klicken',\n selectMultiPointSHIFT: 'Features auswählen, indem man ein Rechteck zeichnet und SHIFT drückt oder auf ein Feature klickt',\n selectMultiPointSHIFTAtLeast2Feature: 'Mindestens 2 Features auswählen und mit SHIFT ein Rechteck zeichnen oder auf ein Feature klicken',\n copyCTRL: 'Kopieren ausgewählter Features mit CTRL+C',\n selectStartVertex: 'Start-Eckpunkt der ausgewählten Features auswählen',\n selectToPaste: 'Den Punkt auswählen, an dem die ausgewählten Features eingefügt werden sollen',\n draw_split_line: \"Eine Linie zeichnen, um das ausgewählte Feature zu teilen\"\n },\n title: {\n steps: 'Schritte'\n },\n next: 'Weiter'\n },\n messages: {\n featureslockbyotheruser: \"Einige Geometrien/Datensätze können nicht bearbeitet werden, da sie von anderen Benutzern bearbeitet werden\",\n splitted: \"Getrennt\",\n nosplittedfeature: \"Feature nicht getrennt\",\n press_esc: \"Mit ESC zurück\",\n online: \"Wieder ONLINE. Jetzt kann man die Änderungen in der Datenbank speichern\",\n offline: \"OFFLINE. Alle Änderungen werden lokal gespeichert\",\n delete_feature: \"Soll das ausgewählte Feature gelöscht werden?\",\n delete_feature_relations: \"Wenn ein Feature Verknüpfungen beinhaltet, werden diese Relationen verwaist. Wir schlagen vor, diese Relationen zu behandeln, bevor das Feature gelöscht wird\",\n unlink_relation: \"Soll die Verknüpfung aufgehoben werden?\",\n commit_feature: \"Zusammenfassung der Änderungen\",\n toolbox_has_relation: \"Diese Ebene ist Teil einer Beziehung\",\n saved: \"Daten erfolgreich gespeichert\",\n saved_local: \"Daten erfolgreich lokal gespeichert\",\n loading_data: \"Daten laden\",\n saving: \"Daten werden gespeichert. Bitte warten ...\",\n constraints: {\n enable_editing: \"Bitte zoomen Sie hinein, um die Editier-Tools zu aktivieren \\nAktivierungsskala bei 1:\"\n },\n pdf: \"Dokumentenvorschau nicht verfügbar. Bitte hier klicken \",\n commit: {\n header: \"Die folgende Liste zeigt alle zu übernehmenden Änderungen.\",\n header_relation: \"Relation\",\n header_add: \"Hinzufgefügt Die Anzahl der hinzugefügten Features anzeigen\",\n header_update_delete: \"Bearbeitet und Gelöscht Die Liste der Feature-ID anzeigen\",\n add: \"Hinzugefügt\",\n delete: \"Gelöscht\",\n update: \"Bearbeitet\"\n },\n loading_table_data: \"Datentabelle wird erstellt. Bitte warten ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Vor dem Speichern müssen alle Pflichtfelder des eingegebenen features ausgefüllt werden\",\n no_feature_selected: \"Keine feature ausgewählt\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
W\\xE4hlen Sie Relationen aus, um sie mit dem aktuellen Feature zu verkn\\xFCpfen.
\"\n },\n draw_new_feature: \"Zeichnen Sie eine neue feature\",\n draw_or_copy: \"oder\",\n copy_feature_from_other_layer: \"Kopieren Sie feature aus einer anderen layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Zurück zur Bearbeitung des Vaters\",\n add_relation: \"Neue Relation erstellen und verknüpfen\",\n link_relation: \"Eine Relation zu diesem Feature herstellen\",\n open_relation_tools: \"Relationstools anzeigen\",\n unlink_relation: \"Relation trennen\"\n }\n },\n buttons: {\n save: \"Einfügung/Bearbeiten\",\n save_and_back: \"Speichern und zurück\",\n save_and_back_table: \"Speichern und zurück\",\n cancel: \"Änderungen ignorieren\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select one feature\"\n }\n }\n }\n};\n\n},{}],17:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"An error occurs. It's no possible to edit layers\",\n some_layers: \"An error occurs: It's no possible to edit some layers\",\n editing_multiple_relations: 'Editing multiple relationships is not currently supported'\n },\n search: \"Search\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Editing Layers\",\n editing_attributes: \"Editing attributes\",\n relations: \"Relations\",\n edit_relation: \"Edit relation\",\n back_to_relations: \"Back to Relations\",\n no_relations_found: \"No relations found\",\n relation_data: \"Relation data\",\n relation_already_added: \"Relation already added\",\n list_of_relations_feature: \"List of relations feature \",\n tooltip: {\n edit_layer: \"Edit Layer\",\n filter_by_relation: \"Filter layers by relation\"\n },\n toolbox: {\n title: 'Edit'\n },\n table: {\n edit: \"Edit feature\",\n copy: \"Create a copy\",\n delete: \"Delete feature\"\n },\n tools: {\n copy: \"Copy features\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Add part to multipart\",\n deletepart: \"Delete part from multipart\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n add_feature: \"Add feature\",\n delete_feature: \"Delete feature\",\n move_feature: \"Move feature\",\n update_vertex: \"Update feature vertex\",\n update_feature: \"Update feature attribute\",\n update_multi_features: \"Update attributes of selected features\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Select features\",\n select_element: \"Select feature\",\n copy: \"Create new copy of selected features\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n new: \"Create new feature\",\n edit_table: \"Edit table features\",\n draw_new_feature: \"Draw feature on map\",\n action_confirm: \"Confirm action\",\n double_click_delete: \"Select feature on map to delete\",\n edit_feature_vertex: \"Modify or add a vertex on selected feature\",\n move: \"Move selected feature\",\n select_feature_to_relation: \"Select feature that you bind relation\",\n show_edit_feature_form: \"Show feature form to edit attributes\",\n pick_feature: \"Select feature on map to modify\",\n insert_attributes_feature: \"Insert attributes of the feature\"\n }\n },\n workflow: {\n steps: {\n select: 'Click on feature to select',\n draw_part: \"Draw new part\",\n draw_geometry: \"Draw geometry\",\n merge: 'Select featurewhere dissolve',\n selectSHIFT: 'Select features drawing a rectangle pressing SHIFT',\n selectDrawBox: \"Select features drawing a rectangle by two point of opposite corners\",\n selectDrawBoxAtLeast2Feature: \"Select at least features drawing a rectangle by two point of opposite corners\",\n selectPoint: \"Click on feature to select\",\n selectPointSHIFT: 'Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature',\n selectMultiPointSHIFT: 'Select features drawing a rectangle pressing SHIFT or click on feature',\n selectMultiPointSHIFTAtLeast2Feature: 'Select at least 2 features drawing a rectangle pressing SHIFT or click on feature',\n copyCTRL: 'Copy selected features using CTRL+C',\n selectStartVertex: 'Select starting vertex of selected features',\n selectToPaste: 'Select the point where paste the features selected',\n draw_split_line: \"Draw a line to split selected feature\"\n },\n title: {\n steps: 'Steps'\n },\n next: 'Next'\n },\n messages: {\n featureslockbyotheruser: \"Some geometries/records are not editable because in editing by other user\",\n splitted: \"Splitted\",\n nosplittedfeature: \"Feature not spitted\",\n press_esc: \"Press ESC to back\",\n online: \"Back ONLINE. Now you can save your changes on database\",\n offline: \"You are OFFLINE. All changes are saved locally\",\n delete_feature: \"Do you want delete selected feature ?\",\n delete_feature_relations: \"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature\",\n unlink_relation: \"Do you want unlink relation?\",\n commit_feature: \"Summary of changes\",\n toolbox_has_no_geometry: \"this layer has no geometry\",\n toolbox_has_relation: \"this layer is part of a relation\",\n saved: \"Data saved successfully\",\n saved_local: \"Data saved locally successfully\",\n loading_data: \"Loading data\",\n saving: \"Saving data. Please wait ...\",\n constraints: {\n enable_editing: \"Please Zoom In to enable editing tools \\nActivation scale at 1:\"\n },\n pdf: \"Document preview not available. Please click here \",\n commit: {\n header: \"The following list show all changes to commit.\",\n header_relation: \"Relation\",\n header_add: \"Added show the number of features added\",\n header_update_delete: \"Modified and Deleted show the list of features id\",\n add: \"Added\",\n delete: \"Deleted\",\n update: \"Updated\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Select relations to link it to current editing feature.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Create and link new relation\",\n link_relation: \"Join a relation to this feature\",\n open_relation_tools: \"Show relation tools\",\n unlink_relation: \"Unlink relation\"\n }\n },\n buttons: {\n save: \"Insert/Edit\",\n save_and_back: \"Save and Back\",\n save_and_back_table: \"Save and Back\",\n cancel: \"Ignore Changes\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],18:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Tapahtui virhe. Tasoja ei ole mahdollista muokata.\",\n some_layers: \"Tapahtui virhe. Jotkin tasot eivät ole muokattavissa.\"\n },\n search: \"Haku\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Muokataan tasoja\",\n editing_attributes: \"Muokataan attribuutteja\",\n relations: \"Relaatiot\",\n edit_relation: \"Muokkaa relaatiota\",\n back_to_relations: \"Takaisin relaatioihin\",\n no_relations_found: \"Relaatioita ei löytynyt\",\n relation_data: \"Relaation tiedot\",\n relation_already_added: \"Relaatio on jo lisätty\",\n list_of_relations_feature: \"Lista relaation ominaisuuksista\",\n tooltip: {\n edit_layer: \"Muokkaa tasoa\"\n },\n toolbox: {\n title: 'Muokkaa'\n },\n table: {\n edit: \"Muokkaa ominaisuutta\",\n copy: \"Luo kopio\",\n delete: \"Poista ominaisuus\"\n },\n tools: {\n copy: \"Kopio ominaisuuksia\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Lisää osa\",\n deletepart: \"Poista osa\",\n merge: \"Yhdistä ominaisuudet\",\n split: \"Leikkaa ominaisuus\",\n add_feature: \"Lisää ominaisuus\",\n delete_feature: \"Poista ominaisuus\",\n move_feature: \"Siirrä ominaisuutta\",\n update_vertex: \"Päivitä pisteen ominaisuutta\",\n update_feature: \"Päivitä ominaisuus\",\n update_multi_features: \"Muokkaa valittujen ominaisuuksien attribuutteja\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Valitse ominaisuudet\",\n select_element: \"Valitse ominaisuus\",\n copy: \"Luo kopio valituista ominaisuuksista\",\n merge: \"Yhdistä ominaisuudet\",\n split: \"Leikkaa ominaisuus\",\n new: \"Luo uusi ominaisuus\",\n edit_table: \"Muuta taulun ominaisuuksia\",\n draw_new_feature: \"Piirrä ominaisuus kartalle\",\n action_confirm: \"Hyväksy toiminto\",\n double_click_delete: \"Valitse poistettava ominaisuus kartalta\",\n edit_feature_vertex: \"Muuta pistettä tai lisää piste valittuun ominaisuuteen\",\n move: \"Siirrä valittu ominaisuus\",\n select_feature_to_relation: \"Valitse relaatio\",\n show_edit_feature_form: \"Näytä ominaisuuslomake muokataksesi attribuutteja\",\n pick_feature: \"Valitse muokattava ominaisuus kartalta\",\n insert_attributes_feature: \"Lisää ominaisuuden attribuutit\"\n }\n },\n workflow: {\n steps: {\n select: 'Valitse ominaisuus',\n draw_part: \"Piirrä uusi osa\",\n merge: 'Valitse ominaisuus yhdistääksesi',\n draw_geometry: \"Piirrä geometria\",\n selectSHIFT: 'Paina SHIFT, jos haluat valita kohteita suorakulmiovalinnalla.', //Tero 10.12.2020\n selectDrawBox: \"Piirrä suorakulmio, jonka siältä kohteet valitaan \", //Tero 10.12.2020\n selectDrawBoxAtLeast2Feature: \"Piirrä suorakulmio, jonka siältä kohteet vähintään 2 valitaan \",\n selectPoint: \"Valitse ominaisuus\",\n selectPointSHIFT: 'Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n selectMultiPointSHIFT: 'Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n selectMultiPointSHIFTAtLeast2Feature: 'Paina SHIFT, jos haluat valita vähintään 2 ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n copyCTRL: 'CTRL+C, voit kopioida valitut ominaisuudet.', //Tero 10.12.2020\n selectStartVertex: 'Osoita valittujen ominaisuuksien alkupiste.',\n selectToPaste: 'Valitse kohta, johon liität valitut ominaisuudet.',\n draw_split_line: \"Piirrä viiva, jonka mukaan valittu ominaisuus jaetaan.\"\n },\n title: {\n steps: 'Vaiheet'\n },\n next: \"Seuraava\"\n },\n messages: {\n featureslockbyotheruser: \"Some features are locked by another user\",\n splitted: \"Jaettu\",\n nosplittedfeature: \"Ominaisuutta ei jaettu\",\n press_esc: \"Paina ESC palataksesi\",\n online: \"Yhteys muodostettu. Muutokset voidaan tallentaa tietokantaan.\",\n offline: \"Olet offline-tilassa. Muutokset tallennetaan paikallisesti\",\n delete_feature: \"Haluatko poistaa valitun ominaisuuden?\",\n delete_feature_relations: \"Mikäli ominaisuudella on sitovia relaatioita, näistä relaatiosta tulee orpoja. Suosittelemme käsittelemään nämä relaatiot ennen poistamista\",\n unlink_relation: \"Haluatko poistaa relaation?\",\n commit_feature: \"Yhteenveto muutoksista\",\n toolbox_has_relation: \"tämä kerros on osa relaatiota\",\n saved: \"Tiedot tallennettu onnistuneesti\",\n saved_local: \"Tiedot on tallennettu onnistuneesti paikallisesti.\",\n loading_data: \"Ladataan tietoja\",\n saving: \"Tallentaan tietoja. Odota...\",\n constraints: {\n enable_editing: \"Lähennä ottaaksesi muokkaustyökalut käyttöön \\nAktivointi mittakaava 1:\"\n },\n pdf: \"Dokumentin esikatselu ei ole saatavilla. Paina tästä \",\n commit: {\n header: \"Seuraava luettelo näyttää kaikki muutokset.\",\n header_relation: \"Relation\",\n header_add: \"Lisätty näytä lisättyjen ominaisuuksien lukumäärä\",\n header_update_delete: \"Muokattu ja Poistettu Näytä listä ominaisuuksien id:stä\",\n add: \"Lisätty\",\n delete: \"Poistettu\",\n update: \"Muokattu\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Valitse relaatiota linkitt\\xE4\\xE4ksesi ne muokattavaan ominaisuuteen.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Luo ja linkitä uusi relaatio\",\n link_relation: \"Liitä relaatio tähän ominaisuuteen\",\n open_relation_tools: \"Näytä relaatiotyökalut\",\n unlink_relation: \"Poista relaatio\"\n }\n },\n buttons: {\n save: \"Lisää/muokkaa\",\n save_and_back: \"Tallenna ja palaa\",\n save_and_back_table: \"Tallenna ja palaa\",\n cancel: \"Peruuta\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Une erreur s'est produite lors du chargement des layers dans l'édition.\",\n some_layers: \"Une erreur s'est produite lors du chargement de certaines layers dans l'édition.\"\n },\n search: \"Recherche\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Modifier les donnes\",\n editing_attributes: \"Modifier les attributs\",\n relations: \"Relations\",\n edit_relation: \"Modifier la relation\",\n back_to_relations: \"Retour aux relations\",\n no_relations_found: \"Il n'y a pas de relations\",\n relation_data: \"Données sur les relations\",\n relation_already_added: \"Relation déjà présente\",\n list_of_relations_feature: \"Lister les relations de la fonctionnalité\",\n tooltip: {\n edit_layer: \"Modifier le layer\"\n },\n toolbox: {\n title: 'Modifier'\n },\n table: {\n edit: \"Modifier fonctionnalités\",\n copy: \"Créer une copie\",\n delete: \"Supprimer la fonctionnalité\"\n },\n tools: {\n copy: \"Copier les fonctionnalités\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Ajouter une pièce à la géométrie\",\n deletepart: \"Supprimer la partie de la géométrie\",\n merge: \"Dissoudre les fonctionnalités\",\n split: \"Couper la fonctionnalité\",\n add_feature: \"Ajouter une fonctionnalité\",\n delete_feature: \"Supprimer la fonctionnalité\",\n move_feature: \"Déplacez la fonctionnalité\",\n update_vertex: \"Mettre à jour les sommets des fonctionnalités\",\n update_feature: \"Modifier les attributs des fonctionnalités\",\n update_multi_features: \"Modifier les attributs des fonctionnalités sélectionnées\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Sélectionner les fonctionnalités\",\n select_element: \"Sélectionner une fonctionnalité\",\n copy: \"Créer une copie des fonctionnalités sélectionnées\",\n merge: \"Dissoudre les fonctionnalités\",\n split: \"Couper la fonctionnalité\",\n new: \"Créer une nouvelle fonctionnalité\",\n edit_table: \"Modifier les fonctionnalités de la table\",\n draw_new_feature: \"Dessiner une fonctionnalité sur la carte\",\n action_confirm: \"Confirmer l'action\",\n double_click_delete: \"Sélectionner la fonctionnalité sur la carte à supprimer\",\n edit_feature_vertex: \"Modifier ou ajouter un sommet à la fonctionnalité sélectionnée\",\n move: \"Déplacer la fonctionnalité sélectionnée\",\n select_feature_to_relation: \"Sélectionner la fonctionnalité que vous souhaitez mettre en relation\",\n show_edit_feature_form: \"Afficher le formulaire de la fonctionnalité permettant de modifier les attributs\",\n pick_feature: \"Sélectionner l'élément de la carte à modifier\",\n insert_attributes_feature: \"Insérer les attributs de la fonctionnalité\"\n }\n },\n workflow: {\n steps: {\n select: 'Cliquer sur la fonctionnalité à sélectionner',\n draw_part: \"Dessiner la nouvelle partie\",\n draw_geometry: \"Dessiner la géométrie\",\n merge: 'Sélectionner la fonction à introduire en fondu',\n selectPoint: \"Cliquer sur la fonctionnalité pour la sélectionner\",\n selectSHIFT: 'Sélectionner des fonctionnalités en maintenant la touche SHIFT enfoncée',\n selectDrawBox: \"Sélectionner les fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale\",\n selectDrawBoxAtLeast2Feature: \"Sélectionner au moins 2 fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale\",\n selectPointSHIFT: 'Sélectionner des caractéristiques en maintenant la touche SHIFT enfoncée (multi-sélection) ou en cliquant sur une seule caractéristique',\n selectMultiPointSHIFT: 'Sélectionner des fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle',\n selectMultiPointSHIFTAtLeast2Feature: 'Sélectionner au moins 2 fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle',\n copyCTRL: 'Copier les fonctionnalités sélectionnées avec CTRL+C',\n selectStartVertex: 'Sélectionner le sommet de départ des fonctionnalités choisies',\n selectToPaste: 'Sélectionner le point où les fonctionnalités sélectionnées seront collées',\n draw_split_line: \"Tracez une ligne pour couper la fonctionnalité sélectionnée\"\n },\n title: {\n steps: 'Étapes'\n },\n next: 'Suivant'\n },\n messages: {\n featureslockbyotheruser: \"Certaines géométries/enregistrements ne sont pas modifiables car ils ont été modifiés par un autre utilisateur\",\n splitted: \"Fonctionnalité(s) divisé(es)\",\n nosplittedfeature: \"La (les) fonctionnalité(s) n’a (n'ont) pas été divisé(es)\",\n press_esc: \"Appuyez sur ESC pour revenir\",\n online: \"Vous êtes à nouveau EN LIGNE. Vous pouvez enregistrer les modifications de façon permanente\",\n offline: \"Vous êtes HORS LIGNE. Toutes les modifications seront enregistrées temporairement en local\",\n delete_feature: \"Voulez-vous supprimer la fonctionnalité sélectionnée ?\",\n delete_feature_relations: \"La suppression d'une fonctionnalité avec des relations associées laissera ces relations orphelines. Il est recommandé de gérer ces relations avant de supprimer la fonctionnalité\",\n unlink_relation: \"Voulez-vous détacher la relation ?\",\n commit_feature: \"Sommaire des changements\",\n toolbox_has_relation: \"cette couche fait partie d'une relation\",\n saved: \"Les données ont été enregistrées correctement\",\n saved_local: \"Les données ont été correctement sauvegardées localement\",\n loading_data: \"Chargement des données\",\n saving: \"Sauvegarde des données. Veuillez patienter ...\",\n constraints: {\n enable_editing: \"Augmenter le niveau de zoom pour permettre l'édition \\nEchelle de déclenchement 1 :\"\n },\n pdf: \"Aperçu du document non disponible. Cliquez ici \",\n commit: {\n header: \"La liste ci-dessous montre toutes les modifications qui seront enregistrées.\",\n header_relation: \"Relation\",\n header_add: \"Ajouts indique le nombre de fonctionnalités ajoutées\",\n header_update_delete: \"Modifié e Supprimé liste les ids\",\n add: \"Ajouté\",\n delete: \"Supprimé\",\n update: \"Modifié\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Avant d'enregistrer, il est nécessaire de remplir tous les champs obligatoires du features saisi\",\n no_feature_selected: \"Aucune feature sélectionnée\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
S\\xE9lectionner les relations pour les associer \\xE0 l'\\xE9l\\xE9ment en cours d'\\xE9dition.
\"\n },\n draw_new_feature: \"Dessiner une nouvelle feature\",\n draw_or_copy: \"ou\",\n copy_feature_from_other_layer: \"Copier feature d'une autre layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Créer et ajouter une nouvelle relation\",\n link_relation: \"Associer une relation existante à cette fonctionnalité\",\n open_relation_tools: \"Outils de relation ouverte\",\n unlink_relation: \"Annuler la relation\"\n }\n },\n buttons: {\n save: \"Insérer/Modifier\",\n save_and_back: \"Sauvegarder et retourner au parent\",\n save_and_back_table: \"Sauvegarder et et revenir en arrière\",\n cancel: \"Ignorer modifications\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],20:[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\nexports.default = {\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\n},{\"./de\":16,\"./en\":17,\"./fi\":18,\"./fr\":19,\"./it\":21,\"./pl\":22,\"./ro\":23,\"./se\":24}],21:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"Terminare l'editing dei singoli layer per chiudere la sessione\"\n },\n errors: {\n no_layers: \"Si è verificato un errore nel caricamento dei layers in editing.\",\n some_layers: \"Si è verificato un errore nel caricamento di alcuni layers in editing\",\n editing_multiple_relations: 'Le modifica di relazioni multiple non è attualmente supportata'\n },\n search: \"Cerca\",\n editing_changes: \"Modifiche Editing\",\n editing_data: \"Modifica dati\",\n editing_attributes: \"Edita attributi\",\n relations: \"Relazioni\",\n edit_relation: \"Edita relazione\",\n back_to_relations: \"Ritorna alle Relazioni\",\n no_relations_found: \"Non ci sono relazioni\",\n relation_data: \"Dati relativi alla relazione\",\n relation_already_added: \"Relazione già presente\",\n list_of_relations_feature: \"Elenco Relazioni della feature \",\n tooltip: {\n edit_layer: \"Modifica livello\",\n filter_by_relation: \"Filtra i livelli per relazione\"\n },\n toolbox: {\n title: 'Edita'\n },\n table: {\n edit: \"Edita feature\",\n copy: \"Crea una copia\",\n delete: \"Cancella feature\"\n },\n tools: {\n copy: \"Copia elementi\",\n pastefeaturesfromotherlayers: \"Incolla elemento da altro livello\",\n addpart: \"Aggiungi parte alla geometria\",\n deletepart: \"Cancella parte dalla geometria\",\n merge: \"Dissolvi elementi\",\n split: \"Dividi elementi\",\n add_feature: \"Aggiungi elemento\",\n delete_feature: \"Elimina elemento\",\n move_feature: \"Muovi elemento\",\n update_vertex: \"Aggiorna vertici elemento\",\n update_feature: \"Modifica attributi elemento\",\n update_multi_features: \"Modifica gli attributi degli elementi selezionati\",\n update_multi_features_relations: \"Modifica gli attributi di tutte le relazioni selezionate\",\n copyfeaturefromexternallayer: \"Crea elemento da un livello esterno\"\n },\n toolsoftool: {\n measure: \"Visualizza misura\",\n snap: \"Snap sul layer\",\n snapall: \"Snap su tutti i layer\"\n },\n steps: {\n help: {\n select_elements: \"Seleziona le geometrie\",\n select_element: \"Seleziona l'elemento\",\n copy: \"Crea una copia degli elementi selezionati\",\n merge: \"Dissolvi elementi\",\n split: \"Dvidi elemento\",\n new: \"Crea un nuovo elemento\",\n edit_table: \"Modifica gli elementi della tabella\",\n draw_new_feature: \"Disegna la nuova geometria\",\n action_confirm: \"Conferma azione\",\n double_click_delete: \"Seleziona la geometria sulla mappa da cancellare\",\n edit_feature_vertex: \"Modifica o aggiungi un vertice alla geometria selezionata\",\n move: \"Muovi la geometria selezionata\",\n select_feature_to_relation: \"Seleziona la geometria che vuoi mettere in relazione\",\n show_edit_feature_form: \"Mostra il modulo per modificare gli attributi del'elemento\",\n pick_feature: \"Seleziona la geometria da modificare dalla mappa\",\n insert_attributes_feature: \"Inserisci gli attributi dell'elemento\"\n }\n },\n\n workflow: {\n steps: {\n select: 'Seleziona una geometria',\n draw_part: \"Disegna il nuovo elemento da aggiungere alla geometria\",\n draw_geometry: \"Disegna la geometria\",\n merge: 'Seleziona la geometria su cui dissolvere',\n selectPoint: \"Clicca sulla geometria per selezionarla\",\n selectSHIFT: 'Seleziona le geometrie tenedo premuto il tasto SHIFT',\n selectDrawBox: \"Seleziona le geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale\",\n selectDrawBoxAtLeast2Feature: \"Seleziona almeno 2 geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale\",\n selectPointSHIFT: 'Seleziona le geometrie
MAIUSC+DRAG seleziona più elementi in un area',\n selectMultiPointSHIFT: 'Seleziona le geometrie
SHIFT+DRAG seleziona più elementi in un area',\n selectMultiPointSHIFTAtLeast2Feature: 'Seleziona almeno 2 geometrie
SHIFT+DRAG seleziona più elementi in un area',\n copyCTRL: 'Copia le geometrie selezionate con CTRL+C',\n selectStartVertex: 'Seleziona il vertice di partenza',\n selectToPaste: 'Seleziona il punto dove verranno incollate le geometrie',\n draw_split_line: \"Disegna una linea per dividere la geometria selezionata\"\n },\n title: {\n steps: 'Passi'\n },\n next: 'Avanti'\n },\n messages: {\n featureslockbyotheruser: \"Ci sono alcune geometrie/records non editabili perchè in modifica da altri utenti\",\n splitted: \"Feature(s) splittata(e)\",\n nosplittedfeature: \"La(e) feature(s) non è stata splittata\",\n press_esc: \"Premi ESC per tornare indietro\",\n online: \"Ora sei di nuovo ONLINE. Puoi slavare le modifiche in modo permanente\",\n offline: \"Sei OFFLINE. Tutte le modifiche saranno salvate temporaneamente in locale\",\n delete_feature: \"Vuoi eliminare l'elemento selezionato?\",\n delete_feature_relations: \"Cancellando una feature con relazioni associate, tale relazioni rimarranno orfane. Si consiglia di gestire tali relazioni prima di cancellare la feature\",\n unlink_relation: \"Vuoi staccare la relazione?\",\n commit_feature: \"Riepilogo modifiche\",\n toolbox_has_no_geometry: \"questo livello non ha geometria\",\n toolbox_has_relation: \"questo livello fa parte di una relazione\",\n saved: \"I dati sono stati salvati correttamente\",\n saved_local: \"I dati sono stati salvati correttamente in locale\",\n loading_data: \"Caricamento dati\",\n saving: \"Salvataggio dati in corso. Attendere ...\",\n constraints: {\n enable_editing: \"Ingrandisci per modificare \\nScala di attivazione 1:\"\n },\n pdf: \"Anteprima del documento non disponibile. Clicca qui \",\n commit: {\n header: \"La lista sotto riporta tutte le modifiche che verranno salvate.\",\n header_relation: \"Relazione\",\n header_add: \"Aggiunte riporta il numero delle features aggiunte\",\n header_update_delete: \"Modificate e Cancellate riporta la lista degli id\",\n add: \"Aggiunte\",\n delete: \"Cancellate\",\n update: \"Aggiornate\"\n },\n loading_table_data: \"Costruzione tabella dati in corso. Attendere ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Necessario compilare eventuali campi obbligatori sulle features incollate prima del salvataggio\",\n no_feature_selected: \"Nessuna feature selezionata\",\n select_min_2_features: 'Seleziona come minimo due features'\n },\n relation: {\n table: {\n info: \"
Seleziona le relazioni per associarle alla feature in editing.
\"\n },\n draw_new_feature: \"Disegna nuova geometria\",\n draw_or_copy: \"oppure\",\n copy_feature_from_other_layer: \"Copia geometria da altro layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Torna ad editare il padre\",\n add_relation: \"Crea ed aggiungi nuova relazione\",\n link_relation: \"Associa una relazione esistente a questa feature\",\n open_relation_tools: \"Apri strumenti relatione\",\n unlink_relation: \"Annulla relazione\"\n }\n },\n buttons: {\n save: \"Inserisci/Modifica\",\n save_table: 'Modifica',\n save_and_back: \"Salva e torna al padre\",\n save_and_back_table: \"Salva e torna indietro\",\n cancel: \"Ignora Modifiche\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Seleziona layer\",\n edit_attributes: \"Edita attributi delle features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Seleziona una feature\"\n }\n }\n }\n};\n\n},{}],22:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n errors: {\n no_layers: \"An error occurs. It's no possible to edit layers\",\n some_layers: \"An error occurs: It's no possible to edit some layers\"\n },\n search: \"Search\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Editing Layers\",\n editing_attributes: \"Editing attributes\",\n relations: \"Relations\",\n edit_relation: \"Edit relation\",\n back_to_relations: \"Back to Relations\",\n no_relations_found: \"No relations found\",\n relation_data: \"Relation data\",\n relation_already_added: \"Relation already added\",\n list_of_relations_feature: \"List of relations feature \",\n tooltip: {\n edit_layer: \"Edit Layer\"\n },\n toolbox: {\n title: 'Edit'\n },\n table: {\n edit: \"Edit feature\",\n copy: \"Create a copy\",\n delete: \"Delete feature\"\n },\n tools: {\n copy: \"Copy features\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Add part to multipart\",\n deletepart: \"Delete part from multipart\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n add_feature: \"Add feature\",\n delete_feature: \"Delete feature\",\n move_feature: \"Move feature\",\n update_vertex: \"Update feature vertex\",\n update_feature: \"Update feature attribute\",\n update_multi_features: \"Update attributes of selected features\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Select features\",\n select_element: \"Select feature\",\n copy: \"Create new copy of selected features\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n new: \"Create new feature\",\n edit_table: \"Edit table features\",\n draw_new_feature: \"Draw feature on map\",\n action_confirm: \"Confirm action\",\n double_click_delete: \"Select feature on map to delete\",\n edit_feature_vertex: \"Modify or add a vertex on selected feature\",\n move: \"Move selected feature\",\n select_feature_to_relation: \"Select feature that you bind relation\",\n show_edit_feature_form: \"Show feature form to edit attributes\",\n pick_feature: \"Select feature on map to modify\",\n insert_attributes_feature: \"Insert attributes of the feature\"\n }\n },\n workflow: {\n steps: {\n select: 'Click on feature to select',\n draw_part: \"Draw new part\",\n merge: 'Select featurewhere dissolve',\n selectSHIFT: 'Select features drawing a rectangle pressing SHIFT',\n selectDrawBox: \"Select features drawing a rectangle by two point of opposite corners\",\n selectDrawBoxAtLeast2Feature: \"Select at least features drawing a rectangle by two point of opposite corners\",\n selectPoint: \"Click on feature to select\",\n selectPointSHIFT: 'Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature',\n selectMultiPointSHIFT: 'Select features drawing a rectangle pressing SHIFT or click on feature',\n selectMultiPointSHIFTAtLeast2Feature: 'Select at least 2 features drawing a rectangle pressing SHIFT or click on feature',\n copyCTRL: 'Copy selected features using CTRL+C',\n selectStartVertex: 'Select starting vertex of selected features',\n selectToPaste: 'Select the point where paste the features selected',\n draw_split_line: \"Draw a line to split selected feature\"\n },\n title: {\n steps: 'Steps'\n },\n next: 'Next'\n },\n messages: {\n featureslockbyotheruser: \"Some geometries/records are not editable because in editing by other user\",\n splitted: \"Splitted\",\n nosplittedfeature: \"Feature not spitted\",\n press_esc: \"Press ESC to back\",\n online: \"Back ONLINE. Now you can save your changes on database\",\n offline: \"You are OFFLINE. All changes are saved locally\",\n delete_feature: \"Do you want delete selected feature ?\",\n delete_feature_relations: \"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature\",\n unlink_relation: \"Do you want unlink relation?\",\n commit_feature: \"Do you want to save the changes\",\n toolbox_has_relation: \"this layer is part of a relation\",\n saved: \"Data saved successfully\",\n saved_local: \"Data saved locally successfully\",\n loading_data: \"Loading data\",\n saving: \"Saving data. Please wait ...\",\n constraints: {\n enable_editing: \"Please Zoom In to enable editing tools \\nActivation scale at 1:\"\n },\n pdf: \"Document preview not available. Please click here \",\n commit: {\n header: \"The following list show all changes to commit.\",\n header_add: \"Added show the number of features added\",\n header_update_delete: \"Modified and Deleted show the list of features id\",\n add: \"Added(n. features)\",\n delete: \"Deleted(id)\",\n update: \"Modified(id)\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Select relations to link it to current editing feature.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Create and link new relation\",\n link_relation: \"Join a relation to this feature\",\n open_relation_tools: \"Show relation tools\",\n unlink_relation: \"Unlink relation\"\n }\n },\n buttons: {\n save: \"Insert/Edit\",\n save_and_back: \"Save and Back\",\n save_and_back_table: \"Save and Back\",\n cancel: \"Ignore Changes\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],23:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Avem o eroare. Straturile nu sunt editabile\",\n some_layers: \"Avem o eroare: Anumite straturi nu se pot edita\"\n },\n search: \"Caută\",\n editing_changes: \"Modificare schimbări\",\n editing_data: \"Modificare straturi\",\n editing_attributes: \"Modificare atribute\",\n relations: \"Relații\",\n edit_relation: \"Modifică relația\",\n back_to_relations: \"Înapoi la Relații\",\n no_relations_found: \"Nu am găsit relații\",\n relation_data: \"Date relații\",\n relation_already_added: \"Relație adăugată deja\",\n list_of_relations_feature: \"Lista relații entitatea \",\n tooltip: {\n edit_layer: \"Modifică strat\"\n },\n toolbox: {\n title: 'Modifică'\n },\n table: {\n edit: \"Modifică entitate\",\n copy: \"Creează o copie\",\n delete: \"Elimină entitatea\"\n },\n tools: {\n copy: \"Copiază entitățile\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Adaugă o parte la multiparte\",\n deletepart: \"Elimină partea din multiparte\",\n merge: \"Dizolvare entități\",\n split: \"Divizare Entitate\",\n add_feature: \"Adaugă entitate\",\n delete_feature: \"Eliminare entitate\",\n move_feature: \"Mută entitate\",\n update_vertex: \"Actualizează vertecșii entității\",\n update_feature: \"Actualizează atributul entității\",\n update_multi_features: \"Actualizează atributele entităților selectate\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Arată măsurătorile\",\n snap: \"Acroșare strat\",\n snapall: \"Acroșare pe toate straturile\"\n },\n steps: {\n help: {\n select_elements: \"Selectează entități\",\n select_element: \"Selectează entitate\",\n copy: \"Creează o nouă copie a entităților selectate\",\n merge: \"Dizolvă entitățile\",\n split: \"Divizare Entitate\",\n new: \"Creează o entitate\",\n edit_table: \"Modifică entitățile tabelare\",\n draw_new_feature: \"Desenează entitate pe hartă\",\n action_confirm: \"Confirmă acțiunea\",\n double_click_delete: \"Selectează entitatea de eliminat din hartă\",\n edit_feature_vertex: \"Modifică sau adaugă un vertex la entitatea selectată\",\n move: \"Mută entitatea selectată\",\n select_feature_to_relation: \"Selectează entitate pentru relaționare\",\n show_edit_feature_form: \"Arată formularul entității pentru modificări\",\n pick_feature: \"Selectează entitățile de modificat din hartă\",\n insert_attributes_feature: \"Inserează atributele entității\"\n }\n },\n workflow: {\n steps: {\n select: 'Click pe entitate pentru a o selecta',\n draw_part: \"Desenează o parte nouă\",\n draw_geometry: \"Desenați geometria\",\n merge: 'Selectează partea de dizolvat',\n selectSHIFT: 'Selectează entități prin desen triunghi apăsând SHIFT',\n selectDrawBox: \"Selectează entități desenând un dreptunghi prin două puncte opuse\",\n selectDrawBoxAtLeast2Feature: \"Selectează cel puțin 2 entități prin desenul unui dreptunghi\",\n selectPoint: \"Click pe entitate pentru selectare\",\n selectPointSHIFT: 'Selectează entități prin desen dreptunghi apăsând SHIFT (multientități) sau prin click pe entitate',\n selectMultiPointSHIFT: 'Selectează entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate',\n selectMultiPointSHIFTAtLeast2Feature: 'Selectează cel puțin 2 entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate',\n copyCTRL: 'Copiază entitățile selectate folosint CTRL+C',\n selectStartVertex: 'Selectează vertexul de start a entităților selectate',\n selectToPaste: 'Selectează punctul unde să lipim entitățile selectate',\n draw_split_line: \"Desenează o linie pentru a diviza entitatea selectată\"\n },\n title: {\n steps: 'Pași'\n },\n next: 'Următorul'\n },\n messages: {\n featureslockbyotheruser: \"Unele geometrii/înregistrări nu sunt editabile deoarece sunt editate de către alt utilizator\",\n splitted: \"Divizat\",\n nosplittedfeature: \"Entitate nedivizată\",\n press_esc: \"ESC pentru înapoi\",\n online: \"Înapoi ONLINE. Acum se pot salva schimbările\",\n offline: \"OFFLINE. Schimbările sunt salvate local\",\n delete_feature: \"Șterg entitatea selectată?\",\n delete_feature_relations: \"Dacă entitatea are relații care trimit la ea, acele relații devin orfane. Sugerăm să vă ocupați de acele elemente înainte să eliminați această entitate.\",\n unlink_relation: \"Dorești să eliminați legătura cu relația?\",\n commit_feature: \"Rezumatul modificărilor\",\n toolbox_has_relation: \"acest strat face parte dintr-o relație\",\n saved: \"Datele sunt salvate\",\n saved_local: \"Datele s-au salvat local\",\n loading_data: \"Datele se încarcă.\",\n saving: \"Salvăm datele. Așteptați ...\",\n constraints: {\n enable_editing: \"Pentru a activa Modificare faceți zoom la \\nScara de activare 1:\"\n },\n pdf: \"Previzualizarea documentului nu este disponibilă. Click aici \",\n commit: {\n header: \"Lista cu toate modificările.\",\n header_relation: \"Relation\",\n header_add: \"Adăugate arată nr. de entități adăugate\",\n header_update_delete: \"Modificate și Șterse arată lista de id-uri de entități\",\n add: \"Adăugate\",\n delete: \"Eliminate\",\n update: \"Modificate\"\n },\n loading_table_data: \"Încărcăm tabelul de date ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Înainte de a salva, este necesar să completați toate câmpurile obligatorii ale entități introduse\",\n no_feature_selected: \"Nicio feature selectată\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Selecteaz\\u0103 rela\\u021Biile pentru a face leg\\u0103tura cu entitatea curent\\u0103.
\"\n },\n draw_new_feature: \"Desenați o nouă feature\",\n draw_or_copy: \"sau\",\n copy_feature_from_other_layer: \"Copiați feature dintr-un alt layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Înapoi la modificările entității părinte\",\n add_relation: \"Creează și fă legătura unei relații noi\",\n link_relation: \"Leagă o relație de entitate\",\n open_relation_tools: \"Arată instrumentele pentru relații\",\n unlink_relation: \"Elimină legătura la relație\"\n }\n },\n buttons: {\n save: \"Inserați/Editați\",\n save_and_back: \"Salvează și dă înapoi\",\n save_and_back_table: \"Salvează și dă înapoi\",\n cancel: \"Ignorați modificările\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],24:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Ett fel uppstod. Nivåerna kan inte redigeras.\",\n some_layers: \"Ett fel uppstod. Vissa nivåer kan inte redigeras.\"\n },\n search: \"Sökning\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Nivåerna redigeras\",\n editing_attributes: \"Attributen redigeras\",\n relations: \"Relationer\",\n edit_relation: \"Redigera relationen\",\n back_to_relations: \"Tillbaka till relationerna\",\n no_relations_found: \"Inga relationer hittades\",\n relation_data: \"Relationsuppgifter\",\n relation_already_added: \"Relationen har redan lagts till\",\n list_of_relations_feature: \"Lista på relationens egenskaper\",\n tooltip: {\n edit_layer: \"Redigera nivån\"\n },\n toolbox: {\n title: 'Redigera'\n },\n table: {\n edit: \"Redigera egenskap\",\n copy: \"Skapa en kopia\",\n delete: \"Ta bort egenskap\"\n },\n tools: {\n copy: \"Kopiera egenskaper\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Lägg till del\",\n deletepart: \"Ta bort del\",\n merge: \"Slå samman egenskaper\",\n split: \"Dela upp egenskap\",\n add_feature: \"Lägg till egenskap\",\n delete_feature: \"Ta bort egenskap\",\n move_feature: \"Flytta egenskap\",\n update_vertex: \"Uppdatera punktens egenskap\",\n update_feature: \"Uppdatera egenskap\",\n update_multi_features: \"Ändra attributen för de valda funktionerna\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Välj egenskaper\",\n select_element: \"Välj egenskapalitse ominaisuus\",\n copy: \"Skapa kopia av valda egenskaper\",\n merge: \"Slå samman egenskaper\",\n split: \"Dela upp egenskap\",\n new: \"Skapa ny egenskap\",\n edit_table: \"Ändra egenskaper i tabellen\",\n draw_new_feature: \"Piirrä ominaisuus kartalle\",\n action_confirm: \"Godkänn funktionen\",\n double_click_delete: \"Välj funktionen som du vill ta bort på kartan\",\n edit_feature_vertex: \"Ändra punkten eller lägg till punkten till den valda egenskapen\",\n move: \"Flytta den valda egenskapen\",\n select_feature_to_relation: \"Välj relation\",\n show_edit_feature_form: \"Visa egenskapsformuläret för redigering av attribut\",\n pick_feature: \"Välj funktion på kartan för att ändras\",\n insert_attributes_feature: \"Lägg till egenskapens attribut\"\n }\n },\n workflow: {\n steps: {\n select: 'Välj egenskap',\n draw_part: \"Rita ny del\",\n draw_geometry: \"Rita geometri\",\n merge: 'Välj egenskap att slå samman',\n selectSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel.', //Tero 10.12.2020\n selectDrawBox: \"Rita upp den rektangel inom vilken objekten väljs \", //Tero 10.12.2020\n selectDrawBoxAtLeast2Feature: \"Rita rektangeln inom vilken minst två objekt är markerade \",\n selectPoint: \"Välj egenskap\",\n selectPointSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.',\n selectMultiPointSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.',\n selectMultiPointSHIFTAtLeast2Feature: 'Tryck på SKIFT för att välja minst två objekt med en rektangel eller välj en enda egenskap. ',\n copyCTRL: 'CTRL+C, du kan kopiera valda egenskaper.', //Tero 10.12.2020\n selectStartVertex: 'Visa startpunkten för valda egenskaper.',\n selectToPaste: 'Välj punkt till vilken de valda egenskaperna ska fogas.',\n draw_split_line: \"Rita en linje enligt vilken den valda egenskapen ska uppdelas.\"\n },\n title: {\n steps: 'Skeden'\n },\n next: \"Nästa\"\n },\n messages: {\n featureslockbyotheruser: \"Jotkut geometriat/tietueet eivät ole muokattavissa, koska muut käyttäjät muokkaavat niitä\",\n splitted: \"Uppdelad\",\n nosplittedfeature: \"Egenskapen har inte delats upp\",\n press_esc: \"Tryck ESC för att gå tillbaka\",\n online: \"Förbindelsen har upprättats. Ändringar kan sparas i databasen.\",\n offline: \"Du är i offline-läge. Ändringarna sparas lokalt\",\n delete_feature: \"Vill du ta bort den valda egenskapen?\",\n delete_feature_relations: \"Om egenskapen saknar bindande relationer blir dessa relationer föräldralösa. Vi rekommenderar att du behandlar dessa relationer innan du lämnar programmet\",\n unlink_relation: \"Vill du ta bort relationen?\",\n commit_feature: \"Sammanfattning av ändringar\",\n toolbox_has_relation: \"detta lager är en del av en relation\",\n saved: \"Uppgifterna sparades\",\n saved_local: \"Uppgifterna sparades lokalt.\",\n loading_data: \"Uppgifterna laddas\",\n saving: \"Uppgifterna sparas. Vänta...\",\n constraints: {\n enable_editing: \"Zooma in för att börja använda redigeringsverktyg \\nAktivering skala 1:\"\n },\n pdf: \"Förhandsgranskning av dokument är inte tillgänglig. Tryck här\",\n commit: {\n header: \"Följande lista visar alla ändringar.\",\n header_relation: \"Relation\",\n header_add: \"Tillagda visar antalet egenskaper som lagts till\",\n header_update_delete: \"Redigerad och Borttagen Visa en lista på egenskapernas id\",\n add: \"har lagts till\",\n delete: \"Borttagen\",\n update: \"Redigerad\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
V\\xE4lj relation f\\xF6r l\\xE4nkning till egenskap som ska redigeras.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Skapa och länka ny relation\",\n link_relation: \"Foga relationen till denna egenskap\",\n open_relation_tools: \"Visa relationsverktyg\",\n unlink_relation: \"Ta bort relation\"\n }\n },\n buttons: {\n save: \"Infoga/Redigera\",\n save_and_back: \"Spara och gå tillbaka\",\n save_and_back_table: \"Spara och gå tillbaka\",\n cancel: \"Ignorera ändringar\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],25:[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 _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 _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 _rollback = function () {\n var _ref39 = _asyncToGenerator(function* () {\n var relations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return Promise.allSettled(Object.entries(relations).flatMap(function (_ref40) {\n var _ref41 = _slicedToArray(_ref40, 2),\n layerId = _ref41[0],\n _ref41$ = _ref41[1],\n add = _ref41$.add,\n del = _ref41$.delete,\n update = _ref41$.update,\n _ref41$$relations = _ref41$.relations,\n relations = _ref41$$relations === undefined ? {} : _ref41$$relations;\n\n var source = (0, _getEditingLayerById.getEditingLayerById)(layerId).getEditingSource();\n var has_features = source.readFeatures().length > 0; // check if the relation layer has some features\n // get original values\n return [].concat(_toConsumableArray((has_features && add || []).map(function () {\n var _ref43 = _asyncToGenerator(function* (_ref42) {\n var id = _ref42.id;\n\n source.removeFeature(source.getFeatureById(id));\n });\n\n return function (_x23) {\n return _ref43.apply(this, arguments);\n };\n }())), _toConsumableArray((has_features && update || []).map(function () {\n var _ref45 = _asyncToGenerator(function* (_ref44) {\n var id = _ref44.id;\n\n try {\n var response = yield XHR.get({\n url: CatalogLayersStoresRegistry.getLayerById(layerId).getUrl('data'),\n params: { fids: id }\n });\n var f = (response.result && response.vector.data.features || []).at(0);\n var feature = source.getFeatureById(id);\n feature.setProperties(f.properties);\n feature.setGeometry(f.geometry);\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x24) {\n return _ref45.apply(this, arguments);\n };\n }())), _toConsumableArray(del.map(function () {\n var _ref46 = _asyncToGenerator(function* (id) {\n try {\n var response = yield XHR.get({\n url: CatalogLayersStoresRegistry.getLayerById(layerId).getUrl('data'),\n params: { fids: id }\n });\n var f = (response.result && response.vector.data.features || []).at(0);\n var feature = new ol.Feature({ geometry: f.geometry });\n feature.setProperties(f.properties);\n feature.setId(id);\n source.addFeature(new Feature({ feature: feature })); // add it again to source because relation layer is locked\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x25) {\n return _ref46.apply(this, arguments);\n };\n }())), [_rollback(relations)]);\n }));\n });\n\n return function _rollback() {\n return _ref39.apply(this, arguments);\n };\n}();\n\nrequire('./g3wsdk');\n\nvar _i18n = require('./i18n');\n\nvar _i18n2 = _interopRequireDefault(_i18n);\n\nvar _workflow = require('./g3wsdk/workflow/workflow');\n\nvar _step = require('./g3wsdk/workflow/step');\n\nvar _promisify = require('./utils/promisify');\n\nvar _createFeature = require('./utils/createFeature');\n\nvar _getEditingLayerById = require('./utils/getEditingLayerById');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('./utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _addPartToMultigeometries = require('./utils/addPartToMultigeometries');\n\nvar _workflows = require('./workflows');\n\nvar _toolbox = require('./toolboxes/toolbox');\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 _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\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\nvar G3W_FID = g3wsdk.constant.G3W_FID;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n ApplicationService = _g3wsdk$core.ApplicationService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar _g3wsdk$core$i18n = g3wsdk.core.i18n,\n t = _g3wsdk$core$i18n.t,\n tPlugin = _g3wsdk$core$i18n.tPlugin;\nvar _g3wsdk$core$layer = g3wsdk.core.layer,\n Layer = _g3wsdk$core$layer.Layer,\n LayersStore = _g3wsdk$core$layer.LayersStore;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar MapLayersStoreRegistry = g3wsdk.core.map.MapLayersStoreRegistry;\nvar _g3wsdk$core$plugin = g3wsdk.core.plugin,\n Plugin = _g3wsdk$core$plugin.Plugin,\n PluginService = _g3wsdk$core$plugin.PluginService;\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n XHR = _g3wsdk$core$utils.XHR,\n noop = _g3wsdk$core$utils.noop;\nvar GUI = g3wsdk.gui.GUI;\nvar Panel = g3wsdk.gui.vue.Panel;\nvar serverErrorParser = g3wsdk.core.errors.parsers.Server;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n getScaleFromResolution = _g3wsdk$ol$utils.getScaleFromResolution,\n getResolutionFromScale = _g3wsdk$ol$utils.getResolutionFromScale;\n\n\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep,\n AddFeatureStep: _workflows.AddFeatureStep,\n ToolBox: _toolbox.ToolBox\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nnew (function (_Plugin) {\n _inherits(_class, _Plugin);\n\n function _class() {\n _classCallCheck(this, _class);\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Global plugin state\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, {\n name: 'editing',\n i18n: _i18n2.default,\n fontClasses: [{ name: 'measure', className: \"fas fa-ruler-combined\" }, { name: 'magnete', className: \"fas fa-magnet\" }, { name: 'clipboard', className: \"fas fa-clipboard\" }]\n }));\n\n _this.state = {\n open: false, // check if panel is open or not\n toolboxes: [],\n _toolboxes: [], // TODO: `state._toolboxes` vs `state.toolboxes` ?\n toolboxselected: null,\n /** @since g3w-client-plugin-editing@v3.6.2 */\n showselectlayers: true, // whether to show selected layers on editing panel\n message: null,\n relations: [],\n sessions: {}, // store all sessions\n layers_in_error: false,\n formComponents: {}, // plugin components\n subscribers: {},\n constraints: { // editing contraints (layer, filter, ..) to get features\n toolboxes: {},\n showToolboxesExcluded: true\n },\n featuresOnClose: {}, // layers fatures to result when close editing (KEY LAYERID, VALUES ARRAY OF FEATURE FID CHANGES OR ADDED)\n uniqueFieldsValues: {}, // store unique fields values for each layer\n saveConfig: { // store configuration of how save/commit changes to server\n mode: \"default\", // default, autosave\n modal: false,\n messages: undefined, // object to set custom message\n cb: {\n done: function done() {}, // function executed after commit change done\n error: function error() {} // function executed after commit changes error\n }\n },\n editableLayers: {},\n events: {\n 'start-editing': {},\n 'show-relation-editing': {},\n layer: {\n start_editing: {\n before: {},\n after: {}\n }\n }\n },\n show_errors: false,\n editFeatureKey: undefined,\n panel: null, // editing panel\n currentLayout: ApplicationService.getCurrentLayoutName(),\n unwatchLayout: new Vue().$watch(function () {\n return ApplicationState.gui.layout.__current;\n }, function (layoutName) {\n return _this.state.currentLayout = layoutName !== _this.getName() ? layoutName : _this.state.currentLayout;\n }),\n onMapControlToggled: function onMapControlToggled(_ref3) {\n var target = _ref3.target;\n\n target.isToggled() && target.isClickMap() && _this.state.toolboxselected && _this.state.toolboxselected.getActiveTool() && _this.state.toolboxselected.stopActiveTool();\n }\n };\n\n // BACKOMP v3.x\n _this.setService(Object.assign(new PluginService(), {\n state: _this.state,\n config: _this.config,\n getSession: _this.getSession.bind(_this),\n getFeature: _this.getFeature.bind(_this),\n subscribe: _this.subscribe.bind(_this),\n unsubscribe: _this.unsubscribe.bind(_this),\n fireEvent: _this.fireEvent.bind(_this),\n undo: _this.undo.bind(_this),\n redo: _this.redo.bind(_this),\n getEditingLayer: _this.getEditingLayer.bind(_this),\n addToolBox: _this.addToolBox.bind(_this),\n runEventHandler: _this.runEventHandler.bind(_this),\n resetDefault: _this.resetDefault.bind(_this),\n resetAPIDefault: _this.resetAPIDefault.bind(_this),\n getLayers: _this.getLayers.bind(_this),\n getLayerById: _this.getLayerById.bind(_this),\n getToolBoxById: _this.getToolBoxById.bind(_this),\n getSessionById: _this.getSessionById.bind(_this),\n setApplicationEditingConstraints: _this.setApplicationEditingConstraints.bind(_this),\n getToolBoxes: _this.getToolBoxes.bind(_this),\n getEditableLayers: _this.getEditableLayers.bind(_this),\n stop: _this.stop.bind(_this),\n saveChange: _this.saveChange.bind(_this),\n commit: _this.commit.bind(_this),\n undoRedoLayerUniqueFieldValues: _this.undoRedoLayerUniqueFieldValues.bind(_this),\n undoRedoRelationUniqueFieldValues: _this.undoRedoRelationUniqueFieldValues.bind(_this),\n stopEditing: _this.stopEditing.bind(_this),\n startEditing: _this.startEditing.bind(_this),\n addLayerFeature: _this.addLayerFeature.bind(_this)\n }));\n\n // set map control toggle event\n GUI.getService('map').on('mapcontrol:toggled', _this.state.onMapControlToggled);\n\n _this._init();\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(_class, [{\n key: '_init',\n value: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n // skip when no editable layer\n if (!CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).length) {\n return;\n }\n\n this.setHookLoading({ loading: true });\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1 */\n this.service.setApi({\n api: {\n getSession: this.getSession.bind(this),\n getFeature: this.getFeature.bind(this),\n subscribe: this.subscribe.bind(this),\n unsubscribe: this.unsubscribe.bind(this),\n getToolBoxById: this.getToolBoxById.bind(this),\n addNewFeature: _createFeature.createFeature,\n commitChanges: this.commit.bind(this),\n setApplicationEditingConstraints: this.setApplicationEditingConstraints.bind(this),\n getMapService: function getMapService() {\n return GUI.getService('map');\n },\n updateLayerFeature: noop,\n deleteLayerFeature: noop,\n addLayerFeature: this.addLayerFeature.bind(this),\n hidePanel: this.hideEditingPanel.bind(this),\n resetDefault: this.resetAPIDefault.bind(this),\n startEditing: this.startEditing.bind(this),\n stopEditing: this.stopEditing.bind(this),\n showPanel: this.showPanel.bind(this),\n setSaveConfig: this.setSaveConfig.bind(this),\n addFormComponents: this.addFormComponents.bind(this)\n }\n });\n\n // add editing layer store to mapstoreregistry\n MapLayersStoreRegistry.addLayersStore(new LayersStore({ id: 'editing', queryable: false }));\n\n this.state.editableLayers = {};\n this.state._toolboxes = [];\n this.state.toolboxes = [];\n\n // loop over editable layers\n (yield Promise.allSettled(CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }, { TOC_ORDER: true }).map(function (l) {\n return l.getLayerForEditing({\n vectorurl: _this2.config.vectorurl,\n project_type: _this2.config.project_type\n });\n }))).forEach(function (_ref5) {\n var status = _ref5.status,\n layer = _ref5.value;\n\n\n // skip on http error\n if ('fulfilled' !== status) {\n _this2.state.layers_in_error = true;\n return;\n }\n\n _this2.state.editableLayers[layer.getId()] = layer;\n\n //set default empty object\n _this2.state.uniqueFieldsValues[layer.getId()] = {};\n\n /**\n * attach layer widgets event: get data from api when a field of a layer\n * is related to a wgis form widget (ex. relation reference, value map, etc..)\n */\n layer.getEditingFields().filter(function (field) {\n return field.input && 'select_autocomplete' === field.input.type && !field.input.options.filter_expression && !field.input.options.usecompleter;\n })\n /** @TODO need to avoid to call the same fnc to same event many times to avoid waste server request time */\n .forEach(function (field) {\n return ['start-editing', 'show-relation-editing'].forEach(function (type) {\n var id = layer.getId();\n _this2.state.events[type][id] = _this2.state.events[type][id] || [];\n\n _this2.state.events[type][id].push(_asyncToGenerator(function* () {\n var options = field.input.options;\n\n // remove all values\n options.loading.state = 'loading';\n options.values = [];\n\n var relationLayer = options.layer_id && CatalogLayersStoresRegistry.getLayerById(options.layer_id);\n var has_filter = [undefined, null].includes(options.filter_fields || []) || 0 === (options.filter_fields || []).length;\n\n try {\n\n // relation reference widget + no filter set\n if (options.relation_reference && has_filter) {\n var response = yield layer.getFilterData({ fformatter: field.name }); // get data with fformatter\n if (response && response.data) {\n var _options$values;\n\n // response data is an array ok key value objects\n (_options$values = options.values).push.apply(_options$values, _toConsumableArray(response.data.map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n value = _ref8[0],\n key = _ref8[1];\n\n return { key: key, value: value };\n })));\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, data: [response.data] });\n return options.values;\n }\n }\n\n // value map widget\n if (relationLayer) {\n //ordering by value or key depend on orderbyvalue Boolean value\n var _response = yield (0, _promisify.promisify)(relationLayer.getDataTable({ ordering: options.orderbyvalue ? options.value : options.key }));\n if (_response && _response.features) {\n var _options$values2;\n\n (_options$values2 = options.values).push.apply(_options$values2, _toConsumableArray((_response.features || []).map(function (feature) {\n return {\n key: feature.properties[options.value],\n value: feature.properties[options.key]\n };\n })));\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, features: _response.features });\n return options.values;\n }\n }\n\n /** @TODO check if deprecated */\n var features = [];\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, features: features });\n return features;\n } catch (e) {\n console.warn(e);\n options.loading.state = 'error';\n return Promise.reject(e);\n }\n }));\n });\n });\n\n _this2.state.sessions[layer.getId()] = null;\n });\n\n var i = 0;\n this.getLayers().forEach(function (editingLayer) {\n /**\n * set 1:1 relation fields editable\n * \n * Check if layer has relation 1:1 (type ONE) and if fields\n *\n * belongs to relation where child layer is editable\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\n var fatherId = editingLayer.getId(); // father layer\n CatalogLayersStoresRegistry.getLayerById(fatherId).getRelations().getArray().filter(function (relation) {\n return 'ONE' === relation.getType() && fatherId === relation.getFather();\n }) // 'ONE' == join 1:1 + father layerId is a father of relation\n .forEach(function (relation) {\n var isChildEditable = undefined !== _this2.getLayerById(relation.getChild()); // check if child layerId is editable (in editing)\n _this2.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }) // father layer fields (in editing)\n .forEach(function (f) {\n f.editable = f.editable && isChildEditable;\n }); // current editable boolean value + child editable layer\n });\n // Set editing layer color and toolbox style\n if (!editingLayer.getColor()) {\n editingLayer.setColor(editingLayer.isGeoLayer() ? [\"#C43C39\", \"#d95f02\", \"#91522D\", \"#7F9801\", \"#0B2637\", \"#8D5A99\", \"#85B66F\", \"#8D2307\", \"#2B83BA\", \"#7D8B8F\", \"#E8718D\", \"#1E434C\", \"#9B4F07\", '#1b9e77', \"#FF9E17\", \"#7570b3\", \"#204B24\", \"#9795A3\", \"#C94F44\", \"#7B9F35\", \"#373276\", \"#882D61\", \"#AA9039\", \"#F38F3A\", \"#712333\", \"#3B3A73\", \"#9E5165\", \"#A51E22\", \"#261326\", \"#e4572e\", \"#29335c\", \"#f3a712\", \"#669bbc\", \"#eb6841\", \"#4f372d\", \"#cc2a36\", \"#00a0b0\", \"#00b159\", \"#f37735\", \"#ffc425\"][i++ % 40] : '#fff');\n }\n });\n\n // after add layers to layerstore\n MapLayersStoreRegistry.getLayersStore('editing').addLayers(this.getLayers());\n\n // create toolboxes\n this.getLayers().forEach(function (l) {\n return _this2.addToolBox(new _toolbox.ToolBox(l, [].concat(_toConsumableArray(l.getChildren()), _toConsumableArray(l.getFathers())).filter(function (id) {\n return _this2.getLayerById(id);\n })));\n });\n\n yield GUI.isReady();\n\n this._setupGUI();\n\n this.setHookLoading({ loading: false });\n this.setReady(true);\n });\n\n function _init() {\n return _ref4.apply(this, arguments);\n }\n\n return _init;\n }()\n\n // setup plugin interface\n\n }, {\n key: '_setupGUI',\n value: function () {\n var _ref9 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n //@since 3.9.0\n // skip when:\n // 1 - plugin is not referred to the current project id\n // 2 - configuration of plugin, visible is set to false\n // 3 - There aren't editable layers or all are not visible\n if (!this.registerPlugin(this.config.gid) || false === this.config.visible || 0 === this.getLayers().filter(function (l) {\n return l.config.editing.visible;\n }).length) {\n return;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin/toolboxes/toolboxesfactory.js@v3.7.1\n *\n * Register query result action: edit selected feature from query results\n */\n this.state.editFeatureKey = GUI.getService('queryresults').onafter('editFeature', _asyncToGenerator(function* () {\n var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layer = _ref11.layer,\n feature = _ref11.feature;\n\n var fid = feature.attributes[G3W_FID] || feature.id;\n\n //In case of not unique id, skip\n if (undefined === fid) {\n return;\n }\n\n _this3.getToolBoxes().forEach(function (tb) {\n return tb.setShow(layer.id === tb.getId());\n });\n _this3.showEditingPanel();\n\n _this3.state.showselectlayers = false;\n\n _this3.subscribe('closeeditingpanel', function () {\n _this3.state.showselectlayers = true;return { once: true };\n });\n\n var toolBox = _this3.getToolBoxById(layer.id);\n //set selected\n toolBox.setSelected(true);\n\n var session = toolBox.getSession();\n\n var _toolBox$getEditingCo = toolBox.getEditingConstraints(),\n scale = _toolBox$getEditingCo.scale; // get scale constraint from setting layer\n\n var w = void 0;\n\n // start toolbox (filtered by feature id)\n try {\n // check map scale after zoom to feature\n // if currentScale is more that scale constraint set by layer editing\n // needs to go to scale setting by layer editing constraint\n if (scale) {\n var units = GUI.getService('map').getMapUnits();\n var map = GUI.getService('map').getMap();\n var currentScale = parseInt(getScaleFromResolution(map.getView().getResolution(), GUI.getService('map').getMapUnits()));\n if (currentScale > scale) {\n map.getView().setResolution(getResolutionFromScale(scale, units));\n }\n }\n\n yield (0, _promisify.promisify)(toolBox.start({ filter: { fids: fid } }));\n\n var _layer = toolBox.getLayer();\n var source = _layer.getEditingLayer().getSource();\n var is_vector = Layer.LayerTypes.VECTOR === _layer.getType();\n\n // get feature from an Editing layer source (with styles)\n var features = is_vector ? source.getFeatures() : source.readFeatures();\n var _feature = features.find(function (f) {\n return fid == f.getId();\n });\n\n // skip when not feature is get from server\n if (!_feature) {\n return;\n }\n\n var geom = _feature.getGeometry();\n\n // feature has geometry → zoom to geometry\n if (geom) {\n GUI.getService('map').zoomToGeometry(geom);\n }\n\n toolBox.setSelected(true);\n\n _this3.state.toolboxselected = toolBox;\n\n var addPartTool = is_vector && !geom && toolBox.getTools().find(function (t) {\n return 'addPart' === t.getId();\n });\n\n // check if layer is single geometry. Need to show and change behaviour\n if (addPartTool && !Geometry.isMultiGeometry(_layer.getGeometryType())) {\n addPartTool.visible = true;\n }\n\n // add geometry when vector layer feature has no geometry\n if (addPartTool) {\n //get workflow\n var op = addPartTool.getOperator();\n var _w = new _workflow.Workflow({\n type: 'drawgeometry',\n helpMessage: 'editing.workflow.steps.draw_geometry',\n runOnce: true, // need to run once time\n steps: [new _workflows.AddFeatureStep({\n add: false,\n steps: {\n addfeature: {\n description: 'editing.workflow.steps.draw_geometry'\n }\n },\n onRun: function onRun(_ref12) {\n var inputs = _ref12.inputs,\n context = _ref12.context;\n\n _w.emit('settoolsoftool', [{\n type: 'snap',\n options: {\n layerId: inputs.layer.getId(),\n source: inputs.layer.getEditingLayer().getSource(),\n active: true\n }\n }, {\n type: 'measure',\n options: {\n active: false\n }\n }]);\n _w.emit('active', ['snap']);\n },\n onStop: function onStop() {\n return _w.emit('deactive', ['snap', 'measure']);\n }\n }),\n // add part to multi geometries\n new _step.Step({ run: _addPartToMultigeometries.addPartToMultigeometries })],\n registerEscKeyEvent: true\n });\n\n addPartTool.setOperator(_w);\n\n _this3.subscribe('closeeditingpanel', function () {\n addPartTool.setOperator(op);\n addPartTool.visible = Geometry.isMultiGeometry(_layer.getGeometryType());\n });\n }\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editnopickmapfeatureattributesworkflow.js@v3.7.1 */\n w = new _workflow.Workflow({\n type: 'editnopickmapfeatureattributes',\n runOnce: true,\n helpMessage: 'editing.tools.update_feature',\n steps: [new _workflows.OpenFormStep()]\n });\n\n yield (0, _promisify.promisify)(w.start({\n inputs: { layer: _layer, features: [_feature] },\n context: { session: session }\n }));\n\n yield (0, _promisify.promisify)(session.save());\n\n _this3.saveChange();\n } catch (e) {\n console.warn(e);\n session.rollback();\n } finally {\n w.stop();\n }\n }));\n\n this.config.name = this.config.name || \"plugins.editing.editing_data\";\n\n this.addToolGroup({ position: 0, title: 'EDITING' });\n this.addTools({\n action: this.showEditingPanel,\n offline: false,\n icon: 'pencil'\n }, { position: 0, title: 'EDITING' });\n });\n\n function _setupGUI() {\n return _ref9.apply(this, arguments);\n }\n\n return _setupGUI;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Get session\n *\n * @param layerId\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref13.layerId;\n\n return this.getToolBoxById(layerId).getSession();\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n *\n * @param layerId\n *\n * @returns Feature in editing\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getFeature',\n value: function getFeature() {\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref14.layerId;\n\n return this.getToolBoxById(layerId).getActiveTool().getLayer().features[0];\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Subscribe handler function on event\n *\n * @param event\n * @param { Function } fnc\n *\n * @returns { Function } function\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'subscribe',\n value: function subscribe(event, fnc) {\n if (!this.state.subscribers[event]) {\n this.state.subscribers[event] = [];\n }\n if (!this.state.subscribers[event].find(function (subscribe) {\n return fnc === subscribe;\n })) {\n this.state.subscribers[event].push(fnc);\n }\n return fnc;\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Unsubscribe handler function on event\n *\n * @param event\n * @param fnc\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'unsubscribe',\n value: function unsubscribe(event, fnc) {\n this.state.subscribers[event] = this.state.subscribers[event].filter(function (sub) {\n return fnc !== sub;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param event\n * @param options\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'fireEvent',\n value: function () {\n var _ref15 = _asyncToGenerator(function* (event) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.state.subscribers[event]) {\n this.state.subscribers[event].forEach(function (fnc) {\n var response = fnc(options);\n if (response && response.once) {\n _this4.unsubscribe(event, fnc);\n }\n });\n }\n });\n\n function fireEvent(_x5) {\n return _ref15.apply(this, arguments);\n }\n\n return fireEvent;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Undo method\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undo',\n value: function undo() {\n var _this5 = this;\n\n var session = this.state.toolboxselected.getSession();\n var layerId = session.getId();\n var sessionItems = session.getLastHistoryState().items;\n\n //update unique values fields after undo\n this.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: 'undo'\n });\n\n var undoItems = session.undo();\n //update unique values of relations after undo\n this.undoRedoRelationUniqueFieldValues({\n relationSessionItems: undoItems,\n action: 'undo'\n });\n\n // undo relations\n Object.entries(undoItems).forEach(function (_ref16) {\n var _ref17 = _slicedToArray(_ref16, 2),\n toolboxId = _ref17[0],\n items = _ref17[1];\n\n _this5.getToolBoxById(toolboxId).getSession().undo(items);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'redo',\n value: function redo() {\n var _this6 = this;\n\n var session = this.state.toolboxselected.getSession();\n var layerId = session.getId();\n var sessionItems = session.getLastHistoryState().items;\n //update unique values fields after redo\n this.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: 'redo'\n });\n var redoItems = session.redo();\n //update unique values of relations after redo\n this.undoRedoRelationUniqueFieldValues({\n relationSessionItems: redoItems,\n action: 'redo'\n });\n\n // redo relations\n Object.entries(redoItems).forEach(function (_ref18) {\n var _ref19 = _slicedToArray(_ref18, 2),\n toolboxId = _ref19[0],\n items = _ref19[1];\n\n _this6.getToolBoxById(toolboxId).getSession().redo(items);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getEditingLayer',\n value: function getEditingLayer(id) {\n return this.state.editableLayers[id].getEditingLayer();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param toolbox\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addToolBox',\n value: function addToolBox(toolbox) {\n this.state._toolboxes.push(toolbox);\n this.state.sessions[toolbox.getId()] = toolbox.getSession(); // add session\n this.state.toolboxes.push(toolbox.state);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } handler\n * @param handler.type\n * @param handler.id\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'runEventHandler',\n value: function () {\n var _ref20 = _asyncToGenerator(function* () {\n var _ref21 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n type = _ref21.type,\n id = _ref21.id;\n\n if (this.state.events[type] && this.state.events[type][id]) {\n yield Promise.allSettled(this.state.events[type][id].map(function (fnc) {\n return fnc();\n }));\n }\n });\n\n function runEventHandler() {\n return _ref20.apply(this, arguments);\n }\n\n return runEventHandler;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Reset default values\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'resetDefault',\n value: function resetDefault() {\n this.state.saveConfig = {\n mode: \"default\", // default, autosave\n modal: false,\n messages: undefined, // object to set a custom message\n cb: {\n done: function done() {}, // function Called after save\n error: function error() {} // function called affect commit error\n }\n };\n GUI.getService('map').disableClickMapControls(false);\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Reset default toolbox state modified by other plugin\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'resetAPIDefault',\n value: function resetAPIDefault() {\n var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref22$plugin = _ref22.plugin,\n plugin = _ref22$plugin === undefined ? true : _ref22$plugin,\n _ref22$toolboxes = _ref22.toolboxes,\n toolboxes = _ref22$toolboxes === undefined ? true : _ref22$toolboxes;\n\n if (toolboxes) {\n this.getToolBoxes().forEach(function (tb) {\n return tb.resetDefault();\n });\n }\n if (plugin) {\n this.resetDefault();\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getLayers',\n value: function getLayers() {\n return Object.values(this.state.editableLayers);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getLayerById',\n value: function getLayerById(id) {\n return this.state.editableLayers[id];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getToolBoxById',\n value: function getToolBoxById(id) {\n return this.state._toolboxes.find(function (tb) {\n return id === tb.getId();\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Get layer session by id (layer id is the same of session)\n *\n * @param id\n *\n * @returns {*}\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\n\n }, {\n key: 'getSessionById',\n value: function getSessionById(id) {\n return this.state.sessions[id];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Method to apply filter editing contsraint to toolbox editing\n * Apply filter editing contsraint to toolbox editing\n *\n * @param constraints\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setApplicationEditingConstraints',\n value: function setApplicationEditingConstraints() {\n var _this7 = this;\n\n var constraints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { showToolboxesExcluded: true, toolboxes: {} };\n\n this.state.constraints = _extends({}, this.state.constraints, constraints);\n\n var toolboxes = constraints.toolboxes,\n showToolboxesExcluded = constraints.showToolboxesExcluded;\n\n var toolboxIds = Object.keys(toolboxes);\n if (false === showToolboxesExcluded) {\n this.state.toolboxes.forEach(function (t) {\n return t.show = toolboxIds.includes(t.id);\n });\n }\n toolboxIds.forEach(function (id) {\n return _this7.getToolBoxById(id).setEditingConstraints(toolboxes[id]);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getToolBoxes',\n value: function getToolBoxes() {\n return this.state._toolboxes;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns {*|{}}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getEditableLayers',\n value: function getEditableLayers() {\n return this.state.editableLayers;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Stop editing\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'stop',\n value: function () {\n var _ref23 = _asyncToGenerator(function* () {\n var _this8 = this;\n\n var commitpromises = this.state._toolboxes.filter(function (t) {\n return t.getSession().getHistory().state.commit;\n }) // check if temp changes are waiting to save on server\n .map(function (toolbox) {\n return _this8.commit({ toolbox: toolbox, modal: true });\n });\n try {\n yield (0, _promisify.promisify)($.when.apply(this, commitpromises));\n } catch (e) {\n console.warn(e);\n }\n\n this.state._toolboxes.forEach(function (t) {\n return t.stop();\n });\n\n this.state.toolboxselected = null;\n this.state.message = null;\n\n //reset unique values\n Object.keys(this.state.uniqueFieldsValues).forEach(function (id) {\n return _this8.state.uniqueFieldsValues[id] = {};\n });\n\n GUI.getService('map').refreshMap();\n });\n\n function stop() {\n return _ref23.apply(this, arguments);\n }\n\n return stop;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Function called very single change saved temporary\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'saveChange',\n value: function () {\n var _ref24 = _asyncToGenerator(function* () {\n if ('autosave' === this.state.saveConfig.mode) {\n return this.commit({ modal: false }); // set to not show a modal ask window\n }\n });\n\n function saveChange() {\n return _ref24.apply(this, arguments);\n }\n\n return saveChange;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Commit and save changes on server persistently\n *\n * @param { Object } commit\n * @param commit.toolbox\n * @param commit.commitItems\n * @param commit.messages\n * @param commit.done\n * @param { boolean } commit.modal\n * @param { boolean } commit.close\n *\n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'commit',\n value: function commit() {\n var _this10 = this;\n\n var _ref25 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n toolbox = _ref25.toolbox,\n commitItems = _ref25.commitItems,\n _ref25$modal = _ref25.modal,\n modal = _ref25$modal === undefined ? true : _ref25$modal,\n _ref25$close = _ref25.close,\n close = _ref25$close === undefined ? false : _ref25$close;\n\n var messages = Object.assign({ success: { message: \"plugins.editing.messages.saved\", autoclose: true }, error: {} }, this.state.saveConfig.messages || {});\n toolbox = toolbox || this.state.toolboxselected;\n var layer = toolbox.getLayer();\n var items = commitItems;\n commitItems = commitItems || toolbox.getSession().getCommitItems();\n var online = ApplicationState.online;\n var has_changes = [].concat(_toConsumableArray(commitItems.add || []), _toConsumableArray(commitItems.delete || []), _toConsumableArray(commitItems.update || []), _toConsumableArray(Object.keys(commitItems.relations || {}))).length;\n var workflow = void 0,\n dialog = void 0,\n serverError = void 0;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n\n // skip when there is nothing to save\n if (!has_changes) {\n GUI.showUserMessage({ type: 'info', message: 'Nothing to save', autoclose: true, closable: false });\n return toolbox;\n }\n\n try {\n\n // show commit modal window\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 */\n if (modal) {\n workflow = new _workflow.Workflow({\n type: 'commitfeatures',\n steps: [\n // confirm step\n new _step.Step({\n run: function run(inputs) {\n var _this9 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var dialog = GUI.dialog.dialog({\n message: inputs.message,\n title: tPlugin(\"editing.messages.commit_feature\") + ': \"' + inputs.layer.getName() + '\"',\n buttons: _extends({\n SAVE: { className: \"btn-success\", callback: function callback() {\n resolve(inputs);\n },\n label: t(\"save\") },\n CANCEL: { className: \"btn-danger\", callback: function callback() {\n reject({ cancel: true });\n },\n label: t(inputs.close ? \"exitnosave\" : \"annul\") }\n }, inputs.close ? { CLOSEMODAL: { className: \"btn-primary\", callback: function callback() {\n dialog.modal('hide');\n },\n label: t(\"annul\") } } : {})\n });\n if (inputs.features) {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: promise(), inputs: inputs, style: _this9.selectStyle });\n }\n }));\n }\n })]\n });\n //need to get to confirm or cancel choose from modal\n try {\n yield (0, _promisify.promisify)(workflow.start({\n inputs: {\n close: close,\n layer: layer,\n message: new (Vue.extend(require('./components/Changes.vue')))({\n propsData: {\n commits: commitItems,\n layer: layer\n } }).$mount().$el\n }\n }));\n yield (0, _promisify.promisify)(workflow.stop());\n } catch (e) {\n console.warn(e);\n // In the case of pressed cancel button to commit features modal\n if (e && e.cancel) {\n return Promise.reject(e);\n }\n //need to be set server Error\n serverError = true;\n }\n\n //in case of online application\n if (online) {\n dialog = GUI.dialog.dialog({\n message: '

\\n ' + tPlugin('editing.messages.saving') + '\\n

',\n closeButton: false\n });\n }\n }\n\n var data = !online && _defineProperty({}, toolbox.getSession().getId(), commitItems);\n //get current offline editing changes\n var changes = !online && JSON.parse(window.localStorage.getItem('EDITING_CHANGES') || null);\n\n // handle offline changes\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 */\n Object.keys(changes || {}).forEach(function (layerId) {\n var currLayerId = Object.keys(data)[0];\n\n // check if previous changes are made in the same layer or in relationlayer of current\n var current = null;\n\n if (data[layerId]) {\n current = data;\n } else if (data[currLayerId].relations[layerId]) {\n current = data[currLayerId].relations;\n }\n\n // check if in the last changes\n var relationsIds = !current && Object.keys(changes[layerId].relations || {});\n var has_relations = !current && relationsIds.length > 0;\n var GIVE_ME_A_NAME = !current && has_relations && relationsIds.includes(currLayerId);\n\n // apply changes\n if (current || GIVE_ME_A_NAME) {\n var id = current ? layerId : currLayerId;\n var curr = current ? current : data;\n var prev = current ? changes : changes[layerId].relations;\n curr[id].add = [].concat(_toConsumableArray(curr[id].add), _toConsumableArray(curr[id].add));\n curr[id].delete = [].concat(_toConsumableArray(curr[id].delete), _toConsumableArray(curr[id].delete));\n\n (prev[id].update || []).filter(function (update) {\n return !curr[id].update.find(function (u) {\n return u.id === update.id;\n });\n }).forEach(function (update) {\n return curr[id].update.unshift(update);\n });\n\n (prev[id].lockids || []).filter(function (lock) {\n return !curr[id].lockids.find(function (l) {\n return l.featureid === lock.featureid;\n });\n }).forEach(function (lock) {\n return curr[id].update.unshift(lock);\n });\n }\n\n if (GIVE_ME_A_NAME) {\n changes[layerId].relations[currLayerId] = data[currLayerId];\n data = changes;\n }\n if (!current && !has_relations) {\n data[layerId] = changes[layerId];\n }\n });\n\n if (!online) {\n\n GUI.showUserMessage({\n type: 'success',\n message: \"plugins.editing.messages.saved_local\",\n autoclose: true\n });\n //clear history because it saved on browser\n toolbox.getSession().clearHistory();\n }\n\n try {\n // check if the application is online\n var _ref28 = online ? yield (0, _promisify.promisify)(toolbox.getSession().commit({ items: items || commitItems, __esPromise: true })) : {},\n commit = _ref28.commit,\n response = _ref28.response;\n\n //check if is online and there are some commit items\n\n\n var online2 = online && commit;\n\n var result = online2 && response.result;\n\n if (result && messages && messages.success) {\n // hide saving dialog\n if (dialog) {\n dialog.modal('hide');\n }\n\n //Show save user message\n GUI.showUserMessage({\n type: 'success',\n message: messages.success.message || \"plugins.editing.messages.saved\",\n duration: 2000,\n autoclose: undefined === messages.success.autoclose ? true : messages.success.autoclose\n });\n }\n\n // In the case of vector layer need to refresh map commit changes\n if (result && Layer.LayerTypes.VECTOR === layer.getType()) {\n GUI.getService('map').refreshMap({ force: true });\n }\n\n if (online) {\n _this10.state.saveConfig.cb.done(toolbox);\n }\n\n // add items when close editing to result to show changes\n var layerId = result && toolbox.getId();\n\n if (layerId) {\n _this10.state.featuresOnClose[layerId] = _this10.state.featuresOnClose[layerId] || new Set();\n [].concat(_toConsumableArray(response.response.new.map(function (n) {\n return n.id;\n })), _toConsumableArray(commit.update.map(function (u) {\n return u.id;\n }))).forEach(function (fid) {\n return _this10.state.featuresOnClose[layerId].add(fid);\n });\n }\n\n // @since 3.7.2 - click on save all disk icon (editing form relation)\n if (result) {\n _this10.emit('commit', response.response);\n }\n\n // the result is false. It was done a commit, but an error occurs\n if (online2 && !result) {\n serverError = true;\n throw response;\n }\n } catch (e) {\n console.warn(e);\n if (online) {\n serverError = true;\n throw e;\n }\n }\n } catch (e) {\n console.warn(e);\n\n // hide saving dialog\n if (dialog) {\n dialog.modal('hide');\n }\n\n // rollback\n //@TODO check if it is usefull\n if (modal) {\n try {\n yield _rollback(commitItems.relations);\n } catch (e) {\n console.warn(e);\n }\n }\n\n // parse server error\n if (serverError || modal) {\n var message = online ? messages.error.message || new serverErrorParser({ error: e.errors || e || {} }).parse({ type: 'String' }) : e;\n\n GUI.showUserMessage({\n type: 'alert',\n message: message,\n textMessage: online ? !messages.error.message : true,\n autoclose: online ? undefined !== messages.error.autoclose ? messages.error.autoclose : false : false\n });\n\n _this10.state.saveConfig.cb.error(toolbox, message);\n }\n\n return Promise.reject(toolbox);\n }\n return toolbox;\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param { string } opts.layerId\n * @param { Array } opts.sessionItems\n * @param opts.action\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undoRedoLayerUniqueFieldValues',\n value: function undoRedoLayerUniqueFieldValues(_ref29) {\n var _this11 = this;\n\n var layerId = _ref29.layerId,\n _ref29$sessionItems = _ref29.sessionItems,\n sessionItems = _ref29$sessionItems === undefined ? [] : _ref29$sessionItems,\n action = _ref29.action;\n\n\n // if not set\n if (undefined === this.state.uniqueFieldsValues[layerId]) {\n return;\n }\n\n sessionItems.forEach(function (item) {\n\n Object.keys(_this11.state.uniqueFieldsValues[layerId]).forEach(function (name) {\n //name is the name of field\n //check if change is an update [oldVal, newValue]\n var is_array = Array.isArray(item);\n var oldVal = void 0,\n newVal = void 0;\n if (is_array) {\n // 0 = old value feature, 1 = new value feature\n var has_change = item[1].feature.get(name) != item[0].feature.get(name);\n // update feature that contains \"new\" and \"old\" values of feature\n oldVal = has_change ? action === 'undo' ? item[1].feature.get(name) : item[0].feature.get(name) : undefined;\n newVal = has_change ? action === 'undo' ? item[0].feature.get(name) : item[1].feature.get(name) : undefined;\n } else {\n oldVal = 'add' === item.feature.getState() ? item.feature.get(name) : undefined;\n newVal = 'delete' === item.feature.getState() ? item.feature.get(name) : undefined;\n }\n // delete layer unique field value\n if (undefined !== oldVal) {\n _this11.state.uniqueFieldsValues[layerId][name].delete(oldVal);\n }\n // add layer unique field value\n if (undefined !== newVal) {\n _this11.state.uniqueFieldsValues[layerId][name].add(newVal);\n }\n });\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.relationSessionItems\n * @param opts.action\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undoRedoRelationUniqueFieldValues',\n value: function undoRedoRelationUniqueFieldValues(_ref30) {\n var _this12 = this;\n\n var relationSessionItems = _ref30.relationSessionItems,\n action = _ref30.action;\n\n Object.entries(relationSessionItems).forEach(function (_ref31) {\n var _ref32 = _slicedToArray(_ref31, 2),\n layerId = _ref32[0],\n _ref32$ = _ref32[1],\n sessionItems = _ref32$.own,\n relationSessionItems = _ref32$.dependencies;\n\n //undo/redo unique field of layer\n _this12.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: action\n });\n //undo/redo unique field of relations\n _this12.undoRedoRelationUniqueFieldValues({\n relationSessionItems: relationSessionItems,\n action: action\n });\n });\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Stop editing on layerId\n *\n * @param layerId\n * @param options\n *\n * @returns { Promise }\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'stopEditing',\n value: function () {\n var _ref33 = _asyncToGenerator(function* (layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return (0, _promisify.promisify)(this.getToolBoxById(layerId).stop(options));\n });\n\n function stopEditing(_x11) {\n return _ref33.apply(this, arguments);\n }\n\n return stopEditing;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Start editing API\n *\n * @param layerId\n * @param { Object } options\n * @param { boolean } [options.selected=true]\n * @param { boolean } [options.disablemapcontrols=false]\n * @param { boolean } [options.showselectlayers=true]\n * @param { string } [options.title]\n * @param data\n *\n *\n * @returns { Promise }\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'startEditing',\n value: function () {\n var _ref34 = _asyncToGenerator(function* (layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n options.selected = undefined === options.selected ? true : options.selected;\n options.showselectlayers = undefined === options.showselectlayers ? true : options.showselectlayers;\n options.disablemapcontrols = undefined === options.disablemapcontrols ? false : options.showselectlayers;\n // get toolbox related to layer id\n var toolbox = this.getToolBoxById(layerId);\n // set show select layers input visibility\n this.state.showselectlayers = options.showselectlayers;\n // skip if toolbox doesn't exist\n if (!toolbox) {\n return Promise.reject();\n }\n // set selected\n toolbox.setSelected(options.selected);\n // set seletcted toolbox\n if (options.selected) {\n this.state.toolboxselected = toolbox;\n }\n\n //set toolbox title if provide\n if (options.title) {\n toolbox.setTitle(options.title);\n }\n\n // start editing toolbox (options contain also a filter type)\n data = yield (0, _promisify.promisify)(toolbox.start(options));\n // disablemapcontrols in conflict\n if (options.disablemapcontrols) {\n GUI.getService('map').disableClickMapControls(true);\n }\n // opts contain information about start editing has features loaded\n return data ? { toolbox: toolbox, data: data } : toolbox;\n });\n\n function startEditing(_x14) {\n return _ref34.apply(this, arguments);\n }\n\n return startEditing;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Add Feature\n *\n * @param { Object } opts\n * @param opts.layerId\n * @param opts.feature\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'addLayerFeature',\n value: function addLayerFeature() {\n var _this13 = this;\n\n var _ref35 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref35.layerId,\n feature = _ref35.feature;\n\n // skip when mandatory params are missing\n if ([feature, layerId].includes(undefined)) {\n return Promise.reject();\n }\n return new Promise(function () {\n var _ref36 = _asyncToGenerator(function* (resolve, reject) {\n var layer = _this13.getLayerById(layerId);\n // get session\n var session = _this13.getSessionById(layerId);\n // exclude an eventual attribute pk (primary key) not editable (mean autoincrement)\n var attributes = layer.getEditingFields().filter(function (attr) {\n return !(attr.pk && !attr.editable);\n });\n // start session (get no features but set layer in editing)\n session.start({\n filter: {\n nofeatures: true, // no feature\n nofeatures_field: attributes[0].name // get the first field in editing form\n },\n editing: true\n });\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/easyaddfeatureworkflow.js@v3.7.1 */\n // create workflow\n var workflow = new _workflow.Workflow({\n type: 'addfeature',\n steps: [new _workflows.OpenFormStep({\n push: true,\n showgoback: false,\n saveAll: false\n })]\n });\n\n var stop = function stop(cb) {\n workflow.stop();\n session.stop();\n return cb();\n };\n\n try {\n //check if feature has property of layer\n attributes.forEach(function (a) {\n if (undefined === feature.get(a.name)) {\n feature.set(a.name, null);\n }\n });\n\n try {\n //set feature as g3w feature\n feature = new Feature({ feature: feature, properties: attributes.map(function (a) {\n return a.name;\n }) });\n //set new\n feature.setTemporaryId();\n\n // add to session and source as new feature\n session.pushAdd(layerId, feature, false);\n layer.getEditingLayer().getSource().addFeature(feature);\n //start workflow\n yield (0, _promisify.promisify)(workflow.start({\n inputs: { layer: layer, features: [feature] },\n context: { session: session }\n }));\n\n session.save();\n\n try {\n yield (0, _promisify.promisify)(_this13.commit({ modal: false, toolbox: _this13.getToolBoxById(layerId) }));\n stop(resolve);\n } catch (e) {\n console.warn(e);\n stop(reject);\n }\n } catch (e) {\n console.warn(e);\n stop(reject);\n }\n } catch (e) {\n console.warn(e);\n reject();\n }\n });\n\n return function (_x16, _x17) {\n return _ref36.apply(this, arguments);\n };\n }());\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } save\n * @param save.mode - default or autosave\n * @param save.cb - object contain done/error two functions\n * @param save.modal - Boolean true or false to show to ask\n * @param save.messages - object success or error\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setSaveConfig',\n value: function setSaveConfig() {\n var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref37$mode = _ref37.mode,\n mode = _ref37$mode === undefined ? 'default' : _ref37$mode,\n _ref37$cb = _ref37.cb,\n cb = _ref37$cb === undefined ? {} : _ref37$cb,\n _ref37$modal = _ref37.modal,\n modal = _ref37$modal === undefined ? false : _ref37$modal,\n messages = _ref37.messages;\n\n Object.assign(this.state.saveConfig, { mode: mode, modal: modal, messages: messages, cb: _extends({}, this.state.saveConfig.cb, cb) });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 \n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addFormComponents',\n value: function addFormComponents() {\n var _ref38 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref38.layerId,\n _ref38$components = _ref38.components,\n components = _ref38$components === undefined ? [] : _ref38$components;\n\n this.state.formComponents[layerId] = (this.state.formComponents[layerId] || []).concat(components);\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Show editing panel\n *\n * @param options\n * @param options.toolboxes\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'showPanel',\n value: function showPanel() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options.toolboxes && Array.isArray(options.toolboxes)) {\n this.getToolBoxes().forEach(function (tb) {\n return tb.setShow(options.toolboxes.includes(tb.getId()));\n });\n }\n this.showEditingPanel(options);\n }\n\n /**\n * Show editing panel toolbars\n * \n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/editing.js.js@v3.6\n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/panel.js.js@v3.6\n */\n\n }, {\n key: 'showEditingPanel',\n value: function showEditingPanel() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n //need to filter visible\n if (this.getLayers().filter(function (l) {\n return l.config.editing.visible;\n }).length > 0) {\n this.state.panel = new Panel(_extends({}, opts, {\n id: \"editing-panel\",\n title: opts.title || \"plugins.editing.editing_data\",\n internalPanel: new (Vue.extend(require('./components/Editing.vue')))({\n service: this,\n resourcesurl: opts.resourcesUrl || GUI.getResourcesUrl(),\n showcommitbar: undefined !== opts.showcommitbar ? opts.showcommitbar : true\n })\n }));\n GUI.showPanel(this.state.panel);\n\n if (!this.state.show_errors && this.state.layers_in_error) {\n GUI.showUserMessage({ type: 'warning', message: 'plugins.editing.errors.some_layers', closable: true });\n this.state.show_errors = true;\n }\n } else {\n GUI.showUserMessage({ type: 'alert', message: 'plugins.editing.errors.no_layers' });\n }\n return this.state.panel;\n }\n }, {\n key: 'hideEditingPanel',\n value: function hideEditingPanel() {\n if (null !== this.state.panel) {\n GUI.closePanel();\n this.state.panel = null;\n }\n }\n }, {\n key: 'unload',\n value: function unload() {\n this.hideEditingPanel();\n\n if (this.config.visible) {\n this.removeTools();\n }\n\n this.state.unwatchLayout();\n MapLayersStoreRegistry.removeLayersStore(MapLayersStoreRegistry.getLayersStore('editing'));\n _toolbox.ToolBox.clear();\n // turn off events\n GUI.getService('map').off('mapcontrol:toggled', this.state.onMapControlToggled);\n // unregister query result action\n GUI.getService('queryresults').un('editFeature', this.state.editFeatureKey);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setCurrentLayout',\n value: function setCurrentLayout() {\n ApplicationService.setCurrentLayout(this.getName());\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'resetCurrentLayout',\n value: function resetCurrentLayout() {\n ApplicationService.setCurrentLayout(this.state.currentLayout);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.1\n */\n\n }, {\n key: 'getActiveTool',\n value: function getActiveTool() {\n return this.getToolBoxes().filter(function (t) {\n return t.getActiveTool();\n })[0];\n }\n }]);\n\n return _class;\n}(Plugin))();\n\n},{\"./components/Changes.vue\":2,\"./components/Editing.vue\":5,\"./g3wsdk\":13,\"./g3wsdk/workflow/step\":14,\"./g3wsdk/workflow/workflow\":15,\"./i18n\":20,\"./toolboxes/toolbox\":27,\"./utils/addPartToMultigeometries\":28,\"./utils/createFeature\":38,\"./utils/getEditingLayerById\":42,\"./utils/promisify\":58,\"./utils/setAndUnsetSelectedFeaturesStyle\":59,\"./workflows\":65}],26:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\n/**\n * @see https://openlayers.org/en/v5.3.0/apidoc/module-ol_interaction_Pointer.html\n */\nvar PickFeaturesInteraction = exports.PickFeaturesInteraction = function (_ol$interaction$Point) {\n _inherits(PickFeaturesInteraction, _ol$interaction$Point);\n\n function PickFeaturesInteraction() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, PickFeaturesInteraction);\n\n var features = []; // picked features\n\n var featuresAtPixel = function featuresAtPixel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n pixel = _ref.pixel,\n map = _ref.map;\n\n return map.getFeaturesAtPixel(pixel, {\n layerFilter: function layerFilter(l) {\n return opts.layer === l;\n },\n hitTolerance: isMobile && isMobile.any ? 10 : 0\n });\n };\n\n return _possibleConstructorReturn(this, (PickFeaturesInteraction.__proto__ || Object.getPrototypeOf(PickFeaturesInteraction)).call(this, {\n handleDownEvent: function handleDownEvent(e) {\n features = featuresAtPixel(e);\n return features;\n },\n handleUpEvent: function handleUpEvent(e) {\n if (features && features.length > 0) {\n this.dispatchEvent({ type: 'picked', features: features, coordinate: e.coordinate, layer: opts.layer });\n }\n return true;\n },\n handleMoveEvent: function handleMoveEvent(e) {\n e.map.getTargetElement().style.cursor = featuresAtPixel(e) ? 'pointer' : '';\n }\n }));\n }\n\n return PickFeaturesInteraction;\n}(ol.interaction.Pointer);\n\n},{}],27:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ToolBox = undefined;\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 _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 _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 _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\n\nvar _createEditingDataOptions = require('../utils/createEditingDataOptions');\n\nvar _setLayerUniqueFieldValues = require('../utils/setLayerUniqueFieldValues');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _chooseFeature = require('../utils/chooseFeature');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getNotEditableFieldsNoPkValues = require('../utils/getNotEditableFieldsNoPkValues');\n\nvar _getDeltaXY = require('../utils/getDeltaXY');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _convertToGeometry = require('../utils/convertToGeometry');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _getRelationsInEditingByFeature = require('../utils/getRelationsInEditingByFeature');\n\nvar _isPointOnVertex = require('../utils/isPointOnVertex');\n\nvar _handleSplitFeature = require('../utils/handleSplitFeature');\n\nvar _addPartToMultigeometries = require('../utils/addPartToMultigeometries');\n\nvar _checkSessionItems = require('../utils/checkSessionItems');\n\nvar _promisify = require('../utils/promisify');\n\nvar _unlinkRelation = require('../utils/unlinkRelation');\n\nvar _splitFeatures = require('../utils/splitFeatures');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _dissolve = require('../utils/dissolve');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _workflows = require('../workflows');\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\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\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep,\n SelectElementsStep: _workflows.SelectElementsStep,\n PickFeatureStep: _workflows.PickFeatureStep,\n MoveFeatureStep: _workflows.MoveFeatureStep,\n ModifyGeometryVertexStep: _workflows.ModifyGeometryVertexStep,\n OpenTableStep: _workflows.OpenTableStep,\n AddFeatureStep: _workflows.AddFeatureStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nvar GEOMETRY_TYPES = g3wsdk.constant.GEOMETRY_TYPES;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n G3WObject = _g3wsdk$core.G3WObject;\nvar ProjectsRegistry = g3wsdk.core.project.ProjectsRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar removeZValueToOLFeatureGeometry = g3wsdk.core.geoutils.Geometry.removeZValueToOLFeatureGeometry;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n debounce = _g3wsdk$core$utils.debounce,\n toRawType = _g3wsdk$core$utils.toRawType;\nvar GUI = g3wsdk.gui.GUI;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n getScaleFromResolution = _g3wsdk$ol$utils.getScaleFromResolution,\n getResolutionFromScale = _g3wsdk$ol$utils.getResolutionFromScale;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin/toolboxes/toolsfactory.js@v3.7.1\n */\n\nvar ToolBox = exports.ToolBox = function (_G3WObject) {\n _inherits(ToolBox, _G3WObject);\n\n function ToolBox(layer) {\n var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n _classCallCheck(this, ToolBox);\n\n var _this = _possibleConstructorReturn(this, (ToolBox.__proto__ || Object.getPrototypeOf(ToolBox)).call(this));\n\n var is_vector = [undefined, Layer.LayerTypes.VECTOR].includes(layer.getType());\n var geometryType = is_vector && layer.getGeometryType();\n var is_point = is_vector && Geometry.isPointGeometryType(geometryType);\n var is_line = is_vector && Geometry.isLineGeometryType(geometryType);\n var is_poly = is_vector && Geometry.isPolygonGeometryType(geometryType);\n var is_table = Layer.LayerTypes.TABLE === layer.getType();\n var isMultiGeometry = geometryType && Geometry.isMultiGeometry(geometryType);\n var iconGeometry = is_vector && (is_point ? 'Point' : is_line ? 'Line' : 'Polygon');\n //@since 3.9.0 Check if layer has relation layers editable\n var editable_relations = layer.getRelations().getArray().filter(function (relation) {\n var l = CatalogLayersStoresRegistry.getLayerById((0, _getRelationId.getRelationId)({ layerId: layer.getId(), relation: relation }));\n return l.isEditable() && l.config.editing.visible;\n }).map(function (r) {\n return r;\n });\n _this._start = false;\n\n /** constraint loading features to a filter set */\n _this.constraints = { filter: null, show: null, tools: [] };\n\n /** reactive state of history */\n _this._constrains = { commit: false, undo: false, redo: false };\n\n /**\n * Array of states of a layer in editing\n * {\n * _states: [\n * {\n * id: unique key\n * state: [state] // example: history contains features state\n * // array because a tool can apply changes to more than one features at time (split di una feature)\n * },\n * {\n * id: unique key\n * state: [state]\n * },\n * ]\n * ....\n *\n * _current: unique key // usefult to undo redo\n *\n *\n */\n _this._states = [];\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._history = {\n id: layer.getId(),\n state: new Proxy({}, { get: function get(_, prop) {\n return _this._constrains[prop];\n } }),\n add: _this.__add.bind(_this),\n undo: _this.__undo.bind(_this),\n clear: _this.__clearHistory.bind(_this),\n redo: _this.__redo.bind(_this),\n getState: _this.__getState.bind(_this),\n getLastState: _this.__getLastHistoryState.bind(_this),\n commit: _this.__commit.bind(_this)\n };\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n */\n _this._session = Object.assign(new G3WObject({ setters: {\n start: function start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _promisify.$promisify)(_this.__startSession(options));\n },\n stop: function stop() {\n return (0, _promisify.$promisify)(_this.__stopSession());\n },\n getFeatures: function getFeatures() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _promisify.$promisify)(_this.__getFeatures(options));\n },\n saveChangesOnServer: function saveChangesOnServer(commitItems) {\n return _this.__saveChangesOnServer(commitItems);\n }\n } }), {\n _history: _this._history,\n state: new Proxy({}, { get: function get(_, prop) {\n return _this.state.editing.session[prop];\n } }),\n getId: function getId() {\n return layer.getId();\n },\n getLastHistoryState: _this.__getLastHistoryState.bind(_this),\n isStarted: _this.__isStarted.bind(_this),\n getHistory: _this.__getHistory.bind(_this),\n getEditor: _this.__getEditor.bind(_this),\n push: _this.__push.bind(_this),\n pushDelete: _this.__pushDelete.bind(_this),\n save: _this.__save.bind(_this),\n pushAdd: _this.__pushAdd.bind(_this),\n pushUpdate: _this.__pushUpdate.bind(_this),\n rollback: _this.__rollback.bind(_this),\n rollbackDependecies: _this.__rollbackDependecies.bind(_this),\n undo: _this.__undoSession.bind(_this),\n redo: _this.__redoSession.bind(_this),\n getCommitItems: _this.__getCommitItems.bind(_this),\n commit: _this.save.bind(_this),\n clear: _this.__clearSession.bind(_this),\n clearHistory: _this.__clearHistory.bind(_this)\n });\n\n // register this session on session registry\n ToolBox._sessions[layer.getId()] = _this;\n\n /** @type { 'create' | 'update_attributes' | 'update_geometry' | delete' | undefined } undefined means all possible tools base on type */\n var capabilities = layer.getEditingCapabilities() || [];\n\n _this.state = {\n layer: layer,\n id: layer.getId(),\n changingtools: false, // whether to show tools during change phase\n show: layer.config.editing.visible, // whether to show the toolbox if we need to filtered\n color: layer.getColor() || 'blue',\n title: ' ' + layer.getTitle() || \"Edit Layer\",\n customTitle: false,\n loading: false,\n enabled: false,\n toolboxheader: true,\n startstopediting: true,\n message: null,\n toolmessages: { help: null },\n toolsoftool: [],\n selected: false,\n activetool: null,\n editing: {\n session: {\n id: new Proxy({}, { get: function get() {\n return _this.state.id;\n } }),\n started: false,\n getfeatures: false,\n /** current state of history (useful for undo /redo) */\n current: null,\n /** temporary change not save on history */\n changes: []\n },\n history: _this._history.state,\n on: false,\n dependencies: dependencies,\n relations: Object.values(layer.isFather() && dependencies.length ? layer.getRelations().getRelations() : {}),\n father: layer.isFather(),\n canEdit: true\n },\n /** @since g3w-client-plugin-editing@v3.7.0 store key events setters */\n _unregisterStartSettersEventsKey: [],\n _getFeaturesOption: {},\n _layerType: layer.getType() || Layer.LayerTypes.VECTOR,\n _enabledtools: undefined,\n _disabledtools: undefined,\n _constraints: layer.getEditingConstrains() || {},\n _tools: [\n // Add Feature\n is_vector && capabilities.includes('add_feature') && {\n id: 'addfeature',\n type: ['add_feature'],\n name: 'editing.tools.add_feature',\n icon: 'add' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addfeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addfeature',\n steps: [new _workflows.AddFeatureStep({ layer: layer, tools: ['snap', 'measure'] }), new _workflows.OpenFormStep({ layer: layer })]\n })\n },\n // Edit Attributes Feature\n is_vector && capabilities.includes('change_attr_feature') && {\n id: 'editattributes',\n type: ['change_attr_feature'],\n name: 'editing.tools.update_feature',\n icon: 'editAttributes.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editfeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n helpMessage: 'editing.tools.update_feature',\n type: 'editfeatureattributes',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.OpenFormStep()]\n })\n },\n // Delete Feature\n is_vector && capabilities.includes('delete_feature') && {\n id: 'deletefeature',\n type: ['delete_feature'],\n name: 'editing.tools.delete_feature',\n icon: 'delete' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/deletefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'deletefeature',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }),\n // delete feature\n new _step.Step({\n help: \"editing.steps.help.double_click_delete\",\n run: function run(inputs, context) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var layerId = inputs.layer.getId();\n var feature = inputs.features[0];\n\n // get all relations of the current editing layer that are in editing\n // and filter relations\n // get relation layer id that are in relation with layerId (current layer in editing)\n // get fields of relation layer that are in relation with layerId\n // Exclude relation child layer that has at least one\n // editing field required because when unlink relation feature from\n // delete father, when try to commit update relation, we receive an error\n // due missing value /null to required field.\n var relations = (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: inputs.layer.getRelations() ? inputs.layer.getRelations().getArray() : []\n }).filter(function (relation) {\n return (0, _getEditingLayerById.getEditingLayerById)((0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation })).getEditingFields() //get editing field of relation layer\n .filter(function (f) {\n return (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ relation: relation, layerId: (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation }) }).ownField.includes(f.name);\n }) //filter only relation fields\n .every(function (f) {\n return !f.validate.required;\n });\n } // check required\n );\n\n // promise return features relations and add to relation layer child\n if (relations.length > 0) {\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(layerId, { feature: feature, relations: relations });\n }\n\n inputs.features = [feature];\n\n // Unlink relation features related to layer id\n (0, _getRelationsInEditingByFeature.getRelationsInEditingByFeature)({ layerId: layerId, relations: relations, feature: feature }).forEach(function (_ref4) {\n var relation = _ref4.relation,\n relations = _ref4.relations;\n\n relations.forEach(function (r) {\n return (0, _unlinkRelation.unlinkRelation)({ layerId: layerId, relation: relation, relations: relations, index: 0, dialog: false });\n });\n });\n\n context.session.pushDelete(layerId, feature);\n\n return inputs;\n }));\n }\n }),\n // confirm step\n new _step.Step({\n run: function run(inputs) {\n var _this2 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var editingLayer = inputs.layer.getEditingLayer();\n var feature = inputs.features[0];\n var layerId = inputs.layer.getId();\n var promise = new Promise(function (resolve, reject) {\n GUI.dialog.confirm('

' + tPlugin('editing.messages.delete_feature') + '

' + '
' + (inputs.layer.getChildren().length && (0, _getRelationsInEditing.getRelationsInEditing)({ layerId: layerId, relations: inputs.layer.getRelations().getArray() }).length ? tPlugin('editing.messages.delete_feature_relations') : '') + '
', function (result) {\n if (!result) {\n reject(inputs);\n return;\n }\n editingLayer.getSource().removeFeature(feature);\n // Remove unique values from unique fields of a layer (when deleting a feature)\n var fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[layerId];\n if (fields) {\n Object.keys(feature.getProperties()).filter(function (f) {\n return undefined !== fields[f];\n }).forEach(function (f) {\n return fields[f].delete(feature.get(f));\n });\n }\n resolve(inputs);\n });\n });\n\n if (inputs.features) {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({\n promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })),\n inputs: inputs,\n style: _this2.selectStyle\n });\n }\n return promise;\n }));\n }\n })]\n })\n },\n // Edit vertex Feature\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'movevertex',\n type: ['change_feature'],\n name: \"editing.tools.update_vertex\",\n icon: \"moveVertex.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/modifygeometryvertexworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'modifygeometryvertex',\n helpMessage: 'editing.tools.update_vertex',\n steps: [new _workflows.PickFeatureStep({ layer: layer }), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.ModifyGeometryVertexStep({ tools: ['snap', 'measure'] })]\n })\n },\n // Edit Attributes to Multi features\n is_vector && capabilities.includes('change_attr_feature') && {\n id: 'editmultiattributes',\n type: ['change_attr_feature'],\n name: \"editing.tools.update_multi_features\",\n icon: \"multiEditAttributes.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editmultifeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'editmultiattributes',\n helpMessage: 'editing.tools.update_multi_features',\n registerEscKeyEvent: true,\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n type: 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBoxAtLeast2Feature' : 'selectMultiPointSHIFTAtLeast2Feature'),\n buttonnext: {\n disabled: true,\n condition: function condition(_ref7) {\n var _ref7$features = _ref7.features,\n features = _ref7$features === undefined ? [] : _ref7$features;\n return features.length < 2;\n },\n done: function done() {\n _workflow.Workflow.Stack.getCurrent().clearUserMessagesSteps();\n }\n },\n dynamic: 0,\n done: false,\n reset: function reset() {\n this.dynamic = 0;\n }\n }\n }\n }), new _workflows.OpenFormStep({ multi: true })]\n })\n },\n // @since 3.9.0 Edit Attributes of relations features to Multi features\n is_vector && capabilities.includes('change_attr_feature') && editable_relations.filter(function (r) {\n return 'ONE' !== r.getType();\n }).length > 0 && {\n id: 'editmultiattributesrelationfeatures',\n type: ['change_attr_feature'],\n name: \"editing.tools.update_multi_features\",\n icon: \"EditMultiRelationFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editmultifeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'editmultiattributesrelationfeatures',\n helpMessage: 'editing.tools.update_multi_features',\n registerEscKeyEvent: true,\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n type: 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBoxAtLeast2Feature' : 'selectMultiPointSHIFTAtLeast2Feature'),\n buttonnext: {\n disabled: true,\n condition: function condition(_ref8) {\n var _ref8$features = _ref8.features,\n features = _ref8$features === undefined ? [] : _ref8$features;\n return features.length < 2;\n },\n done: function done() {\n _workflow.Workflow.Stack.getCurrent().clearUserMessagesSteps();\n }\n },\n dynamic: 0,\n done: false,\n reset: function reset() {\n this.dynamic = 0;\n }\n }\n }\n }), new _step.Step({\n run: function () {\n var _ref9 = _asyncToGenerator(function* (inputs, context) {\n GUI.setModal(true);\n var relations = editable_relations.filter(function (r) {\n return 'ONE' !== r.getType();\n });\n //get relation features from feature parent layer\n yield Promise.allSettled(inputs.features.map(function (feature) {\n return (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(inputs.layer.getId(), {\n relations: relations,\n feature: feature,\n filterType: 'fid'\n });\n }));\n\n //In case of multi relation in editing\n if (relations.length > 1) {\n alert('Choose relations');\n }\n //start child workflow\n var workflow = new _workflow.Workflow({\n type: 'editmultiattributes',\n steps: [new _workflows.OpenFormStep({ multi: true })]\n });\n //Relations layer\n var rLayer = (0, _getEditingLayerById.getEditingLayerById)(relations[0].getChild());\n\n var fields = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: relations[0].getChild(),\n relation: relations[0]\n });\n\n var options = {\n context: {\n session: _workflow.Workflow.Stack.getCurrent().getSession(), // get parent workflow\n excludeFields: fields.ownField // array of fields to be excluded\n },\n inputs: {\n features: rLayer.readFeatures(),\n layer: rLayer\n }\n };\n\n try {\n yield (0, _promisify.promisify)(workflow.start(options));\n } catch (e) {\n console.warn(e);\n }\n\n workflow.stop();\n\n GUI.setModal(false);\n return (0, _promisify.$promisify)(Promise.resolve(inputs, context));\n });\n\n function run(_x4, _x5) {\n return _ref9.apply(this, arguments);\n }\n\n return run;\n }()\n })]\n })\n },\n // Move Feature\n is_vector && capabilities.includes('change_feature') && {\n id: 'movefeature',\n type: ['change_feature'],\n name: 'editing.tools.move_feature',\n icon: 'move' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/movefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'movefeature',\n helpMessage: 'editing.tools.move_feature',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.MoveFeatureStep()]\n })\n },\n // Copy Feature from another layer\n function () {\n var layers = [];\n return is_vector && capabilities.includes('add_feature') && {\n id: 'copyfeaturesfromotherlayer',\n type: ['add_feature'],\n name: \"editing.tools.pastefeaturesfromotherlayers\",\n icon: \"pasteFeaturesFromOtherLayers.png\",\n enable: function () {\n var catalogService = GUI.getService('catalog');\n var layerId = layer.getId();\n var geometryType = layer.getGeometryType();\n var data = {\n bool: true,\n tool: undefined\n };\n CatalogLayersStoresRegistry.getLayers({\n GEOLAYER: true,\n BASELAYER: false\n });\n // check selected feature layers\n var updatelayers = function updatelayers() {\n var checkGeometry = function checkGeometry(type) {\n return type && (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, type) && (geometryType === type || Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(type));\n };\n layers = [].concat(_toConsumableArray(CatalogLayersStoresRegistry.getLayers({ GEOLAYER: true, BASELAYER: false }).filter(function (l) {\n return layerId !== l.getId() && checkGeometry(l.getGeometryType());\n })), _toConsumableArray(catalogService.getExternalLayers({ type: 'vector' }).filter(function (l) {\n return checkGeometry(l.geometryType);\n }))).map(function (l, i) {\n return {\n id: (l.state || { id: l.id }).id,\n name: (l.state || { name: l.name }).name,\n external: l.external || false,\n selected: 0 === i\n };\n });\n return data.tool.enabled = layers.length > 0;\n };\n return function (_ref10) {\n var bool = _ref10.bool,\n _ref10$tool = _ref10.tool,\n tool = _ref10$tool === undefined ? {} : _ref10$tool;\n\n data.tool = tool;\n data.bool = bool;\n catalogService.onafter('addExternalLayer', updatelayers);\n catalogService.onafter('removeExternalLayer', updatelayers);\n return updatelayers();\n };\n }(),\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/copyfeaturesfromotherlayerworkflow.js@v3.7.1 */\n op: function () {\n var openFormStep = new _workflows.OpenFormStep({ layer: layer, help: 'editing.steps.help.copy' });\n return new _workflow.Workflow({\n layer: layer,\n type: 'copyfeaturesfromotherlayer',\n runOnce: true,\n steps: [new _step.Step({\n layer: layer,\n //@since 3.9.0 to show user message steps\n steps: {\n chooselayer: {\n description: 'editing.modal.tools.copyfeaturefromotherlayer.title',\n done: false\n },\n selectgeometry: {\n description: 'editing.workflow.steps.selectPoint',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this3 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var originalLayer = inputs.layer;\n var geometryType = originalLayer.getGeometryType();\n var layerId = originalLayer.getId();\n //get attributes/properties from current layer in editing\n var attributes = originalLayer.getEditingFields().filter(function (a) {\n return !a.pk;\n });\n var session = context.session;\n var editingLayer = originalLayer.getEditingLayer();\n var source = editingLayer.getSource();\n //set reactive\n var vueInstance = new (Vue.extend(require('../components/CopyFeaturesFromOtherLayers.vue')))({ layers: layers });\n var message = vueInstance.$mount().$el;\n GUI.showModalDialog({\n title: tPlugin('editing.relation.copy_feature_from_other_layer'),\n className: 'modal-left',\n closeButton: false,\n message: message,\n buttons: {\n cancel: {\n label: 'Cancel',\n className: 'btn-danger',\n callback: function callback() {\n reject();\n }\n },\n ok: {\n label: 'Ok',\n className: 'btn-success',\n callback: function () {\n var _ref11 = _asyncToGenerator(function* () {\n //set choose layer step done\n _this3.setUserMessageStepDone('chooselayer');\n try {\n var feature = yield (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n //get selected layer\n var layer = layers.find(function (l) {\n return l.selected;\n });\n var features = yield new Promise(function () {\n var _ref13 = _asyncToGenerator(function* (resolve) {\n _this3.addInteraction(layer.external ? new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: GUI.getService('map').getLayerById(layer.id) }) : new g3wsdk.ol.interactions.PickCoordinatesInteraction(), {\n 'picked': function () {\n var _ref14 = _asyncToGenerator(function* (e) {\n try {\n resolve((0, _convertToGeometry.convertToGeometry)(layer.external ? e.features // external layer\n : ((yield DataRouterService.getData('query:coordinates', { // TOC/PROJECT layer\n inputs: {\n coordinates: e.coordinate,\n query_point_tolerance: ProjectsRegistry.getCurrentProject().getQueryPointTolerance(),\n layerIds: [layer.id],\n multilayers: false\n },\n outputs: null\n })).data[0] || { features: [] }).features, geometryType));\n } catch (e) {\n console.warn(e);\n }\n });\n\n function picked(_x7) {\n return _ref14.apply(this, arguments);\n }\n\n return picked;\n }()\n });\n });\n\n return function (_x6) {\n return _ref13.apply(this, arguments);\n };\n }());\n\n var _feature = void 0;\n\n try {\n _feature = features.length > 1 ? yield (0, _promisify.promisify)((0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs })) : features[0];\n } catch (e) {\n console.warn(e);\n }\n\n if (_feature) {\n var _feature2 = new Feature({\n feature: _feature,\n properties: attributes.map(function (a) {\n return a.name;\n })\n });\n\n _feature2.setTemporaryId();\n return _feature2;\n }\n\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n closable: false,\n autoclose: true\n });\n\n return Promise.reject();\n }));\n\n //@TODO check better way\n //Set undefined property to null otherwise on commit\n // property are lost\n attributes.forEach(function (_ref15) {\n var name = _ref15.name;\n\n if (undefined === feature.get(name)) {\n feature.set(name, null);\n }\n });\n\n originalLayer.getEditingNotEditableFields().find(function (field) {\n if (originalLayer.isPkField(field)) {\n feature.set(field, null);\n }\n });\n //remove eventually Z Values\n removeZValueToOLFeatureGeometry({ feature: feature });\n feature.setTemporaryId();\n source.addFeature(feature);\n session.pushAdd(layerId, feature, false);\n inputs.features.push(feature);\n _this3.fireEvent('addfeature', feature);\n resolve(inputs);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n function callback() {\n return _ref11.apply(this, arguments);\n }\n\n return callback;\n }()\n }\n }\n }).on('hide.bs.modal', function () {\n return vueInstance.$destroy();\n }); //destroy vue instance after dialog is a closed\n //hide user message step\n }));\n }\n }), openFormStep],\n registerEscKeyEvent: true\n });\n }()\n };\n }(),\n // Copy Feature from layer\n is_vector && capabilities.includes('add_feature') && {\n id: 'copyfeatures',\n type: ['add_feature'],\n name: \"editing.tools.copy\",\n icon: 'copy' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/copyfeaturesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'copyfeatures',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n help: 'editing.steps.help.copy',\n type: ApplicationState.ismobile ? 'single' : 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectPoint' : 'selectPointSHIFT'),\n done: false\n }\n }\n }, true),\n // get vertex\n layer.getGeometryType().includes('Point') ? undefined : new _step.Step({\n layer: layer,\n help: 'editing.steps.help.select',\n steps: {\n from: {\n description: 'editing.workflow.steps.selectStartVertex',\n done: false\n }\n },\n run: function run(inputs) {\n var _this4 = this;\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var promise = new Promise(function (resolve, reject) {\n _this4.resolve = resolve;\n if (0 === inputs.features.length) {\n return reject('no feature');\n }\n _this4.addInteraction(new ol.interaction.Draw({ type: 'Point', condition: function condition(e) {\n return inputs.features.some(function (f) {\n return (0, _isPointOnVertex.isPointOnVertex)({ feature: f, coordinates: e.coordinate });\n });\n } }), {\n 'drawend': function drawend(e) {\n inputs.coordinates = e.feature.getGeometry().getCoordinates();\n _this4.setUserMessageStepDone('from');\n resolve(inputs);\n }\n });\n _this4.addInteraction(new ol.interaction.Snap({ edge: false, features: new ol.Collection(inputs.features) }));\n });\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this4.selectStyle });\n return promise;\n }));\n },\n stop: function stop() {\n /** @since g3w-client-plugin-editing@v3.8.0 */\n //Always resolve promise (in case of a press esc key)\n this.resolve(true);\n this.resolve = null;\n }\n }),\n // move elements\n new _step.Step({\n layer: layer,\n help: \"editing.steps.help.select_vertex_to_paste\",\n steps: {\n to: {\n description: 'editing.workflow.steps.selectToPaste',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this5 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var layer = inputs.layer,\n features = inputs.features,\n coordinates = inputs.coordinates;\n\n var source = layer.getEditingLayer().getSource();\n var layerId = layer.getId();\n var session = context.session;\n var promise = new Promise(function (resolve, reject) {\n _this5.addInteraction(new ol.interaction.Draw({ type: 'Point', features: new ol.Collection() }), {\n 'drawend': function drawend(evt) {\n var _evt$feature$getGeome = evt.feature.getGeometry().getCoordinates(),\n _evt$feature$getGeome2 = _slicedToArray(_evt$feature$getGeome, 2),\n x = _evt$feature$getGeome2[0],\n y = _evt$feature$getGeome2[1];\n\n var deltaXY = coordinates ? (0, _getDeltaXY.getDeltaXY)({ x: x, y: y, coordinates: coordinates }) : null;\n var featuresLength = features.length;\n var promisesDefaultEvaluation = [];\n\n var _loop = function _loop(i) {\n var feature = (0, _cloneFeature.cloneFeature)(features[i], layer);\n if (deltaXY) {\n feature.getGeometry().translate(deltaXY.x, deltaXY.y);\n } else {\n var _coordinates = feature.getGeometry().getCoordinates();\n var _deltaXY = (0, _getDeltaXY.getDeltaXY)({ x: x, y: y, coordinates: _coordinates });\n feature.getGeometry().translate(_deltaXY.x, _deltaXY.y);\n }\n // set media fields to null\n layer.getEditingMediaFields({}).forEach(function (f) {\n return feature.set(f, null);\n });\n /**\n * evaluated geometry expression\n */\n promisesDefaultEvaluation.push((0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }));\n };\n\n for (var i = 0; i < featuresLength; i++) {\n _loop(i);\n }\n Promise.allSettled(promisesDefaultEvaluation).then(function (promises) {\n return promises.forEach(function (_ref19) {\n var status = _ref19.status,\n feature = _ref19.value;\n\n\n /**\n * @todo improve client core to handle this situation on session.pushAdd not copy pk field not editable only\n */\n var noteditablefieldsvalues = (0, _getNotEditableFieldsNoPkValues.getNotEditableFieldsNoPkValues)({ layer: layer, feature: feature });\n var newFeature = session.pushAdd(layerId, feature);\n // after pushAdd need to set not edit\n if (Object.entries(noteditablefieldsvalues).length) {\n Object.entries(noteditablefieldsvalues).forEach(function (_ref20) {\n var _ref21 = _slicedToArray(_ref20, 2),\n field = _ref21[0],\n value = _ref21[1];\n\n return newFeature.set(field, value);\n });\n }\n\n //need to add to editing layer source newFeature\n source.addFeature(newFeature);\n\n inputs.features.push(newFeature);\n });\n }).finally(function () {\n _this5.setUserMessageStepDone('to');\n resolve(inputs);\n });\n }\n });\n\n _this5.addInteraction(new ol.interaction.Snap({ source: source, edge: false }));\n });\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this5.selectStyle });\n return promise;\n }));\n }\n })].filter(Boolean),\n registerEscKeyEvent: true\n })\n },\n // Add part to MultiGeometry Feature\n is_vector && capabilities.includes('add_feature') && capabilities.includes('change_feature') && {\n id: 'addPart',\n type: ['add_feature', 'change_feature'],\n name: \"editing.tools.addpart\",\n icon: \"addPart.png\",\n visible: isMultiGeometry,\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addparttomultigeometriesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addparttomultigeometries',\n helpMessage: 'editing.tools.addpart',\n runOnce: true,\n steps: [new _workflows.PickFeatureStep({\n steps: {\n select: {\n description: 'editing.workflow.steps.select',\n done: false\n }\n }\n }), new _step.Step({\n run: _chooseFeature.chooseFeature,\n help: 'editing.steps.help.select_element'\n }), new _workflows.AddFeatureStep({\n layer: layer,\n help: 'editing.steps.help.select_element',\n add: false,\n steps: {\n addfeature: {\n description: 'editing.workflow.steps.draw_part',\n done: false\n }\n },\n tools: ['snap', 'measure']\n }),\n // add part to multi geometries\n new _step.Step({\n layer: layer,\n help: 'editing.steps.help.select_element',\n run: _addPartToMultigeometries.addPartToMultigeometries\n })],\n registerEscKeyEvent: true\n })\n },\n // Remove part from MultiGeometry Feature\n is_vector && capabilities.includes('change_feature') && {\n id: 'deletePart',\n type: ['change_feature'],\n name: \"editing.tools.deletepart\",\n icon: \"deletePart.png\",\n visible: isMultiGeometry,\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/deletepartfrommultigeometriesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'deletepartfrommultigeometries',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }),\n // delete part from multi geometries\n new _step.Step({\n layer: layer,\n run: function run(inputs, context) {\n var _this6 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var originaLayer = inputs.layer;\n var editingLayer = inputs.layer.getEditingLayer();\n var layerId = originaLayer.getId();\n var session = context.session;\n var features = inputs.features,\n coordinate = inputs.coordinate;\n\n var feature = features[0];\n var originalFeature = feature.clone();\n var geometry = feature.getGeometry();\n var geometries = [];\n\n // ensure single geometry\n switch (geometry.getType()) {\n case GEOMETRY_TYPES.MULTIPOLYGON:\n geometries = geometry.getPolygons();break;\n case GEOMETRY_TYPES.MULTILINE:\n geometries = geometry.getLineStrings();break;\n case GEOMETRY_TYPES.MULTILINESTRING:\n geometries = geometry.getLineStrings();break;\n case GEOMETRY_TYPES.MULTIPOINT:\n geometries = geometry.getPoints();break;\n default:\n console.warn('invalid geometry type', geometry.getType());break;\n }\n\n var source = new ol.source.Vector({ features: geometries.map(function (geometry) {\n return new ol.Feature(geometry);\n }) });\n var map = _this6.getMap();\n var pixel = map.getPixelFromCoordinate(coordinate);\n var tempLayer = new ol.layer.Vector({\n source: source,\n style: editingLayer.getStyle()\n });\n\n map.addLayer(tempLayer);\n\n map.once('postrender', function () {\n var found = false;\n //need to call map.forEachFeatureAtPixel and not this.forEachFeatureAtPixel\n //because we use arrow function, and it referred this to outside context\n map.forEachFeatureAtPixel(pixel, function (_feature) {\n if (!found) {\n source.removeFeature(_feature);\n if (source.getFeatures().length) {\n var _geometries = source.getFeatures().map(function (f) {\n return f.getGeometry();\n });\n var type = _geometries[0] && _geometries[0].getType();\n feature.setGeometry(type && new ol.geom['Multi' + type](_geometries.map(function (g) {\n return g.getCoordinates();\n })) // ensures multi geometry\n );\n /**\n * evaluated geometry expression\n */\n (0, _evaluateExpressionFields.evaluateExpressionFields)({\n inputs: inputs,\n context: context,\n feature: feature\n }).finally(function () {\n session.pushUpdate(layerId, feature, originalFeature);\n resolve(inputs);\n });\n /**\n * end of evaluated\n */\n } else {\n editingLayer.getSource().removeFeature(feature);\n session.pushDelete(layerId, feature);\n resolve(inputs);\n }\n found = true;\n }\n }, {\n layerFilter: function layerFilter(layer) {\n return layer === tempLayer;\n },\n\n hitTolerance: 1\n });\n //need to call map.forEachFeatureAtPixel and not this.forEachFeatureAtPixel\n //because we use arrow function, and it referred this to outside context\n map.removeLayer(tempLayer);\n tempLayer = null;\n });\n }));\n }\n })],\n helpMessage: 'editing.tools.deletepart'\n })\n },\n // Split Feature\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'splitfeature',\n type: ['change_feature'],\n name: \"editing.tools.split\",\n icon: \"splitFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/splitfeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'splitfeature',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n help: 'editing.steps.help.split',\n type: ApplicationState.ismobile ? 'single' : 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectPoint' : 'selectPointSHIFT'),\n done: false\n }\n }\n }, true),\n // split feature\n new _step.Step({\n layer: layer,\n help: '',\n steps: {\n draw_line: {\n description: 'editing.workflow.steps.draw_split_line',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this7 = this;\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var source = inputs.layer.getEditingLayer().getSource();\n var promise = new Promise(function (resolve, reject) {\n _this7.addInteraction(new ol.interaction.Draw({\n type: 'LineString',\n features: new ol.Collection(),\n freehandCondition: ol.events.condition.never\n }), {\n 'drawend': function () {\n var _ref24 = _asyncToGenerator(function* (e) {\n var isSplitted = false;\n var splittedGeometries = (0, _splitFeatures.splitFeatures)(inputs.features, e.feature);\n var splittedGeometriesLength = splittedGeometries.length;\n\n var _loop2 = function* _loop2(i) {\n if (splittedGeometries[i].geometries.length > 1) {\n isSplitted = true;\n yield (0, _handleSplitFeature.handleSplitFeature)({\n context: context,\n inputs: inputs,\n feature: inputs.features.find(function (f) {\n return f.getUid() === splittedGeometries[i].uid;\n }),\n splittedGeometries: splittedGeometries[i].geometries,\n session: context.session\n });\n }\n };\n\n for (var i = 0; i < splittedGeometriesLength; i++) {\n yield* _loop2(i);\n }\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (isSplitted ? resolve : reject)(inputs);\n //need to set timeout promise, because at the end of the workflow all user messages are cleared\n yield new Promise(function (r) {\n return setTimeout(r, 600);\n });\n GUI.showUserMessage({\n type: isSplitted ? 'success' : 'warning',\n message: isSplitted ? 'plugins.editing.messages.splitted' : 'plugins.editing.messages.nosplittedfeature',\n autoclose: true\n });\n });\n\n function drawend(_x8) {\n return _ref24.apply(this, arguments);\n }\n\n return drawend;\n }()\n });\n\n _this7.addInteraction(new ol.interaction.Snap({ source: source, edge: true }));\n });\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this7.selectStyle });\n\n return promise;\n }));\n }\n })],\n registerEscKeyEvent: true\n })\n },\n // Merge features in one\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'mergefeatures',\n type: ['change_feature'],\n name: \"editing.tools.merge\",\n icon: \"mergeFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/mergefeaturesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'mergefeatures',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n type: 'bbox',\n help: 'editing.steps.help.merge',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBox' : 'selectSHIFT'),\n done: false\n }\n }\n }, true),\n // merge features\n new _step.Step({\n layer: layer,\n help: 'editing.steps.help.merge',\n steps: {\n choose: {\n description: 'editing.workflow.steps.merge',\n done: false\n }\n },\n run: function run(inputs, context) {\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var layer = inputs.layer,\n features = inputs.features;\n\n var editingLayer = layer.getEditingLayer();\n var source = editingLayer.getSource();\n var layerId = layer.getId();\n var session = context.session;\n\n if (features.length < 2) {\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.select_min_2_features',\n autoclose: true\n });\n reject();\n } else {\n (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs }).then(function () {\n var _ref26 = _asyncToGenerator(function* (feature) {\n var index = features.findIndex(function (_feature) {\n return feature === _feature;\n });\n var originalFeature = feature.clone();\n var newFeature = (0, _dissolve.dissolve)({ features: features, index: index });\n\n if (newFeature) {\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: newFeature });\n } catch (e) {\n console.warn(e);\n }\n session.pushUpdate(layerId, newFeature, originalFeature);\n features.filter(function (_feature) {\n return _feature !== feature;\n }).forEach(function (deleteFeature) {\n session.pushDelete(layerId, deleteFeature);\n source.removeFeature(deleteFeature);\n });\n inputs.features = [feature];\n resolve(inputs);\n } else {\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n autoclose: true\n });\n reject();\n }\n });\n\n return function (_x9) {\n return _ref26.apply(this, arguments);\n };\n }()).catch(function (e) {\n console.warn(e);\n reject();\n });\n }\n }));\n }\n })],\n registerEscKeyEvent: true\n })\n },\n // Copy Features from external layer\n (is_line || is_poly) && capabilities.includes('add_feature') && {\n id: 'copyfeaturefromexternallayer',\n type: ['add_feature'],\n name: \"editing.tools.copyfeaturefromexternallayer\",\n icon: \"copyPolygonFromFeature.png\",\n visible: function visible(tool) {\n var map = GUI.getService('map');\n var type = _this.getLayer().getGeometryType();\n var has_same_geom = function has_same_geom(layer) {\n // check if tool is visible and the layer is a Vector\n var features = 'VECTOR' === layer.getType() && layer.getSource().getFeatures();\n return features && features.length ? (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), type) : true;\n };\n map.onbefore('loadExternalLayer', function (layer) {\n return !tool.visible && (tool.visible = has_same_geom(layer));\n });\n map.onafter('unloadExternalLayer', function (layer) {\n var features = tool.visible && 'VECTOR' === layer.getType() && layer.getSource().getFeatures();\n if (features && features.length && (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), type)) {\n tool.visible = map.getExternalLayers().find(function (l) {\n return undefined !== has_same_geom(l);\n });\n }\n });\n return false;\n },\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addfeaturefrommapvectorlayersworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addfeaturefrommapvectorlayers',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n type: 'external',\n help: 'editing.steps.help.copy'\n }, false), new _workflows.OpenFormStep({\n layer: layer,\n help: 'editing.steps.help.copy'\n })],\n registerEscKeyEvent: true\n })\n },\n // Add Table feature (alphanumerical layer - No geometry)\n is_table && capabilities.includes('add_feature') && {\n id: 'addfeature',\n type: ['add_feature'],\n name: \"editing.tools.add_feature\",\n icon: \"addTableRow.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addtablefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n })\n },\n // Edit Table feature (alphanumerical layer - No geometry)\n is_table && capabilities.includes('delete_feature') && capabilities.includes('change_attr_feature') && {\n id: 'edittable',\n type: ['delete_feature', 'change_attr_feature'],\n name: \"editing.tools.update_feature\",\n icon: \"editAttributes.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/edittableworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'edittable',\n backbuttonlabel: 'plugins.editing.form.buttons.save_and_back_table',\n runOnce: true,\n steps: [new _workflows.OpenTableStep()]\n })\n }].filter(Boolean).map(function (tool) {\n return Object.assign(new G3WObject(), tool);\n })\n };\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n */\n _this.state._tools.forEach(function (tool) {\n Object.assign(tool, {\n disabledtoolsoftools: [],\n enabled: !!tool.enabled,\n active: false,\n message: null,\n messages: tool.op.getMessages(),\n visible: tool.visible instanceof Function ? tool.visible(tool) : undefined !== tool.visible ? tool.visible : true,\n state: new Proxy({}, { get: function get(_, prop) {\n return tool[prop];\n }, set: function set(_, prop, value) {\n tool[prop] = value;return true;\n } }),\n start: _this._startTool.bind(_this, tool),\n stop: _this._stopTool.bind(_this, tool),\n getId: function getId() {\n return tool.id;\n },\n getOperator: function getOperator() {\n return tool.op;\n },\n setOperator: function setOperator(op) {\n return tool.op = op;\n }\n });\n });\n\n Object.assign(_this.state, {\n tools: _this.state._tools,\n /** original value of state in case of custom changes */\n originalState: {\n title: _this.state.title,\n toolsoftool: [].concat(_toConsumableArray(_this.state.toolsoftool))\n }\n });\n\n // BACKOMP v3.x\n _this.originalState = _this.state.originalState;\n\n //event features\n _this._getFeaturesEvent = { event: null, fnc: null };\n\n // @since v3.8.0 constraint messages to show\n _this.messages = {\n //set message of scale constraint\n constraint: {\n scale: ('' + tPlugin('editing.messages.constraints.enable_editing') + _this.state._constraints.scale).toUpperCase()\n }\n\n //@since 3.8.0 Need to store Promise resolve when start toolbox but non editing is enabled (scale constraint, etc..)\n };_this.startResolve = null;\n\n //@since 3.8.0 Store ol keys event start when we are in editing\n _this._olStartKeysEvent = [];\n\n //@since 3.8.1 store all unwatches\n _this.unwatches = [];\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } layerId\n *\n */\n\n\n _createClass(ToolBox, [{\n key: '_stopSessionChildren',\n value: function _stopSessionChildren(layerId) {\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n var layer = service.getLayerById(layerId);\n (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: layer.getRelations() ? layer.getRelations().getArray() : []\n }).filter(function (relation) {\n return relation.getFather() === layerId;\n }).forEach(function (relation) {\n var relationId = (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation });\n // In case of no editing is started (click on pencil of relation layer) need to stop (unlock) features\n if (!service.getToolBoxById(relationId).inEditing()) {\n service.state.sessions[relationId].stop();\n }\n });\n }\n\n /**\n * @returns toolbox state\n */\n\n }, {\n key: 'getState',\n value: function getState() {\n return this.state;\n }\n\n /**\n * @param bool\n */\n\n }, {\n key: 'setShow',\n value: function setShow() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.state.show = bool;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this.state.layer;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isFather',\n value: function isFather() {\n return this.state.editing.father;\n }\n\n /**\n * @returns { Array } parent and child layers\n */\n\n }, {\n key: 'getDependencies',\n value: function getDependencies() {\n return this.state.editing.dependencies;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'hasDependencies',\n value: function hasDependencies() {\n return this.state.editing.dependencies.length > 0;\n }\n\n /**\n * Create getFeatures options\n * \n * @param filter\n */\n\n }, {\n key: 'setFeaturesOptions',\n value: function setFeaturesOptions() {\n var _ref27 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n filter = _ref27.filter;\n\n if (filter) {\n // in case of no features filter request check if no features_filed is present otherwise it get first field\n if (filter.nofeatures) {\n filter.nofeatures_field = filter.nofeatures_field || this.state.layer.getEditingFields()[0].name;\n }\n this.state._getFeaturesOption = {\n filter: filter,\n editing: true,\n registerEvents: false\n };\n // in case of constraint attribute set the filter as constraint\n if (filter.constraint) {\n this.constraintFeatureFilter = filter;\n }\n } else {\n this.state._getFeaturesOption = (0, _createEditingDataOptions.createEditingDataOptions)(Layer.LayerTypes.TABLE === this.state._layerType ? 'all' : 'bbox', { layerId: this.getId() });\n }\n }\n\n /**\n * @param constraints\n */\n\n }, {\n key: 'setEditingConstraints',\n value: function setEditingConstraints() {\n var _this8 = this;\n\n var constraints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object.keys(constraints).forEach(function (c) {\n return _this8.constraints[c] = constraints[c];\n });\n }\n\n /**\n * @since 3.8.0 Handle scale constraint\n * @sto stop true when called from stop method\n * @private\n */\n\n }, {\n key: '_handleScaleConstraint',\n value: function _handleScaleConstraint() {\n var _this9 = this;\n\n var stop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // get features from server or wait to start\n var map = GUI.getService('map').getMap();\n\n this.state.editing.canEdit = getScaleFromResolution(map.getView().getResolution()) <= this.state._constraints.scale;\n\n //check if start method is called\n var in_editing = this._start || this.startResolve;\n\n var showZoomCursor = !stop && this.state.selected && !this.state.editing.canEdit;\n\n var control = GUI.getService('map').getCurrentToggledMapControl();\n\n if (control && control.cursorClass && (stop || in_editing)) {\n control.setMouseCursor(!showZoomCursor);\n }\n\n map.getViewport().classList.toggle('ol-zoom-in', showZoomCursor);\n\n // check if selected → hide modal\n if (stop || !this.state.selected || !in_editing) {\n GUI.setModal(false);\n return;\n }\n\n if (this.state.editing.canEdit && this.startResolve) {\n this.startResolve();\n }\n\n // async show message because another toolbox can be unselected before\n setTimeout(function () {\n return GUI.setModal(!_this9.state.editing.canEdit, _this9.messages.constraint.scale);\n });\n }\n\n /**\n *\n * Start editing\n * @param options\n * @return {*}\n */\n //added option object to start method to have a control by other plugin how\n\n }, {\n key: 'start',\n value: function start() {\n var _this10 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref28 = _asyncToGenerator(function* (resolve, reject) {\n var id = _this10.getId();\n var applicationConstraint = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.constraints.toolboxes[id];\n var _options$toolboxheade = options.toolboxheader,\n toolboxheader = _options$toolboxheade === undefined ? true : _options$toolboxheade,\n _options$startstopedi = options.startstopediting,\n startstopediting = _options$startstopedi === undefined ? true : _options$startstopedi,\n _options$changingtool = options.changingtools,\n changingtools = _options$changingtool === undefined ? false : _options$changingtool,\n tools = options.tools,\n filter = options.filter;\n\n\n _this10.state.changingtools = changingtools;\n\n if (tools) {\n _this10.setEnablesDisablesTools(tools);\n }\n\n _this10.state.toolboxheader = toolboxheader;\n _this10.state.startstopediting = startstopediting;\n\n filter = applicationConstraint && applicationConstraint.filter || _this10.constraints.filter || filter;\n\n //register lock features to show a message\n var unKeyLock = _this10.state.layer.getFeaturesStore().onceafter('featuresLockedByOtherUser', function () {\n GUI.showUserMessage({\n type: 'warning',\n subtitle: _this10.state.layer.getName().toUpperCase(),\n message: 'plugins.editing.messages.featureslockbyotheruser'\n });\n });\n\n //add featuresLockedByOtherUser setter\n _this10.state._unregisterStartSettersEventsKey.push(function () {\n return _this10.state.layer.getFeaturesStore().un('featuresLockedByOtherUser', unKeyLock);\n });\n\n // check if can we edit based on scale contraint (vector layer)\n if (_this10.state._constraints.scale) {\n\n yield new Promise(function (resolve) {\n //set as resolve handler to resolve waiting get features from server\n _this10.startResolve = resolve;\n //call scale constraint handler\n _this10._handleScaleConstraint();\n\n var map = GUI.getService('map');\n\n // click to fit zoom scale constraint\n _this10._olStartKeysEvent.push(map.getMap().on('click', function (e) {\n if (_this10.state.selected && !_this10.state.editing.canEdit) {\n map.goToRes(e.coordinate, getResolutionFromScale(_this10.state._constraints.scale, GUI.getService('map').getMapUnits()));\n }\n }));\n\n // if click on start toolbox can edit\n if (_this10.state.editing.canEdit) {\n resolve();\n }\n });\n }\n\n //reset start startResolve promise reolve function\n _this10.startResolve = null;\n // set filterOptions\n _this10.setFeaturesOptions({ filter: filter });\n\n var handlerAfterSessionGetFeatures = function () {\n var _ref29 = _asyncToGenerator(function* (promise) {\n _this10.emit('start-editing');\n //set unique fields values\n yield (0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(_this10.getId());\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'start-editing', id: id });\n try {\n var features = yield (0, _promisify.promisify)(promise);\n _this10.stopLoading();\n _this10.setEditing(true);\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'get-features-editing', id: id, options: { features: features } });\n resolve({ features: features });\n } catch (e) {\n console.warn(e);\n GUI.notify.error(e.message);\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'error-editing', id: id, error: e });\n _this10.stop();\n _this10.stopLoading();\n reject(e);\n }\n });\n\n return function handlerAfterSessionGetFeatures(_x17) {\n return _ref29.apply(this, arguments);\n };\n }();\n\n var is_started = !!_this10.__isStarted();\n\n //@TODO need to explain better\n var GIVE_ME_A_NAME = ApplicationState.ismobile // is mobile\n && GUI.getService('map').isMapHidden() // map is not visible (content 100%)\n && Layer.LayerTypes.VECTOR === _this10.state._layerType // is vector\n ;\n\n if (!is_started && GIVE_ME_A_NAME) {\n _this10.setEditing(true);\n GUI.getService('map').onceafter('setHidden', function () {\n setTimeout(_asyncToGenerator(function* () {\n _this10._start = true;\n _this10.startLoading();\n _this10.setFeaturesOptions({ filter: filter });\n try {\n handlerAfterSessionGetFeatures((yield (0, _promisify.promisify)(_this10._session.start(_this10.state._getFeaturesOption))));\n } catch (e) {\n console.warn(e);\n _this10.setEditing(false);\n }\n }), 300);\n });\n }\n\n /** @TODO merge the following condtions? */\n if (!is_started && !GIVE_ME_A_NAME) {\n _this10._start = true;\n _this10.startLoading();\n _this10._session.start(_this10.state._getFeaturesOption).then(handlerAfterSessionGetFeatures);\n }\n\n if (is_started && !_this10._start) {\n _this10.startLoading();\n _this10._session.getFeatures(_this10.state._getFeaturesOption).then(handlerAfterSessionGetFeatures);\n _this10._start = true;\n }\n\n if (is_started) {\n _this10.setEditing(true);\n }\n });\n\n return function (_x15, _x16) {\n return _ref28.apply(this, arguments);\n };\n }()));\n }\n }, {\n key: 'startLoading',\n\n\n /**\n *\n */\n value: function startLoading() {\n this.state.loading = true;\n }\n\n /**\n *\n */\n\n }, {\n key: 'stopLoading',\n value: function stopLoading() {\n this.state.loading = false;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this11 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n if (_this11.disableCanEditEvent) {\n _this11.disableCanEditEvent();\n }\n\n _this11.state._unregisterStartSettersEventsKey.forEach(function (fnc) {\n return fnc();\n });\n _this11.state._unregisterStartSettersEventsKey = [];\n\n _this11._olStartKeysEvent.forEach(function (k) {\n return ol.Observable.unByKey(k);\n });\n _this11._olStartKeysEvent.splice(0);\n\n _this11.unwatches.forEach(function (uw) {\n return uw();\n });\n _this11.unwatches.splice(0);\n\n //eventually reset start resolve feature waiting promise\n _this11.startResolve = null;\n //set start to false\n _this11._start = false;\n _this11.state.editing.on = false;\n\n if (_this11.state._constraints.scale) {\n _this11._handleScaleConstraint(true);\n }\n\n var is_started = !!_this11.__isStarted();\n\n if (!is_started) {\n return true;\n }\n\n if (!ApplicationState.online) {\n return;\n }\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n var layerId = _this11.state.id;\n\n // Check if father relation is editing and has commit feature\n var fathersInEditing = service.getLayerById(layerId).getFathers().filter(function (id) {\n var toolbox = service.getToolBoxById(id);\n if (toolbox && toolbox.inEditing() && toolbox.isDirty()) {\n //get a temporary relations object and check if layerId has some changes\n return Object.keys(toolbox.getSession().getCommitItems() || {}).find(function (id) {\n return layerId === id;\n });\n }\n });\n\n if (fathersInEditing.length > 0) {\n _this11.stopActiveTool();\n _this11.enableTools(false);\n _this11.clearToolboxMessages();\n // unregister get features event\n if (Layer.LayerTypes.VECTOR === _this11.state._layerType) {\n GUI.getService('map').getMap().un(_this11._getFeaturesEvent.event, _this11._getFeaturesEvent.fnc);\n }\n _this11._stopSessionChildren(_this11.state.id);\n // clear layer unique field values\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this11.getId()] = {};\n return;\n }\n\n try {\n yield (0, _promisify.promisify)(_this11._session.stop());\n _this11.state.enabled = false;\n _this11.stopLoading();\n _this11.state._getFeaturesOption = {};\n _this11.stopActiveTool();\n _this11.enableTools(false);\n _this11.clearToolboxMessages();\n _this11.emit('stop-editing');\n // clear layer unique field values\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this11.getId()] = {};\n return true;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Commit changes on server (save)\n * \n * @param opts.ids\n * @param opts.items\n * @param opts.relations\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'save',\n value: function save() {\n var _this12 = this;\n\n var _ref32 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref32$ids = _ref32.ids,\n ids = _ref32$ids === undefined ? null : _ref32$ids,\n items = _ref32.items,\n _ref32$relations = _ref32.relations,\n relations = _ref32$relations === undefined ? true : _ref32$relations,\n _ref32$__esPromise = _ref32.__esPromise,\n __esPromise = _ref32$__esPromise === undefined ? false : _ref32$__esPromise;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref33 = _asyncToGenerator(function* (resolve, reject) {\n var commit = void 0; // committed items\n\n // skip when ..\n //@TODO Check if deprecated\n if (ids) {\n commit = _this12.__commit(ids);\n _this12.__clearHistory(ids);\n return resolve(commit);\n }\n\n commit = items || _this12.__getCommitItems(_this12.__commit());\n\n if (!relations) {\n commit.relations = {};\n }\n\n _this12.state.layer.getEditor().commit(commit).then(function (response) {\n\n // skip when response is null or undefined and response.result is false\n if (!(response && response.result)) {\n reject(response);\n return;\n }\n\n var _response$response$ne = response.response.new_relations,\n new_relations = _response$response$ne === undefined ? {} : _response$response$ne; // check if new relations are saved on server\n\n // sync server data with local data\n\n for (var id in new_relations) {\n var toolbox = ToolBox.get(id);\n toolbox.getSession().getEditor().applyCommitResponse({ // apply commit response to current editing relation layer\n response: new_relations[id],\n result: true\n });\n }\n\n _this12.__clearHistory();\n\n /**\n * @since v3.9.0\n * After commit get new unique values\n */\n _this12._session.saveChangesOnServer(commit);\n\n // ES6 promises only accept a single response\n if (__esPromise) {\n resolve({ commit: commit, response: response });\n } else {\n resolve(commit, response);\n }\n }).fail(function (e) {\n console.warn(e);reject(e);\n });\n });\n\n return function (_x19, _x20) {\n return _ref33.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * @returns {*|{}}\n */\n\n }, {\n key: 'getEditingConstraints',\n value: function getEditingConstraints() {\n return this.state._constraints;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'canEdit',\n value: function canEdit() {\n return this.state.editing.canEdit;\n }\n\n /**\n * @param message\n */\n\n }, {\n key: 'setMessage',\n value: function setMessage(message) {\n this.state.message = message;\n }\n\n /**\n * @returns {null}\n */\n\n }, {\n key: 'getMessage',\n value: function getMessage() {\n return this.state.message;\n }\n\n /**\n *\n */\n\n }, {\n key: 'clearMessage',\n value: function clearMessage() {\n this.setMessage(null);\n }\n\n /**\n *\n */\n\n }, {\n key: 'clearToolboxMessages',\n value: function clearToolboxMessages() {\n this.state.toolmessages.help = null;\n this.clearMessage();\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * @returns {string}\n */\n\n }, {\n key: 'getTitle',\n value: function getTitle() {\n return this.state.title;\n }\n\n /**\n * @param title\n */\n\n }, {\n key: 'setTitle',\n value: function setTitle(title) {\n this.state.customTitle = true;\n this.state.title = title;\n }\n\n /**\n * @returns {string}\n */\n\n }, {\n key: 'getColor',\n value: function getColor() {\n return this.state.color;\n }\n\n /**\n * Enable toolbox\n * \n * @param bool\n */\n\n }, {\n key: 'setEditing',\n value: function setEditing() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.setEnable(bool);\n this.state.editing.on = bool;\n this.enableTools(bool);\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'inEditing',\n value: function inEditing() {\n return this.state.editing.on;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return this.state.enabled;\n }\n\n /**\n * @param bool\n * \n * @returns {boolean}\n */\n\n }, {\n key: 'setEnable',\n value: function setEnable() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.state.enabled = bool;\n return this.state.enabled;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isLoading',\n value: function isLoading() {\n return this.state.loading;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'isDirty',\n value: function isDirty() {\n return this.state.editing.history.commit;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isSelected',\n value: function isSelected() {\n return this.state.selected;\n }\n\n /**\n * @param bool\n */\n\n }, {\n key: 'setSelected',\n value: function setSelected() {\n var _this13 = this;\n\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.state.selected = bool;\n //Check if layer has a scale constraint\n if (this.state._constraints.scale) {\n var map = GUI.getService('map').getMap();\n //run handle scale contraint handler function\n this._handleScaleConstraint();\n\n //IN CASE START EDITING AND CAN EDIT NEED TO DISPATCH EVENT MOVE END MAP\n if (this._start && this.state.canEdit) {\n map.dispatchEvent({ type: this._getFeaturesEvent.event, target: map });\n }\n //SELECTED AND NOT REGISTER MAP CHANGE RESOLUTION\n if (this.state.selected && !this.keyChangeResolution) {\n this.keyChangeResolution = map.getView().on('change:resolution', function () {\n return _this13._handleScaleConstraint();\n });\n }\n\n //NOT SELECTED AND REGISTER MAP CHANGE RESOLUTION, NEED TO REMOVE CHANGE RESOLUTION CHECK\n if (!this.state.selected && this.keyChangeResolution) {\n ol.Observable.unByKey(this.keyChangeResolution);\n this.keyChangeResolution = null;\n }\n }\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getTools',\n value: function getTools() {\n return this.state._tools;\n }\n\n /**\n * @param toolId\n * \n * @returns {*|number|bigint|T|T} tool by id\n */\n\n }, {\n key: 'getToolById',\n value: function getToolById(toolId) {\n return this.state._tools.find(function (tool) {\n return toolId === tool.getId();\n });\n }\n\n /**\n * @param toolId\n */\n\n }, {\n key: 'setEnableTool',\n value: function setEnableTool(toolId) {\n this.state._tools.find(function (tool) {\n return tool.getId() === toolId;\n }).state.enabled = true;\n }\n\n /**\n * Set tools bases on add\n * editing_constraints : true // follow the tools related toi editing conttraints configuration\n * \n * @see g3w-client-plugin-sispi-worksite\n */\n\n }, {\n key: 'setAddEnableTools',\n value: function setAddEnableTools() {\n var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref34$tools = _ref34.tools,\n tools = _ref34$tools === undefined ? {} : _ref34$tools,\n _ref34$options = _ref34.options,\n options = _ref34$options === undefined ? { editing_constraints: true } : _ref34$options;\n\n var _options$editing_cons = options.editing_constraints,\n editing_constraints = _options$editing_cons === undefined ? false : _options$editing_cons;\n\n\n this.setEnablesDisablesTools({\n enabled: this.state._tools.filter(function (tool) {\n return editing_constraints ? tool.type.includes('add_feature') : ['addfeature', 'editattributes', 'movefeature', 'movevertex'].includes(tool.getId());\n }).map(function (tool) {\n return { id: tool.getId(), options: tools[tool.getId()] };\n })\n });\n\n this.enableTools(true);\n }\n\n /**\n * Set tools bases on update\n * \n * @see g3w-client-plugin-sispi-worksite\n */\n\n }, {\n key: 'setUpdateEnableTools',\n value: function setUpdateEnableTools(_ref35) {\n var _ref35$tools = _ref35.tools,\n tools = _ref35$tools === undefined ? {} : _ref35$tools,\n _ref35$excludetools = _ref35.excludetools,\n excludetools = _ref35$excludetools === undefined ? [] : _ref35$excludetools,\n _ref35$options = _ref35.options,\n options = _ref35$options === undefined ? { editing_constraints: true } : _ref35$options;\n var _options$editing_cons2 = options.editing_constraints,\n editing_constraints = _options$editing_cons2 === undefined ? false : _options$editing_cons2;\n\n var UPDATEONEFEATUREONLYTOOLSID = ['editattributes', 'movefeature', 'movevertex'];\n var update_tools = this.state._tools.filter(function (tool) {\n // exclude\n if (excludetools.includes(tool.getId())) {\n return false;\n }\n return editing_constraints ? tool.type.find(function (type) {\n return type === 'change_feature' || type === 'change_attr_feature';\n }) : UPDATEONEFEATUREONLYTOOLSID.includes(tool.getId());\n }).map(function (tool) {\n var id = tool.getId();\n return { id: id, options: tools[id] };\n });\n\n this.setEnablesDisablesTools({ enabled: update_tools });\n this.enableTools(true);\n }\n\n /**\n * Set enable tools\n *\n * @param tools\n */\n\n }, {\n key: 'setEnablesDisablesTools',\n value: function setEnablesDisablesTools(tools) {\n var _this14 = this;\n\n if (tools) {\n this.state.changingtools = true;\n // Check if tools is an array\n var _tools$enabled = tools.enabled,\n enableTools = _tools$enabled === undefined ? [] : _tools$enabled,\n _tools$disabled = tools.disabled,\n disableTools = _tools$disabled === undefined ? [] : _tools$disabled;\n\n\n var toolsId = enableTools.length ? [] : this.state._tools.map(function (tool) {\n return tool.getId();\n });\n\n enableTools.forEach(function (_ref36) {\n var id = _ref36.id,\n _ref36$options = _ref36.options,\n options = _ref36$options === undefined ? {} : _ref36$options;\n\n //check if id of tool passed as argument is right\n var tool = _this14.getToolById(id);\n if (tool) {\n var _options$active = options.active,\n active = _options$active === undefined ? false : _options$active;\n // set tool options\n\n tool.messages = options.messages || tool.messages;\n tool.visible = undefined !== options.visible ? options.visible : true;\n tool.enabled = undefined !== options.enabled ? options.enabled : false;\n tool.disabledtoolsoftools = undefined !== options.disabledtoolsoftools ? options.disabledtoolsoftools : [];\n if (tool.visible) {\n toolsId.push(id);\n }\n if (active) {\n _this14.setActiveTool(tool);\n }\n if (_this14.state._enabledtools === undefined) {\n _this14.state._enabledtools = [];\n }\n _this14.state._enabledtools.push(tool);\n }\n });\n //disabled and visible\n disableTools.forEach(function (_ref37) {\n var id = _ref37.id,\n options = _ref37.options;\n\n var tool = _this14.getToolById(id);\n if (tool) {\n if (_this14.state._disabledtools === undefined) {\n _this14.state._disabledtools = [];\n }\n _this14.state._disabledtools.push(id);\n //add it toi visible tools\n toolsId.push(id);\n }\n });\n //set not visible all remain\n this.state._tools.forEach(function (tool) {\n return !toolsId.includes(tool.getId()) && (tool.visible = false);\n });\n this.state.changingtools = false;\n }\n }\n }, {\n key: 'enableTools',\n\n\n /**\n * @param {*} bool whehter enable all tools\n */\n value: function enableTools() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var tools = this.state._enabledtools || this.state._tools;\n var disabledtools = this.state._disabledtools || [];\n tools.forEach(function (tool) {\n var enabled = undefined === tool.enable ? bool : tool.enable;\n tool.enabled = bool && disabledtools.length > 0 ? !disabledtools.includes(tool.getId()) : toRawType(enabled) === 'Boolean' ? enabled : enabled({ bool: bool, tool: tool });\n if (!bool) {\n tool.active = bool;\n }\n });\n }\n\n /**\n * @param tool\n */\n\n }, {\n key: 'setActiveTool',\n value: function setActiveTool(tool) {\n var _this15 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n yield (0, _promisify.promisify)(_this15.stopActiveTool(tool));\n\n _this15.state.toolsoftool.splice(0);\n _this15.state.activetool = tool;\n\n var workflow = tool.getOperator();\n\n if (workflow) {\n // filter eventually disable tools of tools\n workflow.once('settoolsoftool', function (ts) {\n var _state$toolsoftool;\n\n return (_state$toolsoftool = _this15.state.toolsoftool).push.apply(_state$toolsoftool, _toConsumableArray((ts || []).filter(function (t) {\n return !tool.disabledtoolsoftools.includes(t.type);\n })));\n });\n workflow.once('start', function (ts) {\n return _this15.state.toolsoftool.forEach(function (t) {\n return (ts || []).includes(t.type) && (t.options.active = true);\n });\n });\n workflow.once('stop', function (ts) {\n return _this15._deactivetools(tool, ts);\n });\n workflow.once('reject', function (ts) {\n return _this15._deactivetools(tool, ts);\n });\n }\n\n tool.start();\n\n // set tool messages\n var messages = _this15.state.activetool.getOperator().getHelpMessage() || _this15.state.activetool.getOperator().getRunningStep() ? _this15.state.activetool.messages : null;\n _this15.state.toolmessages.help = messages && messages.help || null;\n } catch (e) {\n console.warn(e);\n }\n }));\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0 \n */\n\n }, {\n key: '_deactivetools',\n value: function _deactivetools(tool) {\n var tools = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n // in case of deactivate tool and current active tool, it was clicked\n if (tool === this.state.activetool) {\n this.state.activetool = null;\n this.state.toolsoftool.splice(0);\n }\n this.state.toolsoftool.forEach(function (t) {\n return tools.includes(t.type) && (t.options.active = false);\n });\n }\n\n /**\n * @returns {null}\n */\n\n }, {\n key: 'getActiveTool',\n value: function getActiveTool() {\n return this.state.activetool;\n }\n\n /**\n * @param tool\n * \n * @returns {*}\n */\n\n }, {\n key: 'stopActiveTool',\n value: function stopActiveTool(tool) {\n var _this16 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var activeTool = _this16.getActiveTool();\n if (tool && (!activeTool || tool === activeTool)) {\n tool.removeAllListeners();\n return;\n }\n\n try {\n //Need to check if is there active tool\n if (activeTool) {\n activeTool.removeAllListeners();\n yield (0, _promisify.promisify)(activeTool.stop(true));\n }\n _this16.state.toolsoftool.splice(0);\n _this16.state.toolmessages.help = null;\n _this16.state.activetool = null;\n } catch (e) {\n console.warn(e);\n }\n }));\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n return this._session;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getEditor',\n value: function getEditor() {\n return this.state.layer.getEditor();\n }\n\n /**\n * Reset default values\n */\n\n }, {\n key: 'resetDefault',\n value: function resetDefault() {\n this.state.title = this.state.originalState.title;\n this.state.toolboxheader = true;\n this.state.startstopediting = true;\n this.constraints = {\n filter: null,\n show: null,\n tools: []\n };\n\n if (this.state._enabledtools) {\n this.state._enabledtools = undefined;\n this.enableTools();\n this.state._tools.forEach(function (tool) {\n tool.visible = true;\n tool.enabled = false;\n tool.messages = tool.op.getMessages();\n tool.disabledtoolsoftools = []; //reset disabled tools eventually set by other\n });\n }\n this.state._disabledtools = null;\n /** since 3.9.0 set show based on visibile porpety of config editing object setting*/\n this.state.show = this.state.layer.config.editing.visible;\n //need to set selected false\n this.state.selected = false;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param uniqueId\n * @param items\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__add',\n value: function __add(uniqueId, items) {\n var _this17 = this;\n\n //state object is an array of feature/features changed in a transaction\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n // before insert an item into the history\n // check if are at last state step (no redo was done)\n // If we are in the middle of undo, delete all changes\n // in the history from the current \"state\" so if it\n // can create a new history\n if (null === _this17.state.editing.session.current) {\n _this17._states = [{ id: uniqueId, items: items }];\n } else {\n if (_this17._states.length > 0 && _this17.state.editing.session.current < _this17._states.at(-1).id) {\n _this17._states = _this17._states.filter(function (s) {\n return s.id <= _this17.state.editing.session.current;\n });\n }\n _this17._states.push({ id: uniqueId, items: items });\n }\n\n _this17.state.editing.session.current = uniqueId;\n // set internal state\n _this17.__canUndo();\n _this17.__canCommit();\n _this17.__canRedo();\n // return unique id key\n // it can be used in save relation\n resolve(uniqueId);\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * undo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undo',\n value: function __undo() {\n var _this18 = this;\n\n var items = void 0;\n if (this.state.editing.session.current === this._states[0].id) {\n this.state.editing.session.current = null;\n items = this._states[0].items;\n } else {\n this._states.find(function (state, idx) {\n if (state.id === _this18.state.editing.session.current) {\n items = _this18._states[idx].items;\n _this18.state.editing.session.current = _this18._states[idx - 1].id;\n return true;\n }\n });\n }\n items = (0, _checkSessionItems.checkSessionItems)(this._history.id, items, 0);\n // set internal state\n this.__canUndo();\n this.__canCommit();\n this.__canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * redo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redo',\n value: function __redo() {\n var _this19 = this;\n\n var items = void 0;\n // if not set get first state\n if (!this.state.editing.session.current) {\n items = this._states[0].items;\n // set current to first\n this.state.editing.session.current = this._states[0].id;\n } else {\n this._states.find(function (state, idx) {\n if (_this19.state.editing.session.current === state.id) {\n _this19.state.editing.session.current = _this19._states[idx + 1].id;\n items = _this19._states[idx + 1].items;\n return true;\n }\n });\n }\n items = (0, _checkSessionItems.checkSessionItems)(this._history.id, items, 1);\n // set internal state\n this.__canUndo();\n this.__canCommit();\n this.__canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param id\n * \n * @returns {T}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getState',\n value: function __getState(id) {\n return this._states.find(function (s) {\n return s.id === id;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { boolean } true if we can commit\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canCommit',\n value: function __canCommit() {\n var checkCommitItems = this.__commit();\n var canCommit = false;\n for (var layerId in checkCommitItems) {\n var commitItem = checkCommitItems[layerId];\n canCommit = canCommit || commitItem.length > 0;\n }\n this._constrains.commit = canCommit;\n return this._constrains.commit;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canUdo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canUndo',\n value: function __canUndo() {\n var _this20 = this;\n\n var currentStateIndex = null;\n if (this.state.editing.session.current && this._states.length) {\n this._states.forEach(function (state, idx) {\n if (_this20.state.editing.session.current === state.id) {\n currentStateIndex = idx;\n return false;\n }\n });\n };\n var steps = this._states.length - 1 - currentStateIndex;\n this._constrains.undo = null !== this.state.editing.session.current && steps < 10; // 10 = maximum \"buffer history\" lenght for undo/redo\n return this._constrains.undo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canRedo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canRedo',\n value: function __canRedo() {\n this._constrains.redo = this._states.at(-1) && this._states.at(-1).id != this.state.editing.session.current || null === this.state.editing.session.current && this._states.length > 0;\n return this._constrains.redo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * get all changes to send to server (mandare al server)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__commit',\n value: function __commit() {\n var _this21 = this;\n\n var commitItems = {};\n var statesToCommit = this._states.filter(function (s) {\n return s.id <= _this21.state.editing.session.current;\n });\n statesToCommit.forEach(function (state) {\n state.items.forEach(function (item) {\n var add = true;\n if (Array.isArray(item)) {\n item = item[1];\n }\n if (commitItems[item.layerId]) {\n commitItems[item.layerId].forEach(function (commitItem, index) {\n // check if already inserted feature\n if (commitItem.getUid() === item.feature.getUid()) {\n if (item.feature.isNew() && !commitItem.isDeleted() && item.feature.isUpdated()) {\n var _item = item.feature.clone();\n _item.add();\n commitItems[item.layerId][index] = _item;\n } else if (item.feature.isNew() && item.feature.isDeleted()) {\n commitItems[item.layerId].splice(index, 1);\n } else if (item.feature.isUpdated() || item.feature.isDeleted()) {\n commitItems[item.layerId][index] = item.feature;\n }\n add = false;\n return false;\n }\n });\n }\n if (add) {\n var _feature3 = item.feature;\n var layerId = item.layerId;\n if (!(!_feature3.isNew() && _feature3.isAdded())) {\n if (!commitItems[layerId]) {\n commitItems[layerId] = [];\n }\n commitItems[layerId].push(_feature3);\n }\n }\n });\n });\n return commitItems;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getLastHistoryState',\n value: function __getLastHistoryState() {\n return this._states.at(-1) || null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__isStarted',\n value: function __isStarted() {\n return this.state.editing.session.started;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getHistory',\n value: function __getHistory() {\n return this._history;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getEditor',\n value: function __getEditor() {\n return this.state.layer.getEditor();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary features that will be added with save method\n * \n * @param { { layerId: string, feature: * } } NewFeat \n * @param { { layerId: string, feature: * } } OldFeat\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__push',\n value: function __push(newFeat, oldFeat) {\n this.state.editing.session.changes.push(oldFeat ? [oldFeat, newFeat] : newFeat); // check is set old (edit)\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Delete temporary feature\n * \n * @param layerId\n * @param feature\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushDelete',\n value: function __pushDelete(layerId, feature) {\n this.__push({ layerId: layerId, feature: feature.delete() });\n return feature;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Save temporary changes to the layer in history instance and feature store\n * \n * @param options\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__save',\n value: function __save() {\n var _this22 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // fill history\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n // add temporary modify to history\n if (_this22.state.editing.session.changes.length) {\n var uniqueId = options.id || Date.now();\n yield (0, _promisify.promisify)(_this22.__add(uniqueId, _this22.state.editing.session.changes));\n // clear to temporary changes\n _this22.state.editing.session.changes = [];\n // resolve if unique id\n return uniqueId;\n }\n return null;\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary feature\n * \n * @param layerId \n * @param feature \n * @param removeNotEditableProperties\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushAdd',\n value: function __pushAdd(layerId, feature) {\n var removeNotEditableProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n /**\n * @TODO check if it need to deprecate it. All properties are need\n * Please take care of this to understand\n * In case of removeNotEditableProperties true, remove not editable field\n * from feature properties\n */\n var editor = layerId === this.state.layer.getId() ? this.state.layer.getEditor() : ToolBox.get(layerId).getSession().getEditor();\n\n // remove not editable proprierties from feature\n if (removeNotEditableProperties) {\n (editor.getLayer().getEditingNotEditableFields() || []).forEach(function (f) {\n return feature.unset([f]);\n });\n }\n\n var newFeature = feature.clone();\n\n this.__push({ layerId: layerId, feature: newFeature.add() });\n\n return newFeature;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary feature changes\n * \n * @param layerId\n * @param newFeature\n * @param oldFeature\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushUpdate',\n value: function __pushUpdate(layerId, newFeature, oldFeature) {\n // get index of temporary changes\n var is_new = newFeature.isNew();\n var i = is_new && this.state.editing.session.changes.findIndex(function (c) {\n return layerId === c.layerId && c.feature.getId() === newFeature.getId();\n });\n\n // in case of new feature\n if (is_new && i >= 0) {\n var _feature4 = newFeature.clone();\n _feature4.add();\n this.state.editing.session.changes[i].feature = _feature4;\n return;\n }\n\n this.__push({ layerId: layerId, feature: newFeature.update() }, { layerId: layerId, feature: oldFeature.update() });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n *\n * @param changes\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__rollback',\n value: function __rollback(changes) {\n var _this23 = this;\n\n // skip when..\n if (changes) {\n return this.state.layer.getEditor().rollback(changes);\n }\n\n // Handle temporary changes of layer\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var id = _this23.state.layer.getId();\n changes = { own: [], dependencies: {} };\n\n _this23.state.editing.session.changes.forEach(function (c) {\n var change = Array.isArray(c) ? c[0] : c;\n if (change.layerId === id) {\n changes.own.push(change);\n } else {\n changes.dependencies[change.layerId] = changes.dependencies[change.layerId] || [];\n // FILO\n changes.dependencies[change.layerId].unshift(change);\n }\n });\n\n try {\n yield (0, _promisify.promisify)(_this23.state.layer.getEditor().rollback(changes.own));\n for (var _id in changes.dependencies) {\n ToolBox.get(_id).getSession().rollback(changes.dependencies[_id]);\n }\n return changes.dependencies;\n } catch (e) {\n console.warn(e);\n } finally {\n _this23.state.editing.session.changes = [];\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Rollback child changes of current session\n * \n * @param ids [array of child layer id]\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__rollbackDependecies',\n value: function __rollbackDependecies() {\n var _this24 = this;\n\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n ids.forEach(function (id) {\n var changes = [];\n _this24.state.editing.session.changes = _this24.state.editing.session.changes.filter(function (temporarychange) {\n if (temporarychange.layerId === id) {\n changes.push(temporarychange);\n return false;\n }\n });\n if (changes.length) {\n ToolBox.get(id).getSession().rollback(changes);\n }\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n *\n * undo method\n * \n * @param items\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undoSession',\n value: function __undoSession(items) {\n items = items || this.__undo();\n this.state.layer.getEditor().setChanges(items.own, true);\n this.__canCommit();\n return items.dependencies;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * redo method\n * \n * @param items\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redoSession',\n value: function __redoSession(items) {\n items = items || this.__redo();\n this.state.layer.getEditor().setChanges(items.own, true);\n this.__canCommit();\n return items.dependencies;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Serialize commit\n * \n * @returns {{ add: *[], update: *[], relations: {}, delete: *[] }} JSON Object for a commit body send to server\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCommitItems',\n value: function __getCommitItems() {\n var _this25 = this;\n\n var itemsToCommit = this.__commit();\n var id = this.state.layer.getId();\n var state = void 0;\n var layer = void 0;\n var commitObj = {\n add: [], // features to add\n update: [], // features to update\n delete: [], // features to delete\n relations: {} // relation features\n };\n // key is a layer id that has changes to apply\n for (var key in itemsToCommit) {\n var isRelation = false; //set relation to false\n var items = itemsToCommit[key];\n // case key (layer id) is not equal to id (current layer id on editing)\n if (key !== id) {\n isRelation = true; //set true because these changes belong to features relation items\n var sessionRelation = ToolBox.get(key).getSession();\n //check lock ids of relation layer\n var lockids = sessionRelation ? sessionRelation.getEditor().getLockIds() : [];\n //create a relations object\n commitObj.relations[key] = {\n lockids: lockids,\n add: [],\n update: [],\n delete: [],\n relations: {} //@since v3.7.1\n };\n layer = commitObj.relations[key];\n } else {\n layer = commitObj;\n }\n\n items.forEach(function (item) {\n //check state of feature item\n state = item.getState();\n var GeoJSONFormat = new ol.format.GeoJSON();\n // item needs to be deleted\n if ('delete' === state) {\n //check if is new. If is new mean is not present on server\n //so no need to say to server to delete it\n if (!item.isNew()) {\n layer.delete.push(item.getId());\n }\n return;\n }\n //convert feature to json ex. {geometry:{tye: 'Point'}, properties:{}.....}\n var itemObj = GeoJSONFormat.writeFeatureObject(item);\n //get properties\n var childs_properties = item.getProperties();\n for (var p in itemObj.properties) {\n // in case the value of property is an object\n if (itemObj.properties[p] && _typeof(itemObj.properties[p]) === 'object' && itemObj.properties[p].constructor === Object) {\n //need to get value from value attribute object\n itemObj.properties[p] = itemObj.properties[p].value;\n }\n // @TODO explain when this condition happen\n if (undefined === itemObj.properties[p] && childs_properties[p]) {\n itemObj.properties[p] = childs_properties[p];\n }\n }\n // in case of add it have to remove not editable properties\n layer[item.isNew() ? 'add' : item.getState()].push(itemObj);\n });\n // check in case of no edit remove relation key\n if (isRelation && layer.add.length === 0 //no relation features to add\n && layer.update.length === 0 //no relation features to update\n && layer.delete.length === 0 //no relation features to delete\n ) {\n delete commitObj.relations[key];\n }\n }\n // Remove deep relations from current layer (commitObj) that are not relative to that layer\n var relations = Object.keys(commitObj.relations || {});\n relations.filter(function (id) {\n return undefined === _this25.state.layer.getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild();\n });\n }) // child relations\n .map(function (id) {\n commitObj.relations[ToolBox.get(id).getSession().getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild() && commitObj.relations[r.getFather()];\n }) // parent relation layer\n .getFather()].relations[id] = commitObj.relations[id];\n return id;\n }).forEach(function (id) {\n return delete commitObj.relations[id];\n });\n\n return commitObj;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Clear all things bind to session\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__clearSession',\n value: function __clearSession() {\n this._allfeatures = false;\n this.state.editing.session.started = false;\n this.state.editing.session.getfeatures = false;\n this.__clearHistory();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param ids since g3w-client-plugin-editing@v3.8.0\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__clearHistory',\n value: function __clearHistory(ids) {\n var _this26 = this;\n\n if (ids) {\n this._states.forEach(function (state, idx) {\n if (ids.indexOf(state.id) !== -1) {\n if (_this26.state.editing.session.current && _this26.state.editing.session.current === state.id()) {\n _this26.__undo();\n }\n _this26._states.splice(idx, 1);\n }\n });\n } else {\n // clear all\n this._states = [];\n this.state.editing.session.current = null;\n this._constrains.commit = false;\n this._constrains.redo = false;\n this._constrains.undo = false;\n }\n }\n\n /**\n * Start session\n */\n\n }, {\n key: '__startSession',\n value: function () {\n var _ref42 = _asyncToGenerator(function* () {\n var _this27 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n try {\n var features = yield (0, _promisify.promisify)(this.state.layer.getEditor().start(options));\n this.state.editing.session.started = true;\n return features;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n } finally {\n if (!options.registerEvents) {\n return;\n }\n this.state._getFeaturesOption = options;\n // register get features event (only in case filter bbox)\n if (Layer.LayerTypes.VECTOR === this.state._layerType && this.state._getFeaturesOption.filter.bbox) {\n var fnc = function fnc() {\n if (\n //added ApplicationState.online\n ApplicationState.online && _this27.state.editing.canEdit && _this27.state.selected //need to be selected\n && 0 === GUI.getContentLength()) {\n _this27.state._getFeaturesOption.filter.bbox = GUI.getService('map').getMapBBOX();\n _this27.state.loading = true;\n _this27._session.getFeatures(_this27.state._getFeaturesOption).then(function (promise) {\n return promise.then(function () {\n return _this27.state.loading = false;\n });\n });\n }\n };\n this._getFeaturesEvent.event = 'moveend';\n this._getFeaturesEvent.fnc = debounce(fnc, 300);\n this._olStartKeysEvent.push(GUI.getService('map').getMap().on('moveend', this._getFeaturesEvent.fnc));\n if (GUI.getContentLength()) {\n GUI.once('closecontent', function () {\n var map = GUI.getService('map').getMap();\n setTimeout(function () {\n map.dispatchEvent({ type: _this27._getFeaturesEvent.event, target: map });\n });\n });\n }\n }\n }\n });\n\n function __startSession() {\n return _ref42.apply(this, arguments);\n }\n\n return __startSession;\n }()\n\n /**\n * Stop session\n */\n\n }, {\n key: '__stopSession',\n value: function () {\n var _ref43 = _asyncToGenerator(function* () {\n try {\n if (this.state.editing.session.started || this.state.editing.session.getfeatures) {\n yield (0, _promisify.promisify)(this.state.layer.getEditor().stop());\n this.__clearSession();\n }\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n } finally {\n if (!this.inEditing()) {\n return;\n }\n if (ApplicationState.online) {\n this._stopSessionChildren(this.state.id);\n }\n // unregister get features event\n if (this.state._getFeaturesOption.registerEvents && Layer.LayerTypes.VECTOR === this.state._layerType) {\n GUI.getService('map').getMap().un(this._getFeaturesEvent.event, this._getFeaturesEvent.fnc);\n }\n }\n });\n\n function __stopSession() {\n return _ref43.apply(this, arguments);\n }\n\n return __stopSession;\n }()\n\n /**\n * Get features from server (by editor)\n */\n\n }, {\n key: '__getFeatures',\n value: function () {\n var _ref44 = _asyncToGenerator(function* () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this._allfeatures) {\n this._allfeatures = !options.filter;\n var features = yield (0, _promisify.promisify)(this.state.layer.getEditor().getFeatures(options));\n this.state.editing.session.getfeatures = true;\n return features;\n }\n return [];\n });\n\n function __getFeatures() {\n return _ref44.apply(this, arguments);\n }\n\n return __getFeatures;\n }()\n\n /**\n * Hook to get informed that are saved on server\n * Get unique id for each commited layer/relation\n */\n\n }, {\n key: '__saveChangesOnServer',\n value: function () {\n var _ref45 = _asyncToGenerator(function* (commit) {\n var promises = [(0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(this.getId())];\n var relationsId = [];\n var addRelationId = function addRelationId() {\n var relations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object.entries(relations).forEach(function (_ref46) {\n var _ref47 = _slicedToArray(_ref46, 2),\n id = _ref47[0],\n commit = _ref47[1];\n\n relationsId.push(id);\n addRelationId(commit.relations);\n });\n };\n addRelationId(commit.relations);\n relationsId.forEach(function (id) {\n return promises.push((0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(id));\n });\n\n yield Promise.allSettled(promises);\n });\n\n function __saveChangesOnServer(_x32) {\n return _ref45.apply(this, arguments);\n }\n\n return __saveChangesOnServer;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_startTool',\n value: function _startTool(tool) {\n var _this28 = this;\n\n if (tool.getOperator()) {\n tool.active = true;\n setTimeout(_asyncToGenerator(function* () {\n return yield _this28._startOp(tool, {\n inputs: { layer: _this28.getLayer(), features: [] },\n context: { session: _this28._session }\n }, !!GUI.getService('map').isMapHidden());\n })); // prevent rendering change state\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_startOp',\n value: function () {\n var _ref49 = _asyncToGenerator(function* (tool, options, hideSidebar) {\n // reset features\n options.inputs.features = [];\n\n if (hideSidebar) {\n GUI.hideSidebar();\n }\n\n try {\n yield (0, _promisify.promisify)(tool.op.start(options));\n yield (0, _promisify.promisify)(this._session.save());\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').saveChange(); // after save temp change check if editing service has a autosave\n } catch (e) {\n console.warn(e);\n if (hideSidebar) {\n GUI.showSidebar();\n }\n this._session.rollback();\n } finally {\n if (!tool.getOperator().runOnce && Layer.LayerTypes.TABLE !== this.getLayer().getType()) {\n yield this._startOp(tool, options, hideSidebar);\n } else {\n tool.stop();\n }\n }\n });\n\n function _startOp(_x34, _x35, _x36) {\n return _ref49.apply(this, arguments);\n }\n\n return _startOp;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_stopTool',\n value: function _stopTool(tool) {\n var _this29 = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n if (!tool.getOperator()) {\n tool.emit('stop', { session: _this29._session });\n return;\n }\n try {\n yield (0, _promisify.promisify)(tool.getOperator().stop(force));\n } catch (e) {\n console.warn(e);\n _this29._session.rollback();\n } finally {\n tool.active = false;\n tool.emit('stop', { session: _this29._session });\n }\n }));\n }\n }]);\n\n return ToolBox;\n}(G3WObject);\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/store/sessions.js@v3.9.1\n *\n * Store editing sessions\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\nToolBox._sessions = {};\nToolBox.get = function (id) {\n return ToolBox._sessions[id];\n};\nToolBox.clear = function () {\n return Object.keys(sessions).forEach(function (id) {\n return delete ToolBox._sessions[id];\n });\n};\n\n},{\"../components/CopyFeaturesFromOtherLayers.vue\":4,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addPartToMultigeometries\":28,\"../utils/addTableFeature\":30,\"../utils/checkSessionItems\":32,\"../utils/chooseFeature\":33,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/cloneFeature\":35,\"../utils/convertToGeometry\":36,\"../utils/createEditingDataOptions\":37,\"../utils/dissolve\":39,\"../utils/evaluateExpressionFields\":40,\"../utils/getDeltaXY\":41,\"../utils/getEditingLayerById\":42,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getNotEditableFieldsNoPkValues\":46,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/getRelationsInEditing\":51,\"../utils/getRelationsInEditingByFeature\":52,\"../utils/handleSplitFeature\":54,\"../utils/isPointOnVertex\":55,\"../utils/isSameBaseGeometryType\":56,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/setLayerUniqueFieldValues\":61,\"../utils/splitFeatures\":62,\"../utils/unlinkRelation\":63,\"../workflows\":65}],28:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addPartToMultigeometries = addPartToMultigeometries;\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _promisify = require('./promisify');\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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addparttomultigeometriestask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addparttomultigeometriesstep.js@v3.7.1\n * \n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addPartToMultigeometries(inputs, context) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var feature = void 0;\n var originalFeature = void 0;\n\n // add part\n if (inputs.features.length > 1) {\n feature = inputs.features[0];\n var geometry = feature.getGeometry();\n originalFeature = feature.clone();\n geometry.setCoordinates([].concat(_toConsumableArray(geometry.getCoordinates()), _toConsumableArray(inputs.features[1].getGeometry().getCoordinates())));\n } else {\n feature = inputs.layer.getEditingLayer().getSource().getFeatures()[0];\n originalFeature = feature.clone();\n feature.setGeometry(inputs.features[0].getGeometry());\n }\n\n // evaluated geometry expression\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n context.session.pushUpdate(inputs.layer.getId(), feature, originalFeature);\n\n inputs.features = [feature];\n return inputs;\n }));\n}\n\n},{\"../utils/evaluateExpressionFields\":40,\"./promisify\":58}],29:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addRemoveToMultipleSelectFeatures = addRemoveToMultipleSelectFeatures;\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/selectelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/selectelementsstep.js@v3.7.1\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addRemoveToMultipleSelectFeatures(features, inputs, selected, task) {\n (features || []).forEach(function (f) {\n var selIndex = selected.indexOf(f);\n if (selIndex < 0) {\n task._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)([f]);\n selected.push(f);\n } else {\n selected.splice(selIndex, 1);\n f.setStyle(task._originalStyle);\n }\n inputs.features = selected;\n });\n\n var steps = task.getSteps();\n var buttonnext = steps.select.buttonnext;\n\n buttonnext.disabled = buttonnext.condition ? buttonnext.condition({ features: selected }) : 0 === selected.length;\n\n if (undefined !== steps.select.dynamic) {\n steps.select.dynamic = selected.length;\n }\n}\n\n},{\"../utils/setFeaturesSelectedStyle\":60}],30:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addTableFeature = addTableFeature;\n\nvar _promisify = require('./promisify');\n\n/**\n * \n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addtablefeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addTableFeature(inputs, context) {\n var feature = inputs.features.length > 0 ? inputs.features[inputs.features.length - 1] : inputs.layer.createNewFeature();\n\n feature.setTemporaryId();\n\n inputs.layer.getEditingLayer().getEditingSource().addFeature(feature);\n\n context.session.pushAdd(inputs.layer.getId(), feature, false);\n\n inputs.features.push(feature);\n\n context.get_default_value = true;\n\n return (0, _promisify.$promisify)(Promise.resolve(inputs, context));\n}\n\n},{\"./promisify\":58}],31:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.areCoordinatesEqual = areCoordinatesEqual;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param feature\n * @param coordinates\n *\n * @returns { boolean }\n */\nfunction areCoordinatesEqual(_ref) {\n var feature = _ref.feature,\n coordinates = _ref.coordinates;\n\n //get geometry from feature\n var geometry = feature.getGeometry();\n var type = geometry.getType();\n var coords = function coords(c1, c2) {\n return g3wsdk.core.geoutils.areCoordinatesEqual(c1, c2);\n }; // whether element have same coordinates\n\n switch (type) {\n case 'Polygon':\n case 'MultiLineString':\n coordinates = _.flatMap(coordinates);\n return _.flatMap(geometry.getCoordinates()).every(function (c, i) {\n return coords(c, coordinates[i]);\n });\n\n case 'LineString':\n case 'MultiPoint':\n return geometry.getCoordinates().every(function (c, i) {\n return coords(c, coordinates[i]);\n });\n\n case 'MultiPolygon':\n // in case of add part or remove part\n if (coordinates.length !== geometry.getPolygons().length) {\n return false;\n }\n return geometry.getPolygons().some(function (poly, i) {\n var _coords = _.flatMap(coordinates[i]);\n return _.flatMap(poly.getCoordinates()).every(function (c, i) {\n return coords(c, _coords[i]);\n });\n });\n\n case 'Point':\n return coords(coordinates, geometry.getCoordinates());\n\n default:\n return false;\n }\n}\n\n},{}],32:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSessionItems = checkSessionItems;\n/**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * check if was done an update (update are array contains two items, old and new value)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction checkSessionItems(historyId, items, action) {\n /**\n * action: \n * 0: undo;\n * 1: redo;\n **/\n var newItems = {\n own: [], //array of changes of layer of the current session\n dependencies: {} // dependencies\n };\n\n items.forEach(function (item) {\n if (Array.isArray(item)) {\n item = item[action];\n }\n // check if belong to session\n if (historyId === item.layerId) {\n newItems.own.push(item);\n } else {\n newItems.dependencies[item.layerId] = newItems.dependencies[item.layerId] || {\n own: [],\n dependencies: {}\n };\n newItems.dependencies[item.layerId].own.push(item);\n }\n });\n\n return newItems;\n}\n\n},{}],33:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chooseFeature = chooseFeature;\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _promisify = require('../utils/promisify');\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 * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/choosefeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/choosefeaturestep.js@v3.7.1\n * \n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction chooseFeature(inputs) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n if (1 !== inputs.features.length) {\n var feature = yield (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: inputs.features, inputs: inputs });\n inputs.features = [feature];\n }\n return inputs;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n }\n }));\n}\n\n},{\"../utils/chooseFeatureFromFeatures\":34,\"../utils/promisify\":58}],34:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chooseFeatureFromFeatures = chooseFeatureFromFeatures;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/choosefeaturetoedit.js@v3.6\n * \n * @since g3w-client-plugin-editing@v3.5.13\n */\n\nfunction chooseFeatureFromFeatures(_ref) {\n var _ref$features = _ref.features,\n features = _ref$features === undefined ? [] : _ref$features,\n inputs = _ref.inputs;\n\n return new Promise(function (resolve, reject) {\n\n var feature = [];\n\n var comp = new (Vue.extend(require('../components/ChooseFeatureToEdit.vue')))({\n features: Array.isArray(features) ? features : [],\n feature: feature,\n attributes: inputs.layer.getEditingFields().map(function (_ref2) {\n var name = _ref2.name,\n label = _ref2.label;\n return { name: name, label: label };\n })\n });\n\n var dialog = g3wsdk.gui.GUI.showModalDialog({\n title: tPlugin('editing.modal.tools.copyfeaturefromprojectlayer.title'),\n className: 'modal-left',\n closeButton: false,\n message: comp.$mount().$el,\n buttons: {\n cancel: { label: 'Cancel', className: 'btn-danger', callback: function callback() {\n reject();\n }\n },\n ok: { label: 'Ok', className: 'btn-success', callback: function callback() {\n resolve(feature[0]);\n }\n }\n }\n });\n\n dialog.find('button.btn-success').prop('disabled', true);\n\n comp.$watch('feature', function (feature) {\n return dialog.find('button.btn-success').prop('disabled', null === feature);\n });\n });\n}\n\n},{\"../components/ChooseFeatureToEdit.vue\":3}],35:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cloneFeature = cloneFeature;\n/**\n * Clone a feature by Primary Key\n * \n * @param { Feature } feature to be cloned\n * @param { TableLayer } layer from which obtain the primary key field\n * \n * @returns { Feature }\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nfunction cloneFeature(feature, layer) {\n var clone = feature.cloneNew();\n //check if layer has a primary key as field\n var pk = layer && layer.getEditingFields().find(function (f) {\n return f.pk;\n }); // get PK field (of value-relation widget?)\n /**\n * In case of layer has a primary key field and is not editabe,\n * clone feature need to set pk value to null to avoid conflict\n * with already pk field value store on server*/\n if (pk && false === pk.editable) {\n clone.set(pk.name, null);\n }\n return clone;\n}\n\n},{}],36:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertToGeometry = convertToGeometry;\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar convertSingleMultiGeometry = g3wsdk.core.geoutils.convertSingleMultiGeometry;\nvar _g3wsdk$core$geoutils = g3wsdk.core.geoutils.Geometry,\n is3DGeometry = _g3wsdk$core$geoutils.is3DGeometry,\n removeZValueToOLFeatureGeometry = _g3wsdk$core$geoutils.removeZValueToOLFeatureGeometry,\n addZValueToOLFeatureGeometry = _g3wsdk$core$geoutils.addZValueToOLFeatureGeometry;\nvar isMultiGeometry = g3wsdk.core.geoutils.Geometry.isMultiGeometry;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param { Array } features to be converted (eg. Polygon)\n * @param { string } geometryType target geometry type (eg. MultiPolygon)\n *\n * @returns { Array } converted features\n */\n\nfunction convertToGeometry() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var geometryType = arguments[1];\n\n return (features || []).flatMap(function (f) {\n var type = f.getGeometry() && f.getGeometry().getType();\n\n // ensure 3D coords\n if (type && !is3DGeometry(geometryType)) {\n removeZValueToOLFeatureGeometry({ feature: f });\n } else if (type && is3DGeometry(geometryType)) {\n addZValueToOLFeatureGeometry({ feature: f, geometryType: geometryType });\n }\n\n // same geometry\n if (geometryType === type) {\n return f;\n }\n\n // convert single → multi\n if ((0, _isSameBaseGeometryType.isSameBaseGeometryType)(type, geometryType) && (isMultiGeometry(geometryType) || !isMultiGeometry(type))) {\n var cloned = f.clone();\n cloned.__layerId = f.__layerId;\n cloned.setGeometry(convertSingleMultiGeometry(f.getGeometry(), geometryType));\n return cloned;\n }\n\n // skip → invalid conversion (eg. Point → Polygon)\n return [];\n });\n}\n\n},{\"../utils/isSameBaseGeometryType\":56}],37:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createEditingDataOptions = createEditingDataOptions;\nvar GUI = g3wsdk.gui.GUI;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { 'all' | 'bbox' | 'field' | 'fid' | '1:1' } filterType\n * @param { Object } options\n * @param options.feature\n * @param options.relation\n * @param options.field\n * @param options.layerId\n * @param options.operator\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction createEditingDataOptions() {\n var filterType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var filter = void 0;\n\n switch (filterType) {\n\n case 'all':\n filter = undefined;\n break;\n\n case 'bbox':\n filter = { bbox: GUI.getService('map').getMapBBOX() };\n break;\n\n case 'field':\n filter = {\n field: { field: options.field, type: 'editing' }\n };\n break;\n\n case 'fid':\n if ('not' !== options.operator) {\n // get relations of current feature\n filter = {\n fid: {\n fid: options.feature.getId(),\n layer: { id: options.layerId },\n type: 'editing',\n relation: options.relation.state,\n formatter: 0 // 0 = retrieve stored value\n }\n };\n }\n break;\n\n // relation 1:1\n case '1:1':\n filter = {\n field: options.relation.getChildField()[0] + '|eq|' + options.feature.get(options.relation.getFatherField()[0]),\n type: 'editing'\n };\n break;\n\n }\n\n return {\n registerEvents: true, // usefult to get register vent on toolbox example mapmoveend\n editing: true,\n filter: filter\n };\n}\n\n},{}],38:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createFeature = createFeature;\nvar Feature = g3wsdk.core.layer.features.Feature;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Create a new feature\n *\n * @param layerId\n * @param options.geometry.type\n * @param options.geometry.coordinates\n *\n * @returns { Feature }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction createFeature(layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var feature = new Feature();\n\n if (options.geometry) {\n feature.setGeometry(new ol.geom[options.geometry.type](options.geometry.coordinates));\n }\n\n feature.setProperties(options.properties);\n feature.setTemporaryId();\n\n var toolbox = this.getToolBoxById(layerId);\n var editingLayer = toolbox.getLayer().getEditingLayer();\n var session = toolbox.getSession();\n\n editingLayer.getSource().addFeature(feature);\n session.pushAdd(layerId, feature, false);\n\n return feature;\n}\n\n},{}],39:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dissolve = dissolve;\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/dissolve.js@v3.10.2\n * \n * @param { Object } opts \n * @param { Array } opts.features\n * @param { number } opts.index\n * @param { boolean } opts.clone\n * \n * @returns dissolved feature\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\nfunction dissolve() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$features = _ref.features,\n features = _ref$features === undefined ? [] : _ref$features,\n _ref$index = _ref.index,\n index = _ref$index === undefined ? 0 : _ref$index,\n _ref$clone = _ref.clone,\n clone = _ref$clone === undefined ? false : _ref$clone;\n\n var parser = new jsts.io.OL3Parser();\n var featuresLength = features.length;\n\n /** In case no features to dissolve */\n if (0 === featuresLength) {\n return null;\n }\n\n /** In the case of single feature, return feature */\n if (1 === featuresLength) {\n return features[0];\n }\n\n var jstsdissolvedFeatureGeometry = void 0;\n\n var baseFeature = clone ? features[index].clone() : features[index];\n var baseFeatureGeometry = baseFeature.getGeometry();\n var baseFeatureGeometryType = baseFeatureGeometry.getType();\n\n // check if it can build a LineString\n if ('LineString' === baseFeatureGeometryType) {\n var lineMerger = new jsts.operation.linemerge.LineMerger();\n for (var i = 0; i < featuresLength; i++) {\n lineMerger.addLineString(new jsts.geom.GeometryFactory().createLineString(parser.read(features[i].getGeometry()).getCoordinates()));\n }\n var mergedLineString = lineMerger.getMergedLineStrings();\n jstsdissolvedFeatureGeometry = 1 === mergedLineString.size() ? mergedLineString.toArray()[0] : null;\n }\n\n if ('LineString' !== baseFeatureGeometryType) {\n jstsdissolvedFeatureGeometry = parser.read(baseFeatureGeometry);\n for (var _i = 0; _i < featuresLength; _i++) {\n if (index !== _i) {\n jstsdissolvedFeatureGeometry = jstsdissolvedFeatureGeometry.union(parser.read(features[_i].getGeometry()));\n }\n }\n }\n\n /** In case of no dissolved geometry */\n if (!jstsdissolvedFeatureGeometry) {\n return null;\n }\n\n var dissolvedFeatureGeometry = parser.write(jstsdissolvedFeatureGeometry);\n var dissolvedFeatureGeometryType = dissolvedFeatureGeometry.getType();\n var dissolvedFeatureGeometryCoordinates = dissolvedFeatureGeometryType === baseFeatureGeometryType ? dissolvedFeatureGeometry.getCoordinates() : -1 !== baseFeatureGeometryType.indexOf('Multi') && dissolvedFeatureGeometryType === baseFeatureGeometryType.replace('Multi', '') ? [dissolvedFeatureGeometry.getCoordinates()] : null;\n\n /** In case of null feature dissolved coordinates */\n if (null === dissolvedFeatureGeometryCoordinates) {\n return null;\n }\n\n baseFeature.getGeometry().setCoordinates(dissolvedFeatureGeometryCoordinates);\n\n return baseFeature;\n}\n\n},{}],40:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.evaluateExpressionFields = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param expression.inputs.layer\n * @param expression.context.excludeFields\n * @param expression.context.get_default_value\n * @param expression.feature\n *\n * @returns {Promise}\n *\n * @since g3w-client-plugin-editing@v3.5.14\n */\nvar evaluateExpressionFields = exports.evaluateExpressionFields = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n inputs = _ref2.inputs,\n context = _ref2.context,\n feature = _ref2.feature;\n\n var promises = []; // promises from expression evaluation\n\n inputs.layer.getFieldsWithValues(feature, {\n exclude: context.excludeFields,\n get_default_value: undefined !== context.get_default_value ? context.get_default_value : false\n }).forEach(function (field) {\n\n // default expression\n if (field.input.options.default_expression && (field.input.options.default_expression.apply_on_update || feature.isNew())) {\n promises.push(new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n try {\n yield g3wsdk.core.input.inputService.handleDefaultExpressionFormInput({\n field: field,\n feature: feature,\n qgs_layer_id: inputs.layer.getId(),\n parentData: (0, _getParentFormData.getParentFormData)()\n });\n feature.set(field.name, field.value);\n resolve(feature);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n }()));\n }\n\n // filter expression\n if (field.input.options.filter_expression) {\n promises.push(new Promise(function () {\n var _ref4 = _asyncToGenerator(function* (resolve, reject) {\n try {\n yield g3wsdk.core.input.inputService.handleFilterExpressionFormInput({\n field: field,\n feature: feature,\n qgs_layer_id: inputs.layer.getId(),\n parentData: (0, _getParentFormData.getParentFormData)()\n });\n feature.set(field.name, field.value);\n resolve(feature);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x4, _x5) {\n return _ref4.apply(this, arguments);\n };\n }()));\n }\n });\n\n yield Promise.allSettled(promises);\n\n return feature;\n });\n\n return function evaluateExpressionFields() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _getParentFormData = require('./getParentFormData');\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},{\"./getParentFormData\":47}],41:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDeltaXY = getDeltaXY;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/moveelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/movelementsstep.js@v3.7.1\n *\n * @param { Object } delta\n * @param delta.x\n * @param delta.y\n * @param delta.coordinates\n * \n * @returns {{ x: number, y: number }}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getDeltaXY() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n x = _ref.x,\n y = _ref.y,\n coordinates = _ref.coordinates;\n\n var coords = _getCoordinates(coordinates);\n return {\n x: x - coords.x,\n y: y - coords.y\n };\n}\n\nfunction _getCoordinates(coords) {\n return Array.isArray(coords[0]) ? _getCoordinates(coords[0]) : {\n x: coords[0],\n y: coords[1]\n };\n}\n\n},{}],42:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEditingLayerById = getEditingLayerById;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getEditingLayerById(layerId) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId);\n}\n\n},{}],43:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFeatureTableFieldValue = getFeatureTableFieldValue;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Finalize \"formatter\" value for any kind of field\n *\n * @param { string } opts.layerId\n * @param {ol.Feature} opts.feature\n * @param { string } opts.property\n *\n * @returns (field.key) or (field.value)\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nfunction getFeatureTableFieldValue() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n feature = _ref.feature,\n property = _ref.property;\n\n // get editable fields\n var fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId).config.editing.fields;\n\n // get field value (raw)\n\n var value = feature.get(property);\n\n // get key-value fields implicated into: https://github.com/g3w-suite/g3w-client-plugin-editing/pull/64\n var values = null !== value && (fields.filter(function (f) {\n return ['select_autocomplete', 'select'].includes(f.input.type);\n }) || []).reduce(function (kv, field) {\n kv[field.name] = field.input.options.values;return kv;\n }, {});\n\n // get the last key-value feature add to\n var kv_field = values && values[property] && values[property].find(function (kv) {\n return value == kv.value;\n });\n\n // return key for key-values fields (raw field value otherwise)\n return kv_field ? kv_field.key : value;\n}\n\n},{}],44:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFormFields = getFormFields;\n/** Sort an array of strings (alphabetical order) */\nvar sortAlphabeticallyArray = function sortAlphabeticallyArray(arr) {\n return arr.sort(function (a, b) {\n return a.localeCompare(b, undefined, { sensitivity: 'base' });\n });\n};\n\n/* Sort an array of numbers (natural order) */\nvar sortNumericArray = function sortNumericArray(arr) {\n var ascending = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return arr.sort(function (a, b) {\n return ascending ? a - b : b - a;\n });\n};\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Get form fields\n *\n * @param form.inputs.layer\n * @param form.inputs.features\n * @param form.context.excludeFields\n * @param form.context.get_default_value\n * @param form.isChild - whether is child form (ie. belongs to relation)\n * @param form.multi - in case of multi editing set all fields to null\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getFormFields() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n inputs = _ref.inputs,\n context = _ref.context,\n feature = _ref.feature,\n multi = _ref.multi;\n\n //editing service\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n // current form layerId// unique values by feature field\n var layerId = inputs.layer.getId();\n\n var fields = inputs.layer.getFieldsWithValues( // editing fields with values (in case of update)\n feature, {\n exclude: context.excludeFields, // add exclude fields\n get_default_value: undefined === context.get_default_value ? false : context.get_default_value\n });\n\n //Loop through fields\n var unique_values = fields\n //check if field is a unique field. Exclude pk not edittable\n .filter(function (f) {\n return !(f.pk && false === f.editable) && ('unique' === f.input.type || f.validate.unique);\n }).map(function (field) {\n return {\n field: field, // feature field\n _value: feature.get(field.name) // feature current field value\n };\n });\n\n //Loop through unique fields\n unique_values.forEach(function (_ref2) {\n var _value = _ref2._value,\n field = _ref2.field;\n\n //get current stored unique values for field\n var current_values = service.state.uniqueFieldsValues[layerId][field.name] || new Set([]);\n //filter null value otherwise sort function gets an error\n var values = Array.from(current_values).filter(function (v) {\n return null !== v;\n });\n //NEED TO ADD ALWAYS CURRENT VALUE\n field.input.options.values = (['integer', 'float', 'bigint'].includes(field.type) ? sortNumericArray : sortAlphabeticallyArray)(values);\n if (current_values.has(null)) {\n field.input.options.values.unshift(null);\n }\n\n // convert \"current\" values to string (when not null or undefined)\n current_values.forEach(function (v) {\n return field.validate.exclude_values.add(![null, undefined].includes(v) ? '' + v : v);\n });\n\n // remove current value from exclude_values\n field.validate.exclude_values.delete('' + _value);\n });\n\n // skip when no fields are unique in multi features change form attribute\n if (0 === unique_values.length) {\n return _handleMulti(fields, multi);\n }\n\n // Listen to event method after close/save form\n var savedfeatureFnc = function savedfeatureFnc() {\n unique_values.forEach(function (_ref3) {\n var _value = _ref3._value,\n field = _ref3.field;\n\n // initial value is the same that current field vale (no changed)\n if (_value === field.value) {\n return;\n }\n // layer form\n if (service.state.uniqueFieldsValues[layerId][field.name]) {\n // change layer unique field values\n var values = service.state.uniqueFieldsValues[layerId][field.name];\n //If changed, delete it from _value\n values.delete(_value);\n //aff new one to value list unique field\n values.add(field.value);\n }\n });\n\n return { once: true };\n };\n\n //event when insert/edit form button is pressed\n service.subscribe('savedfeature_' + layerId, savedfeatureFnc);\n //event when close form layer\n service.subscribe('closeform_' + layerId, function () {\n //unsubscribe event\n service.unsubscribe('savedfeature_' + layerId, savedfeatureFnc);\n return { once: true };\n });\n\n return _handleMulti(fields, multi);\n}\n\nfunction _handleMulti(fields, multi) {\n if (multi) {\n fields = fields.map(function (field) {\n var f = JSON.parse(JSON.stringify(field));\n f.value = null;\n f._value = null; // @since v3.9.0 Fix update form field: Set the same value of value\n f.forceNull = true;\n f.validate.required = false; //set false because all features have already required field filled\n return f;\n }).filter(function (f) {\n return !f.pk;\n });\n }\n\n return fields;\n}\n\n},{}],45:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLayersDependencyFeatures = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } layerId\n * @param opts\n *\n * @returns { Promise[]> }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar getLayersDependencyFeatures = exports.getLayersDependencyFeatures = function () {\n var _ref = _asyncToGenerator(function* (layerId) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n\n var layer = service.getLayerById(layerId);\n var relations = opts.relations || layer.getChildren().length && layer.getRelations() && (0, _getRelationsInEditing.getRelationsInEditing)({ layerId: layerId, relations: layer.getRelations().getArray().filter(function (r) {\n return r.getFather() === layerId;\n }) }) || [];\n\n var response = void 0;\n\n try {\n response = yield Promise.all(relations.map(function () {\n var _ref2 = _asyncToGenerator(function* (relation) {\n\n if (relation.setLoading) {\n relation.setLoading(true);\n } else {\n relation.loading = true;\n }\n\n var id = (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation });\n\n opts.relation = relation;\n opts.layerId = layerId;\n opts.filterType = 'ONE' === (relation.getType ? relation.getType() : relation.type) ? '1:1' : opts.filterType; // In a case of relation 1:1\n var filterType = opts.filterType || 'fid';\n var options = (0, _createEditingDataOptions.createEditingDataOptions)(filterType, opts);\n var session = service.state.sessions[id];\n var online = ApplicationState.online && session;\n var toolbox = service.getToolBoxById(id);\n\n // getLayersDependencyFeaturesFromSource\n\n opts.operator = undefined !== opts.operator ? opts.operator : 'eq';\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: id, relation: relation }),\n ownField = _getRelationFieldsFro.ownField,\n relationField = _getRelationFieldsFro.relationField;\n\n var features = service.getLayerById(layerId).readEditingFeatures();\n var featureValues = relationField.map(function (field) {\n return opts.feature.get(field);\n });\n\n // try to get feature from source without a server request\n var find = (!ApplicationState.online || !session || session.isStarted()) && 'eq' === opts.operator && ownField.every(function (field, i) {\n return features.find(function (f) {\n return featureValues[i] == f.get(field);\n });\n });\n\n toolbox.startLoading();\n\n try {\n if (online && !session.isStarted()) {\n yield (0, _promisify.promisify)(session.start(options)); // start session and get features\n } else if (online && !find) {\n yield (0, _promisify.promisify)(session.getFeatures(options)); // request features from server\n }\n } catch (promise) {\n try {\n yield (0, _promisify.promisify)(promise);\n } catch (e) {\n console.warn(e, promise);\n }\n }\n\n toolbox.stopLoading();\n\n return id;\n });\n\n return function (_x3) {\n return _ref2.apply(this, arguments);\n };\n }()));\n } catch (e) {\n console.warn(e);\n }\n\n // at the end se loading false\n relations.forEach(function (relation) {\n if (relation.setLoading) {\n relation.setLoading(false);\n } else {\n relation.loading = false;\n }\n });\n\n return response;\n });\n\n return function getLayersDependencyFeatures(_x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _promisify = require('../utils/promisify');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _createEditingDataOptions = require('../utils/createEditingDataOptions');\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 ApplicationState = g3wsdk.core.ApplicationState;\n\n},{\"../utils/createEditingDataOptions\":37,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/getRelationsInEditing\":51,\"../utils/promisify\":58}],46:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getNotEditableFieldsNoPkValues = getNotEditableFieldsNoPkValues;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param layer,\n * @param feature\n *\n * @returns Array of fields\n */\nfunction getNotEditableFieldsNoPkValues(_ref) {\n var layer = _ref.layer,\n feature = _ref.feature;\n\n return layer.getEditingNotEditableFields().reduce(function (fields, field) {\n fields[field] = layer.isPkField(field) ? null : feature.get(field); // NB: Primary Key fields need to be `null`\n return fields;\n }, {});\n}\n\n},{}],47:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getParentFormData = getParentFormData;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @returns { undefined | { feature: * , qgs_layer_id: * } }\n */\nfunction getParentFormData() {\n // skip when ..\n if (!(_workflow.Workflow.Stack.getLength() > 1)) {\n return;\n }\n\n var _Workflow$Stack$getPa = _workflow.Workflow.Stack.getParent().getInputs(),\n features = _Workflow$Stack$getPa.features,\n layer = _Workflow$Stack$getPa.layer,\n _Workflow$Stack$getPa2 = _Workflow$Stack$getPa.fields,\n fields = _Workflow$Stack$getPa2 === undefined ? [] : _Workflow$Stack$getPa2;\n\n // in the case of temporary fields (setted by form) set temporary value to feature (cloned) parent\n\n\n var feature = features[features.length - 1].clone();\n\n fields.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n feature.set(name, value);\n });\n\n return {\n feature: feature,\n qgs_layer_id: layer.getId()\n };\n}\n\n},{\"../g3wsdk/workflow/workflow\":15}],48:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelation1_1ChildFeature = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param { Object } opts\n * @param opts.relation\n * @param opts.fatherFormRelationField\n * \n * @returns {Promise<{feature: *, locked: boolean}>}\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar getRelation1_1ChildFeature = exports.getRelation1_1ChildFeature = function () {\n var _ref2 = _asyncToGenerator(function* (_ref) {\n var relation = _ref.relation,\n fatherFormRelationField = _ref.fatherFormRelationField;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n var fatherLayerId = relation.getFather();\n var childLayerId = relation.getChild(); // get relation child layer id\n var childField = relation.getChildField()[0];\n\n // lock feature false\n var locked = false;\n var feature = service.getLayerById(childLayerId).getEditingSource().readFeatures().find(function (f) {\n return fatherFormRelationField.value === f.get(childField);\n });\n\n //get feature from server and lock\n if (undefined === feature) {\n\n var childFeatureStore = service.getLayerById(childLayerId).getFeaturesStore();\n\n var unByKey = childFeatureStore.oncebefore('featuresLockedByOtherUser', function (features) {\n return feature = features[0];\n });\n\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(fatherLayerId, {\n feature: new ol.Feature(_defineProperty({}, fatherFormRelationField.name, fatherFormRelationField.value)),\n relations: [relation]\n });\n\n //remove listener\n childFeatureStore.un('featuresLockedByOtherUser', unByKey);\n\n //in case of no locked check feature on a source\n if (undefined === feature) {\n\n feature = service.getLayerById(childLayerId).getEditingSource().readFeatures().find(function (f) {\n return fatherFormRelationField.value === f.get(childField);\n });\n }\n }\n\n //not find on source need to check if exist\n if (undefined === feature) {\n\n try {\n var layer = CatalogLayersStoresRegistry.getLayerById(childLayerId);\n\n var _ref4 = yield DataRouterService.getData('search:features', { // get feature of relation layer based on value of relation field\n inputs: {\n layer: layer,\n formatter: 0,\n filter: g3wsdk.core.utils.createFilterFormInputs({\n layer: layer,\n search_endpoint: 'api',\n inputs: [{ attribute: childField, value: fatherFormRelationField.value }]\n }),\n search_endpoint: 'api'\n },\n outputs: false\n }),\n data = _ref4.data;\n\n if (data && data[0] && 1 === data[0].features.length) {\n // NB: length == 1, due to 1:1 relation type\n //locked\n locked = true;\n feature = data[0].features[0];\n }\n } catch (e) {\n console.warn(e);\n }\n }\n\n //return\n return {\n feature: feature, //feature search\n locked: locked //locked status\n };\n });\n\n return function getRelation1_1ChildFeature(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\n\n},{\"../utils/getLayersDependencyFeatures\":45}],49:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationFieldsFromRelation = getRelationFieldsFromRelation;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Based on layerId and relation, extract field of relation.\n * ownField are array of fields related to relation and belong to layerId\n * relationField area array of fields related to relation thar belong to other layer in relation with layerId\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relation\n *\n * @returns {{ ownField: [], relationField: [] }} `ownField` and `relationField` are Arrays since g3w-client-plugin-editing@v3.7.0\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationFieldsFromRelation() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n relation = _ref.relation;\n\n /** @type { string } */\n var childId = relation.getChild ? relation.getChild() : relation.child;\n /** @type { Boolean } whether is a child */\n var isChild = childId !== layerId;\n /** @type { Array } of fields */\n var _fatherField = relation.getFatherField ? relation.getFatherField() : relation.fatherField;\n /** @type { Array } of fields */\n var _childField = relation.getChildField ? relation.getChildField() : relation.childField;\n\n return {\n ownField: isChild ? _fatherField : _childField,\n relationField: isChild ? _childField : _fatherField\n };\n}\n\n},{}],50:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationId = getRelationId;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relation\n *\n * @returns the layer id of the other layer that is in relation with layerId\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationId() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n relation = _ref.relation;\n\n var fatherId = relation.getFather ? relation.getFather() : relation.father;\n var childId = relation.getChild ? relation.getChild() : relation.child;\n\n return layerId === fatherId ? childId : fatherId;\n}\n\n},{}],51:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationsInEditing = getRelationsInEditing;\n\nvar _getRelationId = require('../utils/getRelationId');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relations\n *\n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationsInEditing(_ref) {\n var layerId = _ref.layerId,\n _ref$relations = _ref.relations,\n relations = _ref$relations === undefined ? [] : _ref$relations;\n\n return relations.filter(function (r) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById((0, _getRelationId.getRelationId)({ layerId: layerId, relation: r }));\n });\n}\n\n},{\"../utils/getRelationId\":50}],52:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationsInEditingByFeature = getRelationsInEditingByFeature;\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Get Relation in editing\n *\n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relations\n * @param opts.feature\n *\n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationsInEditingByFeature() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n _ref$relations = _ref.relations,\n relations = _ref$relations === undefined ? [] : _ref$relations,\n feature = _ref.feature;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n var relationsinediting = [];\n var relationinediting = void 0;\n relations.forEach(function (relation) {\n var child = relation.getChild ? relation.getChild() : relation.child;\n var father = relation.getFatherField ? relation.getFatherField() : relation.fatherField;\n var relationLayerId = child === layerId ? father : child; // get relation LayerId\n //check if the layer is editable\n if (service.getLayerById(relationLayerId)) {\n var layer = service.getToolBoxById(relationLayerId).getLayer();\n var fatherLayer = service.getLayerById(relation.getFather ? relation.getFather() : relation.father);\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: relationLayerId, relation: relation }),\n ownField = _getRelationFieldsFro.ownField,\n relationField = _getRelationFieldsFro.relationField;\n // get features of relation child layers\n // Loop relation fields\n // In case of new feature, need to check if field is pk field\n\n\n var values = relationField.map(function (field) {\n return feature.isNew() && fatherLayer.isPkField(field) ? feature.getId() : feature.get(field);\n });\n\n relationinediting = {\n relation: relation.getState(),\n // get relation attributes by feature\n relations: service.getLayerById(relationLayerId).readEditingFeatures().filter(function (feature) {\n return ownField.every(function (field, i) {\n return feature.get(field) == values[i];\n });\n }) // get relations by feature\n .map(function (relation) {\n return {\n fields: layer.getFieldsWithValues(relation, { relation: true }),\n id: relation.getId(),\n select: false /** @since v3.9.0 Used to set relation select or not **/\n };\n })\n };\n relationinediting.validate = { valid: true };\n relationsinediting.push(relationinediting);\n }\n });\n return relationsinediting;\n}\n\n},{\"../utils/getRelationFieldsFromRelation\":49}],53:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Handle layer relation 1:1 features related to feature\n *\n * @param opts.layerId Root layerId\n * @param opts.features Array of update/new features belong to Root layer\n * @param opts.fields Array of form fields father\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar handleRelation1_1LayerFields = exports.handleRelation1_1LayerFields = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId,\n _ref2$features = _ref2.features,\n features = _ref2$features === undefined ? [] : _ref2$features,\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === undefined ? [] : _ref2$fields,\n task = _ref2.task;\n\n // skip when no features\n if (features.length === 0) {\n return;\n }\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n // Get layer relation 1:1\n var promises = CatalogLayersStoresRegistry.getLayerById(layerId).getRelations().getArray().filter(function (relation) {\n return 'ONE' === relation.getType();\n }).map(function (relation) {\n return new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve) {\n // skip when layer is not a father layer (1:1 relation)\n if (layerId !== relation.getFather()) {\n resolve();\n return;\n }\n var fatherField = relation.getFatherField()[0];\n var value = features[0].get(fatherField);\n\n //no set father field value. No set\n if (null === value) {\n resolve();\n return;\n }\n\n // check if child relation layer is editable (in editing)\n var childLayerId = relation.getChild();\n var childField = relation.getChildField()[0];\n var source = service.getLayerById(childLayerId).getEditingSource();\n var childFeature = void 0; // original child feature\n var newChild = void 0; //eventually child feature cloned with changes\n\n //check if child feature is already added to\n childFeature = source.readFeatures().find(function (f) {\n return f.get(childField) === value;\n });\n\n var fieldsUpdated = undefined !== service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }).find(function (_ref4) {\n var name = _ref4.name;\n return fields.find(function (f) {\n return name == f.name;\n }).update;\n });\n\n var isNewChildFeature = undefined === childFeature;\n\n //check if fields related to child are changed\n if (fieldsUpdated) {\n //Check if we need to create a new child feature\n if (isNewChildFeature) {\n //create feature for child layer\n childFeature = new g3wsdk.core.layer.features.Feature();\n childFeature.setTemporaryId();\n // set name attribute to `null`\n CatalogLayersStoresRegistry.getLayerById(childLayerId).getEditingFields().forEach(function (field) {\n return childFeature.set(field.name, null);\n });\n //set father field value\n childFeature.set(childField, fields.find(function (f) {\n return fatherField === f.name;\n }).value);\n //add feature to a child source\n source.addFeature(childFeature);\n //new feature and child feature are the same\n newChild = childFeature;\n } else {\n //is update\n if (childFeature) {\n //clone child Feature so all changes apply by father is set to clone new feature\n newChild = childFeature.clone();\n }\n }\n\n //check if there is a childFeature to save\n if (childFeature) {\n // Loop editable only field of father layerId when\n // a child relation (1:1) is bind to the current feature\n var editiableRelatedFieldChild = service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId() && f.editable;\n });\n\n editiableRelatedFieldChild.forEach(function (field) {\n return newChild.set(field.name.replace(relation.getPrefix(), ''), features[0].get(field.name));\n });\n\n // add relation new relation\n if (isNewChildFeature) {\n\n // check if father field is a Pk (Primary key) if feature is new\n if (service.getLayerById(layerId).isPkField(fatherField)) {\n childFeature.set(childField, features[0].getId()); // set temporary\n }\n\n //if new need to add to session\n task.getContext().session.pushAdd(childLayerId, newChild, false);\n } else {\n //need to update source child feature\n source.updateFeature(newChild);\n //need to update\n task.getContext().session.pushUpdate(childLayerId, newChild, childFeature);\n }\n }\n }\n\n resolve();\n });\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n });\n\n yield Promise.allSettled(promises);\n });\n\n return function handleRelation1_1LayerFields() {\n return _ref.apply(this, arguments);\n };\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{}],54:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleSplitFeature = undefined;\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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/splitfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/splitfeaturestep.js@v3.7.1\n *\n * @param feature\n * @param inputs\n * @param context\n * @param splittedGeometries\n * \n * @returns {Promise<*[]>}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar handleSplitFeature = exports.handleSplitFeature = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n feature = _ref2.feature,\n inputs = _ref2.inputs,\n context = _ref2.context,\n _ref2$splittedGeometr = _ref2.splittedGeometries,\n splittedGeometries = _ref2$splittedGeometr === undefined ? [] : _ref2$splittedGeometr;\n\n var newFeatures = [];\n var layer = inputs.layer;\n\n var session = context.session;\n var source = layer.getEditingLayer().getSource();\n var layerId = layer.getId();\n var oriFeature = feature.clone();\n inputs.features = splittedGeometries.length ? [] : inputs.features;\n var splittedGeometriesLength = splittedGeometries.length;\n\n for (var index = 0; index < splittedGeometriesLength; index++) {\n var splittedGeometry = splittedGeometries[index];\n if (0 === index) {\n /**\n * check geometry evaluated expression\n */\n feature.setGeometry(splittedGeometry);\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n session.pushUpdate(layerId, feature, oriFeature);\n } else {\n yield* function* () {\n var newFeature = (0, _cloneFeature.cloneFeature)(oriFeature, layer);\n newFeature.setGeometry(splittedGeometry);\n\n // set media fields to null\n layer.getEditingMediaFields({}).forEach(function (f) {\n return newFeature.set(f, null);\n });\n\n feature = new Feature({ feature: newFeature });\n\n feature.setTemporaryId();\n\n // evaluate geometry expression\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n /**\n * @todo improve client core to handle this situation on sesssion.pushAdd not copy pk field not editable only\n */\n var noteditablefieldsvalues = (0, _getNotEditableFieldsNoPkValues.getNotEditableFieldsNoPkValues)({ layer: layer, feature: feature });\n\n if (Object.entries(noteditablefieldsvalues).length) {\n var _newFeature = session.pushAdd(layerId, feature);\n Object.entries(noteditablefieldsvalues).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n field = _ref4[0],\n value = _ref4[1];\n\n return _newFeature.set(field, value);\n });\n newFeatures.push(_newFeature);\n //need to add features with no editable fields on layers source\n source.addFeature(_newFeature);\n } else {\n newFeatures.push(session.pushAdd(layerId, feature));\n //add feature to source\n source.addFeature(feature);\n }\n }();\n }\n inputs.features.push(feature);\n }\n\n return newFeatures;\n });\n\n return function handleSplitFeature() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getNotEditableFieldsNoPkValues = require('../utils/getNotEditableFieldsNoPkValues');\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 Feature = g3wsdk.core.layer.features.Feature;\n\n},{\"../utils/cloneFeature\":35,\"../utils/evaluateExpressionFields\":40,\"../utils/getNotEditableFieldsNoPkValues\":46}],55:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isPointOnVertex = isPointOnVertex;\n/**\n * @param feature\n * @param coordinates\n *\n * @returns { boolean }\n */\nfunction isPointOnVertex(_ref) {\n var feature = _ref.feature,\n coordinates = _ref.coordinates;\n\n var geometry = feature.getGeometry();\n var type = geometry.getType();\n var coords = function coords(c) {\n return g3wsdk.core.geoutils.areCoordinatesEqual(coordinates, c);\n }; // whether element have same coordinates\n\n switch (type) {\n case 'Polygon':\n case 'MultiLineString':\n return _.flatMap(geometry.getCoordinates()).some(coords);\n\n case 'LineString':\n case 'MultiPoint':\n return geometry.getCoordinates().some(coords);\n\n case 'MultiPolygon':\n return geometry.getPolygons().some(function (poly) {\n return _.flatMap(poly.getCoordinates()).some(coords);\n });\n\n case 'Point':\n return g3wsdk.core.geoutils.areCoordinatesEqual(coordinates, geometry.getCoordinates());\n\n default:\n return false;\n }\n}\n\n},{}],56:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isSameBaseGeometryType = isSameBaseGeometryType;\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/isSameBaseGeometryType.js@v3.10.2\n * \n * @param { string } geometryType1\n * @param { string } geometryType2\n * \n * @returns { boolean } whether two geometry typeshave same geometry type or have in common tha same base geometry type:\n * \n * @example Compare \n * ```\n * Point <--> Point => true\n * MultiPoint <--> Point => true\n * Point <--> Polygon => false\n * ```\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\nfunction isSameBaseGeometryType(a, b) {\n return a.replace('Multi', '') === b.replace('Multi', '');\n}\n\n},{}],57:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.listenRelation1_1FieldChange = undefined;\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 * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Listen changes on 1:1 relation fields (get child values from child layer)\n *\n * @param opts.layerId Current editing layer id\n * @param opts.fields Array of form fields of current editing layer\n *\n * @returns Array of watch function event to remove listen\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar listenRelation1_1FieldChange = exports.listenRelation1_1FieldChange = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId,\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === undefined ? [] : _ref2$fields;\n\n var unwatches = []; // unwatches field value (event change)\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n\n var ONE = CatalogLayersStoresRegistry.getLayerById(layerId).getRelations().getArray().filter(function (r) {\n return 'ONE' === r.getType();\n });\n\n // get all relations 1:1 of current layer\n\n var _loop = function* _loop(relation) {\n\n var childLayerId = relation.getChild(); // get relation child layer id\n var fatherField = relation.getFatherField();\n var relationLockFeatures = {}; //store value\n\n // NB:\n // need to check if editable when opening form task\n // Not set this condition because maybe i ca be used this method\n // on a move task or other when current fatherFormRelationField, related to 1:1 relation\n // it can be changed by default expression or in another way not only with form\n var fatherFormRelationField = fields.find(function (f) {\n return fatherField.includes(f.name);\n }); // get father layer field (for each relation)\n // skip when not relation field and not layer child is in editing\n if (!(fatherFormRelationField && service.getLayerById(childLayerId))) {\n return {\n v: void 0\n };\n }\n\n //store original editable property of fields relation to child layer relation\n var editableRelatedFatherChild = service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }).reduce(function (accumulator, field) {\n var formField = fields.find(function (f) {\n return f.name === field.name;\n });\n accumulator[formField.name] = formField.editable;\n return accumulator;\n }, {});\n\n fatherFormRelationField.input.options.loading.state = 'loading'; // show input bar loader\n\n //get feature from a child layer source\n relationLockFeatures[fatherFormRelationField.value] = yield (0, _getRelation1_1ChildFeature.getRelation1_1ChildFeature)({\n relation: relation,\n fatherFormRelationField: fatherFormRelationField\n });\n\n fatherFormRelationField.input.options.loading.state = null; // show input bar loader\n\n //if locked need to set editable to false\n //can update child\n if (relationLockFeatures[fatherFormRelationField.value].locked) {\n Object.keys(editableRelatedFatherChild).forEach(function (fn) {\n return fields.find(function (f) {\n return fn === f.name;\n }).editable = false;\n });\n }\n\n //if not feature is on source child layer, it means it locked or not exist on a server need to check\n\n // listen for relation field changes (vue watcher)\n unwatches.push(_eventbus.VM.$watch(function () {\n return fatherFormRelationField.value;\n }, function () {\n var _ref3 = _asyncToGenerator(function* (value) {\n\n // skip empty values\n if (!value) {\n fatherFormRelationField.input.options.loading.state = null;\n fatherFormRelationField.editable = true;\n return;\n }\n\n fatherFormRelationField.editable = false; // disable edit\n fatherFormRelationField.input.options.loading.state = 'loading'; // show input bar loader\n\n if (undefined === relationLockFeatures[fatherFormRelationField.value]) {\n //get feature from a child layer source\n try {\n\n relationLockFeatures[fatherFormRelationField.value] = yield (0, _getRelation1_1ChildFeature.getRelation1_1ChildFeature)({\n relation: relation,\n fatherFormRelationField: fatherFormRelationField\n });\n } catch (e) {\n console.warn(e);\n }\n }\n\n var _relationLockFeatures = relationLockFeatures[fatherFormRelationField.value],\n feature = _relationLockFeatures.feature,\n locked = _relationLockFeatures.locked;\n\n\n Object.keys(editableRelatedFatherChild).forEach(function (fn) {\n var field = fields.find(function (f) {\n return fn === f.name;\n });\n //set editable property\n field.editable = locked ? false : editableRelatedFatherChild[fn];\n //need to check if feature is new and not locked ot not present on a source\n field.value = feature ? feature.get(field.name.replace(relation.getPrefix(), '')) : null;\n });\n\n // reset edit state\n fatherFormRelationField.input.options.loading.state = null;\n fatherFormRelationField.editable = true;\n });\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }()));\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = ONE[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var relation = _step.value;\n\n var _ret = yield* _loop(relation);\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\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 unwatches;\n });\n\n return function listenRelation1_1FieldChange() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _eventbus = require('../eventbus');\n\nvar _getRelation1_1ChildFeature = require('./getRelation1_1ChildFeature');\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{\"../eventbus\":11,\"./getRelation1_1ChildFeature\":48}],58:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.promisify = promisify;\nexports.$promisify = $promisify;\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 * Migrate your consumer code away from jQuery promises.\n * Covert a jQuery promise into an ES6 Promise\n *\n * @param promise jquery promise\n */\nfunction promisify(promise) {\n if (promise instanceof Promise) {\n return promise;\n }\n if (!promise || !promise.then) {\n console.trace(promise);\n return Promise.reject('not a promise');\n }\n return new Promise(function (resolve, reject) {\n promise.then(resolve).fail(reject);\n });\n}\n\n/**\n * Migrate your consumer code away from jQuery promises.\n * Convert ES6 Promise into jQuery\n *\n * @param promise async function or ES6 promise\n */\nfunction $promisify(promise) {\n if (undefined === promise) {\n console.trace();\n return $.Deferred(function (d) {\n return d.reject('not a promise');\n }).promise();\n }\n if (promise.always) {\n return promise;\n }\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n d.resolve((yield promise instanceof Promise ? promise : promise()));\n } catch (e) {\n console.warn(e);d.reject(e);\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n}\n\n},{}],59:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setAndUnsetSelectedFeaturesStyle = setAndUnsetSelectedFeaturesStyle;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _promisify = require('../utils/promisify');\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\nvar Layer = g3wsdk.core.layer.Layer;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Method that set selected style to current editing features and\n * reset original style when workflow (tool) is done.\n * \n * @param promise jQuery promise\n * @param { Object } inputs\n * @param { ol.style.Style } style\n */\n\nfunction setAndUnsetSelectedFeaturesStyle() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n promise = _ref.promise,\n inputs = _ref.inputs,\n style = _ref.style;\n\n /** @FIXME temporary add in order to fix issue on pending promise (but which issue ?) */\n var layer = inputs.layer,\n _inputs$features = inputs.features,\n features = _inputs$features === undefined ? [] : _inputs$features;\n\n /**\n * @TODO if coming from relation ( Workflow.Stack.getLength() > 1 )\n * no need setTimeout because we already it has selected style\n * so original is the same selected. In case of current layer\n * need to wait.\n */\n\n var selectOriginalStyleHandle = function selectOriginalStyleHandle() {\n var originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features, style);\n (0, _promisify.promisify)(promise).finally(function () {\n features.flat().forEach(function (f) {\n return f.setStyle(originalStyle);\n });\n });\n };\n\n var is_vector = Layer.LayerTypes.VECTOR === layer.getType();\n var is_single = _workflow.Workflow.Stack.getLength();\n\n if (is_vector && is_single) {\n setTimeout(function () {\n return selectOriginalStyleHandle();\n });\n } else if (is_vector) {\n selectOriginalStyleHandle();\n }\n}\n\n},{\"../g3wsdk/workflow/workflow\":15,\"../utils/promisify\":58,\"../utils/setFeaturesSelectedStyle\":60}],60:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setFeaturesSelectedStyle = setFeaturesSelectedStyle;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Get selected style from \"extracted\" original feature style \n * \n * @param feature\n * \n * @returns {{ originalStyle: *, selectedStyle: * }} selected style based on a geometry type\n */\nfunction getSelectedStyle(feature) {\n return {\n originalStyle: feature.getStyle(),\n selectedStyle: feature.getGeometry() ? g3wsdk.core.geoutils.createSelectedStyle({ geometryType: feature.getGeometry().getType() }) : feature.getStyle()\n };\n}\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Set selected style to feature and return original feature style\n * \n * @param { Array } features\n * @param { ol.style.Style } style @since 3.8.0 custom select style\n * \n * @returns { ol.style.Style }\n */\nfunction setFeaturesSelectedStyle() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var style = arguments[1];\n\n if (features.length > 0) {\n // copy feature from other layers when selecting multiple features\n var arr = features.flat(); // flat nested features\n\n var _getSelectedStyle = getSelectedStyle(arr[0]),\n originalStyle = _getSelectedStyle.originalStyle,\n selectedStyle = _getSelectedStyle.selectedStyle;\n\n arr.forEach(function (f) {\n return f.setStyle(style || selectedStyle);\n });\n\n return originalStyle;\n }\n}\n\n},{}],61:[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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * Method to get unique values of unique input values from server\n * It's called\n * - When toolbox start (parent layer and relation)\n * - After commit to server (to get fresh new data)\n * \n * @param { string } layerId\n *\n * @returns { Promise<*> }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar setLayerUniqueFieldValues = exports.setLayerUniqueFieldValues = function () {\n var _ref = _asyncToGenerator(function* (layerId) {\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n yield new Promise(function (resolve, reject) {\n var layer = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId);\n //get all values for unique field\n layer.getWidgetData({\n type: 'unique',\n fields: Object.values(layer.getEditingFields()\n //filter field that is unique and not yet set unique values\n .filter(function (f) {\n return !(f.pk && false === f.editable) && ('unique' === f.input.type || f.validate.unique);\n })).map(function (f) {\n return f.name;\n }).join()\n }).then(function (response) {\n Object.entries(response.data || {}).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n name = _ref3[0],\n values = _ref3[1];\n\n service.state.uniqueFieldsValues[layerId][name] = new Set(values);\n });\n\n resolve(service.state.uniqueFieldsValues[layerId][name]);\n }).fail(function (e) {\n console.warn(e);reject(e);\n });\n });\n return service.state.uniqueFieldsValues[layerId];\n });\n\n return function setLayerUniqueFieldValues(_x) {\n return _ref.apply(this, arguments);\n };\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{}],62:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.splitFeatures = splitFeatures;\nvar splitFeature = g3wsdk.core.geoutils.splitFeature;\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/splitFeatures.js@v3.10.2\n * \n * @param { Object } opts\n * @param { Array } opts.features\n * @param opts.splitfeature\n * \n * @returns { Array } splittered geometries\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\n\nfunction splitFeatures(features, splitfeature) {\n return (features || []).reduce(function (a, f) {\n var geometries = splitFeature({ splitfeature: splitfeature, feature: f });\n if (geometries.length > 1) {\n a.push({ uid: f.getUid(), geometries: geometries });\n }\n return a;\n }, []);\n}\n\n},{}],63:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unlinkRelation = unlinkRelation;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _updateWorkflows = require('./updateWorkflows');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _promisify = require('../utils/promisify');\n\nvar GUI = g3wsdk.gui.GUI;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/relationservice.js@v3.7.1\n * \n * Unlink relation\n * @param layerId\n * @param relation\n * @param relations\n * @param index\n * @param dialog\n * \n * @returns JQuery Promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction unlinkRelation(_ref) {\n var layerId = _ref.layerId,\n relation = _ref.relation,\n relations = _ref.relations,\n index = _ref.index,\n _ref$dialog = _ref.dialog,\n dialog = _ref$dialog === undefined ? true : _ref$dialog;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n var unlink = function unlink() {\n var id = layerId === relation.child ? relation.father : relation.child; // relation layer id\n var feature = (0, _getEditingLayerById.getEditingLayerById)(id).getEditingSource().getFeatureById(relations[index].id);\n var originalRelation = feature.clone();\n // loop on ownField (Array field child relation)\n (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ relation: relation, layerId: id }).ownField.forEach(function (f) {\n return feature.set(f, null);\n });\n _workflow.Workflow.Stack.getCurrent().getSession().pushUpdate(id, feature, originalRelation);\n relations.splice(index, 1);\n (0, _updateWorkflows.updateWorkflows)();\n resolve(true);\n };\n if (dialog) {\n GUI.dialog.confirm(tPlugin(\"editing.messages.unlink_relation\"), function (result) {\n return result ? unlink() : d.reject(false);\n });\n } else {\n unlink();\n }\n }));\n}\n\n},{\"../g3wsdk/workflow/workflow\":15,\"../utils/getEditingLayerById\":42,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/promisify\":58,\"./updateWorkflows\":64}],64:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.updateWorkflows = updateWorkflows;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/relationservice.js@v3.7.1\n * \n * force parent workflow form service\n * update only when workflow has service (form service)\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction updateWorkflows() {\n _workflow.Workflow.Stack._workflows.filter(function (w) {\n return w.getContextService();\n }).forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n}\n\n},{\"../g3wsdk/workflow/workflow\":15}],65:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SelectElementsStep = exports.PickFeatureStep = exports.OpenTableStep = exports.OpenFormStep = exports.MoveFeatureStep = exports.ModifyGeometryVertexStep = exports.AddFeatureStep = undefined;\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\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 _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getParentFormData = require('../utils/getParentFormData');\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _getFormFields = require('../utils/getFormFields');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _handleRelation1_1LayerFields = require('../utils/handleRelation1_1LayerFields');\n\nvar _listenRelation1_1FieldChange = require('../utils/listenRelation1_1FieldChange');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _setLayerUniqueFieldValues = require('../utils/setLayerUniqueFieldValues');\n\nvar _getRelationsInEditingByFeature = require('../utils/getRelationsInEditingByFeature');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _addRemoveToMultipleSelectFeatures = require('../utils/addRemoveToMultipleSelectFeatures');\n\nvar _promisify = require('../utils/promisify');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\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 _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\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\nvar _g3wsdk$core = g3wsdk.core,\n G3WObject = _g3wsdk$core.G3WObject,\n ApplicationState = _g3wsdk$core.ApplicationState;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar convertSingleMultiGeometry = g3wsdk.core.geoutils.convertSingleMultiGeometry;\nvar removeZValueToOLFeatureGeometry = g3wsdk.core.geoutils.Geometry.removeZValueToOLFeatureGeometry;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar GUI = g3wsdk.gui.GUI;\nvar Component = g3wsdk.gui.vue.Component;\nvar FormService = g3wsdk.gui.vue.services.FormService;\nvar _g3wsdk$ol$interactio = g3wsdk.ol.interactions.measure,\n AreaInteraction = _g3wsdk$ol$interactio.AreaInteraction,\n LengthInteraction = _g3wsdk$ol$interactio.LengthInteraction;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n createMeasureTooltip = _g3wsdk$ol$utils.createMeasureTooltip,\n removeMeasureTooltip = _g3wsdk$ol$utils.removeMeasureTooltip;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n */\n\nvar AddFeatureStep = exports.AddFeatureStep = function (_Step) {\n _inherits(AddFeatureStep, _Step);\n\n function AddFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, AddFeatureStep);\n\n options.help = \"editing.steps.help.draw_new_feature\";\n\n var _this = _possibleConstructorReturn(this, (AddFeatureStep.__proto__ || Object.getPrototypeOf(AddFeatureStep)).call(this, options));\n\n _this._add = undefined === options.add ? true : options.add;\n\n _this.drawInteraction;\n\n _this.measeureInteraction;\n\n _this.drawingFeature;\n\n _this._snap = false === options.snap ? false : true;\n\n /**\n * Handle tasks that stops after `run(inputs, context)` promise (or if ESC key is pressed)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._stopPromise;\n\n /**\n *\n * @param e event\n * @returns {boolean|void}\n * @private\n * callback of pressing esc to remove last point drawed\n */\n _this._delKeyRemoveLastPoint = function (e) {\n return 46 === e.keyCode && _this.removeLastPoint();\n };\n\n return _this;\n }\n\n _createClass(AddFeatureStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this2 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n //create promise to listen to pass to setAndUnsetSelectedFeaturesStyle\n var promise = new Promise(function (r) {\n return _this2.resolve = r;\n });\n\n var layerId = inputs.layer.getId();\n\n // Skip when a layer type is vector\n if (Layer.LayerTypes.VECTOR !== inputs.layer.getType()) {\n return;\n }\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this2.selectStyle });\n\n var originalGeometryType = inputs.layer.getEditingGeometryType();\n\n _this2.geometryType = Geometry.getOLGeometry(originalGeometryType);\n\n var source = inputs.layer.getEditingLayer().getSource();\n var attributes = inputs.layer.getEditingFields();\n\n _this2.drawInteraction = _this2.addInteraction(new ol.interaction.Draw({\n type: _this2.geometryType,\n source: new ol.source.Vector(),\n condition: _this2._options.condition || function () {\n return true;\n },\n freehandCondition: ol.events.condition.never,\n finishCondition: _this2._options.finishCondition || function () {\n return true;\n }\n }), {\n 'drawstart': function drawstart(_ref) {\n var feature = _ref.feature;\n\n _this2.drawingFeature = feature;\n document.addEventListener('keydown', _this2._delKeyRemoveLastPoint);\n },\n 'drawend': function drawend(e) {\n var feature = void 0;\n if (_this2._add) {\n attributes.forEach(function (attr) {\n return e.feature.set(attr.name, null);\n });\n feature = new Feature({ feature: e.feature });\n feature.setTemporaryId();\n source.addFeature(feature);\n context.session.pushAdd(layerId, feature, false);\n } else {\n feature = e.feature;\n }\n // set Z values based on layer Geometry\n if (Geometry.is3DGeometry(originalGeometryType)) {\n feature = Geometry.addZValueToOLFeatureGeometry({ feature: feature, geometryType: originalGeometryType });\n }\n\n inputs.features.push(feature);\n _this2.getContext().get_default_value = true;\n _this2.fireEvent('addfeature', feature); // emit event to get from subscribers\n resolve(inputs);\n }\n });\n\n _this2.drawInteraction.setActive(true);\n }));\n }\n\n /**\n * Method to add Measure\n */\n\n }, {\n key: 'addMeasureInteraction',\n value: function addMeasureInteraction() {\n var is_line = Geometry.isLineGeometryType(this.geometryType);\n var is_poly = Geometry.isPolygonGeometryType(this.geometryType);\n\n //Skip in case geometry is not Line or Polygon\n if (!is_line && !is_poly) {\n return;\n }\n\n this.measureInteraction = this.addInteraction(new (is_line ? LengthInteraction : AreaInteraction)({\n projection: GUI.getService('map').getProjection(),\n drawColor: 'transparent',\n feature: this.drawingFeature\n }));\n\n this.measureInteraction.setActive(true);\n }\n\n /**\n * Remove Measure Interaction\n */\n\n }, {\n key: 'removeMeasureInteraction',\n value: function removeMeasureInteraction() {\n if (this.measureInteraction) {\n this.measureInteraction.clear();\n this.removeInteraction(this.measureInteraction);\n this.measureInteraction = null;\n }\n }\n\n /**\n * Removed last point/vertex draw\n */\n\n }, {\n key: 'removeLastPoint',\n value: function removeLastPoint() {\n try {\n if (this.drawInteraction) {\n this.drawInteraction.removeLastPoint();\n }\n } catch (e) {\n console.warn(e);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.removeInteraction(this.drawInteraction);\n this.removeMeasureInteraction();\n this.resolve(true);\n\n this.drawInteraction = null;\n this.drawingFeature = null;\n this.resolve = null;\n\n document.removeEventListener('keydown', this._delKeyRemoveLastPoint);\n\n return true;\n }\n }]);\n\n return AddFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/modifygeometryvertextask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/modifygeometryvertexstep.js@v3.7.1\n */\n\n\nvar ModifyGeometryVertexStep = exports.ModifyGeometryVertexStep = function (_Step2) {\n _inherits(ModifyGeometryVertexStep, _Step2);\n\n function ModifyGeometryVertexStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ModifyGeometryVertexStep);\n\n options.snap = undefined !== options.snap ? options.snap : true;\n options.help = \"editing.steps.help.edit_feature_vertex\";\n\n var _this3 = _possibleConstructorReturn(this, (ModifyGeometryVertexStep.__proto__ || Object.getPrototypeOf(ModifyGeometryVertexStep)).call(this, options));\n\n _this3._originalStyle = null;\n\n _this3._feature = null;\n\n _this3.tooltip;\n return _this3;\n }\n\n _createClass(ModifyGeometryVertexStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this4 = this;\n\n var newFeature = void 0,\n originalFeature = void 0;\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var layerId = inputs.layer.getId();\n var feature = _this4._feature = inputs.features[0];\n _this4._originalStyle = inputs.layer.getEditingLayer().getStyle();\n feature.setStyle(function () {\n return [new ol.style.Style({\n image: new ol.style.Circle({ radius: 5, fill: null, stroke: new ol.style.Stroke({ color: 'orange', width: 2 }) }),\n geometry: function geometry(feature) {\n return new ol.geom.MultiPoint( // in the case of multipolygon geometry\n Geometry.isPolygonGeometryType(inputs.layer.getGeometryType()) && Geometry.isMultiGeometry(inputs.layer.getGeometryType()) ? feature.getGeometry().getCoordinates()[0][0] : feature.getGeometry().getCoordinates()[0]);\n }\n }), new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'yellow', width: 4 }) })];\n });\n _this4._modifyInteraction = _this4.addInteraction(new ol.interaction.Modify({\n features: new ol.Collection(inputs.features),\n deleteCondition: _this4._options.deleteCondition\n }), {\n 'modifystart': function modifystart(e) {\n originalFeature = e.features.getArray()[0].clone();\n },\n 'modifyend': function modifyend(e) {\n var feature = e.features.getArray()[0];\n if (feature.getGeometry().getExtent() !== originalFeature.getGeometry().getExtent()) {\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n newFeature = feature.clone();\n context.session.pushUpdate(layerId, newFeature, originalFeature);\n inputs.features.push(newFeature);\n resolve(inputs);\n });\n }\n }\n });\n }));\n }\n }, {\n key: 'addMeasureInteraction',\n value: function addMeasureInteraction() {\n var _this5 = this;\n\n this._modifyInteraction.on('modifystart', function (e) {\n _this5.tooltip = createMeasureTooltip({ map: _this5.getMap(), feature: e.features.getArray()[0] });\n });\n }\n }, {\n key: 'removeMeasureInteraction',\n value: function removeMeasureInteraction() {\n if (this.tooltip) {\n removeMeasureTooltip(_extends({ map: this.getMap() }, this.tooltip));\n }\n this.tooltip = null;\n }\n }, {\n key: 'stop',\n value: function stop() {\n this._feature.setStyle(this._originalStyle);\n return true;\n }\n }]);\n\n return ModifyGeometryVertexStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/movefeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/movefeaturestep.js@v3.7.1\n */\n\n\nvar MoveFeatureStep = exports.MoveFeatureStep = function (_Step3) {\n _inherits(MoveFeatureStep, _Step3);\n\n function MoveFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, MoveFeatureStep);\n\n options.help = \"editing.steps.help.move\";\n\n var _this6 = _possibleConstructorReturn(this, (MoveFeatureStep.__proto__ || Object.getPrototypeOf(MoveFeatureStep)).call(this, options));\n\n _this6.drawInteraction = null;\n _this6.promise; // need to be set here in case of picked features\n return _this6;\n }\n\n _createClass(MoveFeatureStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this7 = this;\n\n /** Need two different promises: One for stop() method and clean-selected feature,\n * and another one for a run task. If we use the same promise, when stop a task without move feature,\n * this.promise.resolve(), it fires also thenable method listens to resolve promise of a run task,\n * that call stop task method.*/\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n var promise = new Promise(function (r) {\n return _this7.resolve = r;\n });\n var layerId = inputs.layer.getId();\n var originalFeature = null;\n _this7.changeKey = null;\n var isGeometryChange = false; // changed if geometry is changed\n\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this7.selectStyle });\n\n _this7.addInteraction(new ol.interaction.Translate({\n features: new ol.Collection(inputs.features),\n hitTolerance: isMobile && isMobile.any ? 10 : 0 }), {\n 'translatestart': function translatestart(e) {\n var feature = e.features.getArray()[0];\n _this7.changeKey = feature.once('change', function () {\n return isGeometryChange = true;\n });\n originalFeature = feature.clone();\n },\n 'translateend': function translateend(e) {\n ol.Observable.unByKey(_this7.changeKey);\n var feature = e.features.getArray()[0];\n if (isGeometryChange) {\n // evaluated geometry expression\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n context.session.pushUpdate(layerId, feature.clone(), originalFeature);\n resolve(inputs);\n });\n } else {\n resolve(inputs);\n }\n }\n });\n }));\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.resolve(true);\n this.resolve = null;\n this.changeKey = null;\n }\n }]);\n\n return MoveFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/openformtask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/openformstep.js@v3.7.1\n */\n\n\nvar OpenFormStep = exports.OpenFormStep = function (_Step4) {\n _inherits(OpenFormStep, _Step4);\n\n function OpenFormStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OpenFormStep);\n\n options.help = \"editing.steps.help.insert_attributes_feature\";\n\n /**\n * Show saveAll button\n *\n * @since v3.7\n */\n var _this8 = _possibleConstructorReturn(this, (OpenFormStep.__proto__ || Object.getPrototypeOf(OpenFormStep)).call(this, options));\n\n _this8._saveAll = false === options.saveAll ? options.saveAll : _asyncToGenerator(function* () {});\n\n /**\n * Whether it can handle multi edit features\n */\n _this8._multi = options.multi || false;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8.layerId;\n\n /**\n * whether form is coming from parent table component\n */\n _this8._isContentChild = false;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8._features;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8._originalFeatures;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8.promise;\n\n /**\n * @since g3w-client-plugin-editing@v3.7.0\n */\n _this8._unwatchs = [];\n\n return _this8;\n }\n\n /**\n * @since v3.7\n * @param bool\n */\n\n\n _createClass(OpenFormStep, [{\n key: 'updateMulti',\n value: function updateMulti() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this._multi = bool;\n }\n\n /**\n * @param inputs\n * @param context\n *\n * @returns {*}\n */\n\n }, {\n key: 'run',\n value: function run(inputs, context) {\n var _this9 = this;\n\n var promise = new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n _this9._isContentChild = _workflow.Workflow.Stack.getLength() > 1;\n _this9.layerId = inputs.layer.getId();\n\n GUI.setLoadingContent(false);\n\n GUI.getService('map').disableClickMapControls(true);\n\n if (!_this9._multi && Array.isArray(inputs.features[inputs.features.length - 1])) {\n resolve();\n return;\n }\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').setCurrentLayout();\n\n var layerName = inputs.layer.getName();\n _this9._features = _this9._multi ? inputs.features : [inputs.features[inputs.features.length - 1]];\n _this9._originalFeatures = _this9._features.map(function (f) {\n return f.clone();\n });\n\n // create a child relation feature set a father relation field value\n if (_this9._isContentChild) {\n context.fatherValue = context.fatherValue || []; // are array\n (context.fatherField || []).forEach(function (field, i) {\n _this9._features[0].set(field, context.fatherValue[i]);\n _this9._originalFeatures[0].set(field, context.fatherValue[i]);\n });\n }\n\n var fields = (0, _getFormFields.getFormFields)({\n inputs: inputs,\n context: context,\n feature: _this9._features[0],\n isChild: _this9._isContentChild,\n multi: _this9._multi\n });\n\n // set fields. Useful getParentFormData\n _workflow.Workflow.Stack.getCurrent().setInput({ key: 'fields', value: fields });\n\n // whether disable relations editing (ref: \"editmultiattributes\")\n var feature = !_this9._multi && inputs.features && inputs.features[inputs.features.length - 1];\n var layerId = !_this9._multi && inputs.layer.getId();\n\n // @since g3w-client-plugin-editing@v3.7.2\n // skip relations that don't have a form structure\n if (feature && !feature.isNew() && inputs.layer.getLayerEditingFormStructure()) {\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(inputs.layer.getId(), {\n // @since g3w-client-plugin-editin@v3.7.0\n relations: inputs.layer.getRelations().getArray().filter(function (r) {\n return inputs.layer.getId() === r.getFather() && // get only child relation features of current editing layer\n (0, _getEditingLayerById.getEditingLayerById)(r.getChild()) && // child layer is in editing\n 'ONE' !== r.getType();\n } // exclude ONE relation (Join 1:1)\n ),\n feature: feature,\n filterType: 'fid'\n });\n }\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/form/editingform.js@v3.7.8 */\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/form/editingformservice.js@v3.7.8 */\n var formService = GUI.showForm({\n feature: _this9._originalFeatures[0],\n title: \"plugins.editing.editing_attributes\",\n name: layerName,\n crumb: { title: layerName },\n id: 'form_' + layerName,\n dataid: layerName,\n layer: inputs.layer,\n isnew: _this9._originalFeatures.length > 1 ? false : _this9._originalFeatures[0].isNew(), // specify if is a new feature\n parentData: (0, _getParentFormData.getParentFormData)(),\n fields: fields,\n context_inputs: _this9._multi ? false : { context: context, inputs: inputs },\n formStructure: inputs.layer.hasFormStructure() && inputs.layer.getLayerEditingFormStructure() || undefined,\n modal: true,\n push: _this9._options.push || _this9._isContentChild, /** @since v3.7 force push content on top without clear previous content */\n showgoback: undefined === _this9._options.showgoback ? !_this9._isContentChild : _this9._options.showgoback, /** @since v3.7 force show back button */\n /** @TODO make it straightforward: `headerComponent` vs `buttons` ? */\n headerComponent: _this9._saveAll && {\n template: /* html */'\\n
\\n \\n \\n \\n \\n \\n
',\n name: 'Saveall',\n /** @TODO figure out who populate these props (ie. core client code?) */\n props: { update: { type: Boolean }, valid: { type: Boolean } },\n data: function data() {\n return {\n enabled: _workflow.Workflow.Stack._workflows.slice(0, _workflow.Workflow.Stack.getLength() - 1).every(function (w) {\n var valid = (w.getContext().service instanceof FormService ? w.getContext().service.getState() : {}).valid;\n return valid || undefined === valid;\n })\n };\n },\n\n computed: {\n /** @returns {boolean} whether disable save all button (eg. when parent or current form is not valid/ updated) */\n disabled: function disabled() {\n return !this.enabled || !(this.valid && this.update);\n }\n },\n methods: {\n saveAll: function () {\n var _ref4 = _asyncToGenerator(function* () {\n //Set loading content\n GUI.setLoadingContent(true);\n //Disable form\n GUI.disableContent(true);\n yield Promise.allSettled([].concat(_toConsumableArray(_workflow.Workflow.Stack._workflows)).reverse().filter(function (w) {\n return \"function\" === typeof w.getLastStep()._saveAll;\n }) // need to filter only workflow that\n .map(function (w) {\n return new Promise(function () {\n var _ref5 = _asyncToGenerator(function* (resolve) {\n var task = w.getLastStep();\n var fields = w.getContext().service.state.fields.filter(function (f) {\n return task._multi ? null !== f.value : true;\n });\n // skip when no fields\n if (0 === fields.length) {\n return;\n }\n yield _workflow.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies();\n task._features.forEach(function (f) {\n return task.getInputs().layer.setFieldsWithValues(f, fields);\n });\n var newFeatures = task._features.map(function (f) {\n return f.clone();\n });\n //Is a relation form\n if (task._isContentChild) {\n task.getInputs().relationFeatures = { newFeatures: newFeatures, originalFeatures: task._originalFeatures };\n }\n yield task.fireEvent('saveform', { newFeatures: newFeatures, originalFeatures: task._originalFeatures });\n newFeatures.forEach(function (f, i) {\n return task.getContext().session.pushUpdate(task.layerId, f, task._originalFeatures[i]);\n });\n yield (0, _handleRelation1_1LayerFields.handleRelation1_1LayerFields)({ layerId: task.layerId, features: newFeatures, fields: fields, task: task });\n task.fireEvent('savedfeature', newFeatures); // called after saved\n task.fireEvent('savedfeature_' + task.layerId, newFeatures); // called after saved using layerId\n task.getContext().session.save();\n return resolve();\n });\n\n return function (_x8) {\n return _ref5.apply(this, arguments);\n };\n }());\n }));\n try {\n yield (0, _promisify.promisify)(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').service.commit({ modal: false }));\n [].concat(_toConsumableArray(_workflow.Workflow.Stack._workflows)).reverse().filter(function (w) {\n return \"function\" === typeof w.getLastStep()._saveAll;\n }).forEach(function (w) {\n var service = w.getContext().service; //form service\n //need to set update form false because already saved on server\n service.setUpdate(false, { force: false });\n var feature = service.feature;\n // Check if the feature is new.\n // In this case, after commit, need to set new to false, and force update to false.\n if (feature.isNew()) {\n feature.state.new = false;\n service.force.update = false;\n }\n Object.entries(w.getInputs().layer.getEditingSource().readFeatures().find(function (f) {\n return f.getUid() === feature.getUid();\n }) //Find current form editing feature by unique id of feature uid\n .getProperties() //get properties\n ).forEach(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n k = _ref7[0],\n v = _ref7[1];\n\n var field = service.getFields().find(function (f) {\n return k === f.name;\n });\n //if field exists (geometry field is discarded)\n if (field) {\n field.value = field._value = v;\n }\n });\n });\n } catch (e) {\n console.warn(e);\n }\n //set loading content false\n GUI.setLoadingContent(false);\n //enable form\n GUI.disableContent(false);\n });\n\n function saveAll() {\n return _ref4.apply(this, arguments);\n }\n\n return saveAll;\n }()\n }\n },\n buttons: [{\n id: 'save',\n title: _this9._isContentChild ? _workflow.Workflow.Stack.getParent().getBackButtonLabel() || \"plugins.editing.form.buttons.save_and_back\" // get custom back label from parent\n : \"plugins.editing.form.buttons.save\",\n type: \"save\",\n class: \"btn-success\",\n // save features\n cbk: function () {\n var _ref8 = _asyncToGenerator(function* (fields) {\n fields = _this9._multi ? fields.filter(function (f) {\n return null !== f.value;\n }) : fields;\n\n // skip when no fields\n if (0 === fields.length) {\n resolve(inputs);\n return;\n }\n\n var newFeatures = [];\n\n // @since 3.5.15\n GUI.setLoadingContent(true);\n GUI.disableContent(true);\n\n yield _workflow.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies();\n\n GUI.setLoadingContent(false);\n GUI.disableContent(false);\n\n _this9._features.forEach(function (f) {\n inputs.layer.setFieldsWithValues(f, fields);\n newFeatures.push(f.clone());\n });\n\n if (_this9._isContentChild) {\n inputs.relationFeatures = {\n newFeatures: newFeatures,\n originalFeatures: _this9._originalFeatures\n };\n }\n\n yield _this9.fireEvent('saveform', { newFeatures: newFeatures, originalFeatures: _this9._originalFeatures });\n\n newFeatures.forEach(function (f, i) {\n return context.session.pushUpdate(_this9.layerId, f, _this9._originalFeatures[i]);\n });\n\n // check and handle if layer has relation 1:1\n yield (0, _handleRelation1_1LayerFields.handleRelation1_1LayerFields)({\n layerId: _this9.layerId,\n features: newFeatures,\n fields: fields,\n task: _this9\n });\n\n GUI.setModal(false);\n\n _this9.fireEvent('savedfeature', newFeatures); // called after saved\n _this9.fireEvent('savedfeature_' + _this9.layerId, newFeatures); // called after saved using layerId\n // In case of save of child it means that child is updated so also parent\n if (_this9._isContentChild) {\n _workflow.Workflow.Stack.getParents().forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n }\n //@TODO add field unique new value id not set\n resolve(inputs);\n });\n\n function cbk(_x9) {\n return _ref8.apply(this, arguments);\n }\n\n return cbk;\n }()\n }, {\n id: 'cancel',\n title: \"plugins.editing.form.buttons.cancel\",\n type: \"cancel\",\n class: \"btn-danger\",\n /// buttons in case of change\n eventButtons: {\n update: {\n false: {\n id: 'close',\n title: \"close\",\n type: \"cancel\",\n class: \"btn-danger\"\n }\n }\n },\n cbk: function cbk() {\n if (!_this9._isContentChild) {\n GUI.setModal(false);\n _this9.fireEvent('cancelform', inputs.features); // fire event cancel form to emit to subscrivers\n }\n reject(inputs);\n }\n }]\n });\n\n // Overwrite click on relation.\n // Open FormRelation.vue component\n formService.handleRelation = function () {\n var _ref9 = _asyncToGenerator(function* (e) {\n // Skip when multi editing features\n // It is not possible to manage relationss when we edit multi-features\n if (_this9._multi) {\n GUI.showUserMessage({ type: 'info', message: 'plugins.editing.errors.editing_multiple_relations', duration: 3000, autoclose: true });\n return;\n }\n GUI.setLoadingContent(true);\n //set unique values for relation layer based on unique fields\n //@TODO need a find a way to call once and not every time we open a relation\n yield (0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(inputs.layer.getRelationById(e.relation.name).getChild());\n formService.setCurrentComponentById(e.relation.name);\n GUI.setLoadingContent(false);\n });\n\n return function (_x10) {\n return _ref9.apply(this, arguments);\n };\n }();\n\n formService.addComponents([].concat(_toConsumableArray(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.formComponents[layerId] || []), _toConsumableArray((0, _getRelationsInEditingByFeature.getRelationsInEditingByFeature)({\n layerId: layerId,\n relations: _this9._multi ? [] : inputs.layer.getRelations().getArray().filter(function (r) {\n return r.getType() !== 'ONE' && r.getFather() === layerId;\n }),\n feature: _this9._multi ? false : inputs.features[inputs.features.length - 1]\n }).map(function (_ref10) {\n var relation = _ref10.relation,\n relations = _ref10.relations;\n return {\n title: \"plugins.editing.edit_relation\",\n name: relation.name,\n id: relation.id,\n header: false, // hide a header form\n component: Vue.extend({\n mixins: [require('../components/FormRelation.vue')],\n name: 'relation_' + Date.now(),\n data: function data() {\n return { layerId: layerId, relation: relation, relations: relations };\n }\n })\n };\n }))));\n\n // fire openform event\n _this9.fireEvent('openform', {\n layerId: _this9.layerId,\n session: context.session,\n feature: _this9._originalFeature,\n formService: formService\n });\n\n // set context service to form Service in case of a single task (i.e., no workflow)\n if (_workflow.Workflow.Stack.getCurrent()) {\n _workflow.Workflow.Stack.getCurrent().setContextService(formService);\n }\n\n //listen eventually field relation 1:1 changes value\n (0, _listenRelation1_1FieldChange.listenRelation1_1FieldChange)({ layerId: _this9.layerId, fields: fields }).then(function (d) {\n return _this9._unwatchs = d;\n });\n\n _this9.disableSidebar(true);\n });\n\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this9.selectStyle });\n return promise;\n }));\n }\n\n /**\n *\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n this.disableSidebar(false);\n\n //Check if form coming from the parent table component\n var is_parent_table = false === this._isContentChild || // no child workflow\n\n // case edit feature of a table (edit layer alphanumeric)\n 2 === _workflow.Workflow.Stack.getLength() && //open features table\n _workflow.Workflow.Stack.getParent().isType('edittable');\n\n // when the last feature of features is Array\n // and is resolved without setting form service\n // Ex. copy multiple features from another layer\n if (is_parent_table) {\n GUI.getService('map').disableClickMapControls(false);\n }\n\n var contextService = is_parent_table && _workflow.Workflow.Stack.getCurrent().getContextService();\n\n // force update parent form update\n if (contextService && false === this._isContentChild) {\n contextService.setUpdate(false, { force: false });\n }\n //@since 3.9.0 add GUI.getContentLength() in case of edit multi relationfeatures tool\n GUI.closeForm({ pop: this.push || this._isContentChild && GUI.getContentLength() > 1 });\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').resetCurrentLayout();\n\n this.fireEvent('closeform');\n this.fireEvent('closeform_' + this.layerId);\n\n this.layerId = null;\n this._unwatchs.forEach(function (unwatch) {\n return unwatch();\n });\n this._unwatchs = [];\n }\n }]);\n\n return OpenFormStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/opentabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/opentablestep.js@v3.7.1\n */\n\n\nvar OpenTableStep = exports.OpenTableStep = function (_Step5) {\n _inherits(OpenTableStep, _Step5);\n\n function OpenTableStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OpenTableStep);\n\n options.help = \"editing.steps.help.edit_table\";\n\n return _possibleConstructorReturn(this, (OpenTableStep.__proto__ || Object.getPrototypeOf(OpenTableStep)).call(this, options));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/opentabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/tableservice.js@v3.7.8\n *\n * @param inputs\n * @param context\n *\n * @returns {*}\n */\n\n\n _createClass(OpenTableStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this11 = this;\n\n // set current plugin layout (right content)\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').setCurrentLayout();\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n _this11._isContentChild = _workflow.Workflow.Stack.getLength() > 1;\n var features = inputs.layer.readEditingFeatures() || [];\n var headers = (inputs.layer.getEditingFields() || []).filter(function (h) {\n return features.length ? Object.keys(features[0].getProperties()).includes(h.name) : true;\n });\n _this11._isContentChild = _workflow.Workflow.Stack.getLength() > 1;\n var excludeFields = _this11._isContentChild ? context.excludeFields || [] : [];\n var service = Object.assign(new G3WObject(), {\n state: {\n inputs: inputs,\n context: context,\n promise: { resolve: resolve, reject: reject },\n headers: headers, // column names\n features: features,\n rows: features.length > 0\n // ordered properties\n ? (excludeFields.length > 0 ? features.filter(function (feat) {\n return !excludeFields.reduce(function (a, f, i) {\n return a && context.fatherValue[i] === '' + feat.get(f);\n }, true);\n }) : features).map(function (f) {\n return headers.map(function (h) {\n return h.name;\n }).reduce(function (props, header) {\n var _Object$assign;\n\n return Object.assign(props, (_Object$assign = {}, _defineProperty(_Object$assign, header, (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({ layerId: inputs.layer.getId(), feature: f, property: header })), _defineProperty(_Object$assign, '__gis3w_feature_uid', f.getUid()), _Object$assign));\n }, {});\n })\n // features already bind to parent feature\n : features,\n title: '' + inputs.layer.getName() || 'Link relation',\n isrelation: _this11._isContentChild,\n capabilities: inputs.layer.getEditingCapabilities(),\n layerId: inputs.layer.getId(),\n workflow: null\n }\n });\n\n GUI.showContent({\n content: new Component({\n title: '' + inputs.layer.getName(),\n push: _this11._isContentChild,\n service: service,\n state: service.state,\n internalComponent: new (Vue.extend(require('../components/Table.vue')))({ service: service })\n }),\n push: _this11._isContentChild,\n showgoback: false,\n closable: false\n });\n }));\n }\n\n /**\n *\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n this.disableSidebar(false);\n GUI[this._isContentChild ? 'popContent' : 'closeContent']();\n //reset the current plugin layout (right content) to application\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').resetCurrentLayout();\n }\n }]);\n\n return OpenTableStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/pickfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/pickfeaturestep.js@v3.7.1\n */\n\n\nvar PickFeatureStep = exports.PickFeatureStep = function (_Step6) {\n _inherits(PickFeatureStep, _Step6);\n\n function PickFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, PickFeatureStep);\n\n options.help = \"editing.steps.help.pick_feature\";\n options.highlight = options.highlight || false;\n options.multi = options.multi || false;\n return _possibleConstructorReturn(this, (PickFeatureStep.__proto__ || Object.getPrototypeOf(PickFeatureStep)).call(this, options));\n }\n\n _createClass(PickFeatureStep, [{\n key: 'run',\n value: function run(inputs) {\n var _this13 = this;\n\n var promise = new Promise(function (resolve) {\n _this13.addInteraction(new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: inputs.layer.getEditingLayer() }), {\n 'picked': function picked(e) {\n if (0 === inputs.features.length) {\n inputs.features = e.features;\n inputs.coordinate = e.coordinate;\n }\n if (_this13._steps) {\n _this13.setUserMessageStepDone('select');\n }\n resolve(inputs);\n }\n });\n });\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this13.selectStyle });\n return promise;\n }));\n }\n }]);\n\n return PickFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/selectelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/selectelementsstep.js@v3.7.1\n */\n\n\nvar SelectElementsStep = exports.SelectElementsStep = function (_Step7) {\n _inherits(SelectElementsStep, _Step7);\n\n function SelectElementsStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var chain = arguments[1];\n\n _classCallCheck(this, SelectElementsStep);\n\n options.help = options.help || \"editing.steps.help.select_elements\";\n\n var _this14 = _possibleConstructorReturn(this, (SelectElementsStep.__proto__ || Object.getPrototypeOf(SelectElementsStep)).call(this, options));\n\n _this14._selectInteractions = [];\n _this14.multipleselectfeatures = [];\n _this14._originalStyle;\n _this14._vectorLayer;\n\n if (chain) {\n _this14.on('run', function () {\n _this14.emit('next-step', g3wsdk.core.i18n.tPlugin(\"editing.steps.help.select_elements\"));\n });\n }\n return _this14;\n }\n\n /**\n *\n * @param inputs\n * @param context\n * @returns {*}\n */\n\n\n _createClass(SelectElementsStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this15 = this;\n\n var layer = inputs.layer;\n var type = this._options.type || 'bbox'; // 'single' 'bbox' 'multiple';\n var buttonnext = 'multiple' === type && !!this._steps.select.buttonnext;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var _selectInteractions;\n\n if (buttonnext) {\n //check if it has already done handler function;\n var done = _this15._steps.select.buttonnext.done;\n\n _this15._steps.select.buttonnext.done = function () {\n if (done && done instanceof Function) {\n done();\n }\n resolve(inputs);\n };\n }\n\n var interactions = {};\n\n // add single select interaction\n if (['single', 'multiple'].includes(type)) {\n interactions.single = new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: layer.getEditingLayer() });\n interactions.single.on('picked', function () {\n var _ref14 = _asyncToGenerator(function* (_ref13) {\n var features = _ref13.features;\n\n var feature = void 0;\n if (features.length > 1) {\n try {\n feature = yield (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: _this15.getInputs() });\n } catch (e) {\n console.warn(e);\n }\n } else {\n feature = features[0];\n }\n\n if (feature) {\n inputs.features = [feature];\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)([feature], inputs, _this15.multipleselectfeatures, _this15);\n } else {\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(inputs.features);\n\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n\n resolve(inputs);\n }\n }\n });\n\n return function (_x14) {\n return _ref14.apply(this, arguments);\n };\n }());\n }\n\n // add multiple select interactions\n if (['multiple', 'bbox'].includes(type) && ApplicationState.ismobile) {\n _this15._vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector({}) });\n _this15.getMap().addLayer(_this15._vectorLayer);\n\n interactions.multi = new ol.interaction.Draw({ type: 'Circle', source: _this15._vectorLayer.getSource(), geometryFunction: ol.interaction.Draw.createBox() });\n\n interactions.multi.on('drawend', function (e) {\n var features = layer.getEditingLayer().getSource().getFeaturesInExtent(e.feature.getGeometry().getExtent());\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)(features, inputs, _this15.multipleselectfeatures, _this15);\n } else {\n if (features.length > 0) {\n inputs.features = features;\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features);\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n setTimeout(function () {\n return resolve(inputs);\n }, 500);\n } else {\n reject();\n }\n }\n });\n }\n\n if (['multiple', 'bbox'].includes(type) && !ApplicationState.ismobile) {\n interactions.dragbox = new ol.interaction.DragBox({ condition: ol.events.condition.shiftKeyOnly });\n\n interactions.dragbox.on('boxend', function () {\n var features = [];\n var extent = interactions.dragbox.getGeometry().getExtent();\n\n //https://openlayers.org/en/v5.3.0/apidoc/module-ol_source_Cluster-Cluster.html#forEachFeatureIntersectingExtent\n layer.getEditingLayer().getSource().forEachFeatureIntersectingExtent(extent, function (f) {\n features.push(f);\n });\n\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)(features, inputs, _this15.multipleselectfeatures, _this15);\n } else {\n if (features.length > 0) {\n inputs.features = features;\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features);\n\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n\n resolve(inputs);\n } else {\n reject();\n }\n }\n });\n }\n\n // pick feature from external layer added to map\n if ('external' === type) {\n var geometryType = layer.getGeometryType();\n var layerId = layer.getId();\n var source = layer.getEditingLayer().getSource();\n\n var _getContext = _this15.getContext(),\n session = _getContext.session;\n\n interactions.external = new _pickfeaturesinteraction.PickFeaturesInteraction({\n layers: GUI.getService('map').getExternalLayers()\n // filter external layer only vector - Exclude the\n // same base geometry\n .filter(function (l) {\n var features = 'VECTOR' == l.getType() && l.getSource().getFeatures();\n if (features.length > 0) {\n return (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), geometryType);\n }\n return true;\n })\n });\n interactions.external.on('picked', function (e) {\n if (!(e.features.length > 0)) {\n reject();\n return;\n }\n var attributes = layer.getEditingFields();\n var geometry = e.features[0].getGeometry();\n if (geometryType !== geometry.getType()) {\n e.feature.setGeometry(convertSingleMultiGeometry(geometry, geometryType));\n }\n var feature = new Feature({\n feature: e.feature,\n properties: attributes.map(function (attr) {\n // set media attribute to null or attribute belong to layer but not present o feature copied\n if (attr.pk || 'media' === attr.input.type || undefined === e.feature.get(attr.name)) {\n e.feature.set(attr.name, null);\n }\n return attr.name;\n })\n });\n\n // evaluate Geometry Expression\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n removeZValueToOLFeatureGeometry({ feature: feature }); // remove eventually Z Values\n feature.setTemporaryId();\n source.addFeature(feature);\n session.pushAdd(layerId, feature, false);\n inputs.features.push(feature);\n resolve(inputs);\n });\n });\n }\n\n Object.values(interactions).forEach(function (i) {\n return _this15.addInteraction(i);\n });\n (_selectInteractions = _this15._selectInteractions).push.apply(_selectInteractions, _toConsumableArray(Object.values(interactions)));\n }));\n }\n }, {\n key: 'stop',\n value: function stop() {\n var _this16 = this;\n\n Object.values(this.getSteps() || {}).forEach(function (s) {\n return s.reset && s.reset();\n });\n this._selectInteractions.forEach(function (i) {\n return _this16.removeInteraction(i);\n });\n\n if (this._vectorLayer) {\n this.getMap().removeLayer(this._vectorLayer);\n }\n // reset selected\n this.getInputs().features.forEach(function (f) {\n return f.setStyle(_this16._originalStyle);\n });\n\n this._originalStyle = null;\n this._vectorLayer = null;\n this._selectInteractions = [];\n this.multipleselectfeatures = [];\n }\n }]);\n\n return SelectElementsStep;\n}(_step.Step);\n\n},{\"../components/FormRelation.vue\":6,\"../components/Table.vue\":7,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addRemoveToMultipleSelectFeatures\":29,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/evaluateExpressionFields\":40,\"../utils/getEditingLayerById\":42,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getFormFields\":44,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getParentFormData\":47,\"../utils/getRelationsInEditingByFeature\":52,\"../utils/handleRelation1_1LayerFields\":53,\"../utils/isSameBaseGeometryType\":56,\"../utils/listenRelation1_1FieldChange\":57,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/setFeaturesSelectedStyle\":60,\"../utils/setLayerUniqueFieldValues\":61}],66:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.promisify = promisify;\nexports.$promisify = $promisify;\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 * Migrate your consumer code away from jQuery promises.\n * Covert a jQuery promise into an ES6 Promise\n * \n * @param promise jquery promise\n */\nfunction promisify(promise) {\n if (promise instanceof Promise) {\n return promise;\n }\n if (!promise || !promise.then) {\n console.trace(promise);\n return Promise.reject('not a promise');\n }\n return new Promise(function (resolve, reject) {\n promise.then(resolve).fail(reject);\n });\n}\n\n/**\n * Migrate your consumer code away from jQuery promises.\n * Convert ES6 Promise into jQuery\n * \n * @param promise async function or ES6 promise \n */\nfunction $promisify(promise) {\n if (undefined === promise) {\n console.trace();\n return $.Deferred(function (d) {\n return d.reject('not a promise');\n }).promise();\n }\n if (promise.always) {\n return promise;\n }\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n d.resolve((yield promise instanceof Promise ? promise : promise()));\n } catch (e) {\n console.trace(e);d.reject(e);\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n}\n\n},{}]},{},[25]);\n"],"names":["n","window","initConfig","group","plugins","Object","assign","version","hash","branch","r","e","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","inserted","cache","noop","insert","css","elem","document","createElement","setAttribute","textContent","styleSheet","cssText","getElementsByTagName","appendChild","removeChild","2","_ref","_areCoordinatesEqual","_getFeatureTableFieldValue","_asyncToGenerator","fn","gen","apply","this","arguments","Promise","resolve","reject","step","key","arg","info","value","error","done","then","err","defineProperty","default","name","props","commits","type","required","layer","relation","Boolean","data","features","readFeatures","efeatures","readEditingFeatures","methods","getFormattedValue","feat","get","getFlatCoordinates","getFeatureTableFieldValue","layerId","getId","feature","property","getValue","item","getFeature","getEditingValue","getEditingFeature","hasValue","efeat","id","_this","find","_this2","getType","getGeometry","isEdited","includes","undefined","areCoordinatesEqual","coordinates","getCoordinates","getAttrs","entries","getProperties","sort","b","getLayerById","g3wsdk","core","plugin","PluginsRegistry","getPlugin","service","mounted","$refs","filter","d","forEach","innerHTML","__esModule","__vue__options__","options","render","_vm","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","staticStyle","font-weight","margin","_v","_s","getName","_e","_l","keys","ref","refInFor","relations","attrs","add","update","delete","staticRenderFns","_scopeId","../utils/areCoordinatesEqual","../utils/getFeatureTableFieldValue","vueify/lib/insert-css","3","GUI","gui","$options","selectFeature","splice","push","getAttributesFeature","properties","attributes","map","attribute","label","zoomToFeature","getService","zoomToFeatures","highlight","duration","closeContent","index","on","click","$event","stopPropagation","for","class","g3wtemplate","font","4","layers","l","selected","watch","_id","domProps","5","_slicedToArray","_Toolbox","_promisify","_ref13","_ref9","_ref8","_ref7","_ref6","_ref5","ApplicationState","ApplicationService","CatalogLayersStoresRegistry","DataRouterService","arr","Array","isArray","Symbol","iterator","sliceIterator","_arr","_n","_d","_i","next","TypeError","_Toolbox2","obj","_g3wsdk$core","catalog","state","resourcesurl","showcommitbar","saving","layersInEditing","editingButtonsEnabled","selectedlayers","editinglayers","getEditableLayers","_ref2","config","editing","visible","_ref3","_ref4","title","getTitle","activetool","components","toolbox","transitions","addremovetransition","updateFilterLayers","_selectedlayers","$","selectlayers","val","trigger","updateLayersInEditing","bool","undo","canUndo","redo","canRedo","commit","toolboxId","canCommit","getToolBoxById","modal","always","startToolBox","online","getDependencies","isDirty","yield","commit_dirty","start","_x2","stopToolBox","history","promisify","stop","control","getToolBoxes","getMapControlByType","isToggled","toggle","_x3","startTool","toolId","_this3","enabled","stopTool","setActiveTool","getToolById","_x4","_x5","stopActiveTool","selectToolBox","isSelected","setSelected","clearMessage","toolboxselected","_x6","_this4","hasDependencies","concat","editor","getEditor","getEditingSource","setFeatures","clone","getSession","getHistory","clear","_x7","_enableEditingButtons","checkOfflineChanges","_this5","_ref10","_ref10$modal","_ref10$unlock","unlock","promises","layerIds","changes","JSON","parse","localStorage","getItem","setTimeout","_layerId","commitItems","when","setItem","computed","saveConfig","mode","fireEvent","django_admin_url","user","is_superuser","URL","baseurl","filemanager_url","onbeforeunload","getElementsByClassName","classList","has_layers","_ref12","is_commit","is_selected","setShow","created","_this6","appState","unByKeys","owner","setter","onafter","catch","notify","open","getLayers","EDITABLE","setInEditing","beforeDestroy","_this7","layerIdChanges","off","_ref14","un","featuresOnClose","inputs","fids","formatter","promise","arr2","from","getData","outputs","show","loading","resetDefault","message","height","showselectlayers","multiple","editinglayer","setselectedtoolbox","starttoolbox","stoptoolbox","setactivetool","stopactivetool","on-editing","update-filter-layers","href","target","../utils/promisify","./Toolbox.vue","6","_extends","_workflow2","_step","_cloneFeature","_setAndUnsetSelectedFeaturesStyle","_getRelationFieldsFromRelation","_getLayersDependencyFeatures","_getEditingLayerById","_convertToGeometry","_addTableFeature","_updateWorkflows","_getRelationId","_chooseFeatureFromFeatures","_isSameBaseGeometryType","_pickfeaturesinteraction","_eventbus","_workflows","_ref34","_unlinkRelation","_ref19","_ref16","ProjectsRegistry","Geometry","Layer","Feature","toRawType","FormService","fieldsMixin","resizeMixin","PickFeatureInteraction","PickCoordinatesInteraction","SELECTED_STYLES","_defineProperty","enumerable","configurable","writable","_toConsumableArray","unlinkRelation","_x8","source","prototype","hasOwnProperty","project","geoutils","i18n","tPlugin","utils","vue","services","_g3wsdk$gui$vue$Mixin","Mixins","mediaMixin","_g3wsdk$ol$interactio","ol","interactions","Workflow","Step","OpenFormStep","OpenTableStep","AddFeatureStep","ModifyGeometryVertexStep","MoveFeatureStep","color","Point","style","Style","image","Circle","radius","fill","Fill","MultiPoint","Linestring","stroke","Stroke","width","MultiLinestring","Polygon","MultiPolygon","mixins","show_vector_tools","disabled","copylayerid","copyFeatureLayers","active","placeholdersearch","getResourcesUrl","resize","table","$el","display","relation_body","querySelector","offsetHeight","relation_header_title","relation_header_tools","isVectorRelation","relation_vector_tools","relationsTable","columns","adjust","copyFeatureFromOtherLayer","external","is_vector","isGeoLayer","runAddRelationWorkflow","workflow","_add_link_workflow","selectandcopy","copyLayer","isVector","help","closeVectorTools","$nextTick","addVectorRelation","LayerTypes","VECTOR","_layerType","updateSelectRelations","selectall","some","select","editAttributesRelations","steps","multi","_createWorkflowOptions","getLayer","getFeatureById","addRelationAndLink","relationAttributesSubset","fields","flatMap","indexOf","_createDataTable","relationTable","DataTable","autoWidth","columnDefs","orderable","targets","destroy","order","pageLength","responsive","scrollCollapse","scrollResize","scrollX","hide","search","draw","destroyTable","updateTable","updateNewRelationId","_new_relations_ids","clientid","newrelation","tools","ts","split","replace","onCommit","_ref11","_ref11$new_relations","new_relations","relationLayer","getEditingLayerById","child","new","getRelationFeatureValue","featureId","_relationLayerId","enableDOMElements","querySelectorAll","contains","remove","addTools","capabilities","Vue","observable","icon","TABLE","getTools","isPointGeometryType","getGeometryType","tool","getOperator","flat","relationtool","VM","relationfeature","selectStyle","cloneFeature","_relations","run","addTableFeature","getFieldsWithValues","relationFeatures","newFeatures","setAndUnsetSelectedFeaturesStyle","dialog","confirm","res","unique_fields","Stack","getCurrent","pushDelete","uniqueFieldsValues","Set","removeFeature","isNew","w","_ref15","getUid","getContextService","updateWorkflows","rf","currentRelationFeatureId","setModal","_workflow","movevertex","movefeature","unwatch","$watch","unbindEscKeyUp","bindEscKeyUp","getParents","setUpdate","force","_this8","_ref17","_ref17$isVector","hideContent","_options$context","context","fatherField","fatherValue","relationField","getRelationFieldsFromRelation","_relations2","keyRelationFeatureChange","_outputs$relationFeat","originalFeatures","setRelationFieldValue","_ref18","field","newFeature","set","parentFeature","updateFeature","session","pushUpdate","getParent","editable","evt","Observable","unByKey","_relations3","rollbackDependecies","linkRelation","getRelationFeatures","getLayersDependencyFeatures","_this9","operator","filterType","link","_getRelationFieldsFro2","ownField","excludeFeatures","reduce","accumulator","rField","values","getCurrentFeature","response","showContent","linked","beforeRun","originalRelation","rel","_ref21","_ref22","findIndex","rF","warning","closeUserMessage","toString","_this10","parentLayer","parentWorkflow","pk","isPkField","isEditingFieldEditable","father","getInputs","parent","excludeFields","_ref23","_ref24","_ref25","every","relationsLength","fieldrequired","_this11","isFieldRequired","show_add_link","_","beforeCreate","delayType","geometryType","_this12","self","bind","QUERYABLE","GEOLAYER","isSameBaseGeometryType","isMultiGeometry","getExternalLayers","getSource","getFeatures","toLowerCase","localeCompare","addExternalLayerKey","_ref27","_type","externalLayer","loadEventuallyRelationValuesForInputs","getEditingCapabilities","_Layer$LayerTypes$TAB","backbuttonlabel","_ref28","_this13","$promisify","editingLayer","getEditingLayer","_ref29","_ref30","addInteraction","picked","_x14","_x15","addStep","description","setUserMessageStepDone","registerEscKeyEvent","_this14","_ref32","_feature","_ref33","PickFeaturesInteraction","convertToGeometry","coordinate","query_point_tolerance","getCurrentProject","getQueryPointTolerance","multilayers","_x19","_x18","chooseFeatureFromFeatures","getEditingFields","attr","setTemporaryId","addFeature","pushAdd","showUserMessage","closable","autoclose","activated","mapExtent","getMapBBOX","runEventHandler","getRelationId","component","deactivated","zoomToExtent","margin-bottom","margin-left","toUpperCase","placeholder","modifiers","create","src","align","align-self","padding","checked","change","padding-top","$$i","$$a","$$el","$$c","$set","slice","_obj","toggled","aria-hidden","isMedia","getMediaType","mime_type","pop","getFieldType","../eventbus","../g3wsdk/workflow/step","../g3wsdk/workflow/workflow","../interactions/pickfeaturesinteraction","../utils/addTableFeature","../utils/chooseFeatureFromFeatures","../utils/cloneFeature","../utils/convertToGeometry","../utils/getEditingLayerById","../utils/getLayersDependencyFeatures","../utils/getRelationFieldsFromRelation","../utils/getRelationId","../utils/isSameBaseGeometryType","../utils/setAndUnsetSelectedFeaturesStyle","../utils/updateWorkflows","../workflows","7","_typeof","_getRelationsInEditing","Media_Field","constructor","Fields","media_field","g3w-media","dataTable","showTool","cap","outerHeight","showValue","headers","h","isMediaField","header","input","save","isrelation","_linkFeatures","cancel","deleteFeature","uid","element","relationinediting","getChildren","getRelationsInEditing","getRelations","getArray","result","rows","row","_x","copyFeature","__gis3w_feature_uid","setDataTable","editFeature","_feature2","linkFeature","addindex","disableSideBar","max-width","margin-right","../utils/getRelationsInEditing","8","getResolutionFromScale","snapInteraction","helpmessage","snapAll","editDisabled","startstopediting","hasRelations","dependencies","changingtools","canEdit","showtoolsoftool","toolsoftool","isLayerReady","ready","toolboxCursor","get_tool_title","language","$emit","fitZoomToScale","goToRes","getCenter","_constraints","scale","getMapUnits","toggleEditing","toggleTool","toggleFilterByRelation","_initSnap","snapFeatures","Collection","snapEvents","snapToolboxes","snapUnwatches","activeSnapInteraction","checkedAll","removeInteraction","extend","olKey","getFeaturesCollection","addSnapFeatures","settersAndKeys","addFeatures","onbefore","getState","setShowSnapAll","_unloadSnap","event","showSnapAll","interaction","Snap","state.activetool","messages","state.editing.on","state.toolsoftool","newTools","oldTools","onChange","mobile","isMobile","toolboxactive","geolayer","background","pull-right","g3w-icon-toggled","panel-body","cursor","preventDefault","9","completeStep","buttonnext","dynamic","getFontClass","10","Session","ChangesManager","Flow","_createClass","Constructor","protoProps","staticProps","defineProperties","descriptor","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_classCallCheck","instance","Queque","task","tasks","reverse","shift","G3WObject","Deferred","counter","getContext","getSteps","runStep","runMicroTasks","setMessages","queques","micro","getLength","onDone","fail","onError","clearQueques","isRunning","end","getPrototypeOf","Actions","fnc","opposite","execute","object","items","historyId","action","newItems","own","_states","getLastHistoryState","stateId","s","current","Registry","register","unregister","started","_editor","uniqueId","Date","now","_history","setProperties","removeNotEditableProperties","getEditingNotEditableFields","unset","oldFeature","is_new","deleteState","ids","getCommitItems","states","getRelationStates","insertStates","newFeat","oldFeat","revert","clearHistory","rollback","unshift","temporarychange","setChanges","itemsToCommit","commitObj","lockids","isRelation","sessionRelation","getLockIds","GeoJSONFormat","format","GeoJSON","itemObj","writeFeatureObject","childs_properties","getChild","getFather","_ref4$layerId","MapLayersStoresRegistry","is3DGeometry","geometry","set3DGeometryType","_ref5$ids","_ref5$relations","_ref5$__esPromise","__esPromise","_response$response$ne","applyCommitResponse","saveChangesOnServer","_allfeatures","getfeatures","idx","_constrains","_this15","getLastStateId","relationStates","_state","insertState","_this16","getFirstState","_checkSessionItems","_this17","_this18","unsetnewid","setId","_this19","currentState","_this20","currentStateIndex","checkCommitItems","commitItem","getCurrentStateIndex","maxSteps","_this21","isDeleted","isUpdated","_item","isAdded","setters","Proxy","prop","__add","__getRelationStates","__insertState","removeState","removeStates","removeChangesFromHistory","__insertStates","__undo","__redo","setItemsFeatureIds","__setItemsFeatureIds","__getState","__getFirstState","getLastState","getCurrentState","__getCurrentState","__getCurrentStateIndex","__canCommit","__canUndo","__canRedo","__commit","sessions","_sessions","setSession","getSessions","../../utils/promisify","11","12","_toolbox","FeaturesStore","OlFeaturesStore","_features","dispatchEvent","removeAt","insertAt","opts","Editor","_featuresstore","_layer","_ref5$","ToolBox","rFeature","ff","childField","clearState","addLockIds","new_lockids","_commit","relationId","getRelationByFatherChildren","getFatherField","getChildField","_started","_filter","bbox","getFeaturesStore","resetEditingSource","doRequest","is_cached","extent","containsExtent","../../toolboxes/toolbox","13","_editor2","_deprecated","constant","DEFAULT_EDITING_CAPABILITIES","SessionsRegistry","Task","WorkflowsStack","../deprecated","./editing/editor","./workflow/step","./workflow/workflow","14","_options","_run","_stop","_inputs","_context","_outputs","running","usermessagesteps","escKeyPressEventHandler","setSteps","onRun","onStop","_tools","root","events","getMap","_pointerMoveCursor","getTargetElement","forEachFeatureAtPixel","pixel","_steps","setUserMessageSteps","_isContentChild","saveChange","callback","unbind","escKeyUpHandler","setInputs","setContext","_workflow$_toolsoftoo","toolsOfTools","snap","measure","removeMeasureInteraction","_toolsoftool","emit","__stop","MESSAGES","15","_promise","_child","_stackIndex","runOnce","_messages","_userMessageSteps","setUserMessagesSteps","helpMessage","_stepIndex","messagesSteps","getUserMessageSteps","addChild","getStackIndex","clearUserMessagesSteps","__run","isChild","position","size","hooks","body","clearMessages","_x9","_ref5$tools","setToolsOfTools","feats","keyCode","workflows","getFirst","getLast","getAt","../../components/UserMessage.vue","./step","16","close_editing_panel","errors","no_layers","some_layers","editing_changes","editing_data","editing_attributes","edit_relation","back_to_relations","no_relations_found","relation_data","relation_already_added","list_of_relations_feature","tooltip","edit_layer","edit","copy","pastefeaturesfromotherlayers","addpart","deletepart","merge","add_feature","delete_feature","move_feature","update_vertex","update_feature","update_multi_features","update_multi_features_relations","copyfeaturefromexternallayer","snapall","select_elements","select_element","edit_table","draw_new_feature","action_confirm","double_click_delete","edit_feature_vertex","move","select_feature_to_relation","show_edit_feature_form","pick_feature","insert_attributes_feature","draw_part","draw_geometry","selectSHIFT","selectDrawBox","selectDrawBoxAtLeast2Feature","selectPoint","selectPointSHIFT","selectMultiPointSHIFT","selectMultiPointSHIFTAtLeast2Feature","copyCTRL","selectStartVertex","selectToPaste","draw_split_line","featureslockbyotheruser","splitted","nosplittedfeature","press_esc","offline","delete_feature_relations","unlink_relation","commit_feature","toolbox_has_relation","saved","saved_local","loading_data","constraints","enable_editing","pdf","header_relation","header_add","header_update_delete","loading_table_data","copy_and_paste_from_other_layer_mandatory_fields","no_feature_selected","select_min_2_features","draw_or_copy","copy_feature_from_other_layer","form","tooltips","back_to_father","add_relation","link_relation","open_relation_tools","buttons","save_and_back","save_and_back_table","copyfeaturefromotherlayer","edit_attributes","copyfeaturefromprojectlayer","17","editing_multiple_relations","filter_by_relation","toolbox_has_no_geometry","18","19","20","_it2","_interopRequireDefault","_en2","_fi2","_se2","_fr2","_de2","_ro2","_pl2","it","en","fi","se","fr","de","ro","pl","./de","./en","./fi","./fr","./it","./pl","./ro","./se","21","save_table","22","23","24","25","_ref39","_rollback","allSettled","_ref40","_ref46","_ref45","_ref43","_ref41","_ref41$","del","_ref41$$relations","has_features","_ref42","_x23","_ref44","XHR","url","getUrl","params","vector","at","setGeometry","_x24","_x25","_i18n","_i18n2","_createFeature","_addPartToMultigeometries","G3W_FID","_g3wsdk$core$i18n","_g3wsdk$core$layer","LayersStore","MapLayersStoreRegistry","_g3wsdk$core$plugin","Plugin","PluginService","_g3wsdk$core$utils","Panel","serverErrorParser","parsers","Server","_g3wsdk$ol$utils","getScaleFromResolution","_ref20","_class","fontClasses","className","toolboxes","_toolboxes","layers_in_error","formComponents","subscribers","showToolboxesExcluded","cb","editableLayers","start-editing","show-relation-editing","start_editing","before","after","show_errors","editFeatureKey","panel","currentLayout","getCurrentLayoutName","unwatchLayout","layout","__current","layoutName","onMapControlToggled","isClickMap","getActiveTool","setService","subscribe","unsubscribe","addToolBox","resetAPIDefault","getSessionById","setApplicationEditingConstraints","undoRedoLayerUniqueFieldValues","undoRedoRelationUniqueFieldValues","stopEditing","startEditing","addLayerFeature","_init","setHookLoading","setApi","api","addNewFeature","createFeature","commitChanges","getMapService","updateLayerFeature","deleteLayerFeature","hidePanel","hideEditingPanel","showPanel","setSaveConfig","addFormComponents","addLayersStore","queryable","TOC_ORDER","getLayerForEditing","vectorurl","project_type","status","filter_expression","usecompleter","layer_id","has_filter","filter_fields","relation_reference","_options$values","getFilterData","fformatter","_options$values2","_response","getDataTable","ordering","orderbyvalue","fatherId","isChildEditable","vectorjoin_id","getColor","setColor","getLayersStore","addLayers","getFathers","isReady","_setupGUI","setReady","registerPlugin","gid","fid","tb","showEditingPanel","once","toolBox","getEditingConstraints","units","parseInt","getView","getResolution","setResolution","geom","addPartTool","op","_w","zoomToGeometry","addfeature","addPartToMultigeometries","setOperator","addToolGroup","sub","sessionItems","undoItems","relationSessionItems","redoItems","disableClickMapControls","_ref22$plugin","_ref22$toolboxes","toolboxIds","setEditingConstraints","commitpromises","refreshMap","_ref25$modal","_ref25$close","close","success","has_changes","serverError","SAVE","CANCEL","CLOSEMODAL","propsData","$mount","closeButton","curr","prev","currLayerId","relationsIds","has_relations","GIVE_ME_A_NAME","lock","featureid","online2","textMessage","_ref29$sessionItems","has_change","oldVal","newVal","_ref31","_ref32$","_x11","disablemapcontrols","setTitle","_ref36","_ref35","nofeatures","nofeatures_field","showgoback","saveAll","_x16","_x17","_ref37","_ref37$mode","_ref37$cb","_ref37$modal","_ref38","_ref38$components","internalPanel","resourcesUrl","closePanel","removeTools","removeLayersStore","setCurrentLayout","./components/Changes.vue","./components/Editing.vue","./g3wsdk","./g3wsdk/workflow/step","./g3wsdk/workflow/workflow","./i18n","./toolboxes/toolbox","./utils/addPartToMultigeometries","./utils/createFeature","./utils/getEditingLayerById","./utils/promisify","./utils/setAndUnsetSelectedFeaturesStyle","./workflows","26","_ol$interaction$Point","featuresAtPixel","getFeaturesAtPixel","layerFilter","hitTolerance","any","handleDownEvent","handleUpEvent","handleMoveEvent","Pointer","27","_createEditingDataOptions","_setLayerUniqueFieldValues","_chooseFeature","_evaluateExpressionFields","_getNotEditableFieldsNoPkValues","_getDeltaXY","_getRelationsInEditingByFeature","_isPointOnVertex","_handleSplitFeature","_splitFeatures","_dissolve","SelectElementsStep","PickFeatureStep","GEOMETRY_TYPES","removeZValueToOLFeatureGeometry","debounce","_ref49","is_line","is_poly","is_table","iconGeometry","editable_relations","is_point","isLineGeometryType","isPolygonGeometryType","isEditable","_start","__clearHistory","__getLastHistoryState","_session","__startSession","__stopSession","__getFeatures","__saveChangesOnServer","isStarted","__isStarted","__getHistory","__getEditor","__push","__pushDelete","__save","__pushAdd","__pushUpdate","__rollback","__rollbackDependecies","__undoSession","__redoSession","__getCommitItems","__clearSession","customTitle","toolboxheader","toolmessages","isFather","_unregisterStartSettersEventsKey","_getFeaturesOption","_enabledtools","_disabledtools","getEditingConstrains","chooseFeature","validate","getRelationsInEditingByFeature","ismobile","condition","_ref7$features","reset","_ref8$features","alert","rLayer","enable","updatelayers","checkGeometry","BASELAYER","catalogService","_ref10$tool","openFormStep","chooselayer","selectgeometry","originalLayer","vueInstance","showModalDialog","ok","$destroy","Draw","isPointOnVertex","drawend","edge","to","_evt$feature$getGeome","_evt$feature$getGeome2","x","y","deltaXY","getDeltaXY","featuresLength","promisesDefaultEvaluation","translate","_coordinates","_deltaXY","getEditingMediaFields","evaluateExpressionFields","noteditablefieldsvalues","getNotEditableFieldsNoPkValues","finally","originaLayer","originalFeature","geometries","MULTIPOLYGON","getPolygons","MULTILINE","MULTILINESTRING","getLineStrings","MULTIPOINT","getPoints","Vector","getPixelFromCoordinate","tempLayer","getStyle","addLayer","found","_geometries","g","removeLayer","draw_line","freehandCondition","never","isSplitted","splittedGeometries","splitFeatures","splittedGeometriesLength","handleSplitFeature","choose","_ref26","dissolve","has_same_geom","disabledtoolsoftools","getMessages","Function","_startTool","_stopTool","originalState","_getFeaturesEvent","constraint","startResolve","_olStartKeysEvent","unwatches","inEditing","registerEvents","constraintFeatureFilter","createEditingDataOptions","in_editing","showZoomCursor","getCurrentToggledMapControl","cursorClass","setMouseCursor","getViewport","applicationConstraint","_options$toolboxheade","_options$startstopedi","_options$changingtool","unKeyLock","setEnablesDisablesTools","onceafter","subtitle","handlerAfterSessionGetFeatures","_handleScaleConstraint","setFeaturesOptions","setLayerUniqueFieldValues","stopLoading","setEditing","is_started","isMapHidden","startLoading","disableCanEditEvent","k","uw","enableTools","clearToolboxMessages","_stopSessionChildren","_ref32$ids","_ref32$relations","_ref32$__esPromise","_x20","setMessage","setEnable","keyChangeResolution","_ref34$tools","_ref34$options","_options$editing_cons","editing_constraints","_ref35$tools","_ref35$excludetools","excludetools","_ref35$options","_options$editing_cons2","UPDATEONEFEATUREONLYTOOLSID","update_tools","toolsId","_tools$enabled","disableTools","_tools$disabled","_ref36$options","_options$active","disabledtools","_state$toolsoftool","_deactivetools","getHelpMessage","getRunningStep","activeTool","removeAllListeners","checkSessionItems","_feature3","_this22","_feature4","_this23","_this24","_this25","_this26","_this27","getContentLength","relationsId","addRelationId","_ref47","_x32","_this28","_startOp","hideSidebar","showSidebar","_x34","_x35","_x36","_this29","../components/CopyFeaturesFromOtherLayers.vue","../utils/addPartToMultigeometries","../utils/checkSessionItems","../utils/chooseFeature","../utils/createEditingDataOptions","../utils/dissolve","../utils/evaluateExpressionFields","../utils/getDeltaXY","../utils/getNotEditableFieldsNoPkValues","../utils/getRelationsInEditingByFeature","../utils/handleSplitFeature","../utils/isPointOnVertex","../utils/setLayerUniqueFieldValues","../utils/splitFeatures","../utils/unlinkRelation","28","setCoordinates","./promisify","29","addRemoveToMultipleSelectFeatures","selIndex","_originalStyle","_setFeaturesSelectedStyle","setFeaturesSelectedStyle","setStyle","../utils/setFeaturesSelectedStyle","30","createNewFeature","get_default_value","31","coords","c1","c2","poly","_coords","32","33","34","_ref$features","comp","../components/ChooseFeatureToEdit.vue","35","cloneNew","36","addZValueToOLFeatureGeometry","cloned","__layerId","convertSingleMultiGeometry","_g3wsdk$core$geoutils","37","38","39","_ref$index","_ref$clone","parser","jsts","io","OL3Parser","jstsdissolvedFeatureGeometry","baseFeature","baseFeatureGeometry","baseFeatureGeometryType","lineMerger","operation","linemerge","LineMerger","addLineString","GeometryFactory","createLineString","read","mergedLineString","getMergedLineStrings","toArray","union","dissolvedFeatureGeometry","write","dissolvedFeatureGeometryType","dissolvedFeatureGeometryCoordinates","40","exclude","default_expression","apply_on_update","inputService","handleDefaultExpressionFormInput","qgs_layer_id","parentData","_getParentFormData","getParentFormData","handleFilterExpressionFormInput","./getParentFormData","41","_getCoordinates","42","43","kv","kv_field","44","getFormFields","savedfeatureFnc","unique_values","unique","_value","current_values","v","sortNumericArray","sortAlphabeticallyArray","has","exclude_values","_handleMulti","sensitivity","ascending","stringify","forceNull","45","all","setLoading","_getRelationFieldsFro","featureValues","46","47","_Workflow$Stack$getPa","_Workflow$Stack$getPa2","48","getRelation1_1ChildFeature","childFeatureStore","fatherFormRelationField","fatherLayerId","childLayerId","locked","oncebefore","createFilterFormInputs","search_endpoint","49","_fatherField","_childField","50","childId","51","_ref$relations","52","relationsinediting","fatherLayer","relationLayerId","valid","53","handleRelation1_1LayerFields","_ref2$features","_ref2$fields","newChild","childFeature","fieldsUpdated","isNewChildFeature","getPrefix","54","_ref2$splittedGeometr","oriFeature","splittedGeometry","_newFeature","55","56","57","listenRelation1_1FieldChange","ONE","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_ret","relationLockFeatures","editableRelatedFatherChild","formField","_getRelation1_1ChildFeature","_relationLockFeatures","return","./getRelation1_1ChildFeature","58","console","59","selectOriginalStyleHandle","originalStyle","_inputs$features","is_single","60","_getSelectedStyle","selectedStyle","createSelectedStyle","61","getWidgetData","join","62","splitfeature","splitFeature","63","_ref$dialog","unlink","./updateWorkflows","64","65","_getFormFields","_handleRelation1_1LayerFields","_listenRelation1_1FieldChange","_addRemoveToMultipleSelectFeatures","Component","AreaInteraction","LengthInteraction","createMeasureTooltip","removeMeasureTooltip","originalGeometryType","getEditingGeometryType","getOLGeometry","drawInteraction","finishCondition","drawstart","drawingFeature","addEventListener","_delKeyRemoveLastPoint","_add","setActive","measureInteraction","projection","getProjection","drawColor","removeLastPoint","removeEventListener","_snap","_modifyInteraction","Modify","deleteCondition","modifystart","modifyend","getExtent","isGeometryChange","changeKey","Translate","translatestart","translateend","_multi","layerName","formService","setLoadingContent","_originalFeatures","setInput","getLayerEditingFormStructure","showForm","crumb","dataid","isnew","context_inputs","formStructure","hasFormStructure","headerComponent","_saveAll","template","disableContent","getLastStep","saveDefaultExpressionFieldsNotDependencies","setFieldsWithValues","getFields","getBackButtonLabel","cbk","eventButtons","false","handleRelation","getRelationById","setCurrentComponentById","_x10","addComponents","_originalFeature","setContextService","_unwatchs","disableSidebar","is_parent_table","isType","contextService","closeForm","resetCurrentLayout","_Object$assign","content","internalComponent","_selectInteractions","single","multipleselectfeatures","_vectorLayer","geometryFunction","createBox","getFeaturesInExtent","dragbox","DragBox","shiftKeyOnly","forEachFeatureIntersectingExtent","chain","../components/FormRelation.vue","../components/Table.vue","../utils/addRemoveToMultipleSelectFeatures","../utils/getFormFields","../utils/getParentFormData","../utils/handleRelation1_1LayerFields","../utils/listenRelation1_1FieldChange","66"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"plugin.js","sources":["plugin.js"],"sourcesContent":["(()=>{var n=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;n&&(n[\"editing\"]=Object.assign(n[\"editing\"]||{},{version:\"3.9.0-issue_137\",hash:\"daf91d9\",branch:\"issue_137\"}))})();\n(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;ili[data-v-31b52cc3]{margin-bottom:8px}ins[data-v-31b52cc3]{background-color:lime;text-decoration-line:none}del[data-v-31b52cc3]{background-color:tomato}dl[data-v-31b52cc3]{display:grid;grid-template:auto/.5fr 1fr;margin-bottom:0;word-break:break-all}dt[data-v-31b52cc3]{background:#fee}dd[data-v-31b52cc3]{background:#f1f2f4}dd[data-v-31b52cc3],dt[data-v-31b52cc3]{margin:0;padding:.3em .5em;border-top:1px solid #fff}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _areCoordinatesEqual = require('../utils/areCoordinatesEqual');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\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: \"changes\",\n\n props: {\n commits: {\n type: Object,\n required: true\n },\n layer: {\n type: Object,\n required: true\n },\n relation: {\n type: Boolean,\n default: false\n }\n },\n\n data: function data() {\n return {\n features: this.layer.readFeatures(),\n efeatures: this.layer.readEditingFeatures() };\n },\n\n\n methods: {\n getFormattedValue: function getFormattedValue(feat, key) {\n if (!feat) {\n return;\n }\n\n if ('geometry' === key && feat.get(key)) {\n return '(' + feat.get(key).getFlatCoordinates().length / 2 + ')';\n }\n return (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: this.layer.getId(),\n feature: feat,\n property: key\n });\n },\n getValue: function getValue(item, key) {\n return this.getFormattedValue(this.getFeature(item), key);\n },\n getEditingValue: function getEditingValue(item, key) {\n return this.getFormattedValue(this.getEditingFeature(item), key);\n },\n hasValue: function hasValue(item, key) {\n var feat = this.getFeature(item);\n var efeat = this.getEditingFeature(item);\n return !(feat && efeat && null === feat.get(key) && null === efeat.get(key) || feat && !efeat && null === feat.get(key));\n },\n getId: function getId(item) {\n return item.id || item;\n },\n getEditingFeature: function getEditingFeature(item) {\n var _this = this;\n\n return this.efeatures.find(function (f) {\n return _this.getId(item) === f.getId();\n });\n },\n getFeature: function getFeature(item) {\n var _this2 = this;\n\n return this.features.find(function (f) {\n return _this2.getId(item) === f.getId();\n });\n },\n getType: function getType(item) {\n var feat = this.getEditingFeature(item) || this.getFeature(item);\n return feat && feat.getGeometry && feat.getGeometry() ? feat.getGeometry().getType() : '';\n },\n isEdited: function isEdited(item, key) {\n var feat = this.getFeature(item);\n var efeat = this.getEditingFeature(item);\n if ([feat, efeat].includes(undefined)) {\n return false;\n }\n if (this.getType(item) && 'geometry' === key) {\n return !(0, _areCoordinatesEqual.areCoordinatesEqual)({ feature: feat, coordinates: efeat.get(key).getCoordinates() });\n }\n return efeat.get(key) !== feat.get(key);\n },\n getAttrs: function getAttrs(item) {\n var feat = this.getEditingFeature(item) || this.getFeature(item);\n return Object.entries(feat ? feat.getProperties() : {}).sort(function (a, b) {\n return a[0] > b[0];\n });\n },\n getLayerById: function getLayerById(id) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').service.getLayerById(id);\n }\n },\n\n mounted: function () {\n var _ref = _asyncToGenerator(function* () {\n this.$refs.value.filter(function (d) {\n return !d.textContent;\n }).forEach(function (d) {\n return d.innerHTML = '<empty>';\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',[(_vm.relation)?_c('h4',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin:pre\",value:('editing.messages.commit.header_relation'),expression:\"'editing.messages.commit.header_relation'\",arg:\"pre\"}],staticClass:\"skin-color g3w-long-text\",staticStyle:{\"font-weight\":\"bold\",\"margin\":\"15px 0\"}},[_vm._v(\": \"+_vm._s(_vm.layer.getName()))]):_vm._e(),_vm._v(\" \"),_vm._l((Object.keys(_vm.commits).filter(function (c) { return _vm.commits[c].length; })),function(c){return [_c('h4',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin:pre\",value:((\"editing.messages.commit.\" + c)),expression:\"`editing.messages.commit.${c}`\",arg:\"pre\"}]},[_vm._v(\" (\"+_vm._s(_vm.commits[c].length)+\") \")]),_vm._v(\" \"),_c('divider'),_vm._v(\" \"),_c('ul',_vm._l((_vm.commits[c]),function(item){return _c('li',[_c('details',[_c('summary',[_vm._v(_vm._s(_vm.getType(item))+\" #\"+_vm._s(_vm.getId(item)))]),_vm._v(\" \"),_vm._l((_vm.getAttrs(item)),function(ref){\nvar key = ref[0];\nvar val = ref[1];\nreturn [(_vm.hasValue(item, key))?_c('dl',[_c('dt',[_vm._v(_vm._s(key)+\":\")]),_vm._v(\" \"),_c('dd',[(_vm.isEdited(item, key))?[_c('del',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getValue(item, key)))]),_vm._v(\" ← \"),_c('ins',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getEditingValue(item, key)))])]:_c('span',{ref:\"value\",refInFor:true},[_vm._v(_vm._s(_vm.getEditingValue(item, key) || _vm.getValue(item, key)))]),_vm._v(\" \"),('geometry' === key)?_c('i',[_c('code',[_vm._v(\"\")])]):_vm._e()],2)]):_vm._e()]})],2)])}),0)]}),_vm._v(\" \"),_vm._l((Object.entries(_vm.commits.relations)),function(ref){\nvar id = ref[0];\nvar commits = ref[1];\nreturn _c('changes',{attrs:{\"commits\":{\n add: commits.add,\n update: commits.update,\n delete: commits.delete,\n relations: commits.relations\n },\"relation\":true,\"layer\":_vm.getLayerById(id)}})})],2)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-31b52cc3\"\n\n},{\"../utils/areCoordinatesEqual\":31,\"../utils/getFeatureTableFieldValue\":43,\"vueify/lib/insert-css\":1}],3:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".choose-and-zoom-to-feature[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between}#editing-layers-choose-feature .editing-choose-feature-radio-input[data-v-ad674338]{align-items:center;padding:5px;position:relative;display:flex;justify-content:space-between;border-bottom:1px solid #eee}.ztf[data-v-ad674338]{padding-left:3px;font-size:1.3em;cursor:pointer;margin-top:10px}.magic-radio+label[data-v-ad674338]{color:transparent}.feature-attributes[data-v-ad674338]{overflow-x:auto;display:flex}.feature-attributes>div[data-v-ad674338]{display:flex;flex-direction:column;justify-content:space-between;padding:5px}.f-attr[data-v-ad674338]{font-weight:700;margin-bottom:10px}.f-val[data-v-ad674338]{align-self:start;white-space:nowrap}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GUI = g3wsdk.gui.GUI;\nexports.default = {\n\n name: 'choosefeature',\n\n data: function data() {\n return {\n feature: this.$options.feature\n };\n },\n\n\n methods: {\n selectFeature: function selectFeature(feature) {\n this.feature.splice(0);\n this.feature.push(feature);\n },\n getAttributesFeature: function getAttributesFeature(feature) {\n var properties = feature.getProperties();\n return this.$options.attributes.map(function (_ref) {\n var label = _ref.label,\n name = _ref.name;\n return { attribute: label, value: properties[name] };\n });\n },\n zoomToFeature: function zoomToFeature(feature) {\n GUI.getService('map').zoomToFeatures([feature], { highlight: true, duration: 1000 });\n }\n },\n\n mounted: function mounted() {\n GUI.closeContent();\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\":\"editing-layers-choose-feature\"}},_vm._l((_vm.$options.features),function(feature,index){return _c('div',{staticClass:\"editing-choose-feature-radio-input\"},[_c('section',{staticClass:\"choose-and-zoom-to-feature\"},[_c('div',[_c('input',{staticClass:\"magic-radio\",attrs:{\"id\":(\"choose_feature_\" + index),\"name\":\"radio\",\"type\":\"radio\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.selectFeature(feature)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"choose_feature_\" + index)}},[_vm._v(\"id\")])]),_vm._v(\" \"),_c('div',{staticClass:\"ztf skin-color\",class:_vm.g3wtemplate.font['marker'],on:{\"click\":function($event){$event.stopPropagation();return _vm.zoomToFeature(feature)}}})]),_vm._v(\" \"),_c('section',{staticClass:\"feature-attributes\"},_vm._l((_vm.getAttributesFeature(feature)),function(ref){\nvar attribute = ref.attribute;\nvar value = ref.value;\nreturn _c('div',[_c('span',{staticClass:\"f-attr\"},[_vm._v(_vm._s(attribute))]),_vm._v(\" \"),_c('span',{staticClass:\"f-val\"},[_vm._v(_vm._s(value))])])}),0)])}),0)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-ad674338\"\n\n},{\"vueify/lib/insert-css\":1}],4:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar GUI = g3wsdk.gui.GUI;\nexports.default = {\n\n name: 'Copyfeaturesfromotherlayers',\n\n data: function data() {\n return {\n id: this.$options.layers.find(function (l) {\n return l.selected;\n }).id\n };\n },\n\n\n watch: {\n 'id': function id(_id) {\n this.$options.layers.forEach(function (l) {\n return l.selected = _id === l.id;\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('section',[_c('div',{attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('id'),expression:\"'id'\"}],attrs:{\"id\":\"g3w-select-editable-layers-to-copy\"}},_vm._l((_vm.$options.layers),function(layer){return _c('option',{key:layer.id,domProps:{\"value\":layer.id}},[_vm._v(_vm._s(layer.name))])}),0)])])}\n__vue__options__.staticRenderFns = []\n\n},{}],5:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-panel .editing-button .editing-icon{background-color:#3a4448;color:#222d32;font-size:1.8em;padding:10px;margin:5px;width:45px;height:45px;border-radius:30%;text-align:center}.g3w-editing-panel .editing-button.enabled .editing-icon{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.7)}.g3w-editing-panel .editing-button{cursor:not-allowed}.g3w-editing-panel .editing-button.enabled{cursor:pointer}.g3w-editing-panel .editbtn{border-radius:30%;padding:10px;display:inline-block;opacity:.4;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 4px 0 rgba(0,0,0,.3)}.g3w-editing-panel .editbtn.enabled{opacity:1;cursor:pointer}.g3w-editing-panel .editbtn.enabled.toggled{box-shadow:0 0;background-color:#ddd}\\n.g3w-editing-panel[data-v-14424d18]{margin-bottom:50px}#onlineofflinemessage[data-v-14424d18]{margin-bottom:5px;padding:5px;border-radius:3px;background-color:orange;color:#fff;font-weight:700}.commitbar[data-v-14424d18]{display:flex;justify-content:flex-end;margin-bottom:5px}.commitbar>div[data-v-14424d18]:first-of-type{margin-right:auto}#g3w-select-editable-layers-content[data-v-14424d18]{margin-bottom:10px;font-weight:700}#g3w-select-editable-layers-content label[data-v-14424d18]{color:#fff!important}#g3w-select-editable-layers-to-show[data-v-14424d18]{cursor:pointer}\")\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 _Toolbox = require('./Toolbox.vue');\n\nvar _Toolbox2 = _interopRequireDefault(_Toolbox);\n\nvar _promisify = require('../utils/promisify');\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 GUI = g3wsdk.gui.GUI;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n ApplicationService = _g3wsdk$core.ApplicationService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nexports.default = {\n\n name: 'Editing',\n\n data: function data() {\n return {\n state: this.$options.service.state,\n service: this.$options.service,\n resourcesurl: this.$options.resourcesurl,\n showcommitbar: this.$options.showcommitbar,\n saving: false,\n layersInEditing: 0,\n editingButtonsEnabled: true,\n\n selectedlayers: [],\n\n editinglayers: Object.entries(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getEditableLayers()).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ = _ref2[0],\n l = _ref2[1];\n\n return l.config.editing.visible;\n }).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n layer = _ref4[1];\n\n return { id: id, name: layer.getName(), title: layer.getTitle() };\n }),\n\n activetool: null\n };\n },\n\n\n components: {\n toolbox: _Toolbox2.default\n },\n\n transitions: {\n 'addremovetransition': 'showhide'\n },\n\n methods: {\n updateFilterLayers: function updateFilterLayers() {\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (layers.length > 0) {\n this._selectedlayers = this.selectedlayers;\n this.selectedlayers = layers;\n } else {\n this.selectedlayers = this._selectedlayers;\n this._selectedlayers = layers;\n }\n\n $(this.$refs.selectlayers).val(this.selectedlayers).trigger('change');\n },\n updateLayersInEditing: function updateLayersInEditing(bool) {\n this.layersInEditing += bool ? 1 : -1;\n },\n undo: function undo() {\n if (this.canUndo) {\n this.service.undo();\n }\n },\n redo: function redo() {\n if (this.canRedo) {\n this.service.redo();\n }\n },\n commit: function commit(toolboxId) {\n var _this = this;\n\n if (this.canCommit) {\n this.saving = true;\n this.service.commit({\n toolbox: this.service.getToolBoxById(toolboxId),\n modal: false\n }).always(function () {\n return _this.saving = false;\n });\n }\n },\n startToolBox: function () {\n var _ref5 = _asyncToGenerator(function* (id) {\n var _this2 = this;\n\n var toolbox = this.service.getToolBoxById(id);\n\n var layerId = ApplicationState.online && toolbox.getDependencies().find(function (id) {\n return _this2.service.getToolBoxById(id).isDirty();\n });\n if (layerId) {\n yield this.commit_dirty(layerId);\n }\n toolbox.start();\n });\n\n function startToolBox(_x2) {\n return _ref5.apply(this, arguments);\n }\n\n return startToolBox;\n }(),\n stopToolBox: function () {\n var _ref6 = _asyncToGenerator(function* (id) {\n var toolbox = this.service.getToolBoxById(id);\n\n try {\n if (toolbox.state.editing.history.commit) {\n yield (0, _promisify.promisify)(this.service.commit());\n }\n } catch (e) {\n console.warn(e);\n }\n\n yield toolbox.stop();\n\n var control = undefined === this.service.getToolBoxes().find(function (t) {\n return t.state.editing.on;\n }) && GUI.getService('map').getMapControlByType({ type: 'query' });\n if (control && !control.isToggled()) {\n control.toggle();\n }\n });\n\n function stopToolBox(_x3) {\n return _ref6.apply(this, arguments);\n }\n\n return stopToolBox;\n }(),\n startTool: function () {\n var _ref7 = _asyncToGenerator(function* (toolId, toolboxId) {\n var _this3 = this;\n\n var toolbox = this.service.getToolBoxById(toolboxId);\n var enabled = this.activetool && toolboxId === this.activetool;\n\n if (!enabled && this.service.getToolBoxById(toolbox.getDependencies().find(function (id) {\n return id === _this3.activetool;\n }))) {\n yield this.commit_dirty(this.activetool);\n }\n\n if (!enabled) {\n this.stopTool(this.activetool);\n }\n\n this.activetool = toolboxId;\n toolbox.setActiveTool(toolbox.getToolById(toolId));\n });\n\n function startTool(_x4, _x5) {\n return _ref7.apply(this, arguments);\n }\n\n return startTool;\n }(),\n stopTool: function stopTool(id) {\n if (id) {\n this.service.getToolBoxById(id).stopActiveTool();\n }\n },\n selectToolBox: function () {\n var _ref8 = _asyncToGenerator(function* (id) {\n var toolbox = this.service.getToolBoxById(id);\n var toolboxes = this.service.getToolBoxes();\n var selected = toolboxes.find(function (t) {\n return t.isSelected();\n });\n if (selected) {\n selected.setSelected(false);\n selected.clearMessage();\n }\n\n toolbox.setSelected(true);\n\n this.state.toolboxselected = toolbox;\n });\n\n function selectToolBox(_x6) {\n return _ref8.apply(this, arguments);\n }\n\n return selectToolBox;\n }(),\n commit_dirty: function () {\n var _ref9 = _asyncToGenerator(function* (id) {\n var _this4 = this;\n\n var toolbox = this.service.getToolBoxById(id);\n\n try {\n if (toolbox.isDirty() && toolbox.hasDependencies()) {\n yield (0, _promisify.promisify)(this.service.commit({ toolbox: toolbox }));\n console.info('[EDITING] committed dirty');\n }\n } catch (e) {\n try {\n [layerId].concat(toolbox.getDependencies()).forEach(function (id) {\n var toolbox = _this4.service.getToolBoxById(id);\n var editor = toolbox.getEditor();\n\n editor.getEditingSource().setFeatures((editor.readFeatures() || []).map(function (f) {\n return f.clone();\n }));\n\n toolbox.getSession().getHistory().clear();\n\n toolbox.stopActiveTool();\n });\n console.info('[EDITING] reverted dirty');\n } catch (e) {\n console.warn(e);\n }\n }\n });\n\n function commit_dirty(_x7) {\n return _ref9.apply(this, arguments);\n }\n\n return commit_dirty;\n }(),\n _enableEditingButtons: function _enableEditingButtons(bool) {\n this.editingButtonsEnabled = !bool;\n },\n checkOfflineChanges: function checkOfflineChanges() {\n var _this5 = this;\n\n var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref10$modal = _ref10.modal,\n modal = _ref10$modal === undefined ? true : _ref10$modal,\n _ref10$unlock = _ref10.unlock,\n unlock = _ref10$unlock === undefined ? false : _ref10$unlock;\n\n return new Promise(function (resolve, reject) {\n var changes = JSON.parse(window.localStorage.getItem('EDITING_CHANGES') || null);\n\n if (!changes) {\n return;\n }\n\n var promises = [];\n var layerIds = [];\n\n setTimeout(_asyncToGenerator(function* () {\n for (var _layerId in changes) {\n layerIds.push(_layerId);\n var toolbox = _this5.service.getToolBoxById(_layerId);\n var commitItems = changes[_layerId];\n promises.push(_this5.service.commit({ toolbox: toolbox, commitItems: commitItems, modal: modal }));\n }\n\n try {\n yield (0, _promisify.promisify)($.when.apply(_this5.service, promises));\n resolve();\n } catch (e) {\n console.warn(e);\n reject(e);\n } finally {\n if (unlock) {\n layerIds.forEach(function (layerId) {\n return _this5.service.getLayerById(layerId).unlock();\n });\n }\n\n try {\n window.localStorage.setItem('EDITING_CHANGES', \"{}\");\n } catch (e) {\n console.warn(e);\n }\n }\n }), 1000);\n });\n }\n },\n\n computed: {\n canCommit: function canCommit() {\n return 'default' === this.state.saveConfig.mode && this.state.toolboxselected && this.state.toolboxselected.state.editing.history.commit && this.editingButtonsEnabled;\n },\n canUndo: function canUndo() {\n var canUndo = this.state.toolboxselected && this.state.toolboxselected.state.editing.history.undo && this.editingButtonsEnabled;\n\n this.service.fireEvent('canUndo', canUndo);\n\n return canUndo;\n },\n canRedo: function canRedo() {\n var canRedo = this.state.toolboxselected && this.state.toolboxselected.state.editing.history.redo && this.editingButtonsEnabled;\n\n this.service.fireEvent('canRedo', canRedo);\n\n return canRedo;\n },\n django_admin_url: function django_admin_url() {\n return window.initConfig.user.is_superuser ? new URL('/django-admin/editing/g3weditingfeaturelock/', window.initConfig.baseurl) : false;\n },\n filemanager_url: function filemanager_url() {\n return window.initConfig.user.is_superuser ? new URL('/filemanager/', window.initConfig.baseurl) : false;\n }\n },\n\n watch: {\n canCommit: function canCommit(bool) {\n window.onbeforeunload = function () {\n return bool || undefined;\n };\n },\n layersInEditing: function layersInEditing(n) {\n document.getElementsByClassName('close-pane-button')[0].classList[0 === n ? 'remove' : 'add']('g3w-disabled');\n },\n selectedlayers: function selectedlayers() {\n var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var has_layers = layers.length > 0;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n this.editinglayers.forEach(function (_ref12) {\n var id = _ref12.id;\n\n var toolbox = service.getToolBoxById(id);\n var is_commit = has_layers && toolbox.state.editing.history.commit;\n var is_selected = layers.includes(id);\n\n toolbox.setShow(has_layers ? is_selected : true);\n\n if (has_layers && !is_selected && is_commit) {\n service.commit({ toolbox: toolbox }).always(function () {\n return toolbox.stop();\n });\n }\n\n if (has_layers && !is_selected && !is_commit) {\n toolbox.stop();\n }\n });\n }\n },\n\n created: function created() {\n var _this6 = this;\n\n this._selectedlayers = [];\n\n this.appState = ApplicationState;\n\n this.unByKeys = this.unByKeys || [];\n\n if (ApplicationState.online) {\n this.checkOfflineChanges({ unlock: true });\n }\n\n this.unByKeys.push({\n owner: ApplicationService,\n setter: 'online',\n key: ApplicationService.onafter('online', function () {\n return _this6.checkOfflineChanges({ modal: false }).catch(function (e) {\n return GUI.notify.error(e);\n });\n })\n });\n\n GUI.closeContent();\n\n this.state.open = false;\n CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).forEach(function (l) {\n return l.setInEditing(true);\n });\n\n GUI.on('opencontent', this._enableEditingButtons);\n GUI.on('closeform', this._enableEditingButtons);\n GUI.on('closecontent', this._enableEditingButtons);\n },\n beforeDestroy: function () {\n var _ref13 = _asyncToGenerator(function* () {\n var _this7 = this;\n\n this.service.stop();\n\n this.state.open = false;\n CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).forEach(function (l) {\n return l.setInEditing(false);\n });\n\n GUI.off('opencontent', this._enableEditingButtons);\n GUI.off('closeform', this._enableEditingButtons);\n GUI.off('closecontent', this._enableEditingButtons);\n\n this.unByKeys.forEach(function (_ref14) {\n var owner = _ref14.owner,\n setter = _ref14.setter,\n key = _ref14.key;\n return owner.un(setter, key);\n });\n\n this.service.fireEvent('closeeditingpanel');\n\n var layerIdChanges = Object.keys(this.state.featuresOnClose);\n if (layerIdChanges.length) {\n var inputs = {\n layers: [],\n fids: [],\n formatter: 1\n };\n layerIdChanges.forEach(function (id) {\n var fids = [].concat(_toConsumableArray(_this7.state.featuresOnClose[id]));\n if (fids.length > 0) {\n var layer = CatalogLayersStoresRegistry.getLayerById(id);\n inputs.layers.push(layer);\n inputs.fids.push(fids);\n }\n });\n\n var promise = inputs.layers.length ? DataRouterService.getData('search:layersfids', {\n inputs: inputs,\n outputs: {\n title: 'plugins.editing.editing_changes',\n show: { loading: false }\n }\n }) : Promise.resolve();\n try {\n yield promise;\n } catch (e) {\n console.warn(e);\n }\n }\n\n this.state.featuresOnClose = {};\n\n this.service.getToolBoxes().forEach(function (t) {\n return t.resetDefault();\n });\n\n var control = GUI.getService('map').getMapControlByType({ type: 'query' });\n if (control && !control.isToggled()) {\n control.toggle();\n }\n });\n\n function beforeDestroy() {\n return _ref13.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 _c('div',{staticClass:\"g3w-editing-panel\"},[_c('bar-loader',{attrs:{\"loading\":_vm.saving}}),_vm._v(\" \"),(_vm.layersInEditing > 0)?_c('helpdiv',{staticStyle:{\"font-weight\":\"bold\"},attrs:{\"message\":\"plugins.editing.close_editing_panel.message\"}}):_vm._e(),_vm._v(\" \"),(!_vm.appState.online)?_c('div',{attrs:{\"id\":\"onlineofflinemessage\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.offline'),expression:\"'editing.messages.offline'\"}]})]):_vm._e(),_vm._v(\" \"),(_vm.showcommitbar)?_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.saving),expression:\"saving\"}],staticClass:\"commitbar\"},[_c('div',{class:['editing-button', (_vm.canCommit ? 'enabled' : '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.commit($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['save']]})]),_vm._v(\" \"),_c('div',{class:['editing-button', (_vm.canUndo ? 'enabled': '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.undo($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['arrow-left']]})]),_vm._v(\" \"),_c('div',{class:['editing-button', (_vm.canRedo ? 'enabled' : '')],on:{\"click\":function($event){$event.stopPropagation();return _vm.redo($event)}}},[_c('span',{class:['editing-icon', _vm.g3wtemplate.font['arrow-right']]})])]):_c('div',{staticStyle:{\"height\":\"10px\"}}),_vm._v(\" \"),(_vm.state.showselectlayers && _vm.editinglayers.length > 1)?_c('div',{staticClass:\"skin-color\",attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('label',{directives:[{name:\"t\",rawName:\"v-t\",value:('Layers'),expression:\"'Layers'\"}],attrs:{\"for\":\"g3w-select-editable-layers-to-show\"}}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('selectedlayers'),expression:\"'selectedlayers'\"}],ref:\"selectlayers\",attrs:{\"id\":\"g3w-select-editable-layers-to-show\",\"multiple\":true,\"clear\":true}},_vm._l((_vm.editinglayers),function(editinglayer){return _c('option',{key:editinglayer.id,domProps:{\"value\":editinglayer.id}},[_vm._v(_vm._s(editinglayer.name))])}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"toolboxes\"}},_vm._l((_vm.state.toolboxes),function(toolbox){return _c('toolbox',{key:toolbox.id,attrs:{\"state\":toolbox,\"resourcesurl\":_vm.resourcesurl},on:{\"setselectedtoolbox\":_vm.selectToolBox,\"starttoolbox\":_vm.startToolBox,\"stoptoolbox\":_vm.stopToolBox,\"setactivetool\":_vm.startTool,\"stopactivetool\":_vm.stopTool,\"on-editing\":_vm.updateLayersInEditing,\"update-filter-layers\":_vm.updateFilterLayers}})}),1),_vm._v(\" \"),(_vm.django_admin_url)?_c('p',[_c('a',{attrs:{\"href\":_vm.django_admin_url,\"target\":\"_blank\"}},[_vm._v(\"🔒 Locked features\")])]):_vm._e(),_vm._v(\" \"),(_vm.filemanager_url)?_c('p',[_c('a',{attrs:{\"href\":_vm.filemanager_url,\"target\":\"_blank\"}},[_vm._v(\"📂 File manager\")])]):_vm._e()],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-14424d18\"\n\n},{\"../utils/promisify\":58,\"./Toolbox.vue\":8,\"vueify/lib/insert-css\":1}],6:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-new-relation-vector-type[data-v-2b09c990]{margin-bottom:5px;font-weight:700}.relation_header_title[data-v-2b09c990]{font-weight:700;font-size:1.3em;align-items:center}.relation_header_title[data-v-2b09c990],.relation_header_tools[data-v-2b09c990]{width:100%;display:flex;background-color:#fff}.g3w-editing-relations-add-link-tools[data-v-2b09c990]{display:flex;justify-content:flex-end}.relation_vector_tools[data-v-2b09c990]{display:flex;flex-direction:column;border:2px solid #eee;background-color:#fff;padding:10px}#g3w-select-editable-layers-content[data-v-2b09c990]{flex-grow:1;display:flex;flex-direction:column}#search-box[data-v-2b09c990]{margin-right:auto}.relation_body[data-v-2b09c990]{padding:0}.g3wform-relation-table[data-v-2b09c990]{width:100%}.close_vector_relation_tool[data-v-2b09c990]{align-self:self-end}.close_vector_relation_tool>.g3w-icon[data-v-2b09c990]{font-weight:700;cursor:pointer}.divider[data-v-2b09c990]{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});\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 _workflow2 = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _promisify = require('../utils/promisify');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _convertToGeometry = require('../utils/convertToGeometry');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _updateWorkflows = require('../utils/updateWorkflows');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _eventbus = require('../eventbus');\n\nvar _workflows = require('../workflows');\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 _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 ProjectsRegistry = g3wsdk.core.project.ProjectsRegistry;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar t = g3wsdk.core.i18n.tPlugin;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar toRawType = g3wsdk.core.utils.toRawType;\nvar GUI = g3wsdk.gui.GUI;\nvar FormService = g3wsdk.gui.vue.services.FormService;\nvar _g3wsdk$gui$vue$Mixin = g3wsdk.gui.vue.Mixins,\n fieldsMixin = _g3wsdk$gui$vue$Mixin.fieldsMixin,\n resizeMixin = _g3wsdk$gui$vue$Mixin.resizeMixin,\n mediaMixin = _g3wsdk$gui$vue$Mixin.mediaMixin;\nvar _g3wsdk$ol$interactio = g3wsdk.ol.interactions,\n PickFeatureInteraction = _g3wsdk$ol$interactio.PickFeatureInteraction,\n PickCoordinatesInteraction = _g3wsdk$ol$interactio.PickCoordinatesInteraction;\n\n\nObject.entries({\n Workflow: _workflow2.Workflow,\n Step: _step.Step,\n OpenFormStep: _workflows.OpenFormStep,\n OpenTableStep: _workflows.OpenTableStep,\n AddFeatureStep: _workflows.AddFeatureStep,\n ModifyGeometryVertexStep: _workflows.ModifyGeometryVertexStep,\n MoveFeatureStep: _workflows.MoveFeatureStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nvar color = 'rgb(255,89,0)';\n\nvar SELECTED_STYLES = {\n 'Point': new ol.style.Style({ image: new ol.style.Circle({ radius: 8, fill: new ol.style.Fill({ color: color }) }) }),\n 'MultiPoint': new ol.style.Style({ image: new ol.style.Circle({ radius: 8, fill: new ol.style.Fill({ color: color }) }) }),\n 'Linestring': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }) }),\n 'MultiLinestring': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }) }),\n 'Polygon': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }), fill: new ol.style.Fill({ color: color }) }),\n 'MultiPolygon': new ol.style.Style({ stroke: new ol.style.Stroke({ width: 8, color: color }), fill: new ol.style.Fill({ color: color }) })\n};\n\nexports.default = {\n\n mixins: [mediaMixin, fieldsMixin, resizeMixin],\n\n name: 'g3w-relation',\n\n data: function data() {\n return {\n loading: false,\n show_vector_tools: false,\n disabled: false,\n copylayerid: null,\n copyFeatureLayers: [],\n active: false,\n value: null,\n placeholdersearch: t('editing.search') + ' ...',\n resourcesurl: GUI.getResourcesUrl()\n };\n },\n\n\n methods: {\n resize: function resize() {\n if (!(this.active && 'none' !== this.$el.style.display)) {\n return;\n }\n\n var table = this.$refs.relation_body.querySelector('div.dataTables_scrollBody');\n\n if (table) {\n table.style.height = ((document.querySelector('.g3wform_body') || {}).offsetHeight || 0) - ((document.querySelector('.g3wform_footer') || {}).offsetHeight || 0) - ((this.$refs.relation_header_title || {}).offsetHeight || 0) - ((this.$refs.relation_header_tools || {}).offsetHeight || 0) - ((this.$el.querySelector('.dataTables_scrollHead') || {}).offsetHeight || 0) - ((this.$el.querySelector('.dataTables_paginate.paging_simple_numbers') || {}).offsetHeight || 0) - ((document.querySelector('.editing-save-all-form') || {}).offsetHeight || 0) - ((this.isVectorRelation && this.show_vector_tools && this.$refs.relation_vector_tools || {}).offsetHeight || 0) + 'px';\n }\n\n if (this.relationsTable) {\n this.relationsTable.columns.adjust();\n }\n },\n copyFeatureFromOtherLayer: function copyFeatureFromOtherLayer() {\n var _this = this;\n\n var copyLayer = this.copyFeatureLayers.find(function (l) {\n return _this.copylayerid === l.id;\n });\n var external = copyLayer.external;\n var layer = external ? GUI.getService('map').getLayerById(this.copylayerid) : CatalogLayersStoresRegistry.getLayerById(this.copylayerid);\n var is_vector = external || layer.isGeoLayer();\n this.runAddRelationWorkflow({\n workflow: is_vector ? new this._add_link_workflow.selectandcopy({\n copyLayer: layer,\n isVector: true,\n help: 'editing.steps.help.copy',\n external: external\n }) : undefined,\n isVector: is_vector\n });\n },\n closeVectorTools: function () {\n var _ref3 = _asyncToGenerator(function* () {\n this.show_vector_tools = false;\n yield this.$nextTick();\n this.resize();\n });\n\n function closeVectorTools() {\n return _ref3.apply(this, arguments);\n }\n\n return closeVectorTools;\n }(),\n addVectorRelation: function addVectorRelation() {\n this.runAddRelationWorkflow({\n workflow: new this._add_link_workflow.add(),\n isVector: Layer.LayerTypes.VECTOR === this._layerType\n });\n this.show_vector_tools = false;\n },\n updateSelectRelations: function updateSelectRelations() {\n var bool = !this.selectall || !this.relations.some(function (r) {\n return r.select;\n });\n this.relations.forEach(function (r) {\n return r.select = bool;\n });\n },\n editAttributesRelations: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n var workflow = new _workflow2.Workflow({\n type: 'editmultiattributes',\n steps: [new _workflows.OpenFormStep({ multi: true })]\n });\n var options = this._createWorkflowOptions({\n features: this.relations.filter(function (r) {\n return r.select;\n }).map(function (_ref5) {\n var id = _ref5.id;\n return _this2.getLayer().getEditingSource().getFeatureById(id);\n })\n });\n try {\n yield (0, _promisify.promisify)(workflow.start(options));\n } catch (e) {\n console.warn(e);\n }\n\n workflow.stop();\n });\n\n function editAttributesRelations() {\n return _ref4.apply(this, arguments);\n }\n\n return editAttributesRelations;\n }(),\n addRelationAndLink: function () {\n var _ref6 = _asyncToGenerator(function* () {\n if (this.isVectorRelation) {\n this.show_vector_tools = !this.show_vector_tools;\n yield this.$nextTick();\n this.resize();\n } else {\n this.runAddRelationWorkflow({\n workflow: new this._add_link_workflow.add(),\n isVector: Layer.LayerTypes.VECTOR === this._layerType\n });\n }\n });\n\n function addRelationAndLink() {\n return _ref6.apply(this, arguments);\n }\n\n return addRelationAndLink;\n }(),\n relationAttributesSubset: function relationAttributesSubset(relation) {\n return relation.fields.map(function (_ref7) {\n var label = _ref7.label,\n name = _ref7.name,\n value = _ref7.value;\n return { name: name, label: label, value: value };\n }).flatMap(function (_ref8) {\n var name = _ref8.name,\n label = _ref8.label,\n value = _ref8.value;\n return Array.isArray(value) ? [] : [{ name: name, label: label, value: value }];\n });\n },\n getValue: function getValue(value) {\n if (value && 'Object' === toRawType(value)) {\n value = value.value;\n } else if ('string' == typeof value && 0 === value.indexOf('_new_')) {\n value = null;\n }\n this.value = value;\n return value;\n },\n _createDataTable: function _createDataTable() {\n var _this3 = this;\n\n this.relationsTable = $(this.$refs.relationTable).DataTable({\n autoWidth: false,\n columnDefs: [{ orderable: false, targets: [0, 1] }],\n destroy: true,\n order: [2, 'asc'],\n pageLength: 10,\n responsive: true,\n scrollCollapse: true,\n scrollResize: true,\n scrollX: true\n });\n\n $(\".dataTables_filter, .dataTables_length\").hide();\n\n $('#filterRelation').on('keyup', function (e) {\n return _this3.relationsTable.search(e.target.value).draw();\n });\n },\n destroyTable: function destroyTable() {\n if (this.relationsTable) {\n this.relationsTable = this.relationsTable.destroy();\n this.relationsTable = null;\n $('#filterRelation').off();\n }\n },\n updateTable: function () {\n var _ref9 = _asyncToGenerator(function* () {\n var _this4 = this;\n\n this.destroyTable();\n yield this.$nextTick();\n this._createDataTable();\n setTimeout(function () {\n return _this4.resize();\n });\n });\n\n function updateTable() {\n return _ref9.apply(this, arguments);\n }\n\n return updateTable;\n }(),\n updateNewRelationId: function updateNewRelationId() {\n var _this5 = this;\n\n this._new_relations_ids.forEach(function (_ref10) {\n var clientid = _ref10.clientid,\n id = _ref10.id;\n\n var newrelation = _this5.relations.find(function (r) {\n return clientid === r.id;\n });\n if (newrelation) {\n newrelation.id = id;\n\n (_this5.tools.find(function (ts) {\n return ts.find(function (t) {\n return t.state.id.split(clientid + '_').length > 1;\n });\n }) || []).forEach(function (t) {\n return t.state.id = t.state.id.replace(clientid + '_', id + '_');\n });\n }\n });\n },\n onCommit: function onCommit(_ref11) {\n var _ref11$new_relations = _ref11.new_relations,\n new_relations = _ref11$new_relations === undefined ? {} : _ref11$new_relations;\n\n var relationLayer = (0, _getEditingLayerById.getEditingLayerById)(this.relation.child);\n\n if (new_relations[relationLayer.getId()] && Array.isArray(new_relations[relationLayer.getId()].new)) {\n this._new_relations_ids = [].concat(_toConsumableArray(this._new_relations_ids || []), _toConsumableArray(new_relations[relationLayer.getId()].new.map(function (_ref12) {\n var clientid = _ref12.clientid,\n id = _ref12.id;\n return { clientid: clientid, id: id };\n })));\n }\n },\n getRelationFeatureValue: function getRelationFeatureValue(featureId, property) {\n return (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: this._relationLayerId,\n feature: this.getLayer().getEditingSource().getFeatureById(featureId),\n property: property\n });\n },\n enableDOMElements: function enableDOMElements() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n document.querySelectorAll('.editing-save-all-form').forEach(function (c) {\n if (bool && c.classList.contains('g3w-disabled')) {\n c.classList.remove('g3w-disabled');\n }\n if (!bool && !c.querySelector('.save-all-icon').classList.contains('g3w-disabled')) {\n c.classList.add('g3w-disabled');\n }\n });\n document.querySelectorAll('.g3w-editing-relations-add-link-tools, .g3wform_footer').forEach(function (c) {\n return c.classList.toggle('g3w-disabled', !bool);\n });\n },\n addTools: function addTools(id) {\n var _this6 = this;\n\n var tools = [this.capabilities.includes('change_attr_feature') && {\n state: Vue.observable({\n icon: 'editAttributes.png',\n id: id + '_editattributes',\n name: 'editing.tools.update_feature',\n enabled: true,\n active: false\n }),\n type: 'editfeatureattributes'\n }, Layer.LayerTypes.TABLE === this._layerType && this.capabilities.includes('add_feature') && {\n state: Vue.observable({\n icon: 'pasteFeaturesFromOtherLayers.png',\n id: id + '_copyfeature',\n name: 'editing.tools.copy',\n enabled: true,\n active: false\n }),\n type: 'addfeature'\n }, this.capabilities.includes('delete_feature') && {\n state: Vue.observable({\n icon: 'deleteTableRow.png',\n id: id + '_deletefeature',\n name: 'editing.tools.delete_feature',\n enabled: true,\n active: false\n }),\n type: 'deletefeature'\n }, this.capabilities.includes('change_feature') && Layer.LayerTypes.VECTOR === this._layerType && g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById(this._relationLayerId).getTools().filter(function (t) {\n return Geometry.isPointGeometryType(_this6.getLayer().getGeometryType()) ? 'movefeature' === t.getId() : ['movefeature', 'movevertex'].includes(t.getId());\n }).map(function (tool) {\n return {\n state: Vue.observable(_extends({}, tool, { id: id + '_' + tool.id })),\n type: tool.getOperator().type\n };\n })].flat().filter(Boolean);\n\n this.tools.push(tools);\n return tools;\n },\n startTool: function () {\n var _ref13 = _asyncToGenerator(function* (relationtool, index) {\n var _this7 = this;\n\n try {\n relationtool.state.active = !relationtool.state.active;\n\n if (!relationtool.state.active) {\n return Promise.resolve();\n }\n\n this.tools.forEach(function (tools) {\n tools.forEach(function (t) {\n if (relationtool.state.id !== t.state.id) {\n t.state.active = false;\n }\n });\n });\n\n yield _eventbus.VM.$nextTick();\n\n var d = {};\n var promise = new Promise(function (resolve, reject) {\n Object.assign(d, { resolve: resolve, reject: reject });\n });\n\n var is_vector = Layer.LayerTypes.VECTOR === this._layerType;\n var relation = this.relations[index];\n var toolId = relationtool.state.id.split(relation.id + '_')[1];\n var relationfeature = this.getLayer().getEditingSource().getFeatureById(relation.id);\n var selectStyle = is_vector && SELECTED_STYLES[this.getLayer().getGeometryType()];\n var options = this._createWorkflowOptions({ features: [relationfeature] });\n\n if ('copyfeature' === toolId) {\n yield new Promise(function () {\n var _ref14 = _asyncToGenerator(function* (resolve, reject) {\n options.inputs.features = [(0, _cloneFeature.cloneFeature)(relationfeature, _this7.getLayer())];\n\n var workflow = new _workflow2.Workflow({\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n });\n try {\n var outputs = yield (0, _promisify.promisify)(workflow.start(options));\n var feature = outputs.features[outputs.features.length - 1];\n _this7.relations.push({ id: feature.getId(), fields: _this7.getLayer().getFieldsWithValues(feature, { relation: true }) });\n resolve(feature);\n } catch (e) {\n console.warn(e);\n\n if (options.inputs && options.inputs.relationFeatures) {\n var _relations;\n\n (_relations = _this7.relations).push.apply(_relations, _toConsumableArray((options.inputs.relationFeatures.newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this7.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n }\n reject(e);\n } finally {\n workflow.stop();\n relationtool.state.active = false;\n }\n });\n\n return function (_x4, _x5) {\n return _ref14.apply(this, arguments);\n };\n }());\n }\n\n if ('deletefeature' === toolId) {\n\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: promise, inputs: { features: [relationfeature], layer: this.getLayer() }, style: selectStyle });\n\n GUI.dialog.confirm(t(\"editing.messages.delete_feature\"), function (res) {\n if (res) {\n _workflow2.Workflow.Stack.getCurrent().getSession().pushDelete(_this7._relationLayerId, relationfeature);\n\n _this7.relations.splice(index, 1);\n\n _this7.tools.splice(index, 1);\n\n var unique_fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this7._relationLayerId];\n\n if (undefined !== unique_fields) {\n Object.keys(relationfeature.getProperties()).filter(function (p) {\n return undefined !== unique_fields[p];\n }).forEach(function (p) {\n var values = new Set(unique_fields[p]);\n\n values.delete(relationfeature.get(p));\n });\n }\n\n _this7.getLayer().getEditingSource().removeFeature(relationfeature);\n\n if (relationfeature.isNew() && undefined === _workflow2.Workflow.Stack._workflows.find(function (w) {\n return w.getSession().state.changes.filter(function (_ref15) {\n var feature = _ref15.feature;\n return relationfeature.getUid() !== feature.getUid();\n }).length > 0;\n })) {\n _workflow2.Workflow.Stack._workflows.filter(function (w) {\n return w.getContextService() instanceof FormService;\n }).forEach(function (w) {\n return setTimeout(function () {\n return w.getContextService().state.update = false;\n });\n });\n } else {\n (0, _updateWorkflows.updateWorkflows)();\n }\n\n d.resolve(res);\n }\n\n if (!res) {\n d.reject();\n }\n });\n }\n\n if ('editattributes' === toolId) {\n var workflow = new _workflow2.Workflow({ type: 'edittablefeature', steps: [new _workflows.OpenFormStep({ selectStyle: selectStyle })] });\n\n try {\n yield (0, _promisify.promisify)(workflow.start(options));\n\n this.getLayer().getFieldsWithValues(relationfeature, { relation: true }).forEach(function (f) {\n relation.fields.forEach(function (rf) {\n if (rf.name === f.name) {\n rf.value = f.value;\n }\n });\n });\n d.resolve(true);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n\n workflow.stop();\n }\n\n if (['movevertex', 'movefeature'].includes(toolId) && this.currentRelationFeatureId !== relationfeature.getId()) {\n this.currentRelationFeatureId = relationfeature.getId();\n GUI.getService('map').zoomToFeatures([relationfeature]);\n }\n\n if (['movevertex', 'movefeature'].includes(toolId)) {\n GUI.setModal(false);\n this.enableDOMElements(false);\n var _workflow = new _workflow2.Workflow({\n type: relationtool.type,\n steps: [new {\n 'movevertex': _workflows.ModifyGeometryVertexStep,\n 'movefeature': _workflows.MoveFeatureStep\n }[toolId]({ selectStyle: selectStyle })]\n });\n\n var unwatch = _eventbus.VM.$watch(function () {\n return relationtool.state.active;\n }, function (bool) {\n if (!bool) {\n _this7.enableDOMElements(true);\n GUI.setModal(true);\n _workflow.unbindEscKeyUp();\n _workflow.stop();\n unwatch();\n d.reject(false);\n }\n });\n\n _workflow.bindEscKeyUp(function () {\n GUI.setModal(true);\n unwatch();\n d.reject(false);\n });\n\n try {\n yield (0, _promisify.promisify)(_workflow.start(options));\n\n _workflow2.Workflow.Stack.getParents().filter(function (w) {\n return w.getContextService().setUpdate;\n }).forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n d.resolve(true);\n setTimeout(function () {\n return _this7.startTool(relationtool, index);\n });\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n\n _workflow.unbindEscKeyUp();\n _workflow.stop();\n unwatch();\n }\n\n try {\n yield promise;\n } catch (e) {\n console.trace('START TOOL FAILED', e);\n return Promise.reject(e);\n } finally {\n relationtool.state.active = false;\n }\n } catch (e) {\n console.warn(e);\n }\n });\n\n function startTool(_x2, _x3) {\n return _ref13.apply(this, arguments);\n }\n\n return startTool;\n }(),\n getLayer: function getLayer() {\n return (0, _getEditingLayerById.getEditingLayerById)(this._relationLayerId);\n },\n runAddRelationWorkflow: function () {\n var _ref16 = _asyncToGenerator(function* () {\n var _this8 = this;\n\n var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n workflow = _ref17.workflow,\n _ref17$isVector = _ref17.isVector,\n isVector = _ref17$isVector === undefined ? false : _ref17$isVector;\n\n if (isVector) {\n GUI.setModal(false);\n GUI.hideContent(true);\n }\n\n var options = this._createWorkflowOptions();\n\n var _options$context = options.context,\n fatherField = _options$context.fatherField,\n fatherValue = _options$context.fatherValue;\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n }),\n relationField = _getRelationFieldsFro.relationField;\n\n try {\n var _relations2;\n\n var outputs = yield (0, _promisify.promisify)(workflow.start(options));\n\n if (isVector) {\n workflow.bindEscKeyUp();\n }\n\n var _outputs$relationFeat = outputs.relationFeatures,\n newFeatures = _outputs$relationFeat.newFeatures,\n originalFeatures = _outputs$relationFeat.originalFeatures;\n\n var setRelationFieldValue = function setRelationFieldValue(_ref18) {\n var field = _ref18.field,\n value = _ref18.value;\n\n newFeatures.forEach(function (newFeature, i) {\n newFeature.set(field, value);\n if (options.parentFeature.isNew()) {\n originalFeatures[i].set(field, value);\n }\n _this8.getLayer().getEditingSource().updateFeature(newFeature);\n options.context.session.pushUpdate(_this8._relationLayerId, newFeature, originalFeatures[i]);\n });\n };\n fatherField.forEach(function (field, i) {\n return setRelationFieldValue({ field: field, value: fatherValue[i] });\n });\n\n if (options.parentFeature.isNew() && this.getParent().editable.length > 0) {\n var keyRelationFeatureChange = options.parentFeature.on('propertychange', function (evt) {\n if (options.parentFeature.isNew()) {\n if (relationField.find(evt.key)) {\n setRelationFieldValue({\n field: evt.key,\n value: evt.target.get(evt.key)\n });\n }\n } else {\n ol.Observable.unByKey(keyRelationFeatureChange);\n }\n });\n }\n\n (_relations2 = this.relations).push.apply(_relations2, _toConsumableArray((newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this8.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n } catch (inputs) {\n console.warn(inputs);\n\n if (inputs && inputs.relationFeatures) {\n var _relations3;\n\n (_relations3 = this.relations).push.apply(_relations3, _toConsumableArray((inputs.relationFeatures.newFeatures || []).map(function (f) {\n return { id: f.getId(), fields: _this8.getLayer().getFieldsWithValues(f, { relation: true }) };\n })));\n }\n\n options.context.session.rollbackDependecies([this._relationLayerId]);\n }\n\n workflow.stop();\n\n if (isVector) {\n workflow.unbindEscKeyUp();\n GUI.hideContent(false);\n GUI.setModal(true);\n\n setTimeout(function () {\n return _this8.resize();\n });\n }\n });\n\n function runAddRelationWorkflow() {\n return _ref16.apply(this, arguments);\n }\n\n return runAddRelationWorkflow;\n }(),\n linkRelation: function () {\n var _ref19 = _asyncToGenerator(function* () {\n var _this9 = this;\n\n this.disabled = true;\n\n var is_vector = Layer.LayerTypes.VECTOR === this._layerType;\n var workflow = new this._add_link_workflow.link(is_vector ? {\n selectStyle: SELECTED_STYLES[this.getLayer().getGeometryType()]\n } : {});\n var options = this._createWorkflowOptions();\n\n var _getRelationFieldsFro2 = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n }),\n ownField = _getRelationFieldsFro2.ownField,\n relationField = _getRelationFieldsFro2.relationField;\n\n options.context.excludeFeatures = relationField.reduce(function (accumulator, rField, index) {\n accumulator[ownField[index]] = _this9.getParent().values[rField];\n return accumulator;\n }, {});\n\n if (is_vector) {\n GUI.setModal(false);\n }\n\n var feature = _workflow2.Workflow.Stack.getCurrent().getCurrentFeature();\n\n var getRelationFeatures = function getRelationFeatures() {\n return (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(_this9.layerId, {\n relations: [_this9.relation],\n feature: feature,\n operator: 'not',\n filterType: is_vector ? 'bbox' : 'fid'\n });\n };\n\n var response = {\n promise: undefined,\n showContent: false\n };\n\n if (is_vector) {\n options.context.beforeRun = _asyncToGenerator(function* () {\n yield new Promise(function (resolve) {\n return setTimeout(resolve);\n });\n yield getRelationFeatures();\n });\n\n workflow.bindEscKeyUp();\n\n response = {\n promise: workflow.start(options),\n showContent: true\n };\n\n this.enableDOMElements(false);\n } else {\n yield getRelationFeatures();\n }\n\n var linked = false;\n\n try {\n var outputs = yield (0, _promisify.promisify)(response.promise || workflow.start(options));\n\n (outputs.features || []).forEach(function (relation) {\n if (undefined === _this9.relations.find(function (rel) {\n return rel.id === relation.getId();\n })) {\n linked = linked || true;\n var originalRelation = relation.clone();\n Object.entries(_this9.getParent().values).forEach(function (_ref21) {\n var _ref22 = _slicedToArray(_ref21, 2),\n field = _ref22[0],\n value = _ref22[1];\n\n relation.set(ownField[relationField.findIndex(function (rF) {\n return field === rF;\n })], value);\n });\n _workflow2.Workflow.Stack.getCurrent().getSession().pushUpdate(_this9._relationLayerId, relation, originalRelation);\n _this9.relations.push({\n fields: _this9.getLayer().getFieldsWithValues(relation, { relation: true }),\n id: relation.getId()\n });\n } else {\n GUI.notify.warning(t(\"editing.relation_already_added\"));\n }\n });\n } catch (e) {\n console.warn(e);\n options.context.session.rollbackDependecies([this._relationLayerId]);\n }\n\n if (is_vector) {\n this.enableDOMElements(true);\n }\n\n if (response.showContent) {\n GUI.closeUserMessage();\n workflow.unbindEscKeyUp();\n }\n\n if (linked) {\n (0, _updateWorkflows.updateWorkflows)();\n }\n\n workflow.stop();\n\n this.disabled = false;\n });\n\n function linkRelation() {\n return _ref19.apply(this, arguments);\n }\n\n return linkRelation;\n }(),\n unlinkRelation: function (_unlinkRelation) {\n function unlinkRelation(_x8) {\n return _unlinkRelation.apply(this, arguments);\n }\n\n unlinkRelation.toString = function () {\n return _unlinkRelation.toString();\n };\n\n return unlinkRelation;\n }(function (index) {\n var dialog = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n return unlinkRelation({\n layerId: this.layerId,\n relation: this.relation,\n relations: this.relations,\n index: index,\n dialog: dialog\n });\n }),\n getParent: function getParent() {\n var _this10 = this;\n\n var parentLayer = this.parentWorkflow.getLayer();\n\n var _getRelationFieldsFro3 = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: this.layerId, relation: this.relation }),\n ownField = _getRelationFieldsFro3.ownField;\n\n var pk = ownField.find(function (f) {\n return parentLayer.isPkField(f);\n });\n\n return {\n editable: ownField.filter(function (f) {\n return parentLayer.isEditingFieldEditable(f);\n }),\n\n pk: pk,\n\n values: ownField.reduce(function (father, field) {\n var feature = _this10.parentWorkflow.getCurrentFeature();\n\n var fields = _this10.parentWorkflow.getInputs().fields;\n return Object.assign(father, _defineProperty({}, field, pk === field && feature.isNew() ? feature.getId() : fields ? fields.find(function (f) {\n return field === f.name;\n }).value : feature.get(field)));\n }, {})\n };\n },\n _createWorkflowOptions: function _createWorkflowOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var fields = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: this._relationLayerId,\n relation: this.relation\n });\n var parent = Object.entries(this.getParent().values);\n return {\n parentFeature: _workflow2.Workflow.Stack.getCurrent().getCurrentFeature(),\n context: {\n session: _workflow2.Workflow.Stack.getCurrent().getSession(),\n excludeFields: fields.ownField,\n fatherValue: parent.map(function (_ref23) {\n var _ref24 = _slicedToArray(_ref23, 2),\n _ = _ref24[0],\n value = _ref24[1];\n\n return value;\n }),\n fatherField: parent.map(function (_ref25) {\n var _ref26 = _slicedToArray(_ref25, 1),\n field = _ref26[0];\n\n return fields.ownField[fields.relationField.findIndex(function (rField) {\n return field === rField;\n })];\n }) },\n inputs: {\n features: options.features || [],\n layer: this.getLayer()\n }\n };\n }\n },\n\n computed: {\n selectall: function selectall() {\n return this.relations.every(function (r) {\n return r.select;\n });\n },\n relationsLength: function relationsLength() {\n return this.relations.length;\n },\n fieldrequired: function fieldrequired() {\n var _this11 = this;\n\n return (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: this._relationLayerId, relation: this.relation }).ownField.some(function (field) {\n return (0, _getEditingLayerById.getEditingLayerById)(_this11._relationLayerId).isFieldRequired(field);\n });\n },\n show_add_link: function show_add_link() {\n return 0 === this.relations.length || 'ONE' !== this.relation.type;\n }\n },\n\n watch: {\n relations: function relations(_) {\n var updatedrelations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (0 === updatedrelations.length) {\n this.destroyTable();\n } else {\n this.updateNewRelationId();\n this.updateTable();\n }\n },\n show_vector_tools: function show_vector_tools(bool) {\n this.enableDOMElements(!bool);\n this.disabled = bool;\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n },\n created: function created() {\n var _this12 = this,\n _Layer$LayerTypes$TAB;\n\n var relationLayer = (0, _getEditingLayerById.getEditingLayerById)(this.relation.child);\n\n this._new_relations_ids = [];\n\n this.onCommit = this.onCommit.bind(this);\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').on('commit', this.onCommit);\n\n this.isVectorRelation = Layer.LayerTypes.VECTOR === relationLayer.getType();\n\n if (this.isVectorRelation) {\n var geometryType = relationLayer.getGeometryType();\n this.copyFeatureLayers = [].concat(_toConsumableArray(CatalogLayersStoresRegistry.getLayers({\n QUERYABLE: true,\n GEOLAYER: true\n }).filter(function (l) {\n return l.getGeometryType && l.getGeometryType() && ![_this12.relation.child, _this12.relation.father].includes(l.getId()) && (l.getGeometryType() === geometryType || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(l.getGeometryType(), geometryType) && Geometry.isMultiGeometry(geometryType));\n }).map(function (l) {\n return {\n id: l.getId(),\n name: l.getName(),\n external: false\n };\n })), _toConsumableArray(GUI.getService('map').getExternalLayers('vector').filter(function (l) {\n var features = l.getSource().getFeatures() || [];\n\n if (!features[0] || !features[0].getGeometry()) {\n return false;\n }\n var type = features[0].getGeometry().getType();\n return geometryType === type || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, type) && (Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(type));\n }).map(function (l) {\n return {\n id: l.get('id'),\n name: l.get('name'),\n external: true\n };\n }))).sort(function (a, b) {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n this.addExternalLayerKey = GUI.getService('catalog').onafter('addExternalLayer', function (_ref27) {\n var layer = _ref27.layer,\n type = _ref27.type;\n\n if ('vector' === type) {\n var externalLayer = GUI.getService('map').getExternalLayers().find(function (l) {\n return layer.id === l.get('id');\n });\n if (externalLayer) {\n var features = externalLayer.getSource().getFeatures() || [];\n if (!features[0] || !features[0].getGeometry()) {\n return;\n }\n var _type = features[0].getGeometry().getType();\n if (geometryType === _type || (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, _type) && (Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(_type))) {\n _this12.copyFeatureLayers.push({\n id: externalLayer.get('id'),\n name: externalLayer.get('name'),\n external: true\n });\n }\n }\n }\n });\n }\n\n this.copylayerid = this.copyFeatureLayers.length ? this.copyFeatureLayers[0].id : null;\n\n this.loadEventuallyRelationValuesForInputs = false;\n\n this.currentRelationFeatureId = null;\n\n this._relationLayerId = this.relation.child === this.layerId ? this.relation.father : this.relation.child;\n\n this._layerType = this.getLayer().getType();\n\n this.parentWorkflow = _workflow2.Workflow.Stack.getCurrent();\n\n this.capabilities = this.parentWorkflow.getLayer().getEditingCapabilities();\n\n this.tools = [];\n\n var self = this;\n\n this._add_link_workflow = (_Layer$LayerTypes$TAB = {}, _defineProperty(_Layer$LayerTypes$TAB, Layer.LayerTypes.TABLE, {\n link: function link() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'edittable',\n backbuttonlabel: 'plugins.editing.form.buttons.save_and_back_table',\n steps: [new _workflows.OpenTableStep()]\n }));\n },\n add: function add() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n }));\n }\n }), _defineProperty(_Layer$LayerTypes$TAB, Layer.LayerTypes.VECTOR, {\n link: function link() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow({\n type: 'linkrelation',\n steps: [new _step.Step(_extends({}, options, {\n help: \"editing.steps.help.select_feature_to_relation\",\n run: function run(inputs, context) {\n var _this13 = this;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref28 = _asyncToGenerator(function* (resolve, reject) {\n var promise = new Promise(function (r) {\n return _this13.resolve = r;\n });\n GUI.setModal(false);\n var editingLayer = inputs.layer.getEditingLayer();\n try {\n if (context.beforeRun && 'function' === typeof context.beforeRun) {\n yield (0, _promisify.promisify)(context.beforeRun());\n }\n var features = editingLayer.getSource().getFeatures().filter(function (f) {\n return Object.entries(context.excludeFeatures || {}).reduce(function (bool, _ref29) {\n var _ref30 = _slicedToArray(_ref29, 2),\n field = _ref30[0],\n value = _ref30[1];\n\n return bool && value != f.get(field);\n }, true);\n });\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({\n promise: (0, _promisify.$promisify)(promise),\n inputs: { layer: inputs.layer, features: features },\n style: _this13.selectStyle\n });\n\n _this13.addInteraction(new PickFeatureInteraction({ layers: [editingLayer], features: features }), {\n 'picked': function picked(e) {\n inputs.features.push(e.feature);\n GUI.setModal(true);\n resolve(inputs);\n }\n });\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x14, _x15) {\n return _ref28.apply(this, arguments);\n };\n }()));\n },\n stop: function stop() {\n GUI.setModal(true);\n\n this.resolve(true);\n this.resolve = null;\n return true;\n }\n }))]\n });\n },\n\n add: function add() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var addStep = new _workflows.AddFeatureStep(_extends({}, options, {\n steps: {\n draw: {\n description: 'editing.steps.help.draw_new_feature',\n done: false\n }\n },\n tools: ['snap', 'measure']\n }));\n\n addStep.on('stop', function () {\n addStep.setUserMessageStepDone('draw');\n GUI.closeUserMessage();\n });\n\n return new _workflow2.Workflow(_extends({}, options, {\n type: 'addfeature',\n steps: [addStep, new _workflows.OpenFormStep(options)],\n registerEscKeyEvent: true\n }));\n },\n\n selectandcopy: function selectandcopy() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return new _workflow2.Workflow({\n type: 'selectandcopyfeaturesfromotherlayer',\n steps: [new _step.Step(_extends({}, options, {\n help: \"editing.steps.help.pick_feature\",\n steps: {\n select: {\n description: 'editing.workflow.steps.selectPoint',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this14 = this;\n\n if (!options.copyLayer) {\n return (0, _promisify.$promisify)(Promise.resolve());\n }\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var features = [];\n var geometryType = inputs.layer.getGeometryType();\n\n if (options.isVector) {\n yield new Promise(function () {\n var _ref32 = _asyncToGenerator(function* (resolve) {\n _this14.addInteraction(options.external ? new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: options.copyLayer }) : new PickCoordinatesInteraction(), {\n 'picked': function () {\n var _ref33 = _asyncToGenerator(function* (e) {\n try {\n features = (0, _convertToGeometry.convertToGeometry)(options.external ? e.features : ((yield DataRouterService.getData('query:coordinates', {\n inputs: {\n coordinates: e.coordinate,\n query_point_tolerance: ProjectsRegistry.getCurrentProject().getQueryPointTolerance(),\n layerIds: [options.copyLayer.getId()],\n multilayers: false\n },\n outputs: null\n })).data[0] || { features: [] }).features, geometryType);\n } catch (e) {\n console.warn(e);\n } finally {\n resolve();\n }\n });\n\n function picked(_x19) {\n return _ref33.apply(this, arguments);\n }\n\n return picked;\n }()\n });\n });\n\n return function (_x18) {\n return _ref32.apply(this, arguments);\n };\n }());\n }\n\n var _feature = void 0;\n\n try {\n _feature = features.length > 1 ? yield (0, _promisify.promisify)((0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs })) : features[0];\n } catch (e) {\n console.warn(e);\n }\n\n if (_feature) {\n var feature = new Feature({\n feature: _feature,\n properties: inputs.layer.getEditingFields().filter(function (attr) {\n return !attr.pk;\n }).map(function (attr) {\n return attr.name;\n })\n });\n feature.setTemporaryId();\n inputs.features = [feature];\n inputs.layer.getEditingLayer().getSource().addFeature(feature);\n context.session.pushAdd(inputs.layer.getId(), feature, false);\n return inputs;\n }\n\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n closable: false,\n autoclose: true\n });\n\n return Promise.reject();\n }));\n },\n stop: function stop() {\n self.show_vector_tools = false;\n this.setUserMessageStepDone('select');\n GUI.closeUserMessage();\n }\n })), new _workflows.OpenFormStep(options)],\n registerEscKeyEvent: true\n });\n }\n }), _Layer$LayerTypes$TAB)[this._layerType];\n\n this.relations.forEach(function (r) {\n return _this12.addTools(r.id);\n });\n },\n activated: function () {\n var _ref34 = _asyncToGenerator(function* () {\n if (this.isVectorRelation) {\n this.mapExtent = GUI.getService('map').getMapBBOX();\n }\n\n this.show_vector_tools = false;\n\n if (!this.loadEventuallyRelationValuesForInputs) {\n this.loading = true;\n\n try {\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({\n type: 'show-relation-editing',\n id: (0, _getRelationId.getRelationId)({ layerId: this.layerId, relation: this.relation }),\n component: this\n });\n } catch (e) {\n console.warn(e);\n }\n\n this.loading = false;\n\n this.loadEventuallyRelationValuesForInputs = true;\n }\n\n this.active = true;\n\n yield this.$nextTick();\n\n if (!this.relationsTable && this.relations.length > 0) {\n this._createDataTable();\n }\n\n this.resize();\n });\n\n function activated() {\n return _ref34.apply(this, arguments);\n }\n\n return activated;\n }(),\n deactivated: function deactivated() {\n this.destroyTable();\n this.active = false;\n\n this.relations.forEach(function (r) {\n return r.select = false;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.loadEventuallyRelationValuesForInputs = true;\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').off('commit', this.onCommit);\n\n if (this.isVectorRelation && null !== this.currentRelationFeatureId) {\n GUI.getService('map').zoomToExtent(this.mapExtent);\n this.mapExtent = null;\n }\n\n if (this.addExternalLayerKey) {\n GUI.getService('catalog').un('addExternalLayer', this.addExternalLayerKey);\n this.addExternalLayerKey = 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',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"margin-bottom\":\"5px\"}},[_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),_c('div',{ref:\"relation_header_title\",staticClass:\"relation_header_title box-header with-border skin-color\"},[_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.edit_relation'),expression:\"'editing.edit_relation'\"}]}),_vm._v(\" \"),_c('span',{staticStyle:{\"margin-left\":\"2px\"}},[_vm._v(\": \"+_vm._s(_vm.relation.name.toUpperCase()))])]),_vm._v(\" \"),_c('div',{ref:\"relation_header_tools\",staticClass:\"relation_header_tools box-header with-border\"},[_c('div',{attrs:{\"id\":\"search-box\"}},[(_vm.relationsLength)?_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"filterRelation\",\"placeholder\":_vm.placeholdersearch}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"g3w-editing-relations-add-link-tools\"},[(_vm.relationsLength > 0 && _vm.capabilities.includes('change_attr_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.tools.update_multi_features_relations'),expression:\"'plugins.editing.tools.update_multi_features_relations'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon\"},[_c('span',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.relations.every(function (r) { return !r.select; })),expression:\"relations.every(r => !r.select)\"}],on:{\"click\":function($event){$event.stopPropagation();return _vm.editAttributesRelations()}}},[_c('img',{attrs:{\"height\":\"25\",\"width\":\"25\",\"src\":(_vm.resourcesurl + \"images/multiEditAttributes.png\")}})])]):_vm._e(),_vm._v(\" \"),(_vm.capabilities.includes('change_attr_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.form.relations.tooltips.link_relation'),expression:\"'plugins.editing.form.relations.tooltips.link_relation'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon add-link\",class:[{ 'disabled': !_vm.show_add_link }, _vm.g3wtemplate.font['link']],attrs:{\"align\":\"center\"},on:{\"click\":function($event){$event.stopPropagation();_vm.show_add_link ? _vm.linkRelation() : null}}}):_vm._e(),_vm._v(\" \"),(_vm.capabilities.includes('add_feature'))?_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:bottom.create\",value:('plugins.editing.form.relations.tooltips.add_relation'),expression:\"'plugins.editing.form.relations.tooltips.add_relation'\",arg:\"bottom\",modifiers:{\"create\":true}}],staticClass:\"g3w-icon add-link pull-right\",class:[{ 'disabled' : !_vm.show_add_link }, _vm.g3wtemplate.font['plus']],on:{\"click\":function($event){$event.stopPropagation();_vm.show_add_link ? _vm.addRelationAndLink() : null}}}):_vm._e()])]),_vm._v(\" \"),(_vm.show_vector_tools)?_c('section',{ref:\"relation_vector_tools\",staticClass:\"relation_vector_tools\"},[_c('span',{staticClass:\"close_vector_relation_tool\",on:{\"click\":function($event){$event.stopPropagation();return _vm.closeVectorTools($event)}}},[_c('i',{staticClass:\"g3w-icon skin-color\",class:_vm.g3wtemplate.font['close']})]),_vm._v(\" \"),_c('div',[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.draw_new_feature'),expression:\"'editing.relation.draw_new_feature'\"}],staticClass:\"g3w-editing-new-relation-vector-type\"}),_vm._v(\" \"),_c('button',{staticClass:\"btn skin-button\",staticStyle:{\"width\":\"100%\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addVectorRelation($event)}}},[_c('i',{class:_vm.g3wtemplate.font['pencil']})])]),_vm._v(\" \"),_c('section',[_c('span',{staticClass:\"divider\"}),_vm._v(\" \"),_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.draw_or_copy'),expression:\"'editing.relation.draw_or_copy'\"}],staticStyle:{\"align-self\":\"center\"}}),_vm._v(\" \"),_c('span',{staticClass:\"divider\"}),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"g3w-select-editable-layers-content\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.copy_feature_from_other_layer'),expression:\"'editing.relation.copy_feature_from_other_layer'\"}],staticClass:\"g3w-editing-new-relation-vector-type\"}),_vm._v(\" \"),_c('select',{directives:[{name:\"select2\",rawName:\"v-select2\",value:('copylayerid'),expression:\"'copylayerid'\"}],attrs:{\"id\":\"g3w-select-editable-layers-to-copy\"}},_vm._l((_vm.copyFeatureLayers),function(layer){return _c('option',{key:layer.id,domProps:{\"value\":layer.id}},[_vm._v(_vm._s(layer.name))])}),0),_vm._v(\" \"),_c('button',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(0 === _vm.copyFeatureLayers.length),expression:\"0 === copyFeatureLayers.length\"}],staticClass:\"btn skin-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.copyFeatureFromOtherLayer($event)}}},[_c('i',{class:_vm.g3wtemplate.font['clipboard']})])])])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.disabled),expression:\"disabled\"}],ref:\"relation_body\",staticClass:\"relation_body box-body\"},[(_vm.relationsLength > 0 && !_vm.update)?_c('table',{ref:\"relationTable\",staticClass:\"table g3wform-relation-table table-striped nowrap\"},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"padding\":\"10px\"}},[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"id\":\"select_all_relations\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.selectall},on:{\"change\":function($event){return _vm.updateSelectRelations()}}}),_vm._v(\" \"),_c('label',{staticStyle:{\"margin\":\"0\"},attrs:{\"for\":\"select_all_relations\"}},[_vm._v(\" \")])]),_vm._v(\" \"),_c('th',{directives:[{name:\"t\",rawName:\"v-t\",value:('tools'),expression:\"'tools'\"}]}),_vm._v(\" \"),_c('th'),_vm._v(\" \"),_vm._l((_vm.relationAttributesSubset(_vm.relations[0])),function(attribute){return _c('th',[_vm._v(_vm._s(attribute.label))])})],2)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.relations),function(relation,index){return _c('tr',{key:relation.id,staticClass:\"featurebox-header\"},[_c('td',{staticStyle:{\"padding-top\":\"0\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(relation.select),expression:\"relation.select\"}],staticClass:\"magic-checkbox\",attrs:{\"id\":(\"select_relation__\" + index),\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(relation.select)?_vm._i(relation.select,null)>-1:(relation.select)},on:{\"change\":function($event){var $$a=relation.select,$$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.$set(relation, \"select\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(relation, \"select\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(relation, \"select\", $$c)}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"select_relation__\" + index)}})]),_vm._v(\" \"),_c('td',[_c('div',{staticStyle:{\"display\":\"flex\"}},_vm._l(((_vm.tools[index] || _vm.addTools(_vm.relations[index].id))),function(tool){\nvar _obj;\nreturn _c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:top.create\",value:((\"plugins.\" + (tool.state.name))),expression:\"`plugins.${tool.state.name}`\",arg:\"top\",modifiers:{\"create\":true}}],key:tool.state.id,class:( _obj = { enabled: true, 'toggled': tool.state.active }, _obj[(\"editbtn \" + (tool.state.id))] = true, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.startTool(tool, index)}}},[_c('img',{attrs:{\"height\":\"20px\",\"width\":\"20px\",\"src\":(_vm.resourcesurl + \"images/\" + (tool.state.icon))}})])}),0)]),_vm._v(\" \"),_c('td',{staticClass:\"action-cell\"},[(!_vm.fieldrequired && _vm.capabilities.includes('change_attr_feature'))?_c('div',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.form.relations.tooltips.unlink_relation'),expression:\"'plugins.editing.form.relations.tooltips.unlink_relation'\",arg:\"right\",modifiers:{\"create\":true}}],staticClass:\"g3w-mini-relation-icon g3w-icon\",class:_vm.g3wtemplate.font['unlink'],attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.unlinkRelation(index)}}}):_vm._e()]),_vm._v(\" \"),_vm._l((_vm.relationAttributesSubset(relation)),function(attribute){return _c('td',[(_vm.isMedia(attribute.value) && _vm.getValue(attribute.value))?_c('div',{staticClass:\"preview\"},[_c('a',{attrs:{\"href\":_vm.getValue(attribute.value),\"target\":\"_blank\"}},[_c('div',{staticClass:\"previewtype\",class:_vm.getMediaType(attribute.value.mime_type).type},[_c('i',{staticClass:\"fa-2x\",class:_vm.g3wtemplate.font[_vm.getMediaType(attribute.value.mime_type).type]})])]),_vm._v(\" \"),_c('div',{staticClass:\"filename\"},[_vm._v(_vm._s(_vm.getValue(attribute.value).split('/').pop()))])]):(['photo', 'link'].includes(_vm.getFieldType(attribute)))?_c('a',{attrs:{\"href\":_vm.getValue(attribute.value),\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.getValue(attribute.value))+\"\\n \")]):_c('span',[_vm._v(_vm._s(_vm.getValue(_vm.getRelationFeatureValue(relation.id, attribute.name))))])])})],2)}),0)]):_vm._e()])],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-2b09c990\"\n\n},{\"../eventbus\":11,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addTableFeature\":30,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/cloneFeature\":35,\"../utils/convertToGeometry\":36,\"../utils/getEditingLayerById\":42,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/isSameBaseGeometryType\":56,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/updateWorkflows\":64,\"../workflows\":65,\"vueify/lib/insert-css\":1}],7:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".g3w-editing-table table.dataTable tbody td{padding:3px 5px}\\n.editing_table_title[data-v-c130bb64]{margin-top:0;margin-bottom:2px;font-size:1.5em;font-weight:700;color:var(--skin-color)}#table-editing-tools[data-v-c130bb64]{display:flex;justify-content:space-between}#table-editing-tools i[data-v-c130bb64]{margin:5px}#buttons button.btn[data-v-c130bb64]{font-weight:700!important;min-width:80px}.table_editing_footer_buttons[data-v-c130bb64]{position:absolute;bottom:10px;width:100%;display:flex;justify-content:center}.editing_table_header_content[data-v-c130bb64]{display:flex;justify-content:space-between;align-items:baseline}.editing_table_relation_messagge[data-v-c130bb64]{margin-bottom:10px;font-size:1.3em;background-color:#f5f5f5;padding:3px;border-radius:3px;font-weight:700}\")\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 _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 _step = require('../g3wsdk/workflow/step');\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _workflows = require('../workflows');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _promisify = require('../utils/promisify');\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 tPlugin = g3wsdk.core.i18n.tPlugin;\nvar GUI = g3wsdk.gui.GUI;\nvar resizeMixin = g3wsdk.gui.vue.Mixins.resizeMixin;\n\nvar Media_Field = g3wsdk.gui.vue.Fields.media_field;\n\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nexports.default = {\n\n name: 'Table',\n\n mixins: [resizeMixin],\n\n components: {\n 'g3w-media': Media_Field\n },\n\n data: function data() {\n return {\n dataTable: null,\n show: true,\n state: this.$options.service.state\n };\n },\n\n\n methods: {\n showTool: function showTool(type) {\n return undefined !== this.state.capabilities.find(function (cap) {\n return cap === type;\n });\n },\n resize: function () {\n var _ref3 = _asyncToGenerator(function* () {\n if ('none' === this.$el.style.display) {\n return;\n }\n\n yield this.$nextTick();\n\n $('#editing_table div.dataTables_scrollBody').height($(\".content\").height() - $('.close-panel-block').outerHeight() - $('#editing_table div.dataTables_scrollHeadInner').outerHeight() - $('.editing_table_title').outerHeight() - $('.editing_table_header').outerHeight() - $('.editing_table_relation_messagge').outerHeight() - $('.dataTables_length').outerHeight() - $('.dataTables_paginate.paging_simple_numbers').outerHeight() - $('.dataTables_info').outerHeight() - $('.dataTables_filter').outerHeight() - $('.table_editing_footer_buttons').outerHeight() - $('#editing_table .dataTables_paginate.paging_simple_numbers').outerHeight());\n\n if (this.dataTable) {\n this.dataTable.columns.adjust();\n }\n });\n\n function resize() {\n return _ref3.apply(this, arguments);\n }\n\n return resize;\n }(),\n showValue: function showValue(key) {\n return !!this.state.headers.find(function (h) {\n return key === h.name;\n });\n },\n isMediaField: function isMediaField(name) {\n var isMedia = false;\n for (var i = 0; i < this.state.headers.length; i++) {\n var header = this.state.headers[i];\n if (name === header.name && 'media' === header.input.type) {\n isMedia = true;\n break;\n }\n }\n return isMedia;\n },\n stop: function stop() {\n this.state.promise.reject();\n },\n save: function save() {\n var _this = this;\n\n this.state.isrelation ? this.state.promise.resolve({ features: (this._linkFeatures || []).map(function (i) {\n return _this.state.features[i];\n }) }) : this.state.promise.resolve();\n },\n cancel: function cancel() {\n this.state.promise.reject();\n },\n deleteFeature: function () {\n var _ref4 = _asyncToGenerator(function* (uid) {\n var _this2 = this;\n\n var element = $('#editing_table table tr#' + uid);\n var layer = this.state.inputs.layer;\n var layerId = layer.getId();\n var childRelations = layer.getChildren();\n var relationinediting = childRelations.length && (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: layer.getRelations().getArray()\n }).length > 0;\n\n try {\n yield new Promise(function (resolve, reject) {\n GUI.dialog.confirm('

' + tPlugin('editing.messages.delete_feature') + '

\\n
' + (relationinediting ? tPlugin('editing.messages.delete_feature_relations') : '') + '
', function (result) {\n if (result) {\n var index = _this2.state.features.findIndex(function (f) {\n return f.getUid() === uid;\n });\n var feature = _this2.state.features[index];\n var session = _this2.state.context.session;\n var _layerId = _this2.state.inputs.layer.getId();\n _this2.state.inputs.layer.getEditingSource().removeFeature(feature);\n session.pushDelete(_layerId, feature);\n _this2.state.rows.splice(index, 1);\n resolve();\n } else {\n reject();\n }\n });\n });\n\n this.dataTable.row(element).remove().draw();\n\n yield this.$nextTick();\n } catch (e) {\n console.warn(e);\n }\n });\n\n function deleteFeature(_x) {\n return _ref4.apply(this, arguments);\n }\n\n return deleteFeature;\n }(),\n copyFeature: function () {\n var _ref5 = _asyncToGenerator(function* (uid) {\n var _this3 = this;\n\n yield new Promise(function () {\n var _ref6 = _asyncToGenerator(function* (resolve, reject) {\n var feature = (0, _cloneFeature.cloneFeature)(_this3.state.features.find(function (f) {\n return uid === f.getUid();\n }), _this3.state.inputs.layer.getEditingLayer());\n\n _this3.state.workflow = new _workflow.Workflow({\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n });\n _this3.state.inputs.features.push(feature);\n try {\n var outputs = yield (0, _promisify.promisify)(_this3.state.workflow.start({\n context: _this3.state.context,\n inputs: _this3.state.inputs\n }));\n var _feature = outputs.features[outputs.features.length - 1];\n var newFeature = {};\n Object.entries(_this3.state.rows[0]).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n key = _ref8[0],\n _ = _ref8[1];\n\n newFeature[key] = (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: _this3.state.layerId,\n feature: _feature,\n property: key\n });\n });\n newFeature.__gis3w_feature_uid = _feature.getUid();\n _this3.state.rows.push(newFeature);\n resolve(newFeature);\n } catch (e) {\n console.warn(e);reject(e);\n } finally {\n _this3.state.workflow.stop();\n\n console.log('here we are');\n }\n });\n\n return function (_x3, _x4) {\n return _ref6.apply(this, arguments);\n };\n }());\n\n this.show = false;\n this.dataTable.destroy();\n\n yield this.$nextTick();\n\n this.show = true;\n\n yield this.$nextTick();\n\n this.setDataTable();\n });\n\n function copyFeature(_x2) {\n return _ref5.apply(this, arguments);\n }\n\n return copyFeature;\n }(),\n editFeature: function () {\n var _ref9 = _asyncToGenerator(function* (uid) {\n var _this4 = this;\n\n var index = this.state.features.findIndex(function (f) {\n return uid === f.getUid();\n });\n var feature = this.state.features[index];\n\n this.state.workflow = new _workflow.Workflow({ type: 'edittablefeature', steps: [new _workflows.OpenFormStep()] });\n\n var inputs = this.state.inputs;\n\n inputs.features.push(feature);\n\n try {\n var outputs = yield (0, _promisify.promisify)(this.state.workflow.start({\n context: this.state.context,\n inputs: inputs\n }));\n var _feature2 = outputs.features[outputs.features.length - 1];\n Object.entries(this.state.rows[index]).forEach(function (_ref10) {\n var _ref11 = _slicedToArray(_ref10, 2),\n key = _ref11[0],\n _ = _ref11[1];\n\n _this4.state.rows[index][key] = (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({\n layerId: _this4.state.layerId,\n feature: _feature2,\n property: key\n });\n });\n } catch (e) {\n console.warn(e);\n } finally {\n this.state.workflow.stop();\n }\n });\n\n function editFeature(_x5) {\n return _ref9.apply(this, arguments);\n }\n\n return editFeature;\n }(),\n linkFeature: function linkFeature(index, evt) {\n if (evt.target.checked) {\n this._linkFeatures.push(index);\n } else {\n this._linkFeatures = this._linkFeatures.filter(function (addindex) {\n return addindex !== index;\n });\n }\n },\n getValue: function getValue(value) {\n if (value && 'object' === (typeof value === 'undefined' ? 'undefined' : _typeof(value)) && Object === value.constructor) {\n value = value.value;\n } else if ('string' == typeof value && 0 === value.indexOf('_new_')) {\n value = null;\n }\n return value;\n },\n setDataTable: function setDataTable() {\n this.dataTable = $('#editing_table table').DataTable({\n columnDefs: [{ orderable: false, targets: 0 }],\n order: [1, 'asc'],\n pageLength: 10,\n scrollCollapse: true,\n scrollResize: true,\n scrollX: true\n });\n this.resize();\n }\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n\n GUI.disableSideBar(true);\n\n GUI.showUserMessage({\n type: 'loading',\n message: 'plugins.editing.messages.loading_table_data',\n autoclose: false,\n closable: false\n });\n },\n mounted: function () {\n var _ref12 = _asyncToGenerator(function* () {\n\n yield this.$nextTick();\n\n if (this.state.isrelation) {\n this._linkFeatures = [];\n }\n\n this.setDataTable();\n\n this.resize();\n\n setTimeout(function () {\n return GUI.closeUserMessage();\n }, 300);\n });\n\n function mounted() {\n return _ref12.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.cancel();\n this._linkFeatures = null;\n this.dataTable.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('div',{staticClass:\"g3w-editing-table\",attrs:{\"id\":\"editing_table\"}},[_c('div',{ref:\"editing_table_header\",staticClass:\"editing_table_header\"},[_c('div',{staticClass:\"editing_table_header_content\"},[_c('h3',{staticClass:\"editing_table_title\"},[_vm._v(_vm._s(_vm.state.title))])]),_vm._v(\" \"),(_vm.state.isrelation)?_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.relation.table.info'),expression:\"'editing.relation.table.info'\"}],staticClass:\"editing_table_relation_messagge\"}):_vm._e()]),_vm._v(\" \"),(_vm.show)?_c('table',{staticClass:\"display\",staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[(!_vm.state.isrelation)?_c('th',{staticStyle:{\"max-width\":\"60px\"}}):_vm._e(),_vm._v(\" \"),(_vm.state.isrelation)?_c('th'):_vm._e(),_vm._v(\" \"),_vm._l((_vm.state.headers),function(header){return _c('th',[_vm._v(_vm._s(header.label))])})],2)]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.state.rows),function(feature,index){return _c('tr',{key:feature.__gis3w_feature_uid,attrs:{\"id\":feature.__gis3w_feature_uid}},[(!_vm.state.isrelation)?_c('td',[_c('div',{attrs:{\"id\":\"table-editing-tools\"}},[_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.edit'),expression:\"'plugins.editing.table.edit'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('change_attr_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['pencil'],staticStyle:{\"color\":\"#30cce7\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.editFeature(feature.__gis3w_feature_uid)}}}):_vm._e()]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.copy'),expression:\"'plugins.editing.table.copy'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('add_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['copy-paste'],staticStyle:{\"color\":\"#d98b14\",\"padding\":\"5px 7px 5px 7px\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.copyFeature(feature.__gis3w_feature_uid)}}}):_vm._e()]),_vm._v(\" \"),_c('span',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.table.delete'),expression:\"'plugins.editing.table.delete'\",arg:\"right\",modifiers:{\"create\":true}}]},[(_vm.showTool('delete_feature'))?_c('i',{staticClass:\"g3w-icon\",class:_vm.g3wtemplate.font['trash-o'],staticStyle:{\"color\":\"red\"},attrs:{\"aria-hidden\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteFeature(feature.__gis3w_feature_uid)}}}):_vm._e()])])]):_vm._e(),_vm._v(\" \"),(_vm.state.isrelation)?_c('td',[_c('input',{staticClass:\"magic-checkbox\",attrs:{\"id\":(\"relation__\" + index),\"type\":\"checkbox\"},on:{\"change\":function($event){return _vm.linkFeature(index, $event)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":(\"relation__\" + index)}})]):_vm._e(),_vm._v(\" \"),_vm._l((feature),function(value,key){return (_vm.showValue(key))?_c('td',{key:key},[(_vm.getValue(value) && _vm.isMediaField(key))?_c('g3w-media',{attrs:{\"state\":value}}):_c('p',[_vm._v(_vm._s(_vm.getValue(value)))])],1):_vm._e()})],2)}),0)]):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"table_editing_footer_buttons\",staticClass:\"table_editing_footer_buttons\",attrs:{\"id\":\"buttons\"}},[_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'),expression:\"state.isrelation ? 'editing.form.buttons.save_and_back' : 'editing.form.buttons.save'\"}],staticClass:\"btn btn-success\",staticStyle:{\"margin-right\":\"10px\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.save($event)}}}),_vm._v(\" \"),_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.form.buttons.cancel'),expression:\"'editing.form.buttons.cancel'\"}],staticClass:\"btn btn-danger\",on:{\"click\":function($event){$event.stopPropagation();return _vm.cancel($event)}}})])])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-c130bb64\"\n\n},{\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../utils/addTableFeature\":30,\"../utils/cloneFeature\":35,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getRelationsInEditing\":51,\"../utils/promisify\":58,\"../workflows\":65,\"vueify/lib/insert-css\":1}],8:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".panel.mobile[data-v-17ba9f33]{margin-bottom:5px}.panel.mobile .panel-heading[data-v-17ba9f33]{display:flex;justify-content:space-between}.panel.mobile .panel-heading .panel-title[data-v-17ba9f33]{margin-top:auto;margin-bottom:auto}.panel.mobile .panel-heading .start-editing[data-v-17ba9f33]{margin:auto;margin-right:0;padding:6px}.panel.mobile .tools-content .editbtn[data-v-17ba9f33]{padding:9px}.panel.mobile .toolbox .panel-body[data-v-17ba9f33]{padding:5px!important}.toolbox_help_message[data-v-17ba9f33]{font-weight:lighter}.toolbox[data-v-17ba9f33]{padding-bottom:5px}.panel[data-v-17ba9f33]{border:0!important;margin-bottom:8px}.panel-heading[data-v-17ba9f33]{padding:5px 10px;width:100%}.toolboxselected[data-v-17ba9f33]{box-shadow:0 0 0 3px var(--skin-color)}.panel:not(.toolboxselected) .info[data-v-17ba9f33]{opacity:.4}.panel:not(.toolboxactive) .panel-heading[data-v-17ba9f33]{border-radius:3px;filter:grayscale(.8)}.panel:not(.geolayer) .panel-body[data-v-17ba9f33]{padding-top:0}.panel.toolboxactive:not(.geolayer) .editbtn.start-editing[data-v-17ba9f33]{color:#fff!important}.panel:not(.geolayer) .panel-heading[data-v-17ba9f33]{color:#3a4448}.editbtn.start-editing[data-v-17ba9f33]{padding:13px;color:currentColor!important;font-size:1.1em;margin:0}.panel-title[data-v-17ba9f33]{font-weight:700;word-break:break-word;padding:8px 0;display:inline-block}#toolsoftoolcontainer[data-v-17ba9f33]{display:flex;flex-direction:column;margin:5px;padding:5px;border-radius:5px}.info[data-v-17ba9f33]{color:#000}.info>i[data-v-17ba9f33]{color:#007bff;padding-right:2px}.info+.tools-content[data-v-17ba9f33]{margin-top:1em}.filter-by-relation[data-v-17ba9f33]{margin-right:5px;cursor:pointer;color:currentColor!important}.tools-content[data-v-17ba9f33]{display:flex;flex-wrap:wrap;gap:10px}.message[data-v-17ba9f33]{margin-bottom:5px;font-size:1.1em;color:#000;margin-top:5px}.snap-tool[data-v-17ba9f33]{display:flex}.snap-tool label>b[data-v-17ba9f33]{color:#222d32!important}.tools-of-tool-snap[data-v-17ba9f33]{display:flex;width:100%;justify-content:space-between}.tools-of-tool-snap label span[data-v-17ba9f33]{color:#222d32!important}.panel-body.disabled[data-v-17ba9f33]{opacity:.7}.panel-body.disabled>[data-v-17ba9f33]{pointer-events:none}\")\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\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 GUI = g3wsdk.gui.GUI;\nvar Layer = g3wsdk.core.layer.Layer;\nvar getResolutionFromScale = g3wsdk.ol.utils.getResolutionFromScale;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n\nvar snapInteraction = void 0;\n\nexports.default = {\n\n name: 'Toolbox',\n\n props: ['state', 'resourcesurl'],\n\n data: function data() {\n return {\n active: false,\n helpmessage: null,\n\n toggled: {\n relation: false,\n layer: false },\n snapAll: false\n };\n },\n\n\n computed: {\n editDisabled: function editDisabled() {\n return this.state.loading && !this.state.startstopediting;\n },\n hasRelations: function hasRelations() {\n return this.state.editing.dependencies.length > 0;\n },\n loading: function loading() {\n return this.state.loading || this.state.changingtools;\n },\n canEdit: function canEdit() {\n return this.state.editing.canEdit;\n },\n father: function father() {\n return this.state.editing.father && this.hasRelations;\n },\n showtoolsoftool: function showtoolsoftool() {\n return this.state.toolsoftool.length > 0;\n },\n isLayerReady: function isLayerReady() {\n return this.state.layer.state.editing.ready;\n },\n toolboxCursor: function toolboxCursor() {\n return !this.isLayerReady || !this.canEdit ? 'url(' + this.resourcesurl + 'cursors/mZoomIn.svg), zoom-in' : undefined;\n },\n get_tool_title: function get_tool_title() {\n return function (title) {\n return g3wsdk.core.ApplicationState.language && tPlugin(title);\n };\n }\n },\n\n methods: {\n select: function select() {\n if (this.isLayerReady && !this.state.selected) {\n this.$emit('setselectedtoolbox', this.state.id);\n }\n },\n fitZoomToScale: function fitZoomToScale(e) {\n if (this.state.selected && !this.canEdit) {\n var map = GUI.getService('map');\n map.goToRes(map.getCenter(), getResolutionFromScale(this.state._constraints.scale, map.getMapUnits()));\n }\n },\n toggleEditing: function toggleEditing() {\n this.select();\n this.toggled.layer = !(this.state.editing.on || this.toggled.layer);\n if (this.toggled.layer && this.state.layer.state.editing.ready && !this.state.loading) {\n this.$emit(this.state.editing.on ? 'stoptoolbox' : 'starttoolbox', this.state.id);\n }\n if (!this.toggled.layer) {\n this.$emit('stoptoolbox', this.state.id);\n }\n },\n toggleTool: function toggleTool(toolId) {\n if (undefined === toolId) {\n this.$emit('stopactivetool', this.state.id);\n } else {\n this.$emit('setactivetool', toolId, this.state.id);\n }\n this.select();\n },\n toggleFilterByRelation: function toggleFilterByRelation() {\n this.toggled.relation = !this.toggled.relation;\n this.$emit('update-filter-layers', this.toggled.relation ? [this.state.id].concat(_toConsumableArray(this.state.editing.dependencies)) : []);\n },\n _initSnap: function _initSnap() {\n var _this = this;\n\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n\n if (!tool) {\n return;\n }\n\n this.snapFeatures = new ol.Collection();\n\n this.snapEvents = [];\n\n this.snapToolboxes = [];\n\n this.snapUnwatches = [];\n\n this.$watch(function () {\n return tool.options.checked;\n }, function () {\n return _this.activeSnapInteraction();\n });\n this.$watch(function () {\n return tool.options.checkedAll;\n }, function () {\n return _this.activeSnapInteraction();\n });\n\n this.$watch(function () {\n return tool.options.active;\n }, function () {\n if (tool.options.active) {\n _this.activeSnapInteraction();\n } else if (snapInteraction) {\n GUI.getService('map').removeInteraction(snapInteraction);\n }\n });\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayers().filter(function (l) {\n return Layer.LayerTypes.VECTOR === l.getType();\n }).forEach(function (l) {\n var toolbox = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById(l.getId());\n var source = toolbox.getLayer().getEditingSource();\n\n _this.snapFeatures.extend(source.readFeatures());\n\n _this.snapEvents.push({\n source: source,\n olKey: source.getFeaturesCollection().on('add', function (evt) {\n return _this.addSnapFeatures([evt.element]);\n }),\n settersAndKeys: {\n 'addFeatures': source.onbefore('addFeatures', _this.addSnapFeatures),\n 'addFeature': source.onbefore('addFeature', _this.addSnapFeatures),\n 'clear': source.onbefore('clear', function () {\n source.readFeatures().forEach(function (f) {\n return _this.snapFeatures.remove(f);\n });\n })\n }\n });\n\n if (tool.options.layerId !== l.getId()) {\n var editing = toolbox.getState().editing;\n _this.snapUnwatches.push(_this.$watch(function () {\n return editing.on;\n }, _this.setShowSnapAll));\n _this.snapToolboxes.push(editing);\n }\n });\n\n this.setShowSnapAll();\n },\n _unloadSnap: function _unloadSnap() {\n if (!snapInteraction) {\n return;\n }\n\n try {\n this.snapEvents.forEach(function (d) {\n Object.keys(d.settersAndKeys).forEach(function (event) {\n d.source.un(event, d.settersAndKeys[event]);\n });\n ol.Observable.unByKey(d.olKey);\n });\n this.snapUnwatches.forEach(function (unwatch) {\n return unwatch();\n });\n\n snapInteraction = null;\n\n this.snapUnwatches = null;\n this.snapToolboxes = null;\n this.snapEvents = null;\n } catch (e) {\n console.warn(e);\n }\n },\n addSnapFeatures: function addSnapFeatures(features) {\n this.snapFeatures.extend(features);\n },\n setShowSnapAll: function setShowSnapAll() {\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n if (tool) {\n this.snapAll = !!this.snapToolboxes.find(function (editing) {\n return editing.on;\n });\n tool.options.checkedAll = tool.options.showSnapAll ? tool.options.checkedAll : false;\n }\n },\n activeSnapInteraction: function activeSnapInteraction() {\n var map = GUI.getService('map');\n var tool = (this.state.toolsoftool || []).find(function (t) {\n return 'snap' === t.type;\n });\n\n if (snapInteraction) {\n map.removeInteraction(snapInteraction);\n }\n\n snapInteraction = null;\n\n if ((tool.options.checked || tool.options.checkedAll) && tool.options.active) {\n snapInteraction = new ol.interaction.Snap({\n source: !tool.options.checkedAll && tool.options.checked && tool.options.source,\n features: tool.options.checkedAll && this.snapFeatures });\n map.addInteraction(snapInteraction);\n }\n }\n },\n\n watch: {\n 'state.activetool': function () {\n var _ref = _asyncToGenerator(function* (tool) {\n yield this.$nextTick();\n this.helpmessage = tool && (tool.messages.help || tool.name);\n });\n\n function stateActivetool(_x) {\n return _ref.apply(this, arguments);\n }\n\n return stateActivetool;\n }(),\n 'state.editing.on': function stateEditingOn(bool) {\n this.$emit('on-editing', bool);\n },\n 'state.toolsoftool': function stateToolsoftool(newTools, oldTools) {\n if (!newTools.length) {\n oldTools.filter(function (t) {\n return 'measure' === t.type;\n }).forEach(function (t) {\n return t.options.onChange(false);\n });\n this._unloadSnap();\n } else {\n this._initSnap();\n }\n }\n },\n\n created: function created() {\n this.$emit('canEdit', { id: this.state.id });\n },\n mounted: function () {\n var _ref2 = _asyncToGenerator(function* () {\n yield this.$nextTick();\n });\n\n function mounted() {\n return _ref2.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this._unloadSnap();\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 () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.state.show),expression:\"state.show\"}],staticClass:\"toolbox\",attrs:{\"id\":'id_toolbox_' + _vm.state.id}},[_c('div',{staticClass:\"panel\",class:{\n 'mobile': _vm.isMobile(),\n 'toolboxselected': _vm.state.selected,\n 'toolboxactive': _vm.state.editing.on && _vm.canEdit,\n 'geolayer': _vm.state.layer.isGeoLayer(),\n },on:{\"click\":function($event){$event.stopPropagation();return _vm.select($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLayerReady),expression:\"!isLayerReady\"}],staticClass:\"bar-loader\"}),_vm._v(\" \"),(_vm.state.toolboxheader)?_c('div',{staticClass:\"panel-heading container\",style:({ background: _vm.state.color})},[(_vm.father)?_c('i',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.tooltip.filter_by_relation'),expression:\"'plugins.editing.tooltip.filter_by_relation'\",arg:\"right\",modifiers:{\"create\":true}}],class:'filter-by-relation ' + _vm.g3wtemplate.font['relation'],on:{\"click\":_vm.toggleFilterByRelation}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"panel-title\"},[_vm._v(_vm._s(_vm.state.title))]),_vm._v(\" \"),_c('i',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.editDisabled),expression:\"editDisabled\"},{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('plugins.editing.tooltip.edit_layer'),expression:\"'plugins.editing.tooltip.edit_layer'\",arg:\"left\",modifiers:{\"create\":true}}],staticClass:\"start-editing editbtn skin-tooltip-left\",class:( _obj = {\n 'pull-right': !_vm.isMobile(),\n 'enabled': _vm.isLayerReady,\n 'g3w-icon-toggled': _vm.state.editing.on\n }, _obj[_vm.g3wtemplate.font[(_vm.state.editing.on || _vm.toggled.layer) ? 'checkmark' : 'pencil']] = true, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleEditing($event)}}})]):_vm._e(),_vm._v(\" \"),_c('bar-loader',{attrs:{\"loading\":_vm.loading}}),_vm._v(\" \"),(!_vm.state.changingtools && (_vm.state.editing.on || _vm.toggled.layer))?_c('div',{class:{ 'panel-body':true, disabled: (!_vm.isLayerReady || !_vm.canEdit) },style:({ cursor: _vm.toolboxCursor }),on:{\"click\":_vm.fitZoomToScale}},[(!_vm.state.layer.isGeoLayer())?_c('div',{staticClass:\"info\"},[_c('i',{class:_vm.g3wtemplate.font['info']}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.toolbox_has_no_geometry'),expression:\"'editing.messages.toolbox_has_no_geometry'\"}]}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),(_vm.hasRelations)?_c('div',{staticClass:\"info\"},[_c('i',{class:_vm.g3wtemplate.font['info']}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.messages.toolbox_has_relation'),expression:\"'editing.messages.toolbox_has_relation'\"}]}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),(_vm.state.message)?_c('div',{staticStyle:{\"color\":\"#000\"}},[_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.state.message),expression:\"state.message\"}],staticClass:\"text-justify\"}),_vm._v(\" \"),_c('divider')],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"tools-content\"},_vm._l((_vm.state.tools),function(tool){\n var _obj;\nreturn (tool.visible)?_c('div',{key:tool.id,class:( _obj = { 'enabled' : tool.enabled, 'toggled' : tool.active }, _obj[(\"editbtn \" + (tool.id))] = true, _obj ),on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();tool.enabled && _vm.toggleTool(tool.active ? undefined : tool.id)}}},[_c('img',{attrs:{\"height\":\"25\",\"width\":\"25\",\"src\":(_vm.resourcesurl + \"images/\" + (tool.icon)),\"title\":_vm.get_tool_title((\"\" + (tool.name)))}})]):_vm._e()}),0),_vm._v(\" \"),_c('div',{staticClass:\"message\",attrs:{\"id\":(\"id_toolbox_messages_\" + (_vm.state.id))}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showtoolsoftool)?_c('div',{attrs:{\"id\":\"toolsoftoolcontainer\"}},[_vm._l((_vm.state.toolsoftool),function(tool){return [('measure' === tool.type)?_c('div',{staticClass:\"snap-tool\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checked),expression:\"tool.options.checked\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"id\":\"g3w_editing_show_measure_tool\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(tool.options.checked)?_vm._i(tool.options.checked,null)>-1:(tool.options.checked)},on:{\"change\":[function($event){var $$a=tool.options.checked,$$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.$set(tool.options, \"checked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checked\", $$c)}},function () { return tool.options.onChange(tool.options.checked); }]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:('plugins.editing.toolsoftool.measure'),expression:\"'plugins.editing.toolsoftool.measure'\",arg:\"right\",modifiers:{\"create\":true}}],attrs:{\"for\":\"g3w_editing_show_measure_tool\"}},[_c('b',{class:_vm.g3wtemplate.font['measure']})])]):('snap' === tool.type)?_c('div',{staticClass:\"tools-of-tool-snap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checked),expression:\"tool.options.checked\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"type\":\"checkbox\",\"id\":(\"snap_\" + (_vm.state.id))},domProps:{\"checked\":Array.isArray(tool.options.checked)?_vm._i(tool.options.checked,null)>-1:(tool.options.checked)},on:{\"change\":[function($event){var $$a=tool.options.checked,$$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.$set(tool.options, \"checked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checked\", $$c)}},function($event){_vm.snapAll && tool.options.checked ? tool.options.checkedAll = false : null}]}}),_vm._v(\" \"),_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:right.create\",value:( 'plugins.editing.toolsoftool.snap'),expression:\" 'plugins.editing.toolsoftool.snap'\",arg:\"right\",modifiers:{\"create\":true}}],attrs:{\"for\":(\"snap_\" + (_vm.state.id))}},[_c('span',{class:_vm.g3wtemplate.font['magnete']})]),_vm._v(\" \"),(_vm.snapAll)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(tool.options.checkedAll),expression:\"tool.options.checkedAll\"}],staticClass:\"magic-checkbox snap_tools_of_tools\",attrs:{\"type\":\"checkbox\",\"id\":(\"snap_all_\" + (_vm.state.id))},domProps:{\"checked\":Array.isArray(tool.options.checkedAll)?_vm._i(tool.options.checkedAll,null)>-1:(tool.options.checkedAll)},on:{\"change\":[function($event){var $$a=tool.options.checkedAll,$$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.$set(tool.options, \"checkedAll\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(tool.options, \"checkedAll\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(tool.options, \"checkedAll\", $$c)}},function($event){tool.options.checkedAll ? tool.options.checked = false : null}]}}):_vm._e(),_vm._v(\" \"),(_vm.snapAll)?_c('label',{directives:[{name:\"t-tooltip\",rawName:\"v-t-tooltip:left.create\",value:('plugins.editing.toolsoftool.snapall'),expression:\"'plugins.editing.toolsoftool.snapall'\",arg:\"left\",modifiers:{\"create\":true}}],attrs:{\"for\":(\"snap_all_\" + (_vm.state.id))}},[_c('span',{class:_vm.g3wtemplate.font['magnete']}),_vm._v(\" \"),_c('b',{class:_vm.g3wtemplate.font['layers']})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('divider')]})],2):_vm._e()]),_vm._v(\" \"),(_vm.helpmessage)?_c('div',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(_vm.helpmessage),expression:\"helpmessage\"}],staticClass:\"toolbox_help_message\"}):_vm._e()],1)]):_vm._e()],1)])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-17ba9f33\"\n\n},{\"vueify/lib/insert-css\":1}],9:[function(require,module,exports){\nvar __vueify_style_dispose__ = require(\"vueify/lib/insert-css\").insert(\".steps-list[data-v-1689d33c]{align-self:flex-start;list-style:none;padding:10px;margin-bottom:0}li[data-v-1689d33c]{margin-bottom:5px}li.done[data-v-1689d33c]{font-weight:700;color:green}li.done>.description[data-v-1689d33c]{font-weight:700}.dynamic-step[data-v-1689d33c]{padding:10px;font-size:1.2em}.button-step[data-v-1689d33c]{display:inline-flex;align-items:center}.button-step[data-v-1689d33c],button.btn-success[data-v-1689d33c]{font-weight:700;align-self:normal}\")\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n\n data: function data() {\n return { steps: {} };\n },\n\n methods: {\n completeStep: function completeStep(step) {\n step.done = true;\n step.buttonnext.done();\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:\"steps-list\"},_vm._l((_vm.steps),function(step,id){return _c('li',{key:id,class:{ 'done': step.done },style:({ display: step.buttonnext && 'inline-flex' })},[(step.buttonnext)?_c('span',{staticClass:\"button-step\"},[_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(step.description),expression:\"step.description\"}],staticClass:\"description\"}),_vm._v(\" \"),(step.dynamic)?_c('span',{staticClass:\"dynamic-step\"},[_vm._v(_vm._s(step.dynamic))]):_vm._e(),_vm._v(\" \"),_c('button',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('editing.workflow.next'),expression:\"'editing.workflow.next'\"}],class:'btn btn-success' + (step.buttonnext.disabled ? ' g3w-disabled' : '' ),staticStyle:{\"margin-left\":\"10px\"},on:{\"click\":function($event){return _vm.completeStep(step)}}})]):[_c('i',{class:_vm.g3wtemplate.getFontClass(step.done ? 'success' : 'empty-circle')}),_vm._v(\" \"),_c('span',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:(step.description),expression:\"step.description\"}]})]],2)}),0)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-1689d33c\"\n\n},{\"vueify/lib/insert-css\":1}],10:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Session = exports.ChangesManager = exports.Flow = undefined;\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 _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 _promisify = require('../../utils/promisify');\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 _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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Queque = function () {\n function Queque() {\n _classCallCheck(this, Queque);\n\n this.tasks = [];\n }\n\n _createClass(Queque, [{\n key: 'addTask',\n value: function addTask(task) {\n this.tasks.push(task);\n }\n }, {\n key: 'run',\n value: function run() {\n var reverse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n while (this.tasks.length) {\n var task = reverse ? this.tasks.pop() : this.tasks.shift();task();\n }\n }\n }, {\n key: 'flush',\n value: function flush() {\n return this.tasks.splice(0);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.tasks.length;\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.run();this.tasks = [];\n }\n }]);\n\n return Queque;\n}();\n\n/**\n * Class Flow of workflow step by step\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/flow.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/queque.js@v3.9.1\n */\n\n\nvar Flow = exports.Flow = function (_g3wsdk$core$G3WObjec) {\n _inherits(Flow, _g3wsdk$core$G3WObjec);\n\n function Flow() {\n _classCallCheck(this, Flow);\n\n var _this = _possibleConstructorReturn(this, (Flow.__proto__ || Object.getPrototypeOf(Flow)).call(this));\n\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.Flow is deprecated');\n _this.steps = [];\n _this.counter = 0;\n _this.context = null;\n _this.queques = {\n end: new Queque(),\n micro: new Queque()\n };\n _this.inputs;\n _this.d;\n _this._workflow;\n return _this;\n }\n\n //start workflow\n\n\n _createClass(Flow, [{\n key: 'start',\n value: function start(workflow) {\n this.d = $.Deferred();\n if (this.counter > 0) {\n console.log(\"reset workflow before restarting\");\n }\n this._workflow = workflow;\n this.inputs = workflow.getInputs();\n this.context = workflow.getContext();\n this.steps = workflow.getSteps();\n // check if there are steps\n if (this.steps && this.steps.length) {\n //run step (first)\n this.runStep(this.steps[0], this.inputs, this.context);\n }\n // return a promise that will be reolved if all step go right\n return this.d.promise();\n }\n }, {\n key: 'runStep',\n\n\n //run step\n value: function runStep(step, inputs) {\n var _this2 = this;\n\n //run step that run task\n this._workflow.setMessages({\n help: step.state.help\n });\n var runMicroTasks = this.queques.micro.getLength();\n step.run(inputs, this.context, this.queques).then(function (outputs) {\n runMicroTasks && _this2.queques.micro.run();\n _this2.onDone(outputs);\n }).fail(function (e) {\n return _this2.onError(e);\n });\n }\n }, {\n key: 'onDone',\n\n\n //check if all step are resolved\n value: function onDone(outputs) {\n this.counter++;\n if (this.counter === this.steps.length) {\n this.counter = 0;\n this.d.resolve(outputs);\n return;\n }\n this.runStep(this.steps[this.counter], outputs);\n }\n }, {\n key: 'onError',\n\n\n // in case of error\n value: function onError(e) {\n this.counter = 0;\n this.clearQueques();\n this.d.reject(e);\n }\n }, {\n key: 'stop',\n\n\n // stop flow\n value: function stop() {\n var d = $.Deferred();\n this.steps[counter].isRunning() ? this.steps[this.counter].stop() : null;\n this.clearQueques();\n if (this.counter > 0) {\n // set counter to 0\n this.counter = 0;\n // reject flow\n d.reject();\n } else {\n //reject to force rollback session\n d.resolve();\n }\n return d.promise();\n }\n }, {\n key: 'clearQueques',\n value: function clearQueques() {\n this.queques.micro.clear();\n this.queques.end.clear();\n }\n }]);\n\n return Flow;\n}(g3wsdk.core.G3WObject);\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/services/editing.js@v3.9.1\n */\n\n\nvar ChangesManager = exports.ChangesManager = {\n /** known actions */\n Actions: {\n 'add': {\n fnc: 'addFeature',\n opposite: 'delete'\n },\n 'delete': {\n fnc: 'removeFeature',\n opposite: 'add'\n },\n 'update': {\n fnc: 'updateFeature',\n opposite: 'update'\n }\n },\n /* apply changes to features (undo/redo) */\n execute: function execute(object, items, reverse) {\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.ChangesManager is deprecated');\n var fnc = void 0;\n var feature = void 0;\n items.forEach(function (item) {\n feature = item.feature;\n if (reverse) {\n // change to opposite\n feature[ChangesManager.Actions[feature.getState()].opposite]();\n }\n // get method from object\n fnc = ChangesManager.Actions[feature.getState()].fnc;\n object[fnc](feature);\n });\n }\n};\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n */\n\nvar Session = exports.Session = function (_g3wsdk$core$G3WObjec2) {\n _inherits(Session, _g3wsdk$core$G3WObjec2);\n\n function Session() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Session);\n\n console.warn('[G3W-CLIENT] g3wsdk.core.workflow.Session is deprecated');\n\n var _this3 = _possibleConstructorReturn(this, (Session.__proto__ || Object.getPrototypeOf(Session)).call(this, options));\n\n _this3.setters = {\n\n /**\n * Start session\n */\n start: function start() {\n var _this4 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n var features = yield (0, _promisify.promisify)(_this4._editor.start(options));\n _this4.state.started = true;\n d.resolve(features);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x4) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * stop session\n */\n stop: function stop() {\n var _this5 = this;\n\n return $.Deferred(function () {\n var _ref2 = _asyncToGenerator(function* (d) {\n var canStop = _this5.state.started || _this5.state.getfeatures;\n if (!canStop) {\n return d.resolve();\n }\n try {\n yield (0, _promisify.promisify)(_this5._editor.stop());\n _this5.clear();\n d.resolve();\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x5) {\n return _ref2.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * Get features from server (by editor)\n */\n getFeatures: function getFeatures() {\n var _this6 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return $.Deferred(function () {\n var _ref3 = _asyncToGenerator(function* (d) {\n if (_this6._allfeatures) {\n return d.resolve([]);\n }\n _this6._allfeatures = !options.filter;\n try {\n var features = yield (0, _promisify.promisify)(_this6._editor.getFeatures(options));\n _this6.state.getfeatures = true;\n d.resolve(features);\n } catch (e) {\n console.warn(e);\n d.reject(e);\n }\n });\n\n return function (_x7) {\n return _ref3.apply(this, arguments);\n };\n }()).promise();\n },\n\n\n /**\n * Hook to get informed that are saved on server\n * \n * @param commitItems\n */\n saveChangesOnServer: function saveChangesOnServer(commitItems) {}\n };\n\n _this3.state = {\n id: options.id,\n started: false,\n getfeatures: false,\n /** maximum \"buffer history\" lenght for undo/redo */\n maxSteps: 10,\n /** current state of history (useful for undo /redo) */\n current: null,\n /** temporary change not save on history */\n changes: []\n };\n\n /**\n * Array of states of a layer in editing\n * {\n * _states: [\n * {\n * id: unique key\n * state: [state] // example: history contsins features state\n * // array because a tool can apply changes to more than one features at time (split di una feature)\n * },\n * {\n * id: unique key\n * state: [state]\n * },\n * ]\n * ....\n *\n * _current: unique key // usefult to undo redo\n *\n *\n */\n _this3._states = [];\n\n /** reactive state of history */\n _this3._constrains = {\n commit: false,\n undo: false,\n redo: false\n };\n\n // editor\n _this3._editor = options.editor;\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this3._history = {\n id: _this3.state.id,\n state: new Proxy({}, { get: function get(_, prop) {\n return _this3._constrains[prop];\n } }),\n add: _this3.__add.bind(_this3),\n getRelationStates: _this3.__getRelationStates.bind(_this3),\n insertState: _this3.__insertState.bind(_this3),\n removeState: _this3.deleteState.bind(_this3),\n removeStates: _this3.removeChangesFromHistory.bind(_this3),\n insertStates: _this3.__insertStates.bind(_this3),\n undo: _this3.__undo.bind(_this3),\n clear: _this3.clearHistory.bind(_this3),\n redo: _this3.__redo.bind(_this3),\n setItemsFeatureIds: _this3.__setItemsFeatureIds.bind(_this3),\n getState: _this3.__getState.bind(_this3),\n getFirstState: _this3.__getFirstState.bind(_this3),\n getLastState: _this3.getLastHistoryState.bind(_this3),\n getCurrentState: _this3.__getCurrentState.bind(_this3),\n getCurrentStateIndex: _this3.__getCurrentStateIndex.bind(_this3),\n canCommit: _this3.__canCommit.bind(_this3),\n canUndo: _this3.__canUndo.bind(_this3),\n canRedo: _this3.__canRedo.bind(_this3),\n commit: _this3.__commit.bind(_this3)\n };\n\n // register this session on session registry\n _this3.register();\n return _this3;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * check if was done an update (update are array contains two items, old and new value)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(Session, [{\n key: '_checkSessionItems',\n value: function _checkSessionItems(historyId, items, action) {\n /**\n * action: \n * 0: undo;\n * 1: redo;\n **/\n var newItems = {\n own: [], //array of changes of layer of the current session\n dependencies: {} // dependencies\n };\n\n items.forEach(function (item) {\n if (Array.isArray(item)) {\n item = item[action];\n }\n // check if belong to session\n if (historyId === item.layerId) {\n newItems.own.push(item);\n } else {\n newItems.dependencies[item.layerId] = newItems.dependencies[item.layerId] || {\n own: [],\n dependencies: {}\n };\n newItems.dependencies[item.layerId].own.push(item);\n }\n });\n\n return newItems;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n */\n\n }, {\n key: 'getLastHistoryState',\n value: function getLastHistoryState() {\n return this._states.length ? this._states[this._states.length - 1] : null;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getLastStateId',\n value: function getLastStateId() {\n return this.getLastHistoryState().id;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param stateId\n */\n\n }, {\n key: 'deleteState',\n value: function deleteState(stateId) {\n var i = this._states.findIndex(function (s) {\n return s.id === stateId;\n });\n console.assert(i >= 0, 'invalid stateId ' + stateId);\n if (this.state.current === stateId) {\n this.state.current = this._states.length > 1 ? this._states[i - 1].id : null;\n }\n this._states.splice(i, 1);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'register',\n value: function register() {\n Session.Registry.register(this);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'unregister',\n value: function unregister() {\n Session.Registry.unregister(this.getId());\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isStarted',\n value: function isStarted() {\n return this.state.started;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getEditor',\n value: function getEditor() {\n return this._editor;\n }\n\n /**\n * @param editor\n */\n\n }, {\n key: 'setEditor',\n value: function setEditor(editor) {\n this._editor = editor;\n }\n\n /**\n * Save temporary changes to the layer in history instance and feature store\n * \n * @param options\n */\n\n }, {\n key: 'save',\n value: function save() {\n var _this7 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n //fill history\n var d = $.Deferred();\n // add temporary modify to history\n if (this.state.changes.length) {\n var uniqueId = options.id || Date.now();\n this._history.add(uniqueId, this.state.changes).then(function () {\n // clear to temporary changes\n _this7.state.changes = [];\n // resolve if unique id\n d.resolve(uniqueId);\n });\n } else {\n d.resolve(null);\n }\n return d.promise();\n }\n\n /**\n * @param feature\n */\n\n }, {\n key: 'updateTemporaryChanges',\n value: function updateTemporaryChanges(feature) {\n this.state.changes.forEach(function (c) {\n return c.feature.setProperties(feature.getProperties());\n });\n }\n\n /**\n * Add temporary feature\n * \n * @param layerId \n * @param feature \n * @param removeNotEditableProperties \n */\n\n }, {\n key: 'pushAdd',\n value: function pushAdd(layerId, feature) {\n var removeNotEditableProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n /**\n * @TODO check if it need to deprecate it. All properties are need\n * Please take care of this to understand\n * In case of removeNotEditableProperties true, remove not editable field\n * from feature properties\n */\n var editor = layerId === this.getId() ? this._editor : Session.Registry.getSession(layerId).getEditor();\n\n // remove not editable proprierties from feature\n if (removeNotEditableProperties) {\n (editor.getLayer().getEditingNotEditableFields() || []).forEach(function (f) {\n return feature.unset([f]);\n });\n }\n\n var newFeature = feature.clone();\n\n this.push({ layerId: layerId, feature: newFeature.add() });\n\n return newFeature;\n }\n\n /**\n * Delete temporary feature\n * \n * @param layerId \n * @param feature \n */\n\n }, {\n key: 'pushDelete',\n value: function pushDelete(layerId, feature) {\n this.push({ layerId: layerId, feature: feature.delete() });\n return feature;\n }\n\n /**\n * Add temporary feature changes\n * \n * @param layerId\n * @param newFeature\n * @param oldFeature\n */\n\n }, {\n key: 'pushUpdate',\n value: function pushUpdate(layerId, newFeature, oldFeature) {\n // get index of temporary changes\n var is_new = newFeature.isNew();\n var i = is_new && this.state.changes.findIndex(function (c) {\n return layerId === c.layerId && c.feature.getId() === newFeature.getId();\n });\n\n // in case of new feature\n if (is_new && i >= 0) {\n var feature = newFeature.clone();\n feature.add();\n this.state.changes[i].feature = feature;\n return;\n }\n\n this.push({ layerId: layerId, feature: newFeature.update() }, { layerId: layerId, feature: oldFeature.update() });\n }\n\n /**\n * @param stateIds\n */\n\n }, {\n key: 'removeChangesFromHistory',\n value: function removeChangesFromHistory() {\n var _this8 = this;\n\n var stateIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n (stateIds || []).forEach(function (s) {\n return _this8.deleteState(s);\n });\n }\n\n /**\n * @returns { Object } state ids\n */\n\n }, {\n key: 'moveRelationStatesOwnSession',\n value: function moveRelationStatesOwnSession() {\n var ids = {};\n\n var _getCommitItems = this.getCommitItems(),\n relations = _getCommitItems.relations;\n\n for (var id in relations) {\n var states = this._history.getRelationStates(id);\n Session.Registry.getSession(id)._history.insertStates(states);\n ids[id] = states.map(function (s) {\n return s.id;\n });\n }\n return ids;\n }\n\n /**\n * Add temporary features that will be added with save method\n * \n * @param { { layerId: string, feature: * } } NewFeat \n * @param { { layerId: string, feature: * } } OldFeat\n */\n\n }, {\n key: 'push',\n value: function push(newFeat, oldFeat) {\n this.state.changes.push(oldFeat ? [oldFeat, newFeat] : newFeat); // check is set old (edit)\n }\n\n /**\n * Revert (cancel) all changes in history and clean session\n */\n\n }, {\n key: 'revert',\n value: function revert() {\n var _this9 = this;\n\n var d = $.Deferred();\n this._editor.revert().then(function () {\n _this9.clearHistory();\n d.resolve();\n });\n return d.promise();\n }\n\n /**\n * @param changes\n */\n\n }, {\n key: 'rollback',\n value: function rollback(changes) {\n // skip when..\n if (changes) {\n return this._editor.rollback(changes);\n }\n\n // Handle temporary changes of layer\n var d = $.Deferred();\n var id = this.getId();\n changes = {\n own: [],\n dependencies: {}\n };\n this.state.changes.forEach(function (c) {\n var change = Array.isArray(c) ? c[0] : c;\n if (change.layerId === id) {\n changes.own.push(change);\n } else {\n if (!changes.dependencies[change.layerId]) {\n changes.dependencies[change.layerId] = [];\n }\n // FILO\n changes.dependencies[change.layerId].unshift(change);\n }\n });\n\n this._editor.rollback(changes.own).then(function () {\n for (var _id in changes.dependencies) {\n Session.Registry.getSession(_id).rollback(changes.dependencies[_id]);\n }\n d.resolve(changes.dependencies);\n });\n\n this.state.changes = [];\n\n return d.promise();\n }\n\n /**\n * Rollback child changes of current session\n * \n * @param ids [array of child layer id]\n */\n\n }, {\n key: 'rollbackDependecies',\n value: function rollbackDependecies() {\n var _this10 = this;\n\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n ids.forEach(function (id) {\n var changes = [];\n _this10.state.changes = _this10.state.changes.filter(function (temporarychange) {\n if (temporarychange.layerId === id) {\n changes.push(temporarychange);\n return false;\n }\n });\n changes.length && Session.Registry.getSession(id).rollback(changes);\n });\n }\n\n /**\n * undo method\n * \n * @param items \n */\n\n }, {\n key: 'undo',\n value: function undo(items) {\n items = items || this._history.undo();\n this._editor.setChanges(items.own, true);\n this._history.canCommit();\n return items.dependencies;\n }\n\n /**\n * redo method\n * \n * @param items \n */\n\n }, {\n key: 'redo',\n value: function redo(items) {\n items = items || this._history.redo();\n this._editor.setChanges(items.own, true);\n this._history.canCommit();\n return items.dependencies;\n }\n\n /**\n * Serialize commit\n * \n * @returns {{ add: *[], update: *[], relations: {}, delete: *[] }} JSON Object for a commit body send to server\n */\n\n }, {\n key: 'getCommitItems',\n value: function getCommitItems() {\n var _this11 = this;\n\n var itemsToCommit = this._history.commit();\n var id = this.getId();\n var state = void 0;\n var layer = void 0;\n var commitObj = {\n add: [], // features to add\n update: [], // features to update\n delete: [], // features to delete\n relations: {} // relation features\n };\n // key is a layer id that has changes to apply\n for (var key in itemsToCommit) {\n var isRelation = false; //set relation to false\n var items = itemsToCommit[key];\n // case key (layer id) is not equal to id (current layer id on editing)\n if (key !== id) {\n isRelation = true; //set true because these changes belong to features relation items\n var sessionRelation = Session.Registry.getSession(key);\n //check lock ids of relation layer\n var lockids = sessionRelation ? sessionRelation.getEditor().getLockIds() : [];\n //create a relations object\n commitObj.relations[key] = {\n lockids: lockids,\n add: [],\n update: [],\n delete: [],\n relations: {} //@since v3.7.1\n };\n layer = commitObj.relations[key];\n } else {\n layer = commitObj;\n }\n\n items.forEach(function (item) {\n //check state of feature item\n state = item.getState();\n var GeoJSONFormat = new ol.format.GeoJSON();\n switch (state) {\n //item needs to be deleted\n case 'delete':\n //check if is new. If is new mean is not present on server\n //so no need to say to server to delete it\n if (!item.isNew()) {\n layer.delete.push(item.getId());\n }\n break;\n default:\n //convert feature to json ex. {geometry:{tye: 'Point'}, properties:{}.....}\n var itemObj = GeoJSONFormat.writeFeatureObject(item);\n //get properties\n var childs_properties = item.getProperties();\n for (var p in itemObj.properties) {\n // in case the value of property is an object\n if (itemObj.properties[p] && _typeof(itemObj.properties[p]) === 'object' && itemObj.properties[p].constructor === Object) {\n //need to get value from value attribute object\n itemObj.properties[p] = itemObj.properties[p].value;\n }\n // @TODO explain when this condition happen\n if (undefined === itemObj.properties[p] && childs_properties[p]) {\n itemObj.properties[p] = childs_properties[p];\n }\n }\n // in case of add it have to remove not editable properties\n layer[item.isNew() ? 'add' : item.getState()].push(itemObj);\n break;\n }\n });\n // check in case of no edit remove relation key\n if (isRelation && layer.add.length === 0 //no relation features to add\n && layer.update.length === 0 //no relation features to update\n && layer.delete.length === 0 //no relation features to delete\n ) {\n delete commitObj.relations[key];\n }\n }\n\n // Remove deep relations from current layer (commitObj) that are not relative to that layer\n var relations = Object.keys(commitObj.relations || {});\n relations.filter(function (id) {\n return undefined === _this11._editor.getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild();\n });\n }) // child relations\n .map(function (id) {\n commitObj.relations[Session.Registry.getSession(id).getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild() && commitObj.relations[r.getFather()];\n }) // parent relation layer\n .getFather()].relations[id] = commitObj.relations[id];\n return id;\n }).forEach(function (id) {\n return delete commitObj.relations[id];\n });\n\n return commitObj;\n }\n\n /**\n * Set geometry: {type} of geojson to a 3D type if needed\n * \n * @param layerId\n * @param commitItems\n */\n\n }, {\n key: 'set3DGeometryType',\n value: function set3DGeometryType() {\n var _this12 = this;\n\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$layerId = _ref4.layerId,\n layerId = _ref4$layerId === undefined ? this.getId() : _ref4$layerId,\n commitItems = _ref4.commitItems;\n\n var relations = commitItems.relations;\n\n var editingLayer = MapLayersStoresRegistry.getLayerById(layerId).getEditingLayer();\n // check id there is editing layer and if is a vector layer\n if (editingLayer && g3wsdk.core.layer.Layer.LayerTypes.VECTOR === editingLayer.getType()) {\n // get Geometry type layer\n var geometryType = editingLayer.getGeometryType();\n // if is a 3D layer i set on geoJON before send it to server\n if (g3wsdk.core.geoutils.Geometry.is3DGeometry(geometryType)) {\n ['add', 'update'].forEach(function (action) {\n return commitItems[action].forEach(function (feature) {\n return feature.geometry.type = geometryType;\n });\n });\n }\n }\n // the same control of relations layers\n Object.keys(relations).forEach(function (layerId) {\n return _this12.set3DGeometryType({\n layerId: layerId,\n commitItems: relations[layerId]\n });\n });\n }\n\n /**\n * Commit changes on server (save)\n * \n * @param opts.ids\n * @param opts.items\n * @param opts.relations\n */\n\n }, {\n key: 'commit',\n value: function commit() {\n var _this13 = this;\n\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref5$ids = _ref5.ids,\n ids = _ref5$ids === undefined ? null : _ref5$ids,\n items = _ref5.items,\n _ref5$relations = _ref5.relations,\n relations = _ref5$relations === undefined ? true : _ref5$relations,\n _ref5$__esPromise = _ref5.__esPromise,\n __esPromise = _ref5$__esPromise === undefined ? false : _ref5$__esPromise;\n\n var d = $.Deferred();\n\n var commit = void 0; // committed items\n\n // skip when ..\n if (ids) {\n commit = this._history.commit(ids);\n this.clearHistory(ids);\n return d.promise();\n }\n\n commit = items || this.getCommitItems(this._history.commit());\n\n if (!relations) {\n commit.relations = {};\n }\n\n this._editor.commit(commit).then(function (response) {\n\n // skip when response is null or undefined and response.result is false\n if (!(response && response.result)) {\n d.reject(response);\n return;\n }\n\n var _response$response$ne = response.response.new_relations,\n new_relations = _response$response$ne === undefined ? {} : _response$response$ne; // check if new relations are saved on server\n\n // sync server data with local data\n\n for (var id in new_relations) {\n Session.Registry.getSession(id) // get session of relation by id\n .getEditor().applyCommitResponse({ // apply commit response to current editing relation layer\n response: new_relations[id],\n result: true\n });\n }\n\n _this13.clearHistory();\n\n _this13.saveChangesOnServer(commit); // dispatch setter event.\n\n // ES6 promises only accept a single response\n if (__esPromise) {\n d.resolve({ commit: commit, response: response });\n } else {\n d.resolve(commit, response);\n }\n }).fail(function (err) {\n return d.reject(err);\n });\n\n return d.promise();\n }\n\n /**\n * Clear all things bind to session\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n this._allfeatures = false;\n this.state.started = false;\n this.state.getfeatures = false;\n this.clearHistory();\n }\n\n /**\n * @returns history\n */\n\n }, {\n key: 'getHistory',\n value: function getHistory() {\n return this._history;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param ids since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'clearHistory',\n value: function clearHistory(ids) {\n var _this14 = this;\n\n if (ids) {\n this._states.forEach(function (state, idx) {\n if (ids.indexOf(state.id) !== -1) {\n if (_this14.state.current && _this14.state.current === state.id()) {\n _this14._history.undo();\n }\n _this14._states.splice(idx, 1);\n }\n });\n } else {\n // clear all\n this._states = [];\n this.state.current = null;\n this._constrains.commit = false;\n this._constrains.redo = false;\n this._constrains.undo = false;\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param uniqueId\n * @param items\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__add',\n value: function __add(uniqueId, items) {\n var _this15 = this;\n\n //state object is an array of feature/features changed in a transaction\n var d = $.Deferred();\n // before insert an item into the history\n // check if are at last state step (no redo was done)\n // If we are in the middle of undo, delete all changes\n // in the history from the current \"state\" so if it\n // can create a new history\n if (null === this.state.current) {\n this._states = [{ id: uniqueId, items: items }];\n } else {\n if (this._states.length > 0 && this.state.current < this.getLastStateId()) {\n this._states = this._states.filter(function (s) {\n return s.id <= _this15.state.current;\n });\n }\n this._states.push({ id: uniqueId, items: items });\n }\n\n this.state.current = uniqueId;\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n // return unique id key\n // it can be used in save relation\n d.resolve(uniqueId);\n return d.promise();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param layerId\n * @param clear\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getRelationStates',\n value: function __getRelationStates(layerId) {\n var _ref6 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref6$clear = _ref6.clear,\n clear = _ref6$clear === undefined ? false : _ref6$clear;\n\n var relationStates = [];\n for (var i = 0; i < this._states.length; i++) {\n var state = this._states[i];\n var items = state.items.filter(function (item) {\n return (Array.isArray(item) ? item[0].layerId : item.layerId) === layerId;\n });\n if (items.length > 0) {\n relationStates.push({ id: state.id, items: items });\n }\n }\n return relationStates;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param state\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__insertState',\n value: function __insertState(state) {\n var stateId = state.id;\n var index = this._states.length;\n for (var i = 0; i < this._states.length; i++) {\n var _state = this._states[i];\n if (_state.id > stateId) {\n index = i;\n break;\n } else if (_state.id === stateId) {\n index = -1;\n break;\n }\n }\n if (index > -1) {\n if (this.state.current < stateId) {\n this.state.current = stateId;\n }\n this._states.splice(index, 0, state);\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param states\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__insertStates',\n value: function __insertStates() {\n var states = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n for (var i = 0; i < states.length; i++) {\n this._history.insertState(states[i]);\n }\n this._history.canCommit();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * undo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undo',\n value: function __undo() {\n var _this16 = this;\n\n var items = void 0;\n if (this.state.current === this._history.getFirstState().id) {\n this.state.current = null;\n items = this._states[0].items;\n } else {\n this._states.find(function (state, idx) {\n if (state.id === _this16.state.current) {\n items = _this16._states[idx].items;\n _this16.state.current = _this16._states[idx - 1].id;\n return true;\n }\n });\n }\n items = this._checkSessionItems(this._history.id, items, 0);\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * redo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redo',\n value: function __redo() {\n var _this17 = this;\n\n var items = void 0;\n // if not set get first state\n if (!this.state.current) {\n items = this._states[0].items;\n // set current to first\n this.state.current = this._states[0].id;\n } else {\n this._states.find(function (state, idx) {\n if (_this17.state.current === state.id) {\n _this17.state.current = _this17._states[idx + 1].id;\n items = _this17._states[idx + 1].items;\n return true;\n }\n });\n }\n items = this._checkSessionItems(this._history.id, items, 1);\n // set internal state\n this._history.canUndo();\n this._history.canCommit();\n this._history.canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param { Array } unsetnewids\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__setItemsFeatureIds',\n value: function __setItemsFeatureIds() {\n var _this18 = this;\n\n var unsetnewids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n unsetnewids.forEach(function (unsetnewid) {\n _this18._states.forEach(function (state) {\n state.items.forEach(function (item) {\n var feature = item.feature.getId() === unsetnewid.clientid && item.feature;\n if (feature) {\n feature.setId(unsetnewid.id);\n }\n });\n });\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param id\n * \n * @returns {T}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getState',\n value: function __getState(id) {\n return this._states.find(function (s) {\n return s.id === id;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getFirstState',\n value: function __getFirstState() {\n return this._states.length ? this._states[0] : null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {null}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCurrentState',\n value: function __getCurrentState() {\n var _this19 = this;\n\n var currentState = null;\n if (this.state.current && this._states.length) {\n currentState = this._states.find(function (state) {\n return _this19.state.current === state.id;\n });\n }\n return currentState;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { number | null } index of current state\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCurrentStateIndex',\n value: function __getCurrentStateIndex() {\n var _this20 = this;\n\n var currentStateIndex = null;\n if (this.state.current && this._states.length) {\n this._states.forEach(function (state, idx) {\n if (_this20.state.current === state.id) {\n currentStateIndex = idx;\n return false;\n }\n });\n }\n return currentStateIndex;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { boolean } true if we can commit\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canCommit',\n value: function __canCommit() {\n var checkCommitItems = this._history.commit();\n var canCommit = false;\n for (var layerId in checkCommitItems) {\n var commitItem = checkCommitItems[layerId];\n canCommit = canCommit || commitItem.length > 0;\n }\n this._constrains.commit = canCommit;\n return this._constrains.commit;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canUdo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canUndo',\n value: function __canUndo() {\n var steps = this._states.length - 1 - this._history.getCurrentStateIndex();\n this._constrains.undo = null !== this.state.current && this.state.maxSteps > steps;\n return this._constrains.undo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canRedo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canRedo',\n value: function __canRedo() {\n this._constrains.redo = this.getLastHistoryState() && this.getLastStateId() != this.state.current || null === this.state.current && this._states.length > 0;\n return this._constrains.redo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * get all changes to send to server (mandare al server)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__commit',\n value: function __commit() {\n var _this21 = this;\n\n var commitItems = {};\n var statesToCommit = this._states.filter(function (s) {\n return s.id <= _this21.state.current;\n });\n statesToCommit.forEach(function (state) {\n state.items.forEach(function (item) {\n var add = true;\n if (Array.isArray(item)) {\n item = item[1];\n }\n if (commitItems[item.layerId]) {\n commitItems[item.layerId].forEach(function (commitItem, index) {\n // check if already inserted feature\n if (commitItem.getUid() === item.feature.getUid()) {\n if (item.feature.isNew() && !commitItem.isDeleted() && item.feature.isUpdated()) {\n var _item = item.feature.clone();\n _item.add();\n commitItems[item.layerId][index] = _item;\n } else if (item.feature.isNew() && item.feature.isDeleted()) {\n commitItems[item.layerId].splice(index, 1);\n } else if (item.feature.isUpdated() || item.feature.isDeleted()) {\n commitItems[item.layerId][index] = item.feature;\n }\n add = false;\n return false;\n }\n });\n }\n if (add) {\n var feature = item.feature;\n var layerId = item.layerId;\n if (!(!feature.isNew() && feature.isAdded())) {\n if (!commitItems[layerId]) {\n commitItems[layerId] = [];\n }\n commitItems[layerId].push(feature);\n }\n }\n });\n });\n return commitItems;\n }\n }]);\n\n return Session;\n}(g3wsdk.core.G3WObject);\n\n/** @type { Object } */\n\n\nvar sessions = {};\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/store/sessions.js@v3.9.1\n *\n * Store user session (login / logout)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nSession.Registry = {\n _sessions: sessions,\n register: function register(session) {\n sessions[session.getId()] = session;\n },\n unregister: function unregister(id) {\n delete sessions[id];\n },\n getSession: function getSession(id) {\n return sessions[id];\n },\n setSession: function setSession(id, session) {\n sessions[id] = session;\n },\n getSessions: function getSessions() {\n return sessions;\n },\n clear: function clear() {\n Object.keys(sessions).forEach(Session.Registry.unregister);\n }\n};\n\n},{\"../../utils/promisify\":66}],11:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * @file shared vue instance used to watch object changes or to emit events\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar VM = exports.VM = new Vue();\n\nexports.default = { VM: VM };\n\n},{}],12:[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 _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 _toolbox = require('../../toolboxes/toolbox');\n\nvar _promisify = require('../../utils/promisify');\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 _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\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 * \n * ORIGINAL SOURCE: g3w-client/src/core/editing/editor.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n G3WObject = _g3wsdk$core.G3WObject;\nvar FeaturesStore = g3wsdk.core.layer.features.FeaturesStore;\nvar Layer = g3wsdk.core.layer.Layer;\n\n/**\n * ORIGINAL SOURE: g3w-client/src/app/core/layers/features/olfeaturesstore.js@v3.10.2\n */\n\nvar OlFeaturesStore = function (_FeaturesStore) {\n _inherits(OlFeaturesStore, _FeaturesStore);\n\n function OlFeaturesStore() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OlFeaturesStore);\n\n var _this = _possibleConstructorReturn(this, (OlFeaturesStore.__proto__ || Object.getPrototypeOf(OlFeaturesStore)).call(this, opts));\n\n _this._features = opts.features || new ol.Collection([]);\n return _this;\n }\n\n /**\n * Get number of features stored\n * @return { Number }\n */\n\n\n _createClass(OlFeaturesStore, [{\n key: 'getLength',\n value: function getLength() {\n return this._features.getLength();\n }\n\n /**\n * Store features\n * @param { Array } features\n */\n\n }, {\n key: 'setFeatures',\n value: function setFeatures() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n //remove features\n this._features.clear();\n //add new features\n this.addFeatures(features);\n this._features.dispatchEvent('change');\n }\n }, {\n key: 'readFeatures',\n\n\n /**\n * @returns {*[]}\n */\n value: function readFeatures() {\n return this._features.getArray();\n }\n }, {\n key: 'getFeaturesCollection',\n\n\n /**\n * @return {*|ol.Collection}\n */\n value: function getFeaturesCollection() {\n return this._features;\n }\n\n /**\n * @param id\n * @returns {*}\n */\n\n }, {\n key: 'getFeatureById',\n value: function getFeatureById(id) {\n return this._features.getArray().find(function (f) {\n return id == f.getId();\n });\n }\n }, {\n key: 'getFeatureByUid',\n value: function getFeatureByUid(uid) {\n return this._features.getArray().find(function (f) {\n return uid === f.getUid();\n });\n }\n\n /**\n *\n * @param feature\n * @private\n */\n\n }, {\n key: '_addFeature',\n value: function _addFeature(feature) {\n this._features.push(feature);\n // useful for ol.source.Vector\n this._features.dispatchEvent('change');\n }\n\n /**\n * Substitute the feature after modifying\n * @param feature\n * @private\n */\n\n }, {\n key: '_updateFeature',\n value: function _updateFeature(feature) {\n var index = this._features.getArray().findIndex(function (f) {\n return feature.getUid() === f.getUid();\n });\n if (index >= 0) {\n this._features.removeAt(index);\n this._features.insertAt(index, feature);\n this._features.dispatchEvent('change');\n }\n }\n\n /**\n * Remove feature from store\n * @param feature\n * @private\n */\n\n }, {\n key: '_removeFeature',\n value: function _removeFeature(feature) {\n var index = this._features.getArray().findIndex(function (f) {\n return feature.getUid() === f.getUid();\n });\n if (index >= 0) {\n this._features.removeAt(index);\n this._features.dispatchEvent('change');\n }\n }\n\n /**\n * @private\n */\n\n }, {\n key: '_clearFeatures',\n value: function _clearFeatures() {\n try {\n // Used remove single features instead use clear method\n // because some time trows an error\n for (var i = 0; i < this._features.getArray().length; i++) {\n this._features.removeAt(i);\n }\n } catch (e) {\n console.warn(e);\n }\n //Need to set a new Collection to avoid duplicate\n this._features = null; //@TODO is still usefully ????\n this._features = new ol.Collection([]);\n }\n }]);\n\n return OlFeaturesStore;\n}(FeaturesStore);\n\n/**\n * Editor Class: bind editor to layer to do main actions\n *\n * @param config\n *\n * @constructor\n */\n\n\nvar Editor = function (_G3WObject) {\n _inherits(Editor, _G3WObject);\n\n function Editor() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Editor);\n\n /**\n * Setter hooks.\n */\n var _this2 = _possibleConstructorReturn(this, (Editor.__proto__ || Object.getPrototypeOf(Editor)).call(this));\n\n _this2.setters = {\n save: function save() {\n this._layer.save();\n },\n addFeature: function addFeature(feature) {\n this._featuresstore.addFeature(feature);\n },\n updateFeature: function updateFeature(feature) {\n this._featuresstore.updateFeature(feature);\n },\n deleteFeature: function deleteFeature(feature) {\n this._featuresstore.deleteFeature(feature);\n },\n setFeatures: function setFeatures() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this._featuresstore.setFeatures(features);\n },\n\n /**\n * Get features from server method.\n * Used when vector Layer's bbox is contained into an already requested bbox (so no a new request is done).\n *\n * @param { number[] } options.filter.bbox bounding box Array [xmin, ymin, xmax, ymax]\n *\n * @returns { boolean } whether can perform a server request\n */\n getFeatures: function getFeatures() {\n var _this3 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // skip is not onlien or all features of layers are already got\n if (!ApplicationState.online || this._allfeatures) {\n return (0, _promisify.$promisify)(Promise.resolve());\n }\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n\n var doRequest = true; // default --> perform request\n\n var _ref2 = options.filter || {},\n bbox = _ref2.bbox;\n //check if bbox options filter (bbox of a current map) is passed and is a vector layer\n\n\n var is_vector = bbox && Layer.LayerTypes.VECTOR === _this3._layer.getType();\n\n // first request --> need to perform request\n if (is_vector && null === _this3._filter.bbox) {\n _this3._filter.bbox = bbox; // store bbox\n doRequest = true;\n }\n\n // subsequent requests --> check if bbox is contained into an already requested bbox\n else if (is_vector) {\n //Boolean - Check if features are already got inside bbox\n var is_cached = ol.extent.containsExtent(_this3._filter.bbox, bbox);\n if (!is_cached) {\n _this3._filter.bbox = ol.extent.extend(_this3._filter.bbox, bbox);\n }\n doRequest = !is_cached;\n }\n\n /** @TODO simplfy nested promises */\n if (doRequest) {\n var features = yield (0, _promisify.promisify)(_this3._layer.getFeatures(options));\n // add features from server to editing features store (cloned from original)\n _this3._featuresstore.addFeatures((features || []).map(function (f) {\n return f.clone();\n }));\n //set all features to true if no filter is set (e.g., Table layer)\n _this3._allfeatures = !options.filter;\n return features;\n }\n }));\n }\n };\n\n /**\n * Filter to getFeaturerequest\n */\n _this2._filter = {\n bbox: null\n };\n\n /**\n * { Boolean } true, mean all features of layer are get (e.g. Table layer)\n */\n _this2._allfeatures = false;\n\n /**\n * Referred layer\n */\n _this2._layer = options.layer;\n\n /**\n * Store editing features\n * \n * @type { FeaturesStore | OlFeaturesStore }\n */\n _this2._featuresstore = Layer.LayerTypes.TABLE === _this2._layer.getType() ? new FeaturesStore() : new OlFeaturesStore();\n\n /**\n * Whether editor is active or not\n *\n * @type { boolean }\n */\n _this2._started = false;\n\n return _this2;\n }\n\n /**\n * Get editing source layer feature\n * \n * @returns { FeaturesStore | OlFeaturesStore }\n */\n\n\n _createClass(Editor, [{\n key: 'getEditingSource',\n value: function getEditingSource() {\n return this._featuresstore;\n }\n\n /**\n * get Source\n */\n\n }, {\n key: 'getSource',\n value: function getSource() {\n this._layer.getSource();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/services/editing.js@v3.9.1\n * \n * Apply changes to source features (undo/redo)\n * \n * @param items\n * @param { boolean } reverse whether change to opposite\n */\n\n }, {\n key: 'setChanges',\n value: function setChanges() {\n var _this4 = this;\n\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n /** known actions */\n var Actions = {\n 'add': { fnc: 'addFeature', opposite: 'delete' },\n 'delete': { fnc: 'removeFeature', opposite: 'add' },\n 'update': { fnc: 'updateFeature', opposite: 'update' }\n };\n items.forEach(function (item) {\n if (reverse) {\n item.feature[Actions[item.feature.getState()].opposite]();\n }\n // get method from object\n _this4._featuresstore[Actions[item.feature.getState()].fnc](item.feature);\n });\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this._layer;\n }\n\n /**\n * @param layer\n */\n\n }, {\n key: 'setLayer',\n value: function setLayer(layer) {\n return this._layer = layer;\n }\n\n /**\n * Rollback changes\n * \n * @param changes\n * \n * @returns {*}\n */\n\n }, {\n key: 'rollback',\n value: function rollback() {\n var _this5 = this;\n\n var changes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return (0, _promisify.$promisify)(function () {\n return _this5.setChanges(changes, true);\n });\n }\n\n /**\n * Apply response data from server in case of new inserted feature\n * @param { Object } response\n * @param response.response.new array of new ids\n * @param response.response.new.clientid temporary id created by client __new__\n * @param response.response.new.id the new id created and stored on server\n * @param response.response.new.properties properties of the feature saved on server\n * @param response.response.new_lockids array of new lockIds\n * \n * @param relations\n */\n\n }, {\n key: 'applyCommitResponse',\n value: function applyCommitResponse() {\n var _this6 = this;\n\n var response = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var relations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n\n // skip when no response and response.result is false\n if (!(response && response.result)) {\n return;\n }\n\n //Loop on new features saved on server\n // clientid - temporary id of new feature\n // id - id saved on server (autogenerate, next value) to subtituite to clientid feature id\n // properties - properties of feature returned by server\n response.response.new.forEach(function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n clientid = _ref3.clientid,\n id = _ref3.id,\n properties = _ref3.properties;\n\n //get feature from current layer in editing\n var feature = _this6._featuresstore.getFeatureById(clientid);\n // set new id\n feature.setId(id);\n //set properties\n feature.setProperties(properties);\n //Loop on eventual relation updated or created\n relations.forEach(function (r) {\n // handle relations (if provided)\n Object.entries(r).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n id = _ref5[0],\n _ref5$ = _ref5[1],\n opts = _ref5$ === undefined ? {} : _ref5$;\n\n // id - relation layer id, opts - Object contain relation properties\n //get the editing source of relation layer\n var source = _toolbox.ToolBox.get(id).getSession().getEditor().getEditingSource();\n // handle value to relation field saved on server\n (opts.ids || []).forEach(function (id) {\n var rFeature = source.getFeatureById(id);\n if (rFeature) {\n opts.fatherField.forEach(function (ff, i) {\n // loop relation ids\n rFeature.set(opts.childField[i], feature.get(ff)); // set father feature `value` and `name`\n });\n }\n });\n });\n });\n });\n\n var features = this.readEditingFeatures();\n\n features.forEach(function (f) {\n return f.clearState();\n }); // reset state of the editing features (update, new etc..)\n\n this._layer.setFeatures([].concat(_toConsumableArray(features))); // substitute layer features with actual editing features (\"cloned\" to prevent layer actions duplicates, eg. addFeatures)\n\n this.addLockIds(response.response.new_lockids); // add lock ids\n }\n\n /**\n * @param lockids locks be added to current layer\n *\n * @since 3.9.0\n */\n\n }, {\n key: 'addLockIds',\n value: function addLockIds(lockids) {\n this._layer.getSource().addLockIds(lockids);\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLockIds',\n value: function getLockIds() {\n return this._layer.getSource().getLockIds();\n }\n\n /**\n * Run after server has applied changes to origin resource\n *\n * @param commit commit items\n *\n * @returns jQuery promise\n */\n\n }, {\n key: 'commit',\n value: function commit(_commit) {\n var _this7 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var relations = [];\n\n // check if there are commit relations binded to new feature\n if (_commit.add.length) {\n relations = Object.keys(_commit.relations).map(function (relationId) {\n var relation = _this7._layer.getRelations().getRelationByFatherChildren(_this7._layer.getId(), relationId);\n return _defineProperty({}, relationId, {\n ids: [].concat(_toConsumableArray(_commit.relations[relationId].add.map(function (r) {\n return r.id;\n })), _toConsumableArray(_commit.relations[relationId].update.map(function (r) {\n return r.id;\n }))),\n fatherField: relation.getFatherField(), // father Fields \n childField: relation.getChildField() // child Fields \n });\n });\n }\n\n /** @TODO simplfy nested promises */\n var r = yield (0, _promisify.promisify)(_this7._layer.commit(_commit));\n _this7.applyCommitResponse(r, relations);\n return r;\n }));\n }\n\n /**\n * start editing\n */\n\n }, {\n key: 'start',\n value: function start() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /** @TODO simplfy nested promises */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var features = yield (0, _promisify.promisify)(_this8.getFeatures(options)); // load layer features based on filter type\n _this8._started = true; // if all ok set to started\n return features; // features are already inside featuresstore\n }));\n }\n\n /**\n * Read features (action to layer)\n */\n\n }, {\n key: 'readFeatures',\n value: function readFeatures() {\n return this._layer.readFeatures();\n }\n\n /**\n * @returns features stored in editor featurestore\n */\n\n }, {\n key: 'readEditingFeatures',\n value: function readEditingFeatures() {\n return this._featuresstore.readFeatures();\n }\n\n /**\n * stop editor\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this9 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var response = yield (0, _promisify.promisify)(_this9._layer.unlock());\n _this9.clear();\n return response;\n }));\n }\n\n /**\n * @returns { boolean } whether has started editor \n */\n\n }, {\n key: 'isStarted',\n value: function isStarted() {\n return this._started;\n }\n\n /**\n * Method to clear all filled variables\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n this._started = false;\n this._filter.bbox = null;\n this._allfeatures = false;\n\n this._featuresstore.clear();\n this._layer.getFeaturesStore().clear();\n\n // vector layer\n if (Layer.LayerTypes.VECTOR === this._layer.getType()) {\n this._layer.resetEditingSource(this._featuresstore.getFeaturesCollection());\n }\n }\n }]);\n\n return Editor;\n}(G3WObject);\n\nexports.default = Editor;\n\n},{\"../../toolboxes/toolbox\":27,\"../../utils/promisify\":58}],13:[function(require,module,exports){\nvar _editor = require('./editing/editor');\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _step = require('./workflow/step');\n\nvar _deprecated = require('../deprecated');\n\nvar _workflow = require('./workflow/workflow');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Editing APIs will be removed from core after g3w-client@v.4.x\n */\nif (window.g3wsdk.core.editing || window.g3wsdk.core.workflow || window.g3wsdk.constant.DEFAULT_EDITING_CAPABILITIES || g3wsdk.version < '4') {\n console.warn('Editing APIs will be removed from g3wsdk after v4.x');\n}\n\n/**\n * Object to provide external plugin to use editing objects\n */\nwindow.g3wsdk.core.editing = {\n Session: _deprecated.Session,\n SessionsRegistry: _deprecated.Session.Registry,\n Editor: _editor2.default,\n ChangesManager: _deprecated.ChangesManager\n};\n\n/**\n * Default editing capabilities\n *\n * @type {string[]}\n */\nwindow.g3wsdk.constant.DEFAULT_EDITING_CAPABILITIES = ['add_feature', 'change_feature', 'change_attr_feature', 'delete_feature'];\n\n/**\n * Object to provide to external plugins to use workflow objects\n */\nwindow.g3wsdk.core.workflow = {\n Task: _step.Step,\n Step: _step.Step,\n Flow: _deprecated.Flow,\n Workflow: _workflow.Workflow,\n WorkflowsStack: _workflow.Workflow.Stack\n};\n\n},{\"../deprecated\":10,\"./editing/editor\":12,\"./workflow/step\":14,\"./workflow/workflow\":15}],14:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Step = undefined;\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 _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 _promisify = require('../../utils/promisify');\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\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 * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/step.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\n\nvar G3WObject = g3wsdk.core.G3WObject;\nvar isPointGeometryType = g3wsdk.core.geoutils.Geometry.isPointGeometryType;\nvar Layer = g3wsdk.core.layer.Layer;\nvar GUI = g3wsdk.gui.GUI;\n\n/**\n * @param options.input\n * @param options.context\n * @param options.task\n * @param options.outputs\n * @param options.escKeyPressEventHandler\n * @param options.id\n * @param options.name\n * @param options.help\n * @param options.message\n */\n\nvar Step = exports.Step = function (_G3WObject) {\n _inherits(Step, _G3WObject);\n\n function Step() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Step);\n\n var _this = _possibleConstructorReturn(this, (Step.__proto__ || Object.getPrototypeOf(Step)).call(this));\n\n _this._options = options;\n\n _this._run = (options.run || _this.run || _asyncToGenerator(function* () {\n return true;\n })).bind(_this);\n _this._stop = (options.stop || _this.stop || _asyncToGenerator(function* () {\n return true;\n })).bind(_this);\n\n /**\n * @FIXME add description\n */\n _this._inputs = options.inputs || null;\n\n /**\n * @FIXME add description\n */\n _this._context = options.context || null;\n\n /**\n * @FIXME add description\n */\n _this._outputs = options.outputs || null;\n\n /**\n * Dynamic state of a step\n */\n _this.state = {\n id: options.id || null,\n name: options.name || null,\n help: options.help || null, // help to show what the user has to do\n running: false, // running\n error: null, // error\n message: options.message || null, // message\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n usermessagesteps: {}\n };\n\n _this.registerEscKeyEvent(options.escKeyPressEventHandler);\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this.selectStyle = options.selectStyle;\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.steps) {\n _this.setSteps(options.steps);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.onRun) {\n _this.on('run', options.onRun);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.onStop) {\n _this.on('run', options.onStop);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n if (options.tools) {\n _this._tools = options.tools;\n }\n\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * Set and get task usefult properties used to run\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(Step, [{\n key: 'setInputs',\n value: function setInputs(inputs) {\n this._inputs = this.inputs = inputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getInputs',\n value: function getInputs() {\n return this._inputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param context\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setContext',\n value: function setContext(context) {\n return this._context = this.context = context;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getContext',\n value: function getContext() {\n return this.context;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'panic',\n value: function panic() {\n console.log('Panic to implement ..');\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param task\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setRoot',\n value: function setRoot(task) {\n this.state.root = task;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @returns { Object }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getUserMessageSteps',\n value: function getUserMessageSteps() {\n return this.state.usermessagesteps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param steps\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setUserMessageSteps',\n value: function setUserMessageSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.state.usermessagesteps = steps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * \n * @param type\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setUserMessageStepDone',\n value: function setUserMessageStepDone(type) {\n if (type) {\n this.state.usermessagesteps[type].done = true;\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addInteraction',\n value: function addInteraction(interaction) {\n var _this2 = this;\n\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n GUI.getService('map').addInteraction(interaction);\n Object.entries(events).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n type = _ref4[0],\n handler = _ref4[1];\n\n return interaction.on(type, handler);\n });\n this.on('stop', function () {\n return _this2.removeInteraction(interaction);\n });\n return interaction;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'removeInteraction',\n value: function removeInteraction(interaction) {\n setTimeout(function () {\n return GUI.getService('map').removeInteraction(interaction);\n }); // timeout needed to work around an Openlayers issue\n }\n\n /**\n * @TODO code implementation\n *\n * Get editing type from editing config\n *\n * @returns { null }\n */\n\n }, {\n key: 'getEditingType',\n value: function getEditingType() {\n return null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'registerPointerMoveCursor',\n value: function registerPointerMoveCursor() {\n GUI.getService('map').getMap().on(\"pointermove\", this._pointerMoveCursor);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'unregisterPointerMoveCursor',\n value: function unregisterPointerMoveCursor() {\n GUI.getService('map').getMap().un(\"pointermove\", this._pointerMoveCursor);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param evt\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_pointerMoveCursor',\n value: function _pointerMoveCursor(evt) {\n this.getTargetElement().style.cursor = this.forEachFeatureAtPixel(evt.pixel, function () {\n return true;\n }) ? 'pointer' : '';\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param steps\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setSteps',\n value: function setSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._steps = steps;\n this.setUserMessageSteps(steps);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @returns { Object }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getSteps',\n value: function getSteps() {\n return this._steps;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getMap',\n value: function getMap() {\n return GUI.getService('map').getMap();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * Disable sidebar\n *\n * @param {Boolean} bool\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'disableSidebar',\n value: function disableSidebar() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this._isContentChild) {\n GUI.disableSideBar(bool);\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * @param event\n * @param options\n *\n * @returns {*}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'fireEvent',\n value: function fireEvent(event) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').fireEvent(event, options);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Handle single task\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'saveSingle',\n value: function saveSingle(input, context) {\n context.session.save().then(function () {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').saveChange();\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Cancel single task\n *\n * @param input\n * @param context\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'cancelSingle',\n value: function cancelSingle(input, context) {\n context.session.rollback();\n }\n\n /**\n * Bind interrupt event on keys escape pressed\n * \n * @param evt.key\n * @param evt.data.callback\n * @param evt.data.task\n */\n\n }, {\n key: 'escKeyUpHandler',\n value: function escKeyUpHandler(evt) {\n if ('Escape' === evt.key) {\n evt.data.callback({ task: evt.data.task });\n }\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'unbindEscKeyUp',\n value: function unbindEscKeyUp() {\n $(document).unbind('keyup', this.escKeyUpHandler);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'bindEscKeyUp',\n value: function bindEscKeyUp() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n $(document).on('keyup', { callback: callback, task: this }, this.escKeyUpHandler);\n }\n\n /**\n * @listens run\n * @listens stop\n */\n\n }, {\n key: 'registerEscKeyEvent',\n value: function registerEscKeyEvent(callback) {\n var _this3 = this;\n\n if (callback) {\n this.on('run', function () {\n return _this3.bindEscKeyUp(callback);\n });\n this.on('stop', function () {\n return _this3.unbindEscKeyUp();\n });\n }\n }\n\n /**\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Start task\n * \n * @param inputs\n * @param context\n * \n * @returns jQuery promise\n * \n * @fires run\n */\n\n }, {\n key: '__run',\n value: function __run(inputs, context) {\n var _this4 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n _this4.setInputs(inputs);\n _this4.setContext(context);\n\n var step = _this4;\n var toolsOfTools = {\n\n snap: {\n type: 'snap',\n options: {\n checkedAll: false,\n checked: false,\n active: true,\n run: function run(_ref6) {\n var layer = _ref6.layer;\n\n this.active = true;\n this.layerId = layer.getId();\n this.source = layer.getEditingLayer().getSource();\n },\n stop: function stop() {\n this.active = false;\n }\n }\n },\n\n measure: {\n type: 'measure',\n options: {\n checked: false,\n run: function run() {\n var _this5 = this;\n\n setTimeout(function () {\n _this5.onChange(_this5.checked);\n });\n },\n stop: function stop() {\n step.removeMeasureInteraction();\n this.onChange(false);\n },\n onChange: function onChange(bool) {\n this.checked = bool;\n step[bool ? 'addMeasureInteraction' : 'removeMeasureInteraction']();\n }\n }\n }\n\n };\n\n if (_this4._tools && 0 === _this4._workflow._toolsoftool.length) {\n var _workflow$_toolsoftoo;\n\n (_workflow$_toolsoftoo = _this4._workflow._toolsoftool).push.apply(_workflow$_toolsoftoo, _toConsumableArray(_this4._tools.filter(function (tool) {\n return 'measure' !== tool || Layer.LayerTypes.VECTOR === inputs.layer.getType() && !isPointGeometryType(inputs.layer.getGeometryType());\n }).map(function (tool) {\n return toolsOfTools[tool];\n })));\n }\n\n if (_this4._tools) {\n _this4._workflow._toolsoftool.forEach(function (t) {\n return t.options.run({ layer: inputs.layer });\n });\n _this4._workflow.emit('settoolsoftool', _this4._workflow._toolsoftool);\n }\n\n _this4.emit('run', { inputs: inputs, context: context });\n\n try {\n _this4.state.running = true; // change state to running\n return yield (0, _promisify.promisify)(_this4._run(inputs, context));\n } catch (e) {\n console.warn(e);\n _this4.state.error = e;\n return Promise.reject(e);\n } finally {\n _this4.__stop();\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/task.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n *\n * Stop step\n *\n * @fires stop\n */\n\n }, {\n key: '__stop',\n value: function __stop() {\n this._stop(this._inputs, this._context); // stop task\n this.state.running = false; // remove running state\n if (this._workflow) {\n this._workflow._toolsoftool.forEach(function (t) {\n return t.options.stop();\n });\n }\n this.emit('stop');\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getName',\n value: function getName() {\n return this.state.name;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getHelp',\n value: function getHelp() {\n return this.state.help;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getError',\n value: function getError() {\n return this.state.error;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getMessage',\n value: function getMessage() {\n return this.state.message;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'isRunning',\n value: function isRunning() {\n return this.state.running;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getTask',\n value: function getTask() {\n return this;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'setOutputs',\n value: function setOutputs(outputs) {\n this._outputs = outputs;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getOutputs',\n value: function getOutputs() {\n return this._outputs;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @param workflow\n * @param tools\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'setToolsOfTools',\n value: function setToolsOfTools(workflow) {\n var tools = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n this._workflow = workflow;\n this._tools = tools;\n }\n }]);\n\n return Step;\n}(G3WObject);\n\n/**\n * @FIXME add description\n */\n\n\nStep.MESSAGES = {\n help: null\n};\n\n},{\"../../utils/promisify\":58}],15:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Workflow = undefined;\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 _step = require('./step');\n\nvar _promisify = require('../../utils/promisify');\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 _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/**\n * @file\n * \n * ORIGINAL SOURCE: g3w-client/src/core/workflow/workflow.js@v3.9.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.x\n */\n\nvar GUI = g3wsdk.gui.GUI;\nvar G3WObject = g3wsdk.core.G3WObject;\n\n/**\n * Workflow Class (manage flow of steps)\n *\n * @param options.inputs\n * @param options.context\n * @param options.flow\n * @param options.steps\n * @param options.runOnce\n * @param options.backbuttonlabel\n */\n\nvar Workflow = exports.Workflow = function (_G3WObject) {\n _inherits(Workflow, _G3WObject);\n\n function Workflow() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Workflow);\n\n /** @since g3w-client-plugin-editing@v3.8.0*/\n var _this = _possibleConstructorReturn(this, (Workflow.__proto__ || Object.getPrototypeOf(Workflow)).call(this));\n\n _this._type = undefined !== options.type ? options.type : null;\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._options = options;\n\n /**\n * @FIXME add description\n */\n _this._promise = null;\n\n /**\n * Mandatory inputs to work with editing\n */\n _this._inputs = undefined !== options.inputs ? options.inputs : null;\n\n /**\n * @FIXME add description\n */\n _this._context = undefined !== options.context ? options.context : null;\n\n /**\n * All steps of flow\n */\n _this._steps = options.steps || [];\n\n /**\n * Whether is child of another workflow\n */\n _this._child = null;\n\n /**\n * stack workflowindex\n */\n _this._stackIndex = null;\n\n /**\n * Stop when flow stop\n */\n _this.runOnce = options.runOnce || false;\n\n /**\n * @FIXME add description\n */\n _this._messages = _step.Step.MESSAGES;\n\n /**\n * Store user messages steps to show when workflow\n * use a mandatory steps (ex. select: {description}, merge: {description}}\n */\n _this._userMessageSteps = {};\n\n if (_this._steps.length > 0) {\n _this.setUserMessagesSteps(_this._steps);\n }\n\n /**\n * Holds back button label (in case of child workflow)\n * \n * @since 3.9.0\n */\n _this.backbuttonlabel = undefined !== options.backbuttonlabel ? options.backbuttonlabel : null;\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this.helpMessage = options.helpMessage ? { help: options.helpMessage } : null;\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this._toolsoftool = [];\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n if (true === options.registerEscKeyEvent) {\n _this.registerEscKeyEvent();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/workflow/flow.js@v3.9.1\n * \n * Current flow step\n * \n * @since g3w-client-editing@v3.8.0\n */\n _this._stepIndex = 0;\n\n return _this;\n }\n\n /**\n *\n * @param steps\n */\n\n\n _createClass(Workflow, [{\n key: 'setUserMessagesSteps',\n value: function setUserMessagesSteps(steps) {\n this._userMessageSteps = steps.reduce(function (messagesSteps, step) {\n return _extends({}, messagesSteps, step.getUserMessageSteps() || {});\n }, {});\n }\n\n /**\n * Check if it is in same type\n *\n * @param {String | Array.} type\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'isType',\n value: function isType(type) {\n var _this2 = this;\n\n if (Array.isArray(type)) {\n return Boolean(type.find(function (t) {\n return t === _this2._type;\n }));\n }\n return type === this._type;\n }\n\n /**\n * @returns { * }\n */\n\n }, {\n key: 'getContextService',\n value: function getContextService() {\n return this.getContext().service;\n }\n\n /**\n * @param service\n */\n\n }, {\n key: 'setContextService',\n value: function setContextService(service) {\n this.getContext().service = service;\n }\n\n /**\n * @returns { null | * }\n */\n\n }, {\n key: 'getStackIndex',\n value: function getStackIndex() {\n return this._stackIndex;\n }\n\n /**\n * @param workflow\n */\n\n }, {\n key: 'addChild',\n value: function addChild(workflow) {\n if (this._child) {\n this._child.addChild(workflow);\n } else {\n this._child = workflow;\n }\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild() {\n if (this._child) {\n Workflow.Stack.removeAt(this._child.getStackIndex());\n }\n this._child = null;\n }\n\n /**\n * @param input.key\n * @param input.value\n */\n\n }, {\n key: 'setInput',\n value: function setInput(_ref) {\n var key = _ref.key,\n value = _ref.value;\n\n this._inputs[key] = value;\n }\n\n /**\n * @returns { null | * }\n */\n\n }, {\n key: 'getInputs',\n value: function getInputs() {\n return this._inputs;\n }\n\n /**\n * @param context\n */\n\n }, {\n key: 'setContext',\n value: function setContext(context) {\n this._context = context;\n }\n\n /**\n * @returns { * | {} | null }\n */\n\n }, {\n key: 'getContext',\n value: function getContext() {\n return this._context;\n }\n\n /**\n * @param step\n */\n\n }, {\n key: 'addStep',\n value: function addStep(step) {\n this._steps.push(step);\n }\n\n /**\n * @param steps\n */\n\n }, {\n key: 'setSteps',\n value: function setSteps() {\n var steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n this._steps = steps;\n this.setUserMessagesSteps(steps);\n }\n\n /**\n * @returns { * | Array }\n */\n\n }, {\n key: 'getSteps',\n value: function getSteps() {\n return this._steps;\n }\n\n /**\n * @param index\n * \n * @returns { * }\n */\n\n }, {\n key: 'getStep',\n value: function getStep(index) {\n return this._steps[index];\n }\n\n /**\n * @param messages\n */\n\n }, {\n key: 'setMessages',\n value: function setMessages(messages) {\n Object.assign(this._messages, messages);\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'getMessages',\n value: function getMessages() {\n return this._messages;\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'clearMessages',\n value: function clearMessages() {\n this._messages.help = null;\n if (Object.keys(this._userMessageSteps).length) {\n this.clearUserMessagesSteps();\n }\n }\n\n /**\n * @returns { * | null }\n */\n\n }, {\n key: 'getLastStep',\n value: function getLastStep() {\n return this._steps.length ? this._steps[this._steps.length - 1] : null;\n }\n\n /**\n * @returns { Step }\n */\n\n }, {\n key: 'getRunningStep',\n value: function getRunningStep() {\n return this._steps.find(function (step) {\n return step.isRunning();\n });\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'reject',\n value: function reject() {\n if (this._promise) {\n this._promise.reject();\n }\n this.emit('reject');\n }\n\n /**\n * @FIXME add description\n */\n\n }, {\n key: 'resolve',\n value: function resolve() {\n if (this._promise) {\n this._promise.resolve();\n }\n }\n }, {\n key: 'runStep',\n value: function () {\n var _ref2 = _asyncToGenerator(function* (step, inputs) {\n try {\n this.setMessages({ help: step.state.help });\n var outputs = yield (0, _promisify.promisify)(step.__run(inputs, this.getContext()));\n // onDone → check if all step is resolved\n this._stepIndex++;\n if (this._stepIndex === this.getSteps().length) {\n this._stepIndex = 0;\n return outputs;\n } else {\n return this.runStep(this.getSteps()[this._stepIndex], outputs);\n }\n } catch (e) {\n this._stepIndex = 0;\n return Promise.reject(e);\n }\n });\n\n function runStep(_x3, _x4) {\n return _ref2.apply(this, arguments);\n }\n\n return runStep;\n }()\n\n /**\n * Start workflow\n * \n * @param options.inputs\n * @param options.context\n * @param options.flow\n * @param options.steps\n * \n * @fires start\n */\n\n }, {\n key: 'start',\n value: function start() {\n var _this3 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n _this3._promise = { resolve: resolve, reject: reject };\n _this3._inputs = options.inputs;\n _this3._context = options.context || {};\n\n var isChild = _this3._context.isChild || false;\n\n // stop child when a workflow is running \n if (!isChild && Workflow.Stack.getLength() && Workflow.Stack.getCurrent() !== _this3) {\n Workflow.Stack.getCurrent().addChild(_this3);\n }\n\n _this3._stackIndex = Workflow.Stack.push(_this3);\n _this3._steps = options.steps || _this3._steps;\n\n (_this3._steps || []).forEach(function (s) {\n return s._workflow = _this3;\n });\n\n var showUserMessage = Object.keys(_this3._userMessageSteps).length;\n\n if (showUserMessage) {\n GUI.showUserMessage({\n title: 'plugins.editing.workflow.title.steps',\n type: 'tool',\n position: 'left',\n size: 'small',\n closable: false,\n hooks: {\n body: _extends({}, require('../../components/UserMessage.vue'), {\n data: function data() {\n return {\n steps: _this3._userMessageSteps\n };\n }\n })\n }\n });\n }\n //emit start\n _this3.emit('start');\n\n try {\n console.assert(0 === _this3._stepIndex, 'reset workflow before restarting: ' + _this3._stepIndex);\n //start flow of workflow\n var outputs = yield _this3.runStep(_this3.getSteps()[_this3._stepIndex], _this3.getInputs());\n if (showUserMessage) {\n setTimeout(function () {\n _this3.clearUserMessagesSteps();resolve(outputs);\n }, 500);\n } else {\n resolve(outputs);\n }\n } catch (e) {\n console.warn(e);\n if (showUserMessage) {\n _this3.clearUserMessagesSteps();\n }\n reject(e);\n }\n\n if (_this3.runOnce) {\n _this3.stop();\n }\n });\n\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * Stop workflow during flow\n * \n * @fires stop\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this4 = this;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref4 = _asyncToGenerator(function* (resolve, reject) {\n _this4._promise = null;\n\n try {\n // stop child workflow\n if (_this4._child) {\n yield (0, _promisify.promisify)(_this4._child.stop());\n }\n } catch (e) {\n console.warn(e);\n }\n\n // ensure that child is always removed\n _this4.removeChild();\n\n Workflow.Stack.removeAt(_this4.getStackIndex());\n\n // stop flow\n try {\n if (_this4.getSteps()[_this4._stepIndex].isRunning()) {\n //clear messages steps\n _this4.clearMessages();\n //stop a current step\n _this4.getSteps()[_this4._stepIndex].__stop();\n }\n // reset counter and reject flow\n if (_this4._stepIndex > 0) {\n _this4._stepIndex = 0;\n reject();\n return Promise.reject();\n } else {\n resolve();\n }\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n\n _this4.emit('stop');\n });\n\n return function (_x8, _x9) {\n return _ref4.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * Reset user message steps\n */\n\n }, {\n key: 'clearUserMessagesSteps',\n value: function clearUserMessagesSteps() {\n var _this5 = this;\n\n Object.keys(this._userMessageSteps).forEach(function (type) {\n var step = _this5._userMessageSteps[type];\n step.done = false;\n if (step.buttonnext) {\n step.buttonnext.disabled = true;\n }\n });\n GUI.closeUserMessage();\n }\n\n /**\n * @since 3.9.0\n */\n\n }, {\n key: 'setBackButtonLabel',\n value: function setBackButtonLabel() {\n var label = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n this.backbuttonlabel = label;\n }\n\n /**\n * @returns { null }\n * \n * @since 3.9.0\n */\n\n }, {\n key: 'getBackButtonLabel',\n value: function getBackButtonLabel() {\n return this.backbuttonlabel;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @param step\n * @param tools\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'addToolsOfTools',\n value: function addToolsOfTools(_ref5) {\n var step = _ref5.step,\n _ref5$tools = _ref5.tools,\n tools = _ref5$tools === undefined ? [] : _ref5$tools;\n\n step.setToolsOfTools(this, tools);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'setHelpMessage',\n value: function setHelpMessage(message) {\n this.helpMessage = { help: message };\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getHelpMessage',\n value: function getHelpMessage() {\n return this.helpMessage;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getFeatures',\n value: function getFeatures() {\n return this.getInputs().features;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'startFromLastStep',\n value: function startFromLastStep(options) {\n this.setSteps([this.getSteps().pop()]);\n return this.start(options);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getCurrentFeature',\n value: function getCurrentFeature() {\n var feats = this.getFeatures();\n return feats[feats.length - 1];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this.getInputs().layer;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n return this.getContext().session;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * bind interupt event\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'escKeyUpHandler',\n value: function escKeyUpHandler(evt) {\n if (evt.keyCode === 27) {\n evt.data.workflow.reject();\n evt.data.callback();\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'unbindEscKeyUp',\n value: function unbindEscKeyUp() {\n $(document).unbind('keyup', this.escKeyUpHandler);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'bindEscKeyUp',\n value: function bindEscKeyUp() {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n $(document).on('keyup', { workflow: this, callback: callback }, this.escKeyUpHandler);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editingworkflow.js@v3.7.1\n * \n * @since g3w-client-editing@v3.8.0\n */\n\n }, {\n key: 'registerEscKeyEvent',\n value: function registerEscKeyEvent(callback) {\n var _this6 = this;\n\n this.on('start', function () {\n return _this6.bindEscKeyUp(callback);\n });\n this.on('stop', function () {\n return _this6.unbindEscKeyUp();\n });\n }\n }]);\n\n return Workflow;\n}(G3WObject);\n\n/** @type { Workflow[] } */\n\n\nvar workflows = [];\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/services/workflow.js@v3.9.1\n * \n * Store all activated workflows\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nWorkflow.Stack = {\n _workflows: workflows,\n push: function push(workflow) {\n return workflows.includes(workflow) ? workflows.indexOf(workflow) : workflows.push(workflow) - 1;\n },\n getParent: function getParent() {\n return workflows.slice(-2)[0];\n },\n getParents: function getParents() {\n return workflows.slice(0, -1);\n },\n pop: function pop() {\n return workflows.pop();\n },\n getLength: function getLength() {\n return workflows.length;\n },\n getFirst: function getFirst() {\n return workflows[0];\n },\n getCurrent: function getCurrent() {\n return Workflow.Stack.getLast();\n },\n getLast: function getLast() {\n return workflows.slice(-1)[0];\n },\n removeAt: function removeAt(i) {\n workflows.splice(i, 1);\n },\n insertAt: function insertAt(i, w) {\n workflows[i] = w;\n },\n getAt: function getAt(i) {\n return workflows[i];\n },\n clear: function clear() {\n while (workflows.length) {\n workflows.pop().stop();\n }\n }\n};\n\n},{\"../../components/UserMessage.vue\":9,\"../../utils/promisify\":58,\"./step\":14}],16:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Es tritt ein Fehler auf. Es ist nicht möglich, Layer zu bearbeiten\",\n some_layers: \"Es tritt ein Fehler auf: Es ist nicht möglich, einige Layer zu bearbeiten\"\n },\n search: \"Suche\",\n editing_changes: \"Änderungen bearbeiten\",\n editing_data: \"Layer bearbeiten\",\n editing_attributes: \"Attribute bearbeiten\",\n relations: \"Relationen\",\n edit_relation: \"Relation bearbeiten\",\n back_to_relations: \"Zurück zu Relationen\",\n no_relations_found: \"Keine Relationen gefunden\",\n relation_data: \"Relationsdaten\",\n relation_already_added: \"Relation bereits hinzugefügt\",\n list_of_relations_feature: \"Liste der Relations-Features \",\n tooltip: {\n edit_layer: \"Layer bearbeiten\"\n },\n toolbox: {\n title: 'bearbeiten'\n },\n table: {\n edit: \"Feature bearbeiten\",\n copy: \"Kopie erstellen\",\n delete: \"Feature löschen\"\n },\n tools: {\n copy: \"Features kopieren\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Teil zu Multipart hinzufügen\",\n deletepart: \"Teil aus Multipart löschen\",\n merge: \"Feature auflösen\",\n split: \"Feature trennen\",\n add_feature: \"Feature hinzufügen\",\n delete_feature: \"Feature löschen\",\n move_feature: \"Feature verschieben\",\n update_vertex: \"Feature vertex aktualisieren\",\n update_feature: \"Feature-Attribut aktualisieren\",\n update_multi_features: \"Attribute ausgewählter Features aktualisieren\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Messung anzeigen\",\n snap: \"Snap Layer\",\n snapall: \"Snap auf alle Layer\"\n },\n steps: {\n help: {\n select_elements: \"Features auswählen\",\n select_element: \"Feature auswählen\",\n copy: \"Neue Kopie der ausgewählten Features erstellen\",\n merge: \"Features auflösen\",\n split: \"Feature trennen\",\n new: \"Neues Feature erstellen\",\n edit_table: \"Features der Tabelle bearbeiten\",\n draw_new_feature: \"Feature auf Karte zeichnen\",\n action_confirm: \"Aktion bestätigen\",\n double_click_delete: \"Zu löschendes Feature auf der Karte auswählen\",\n edit_feature_vertex: \"Ändern oder Hinzufügen eines Eckpunktes auf dem ausgewählten Feature\",\n move: \"Ausgewähltes Feature verschieben\",\n select_feature_to_relation: \"Feature auswählen, welches die Relation verknüpft\",\n show_edit_feature_form: \"Feature-Formular zum Bearbeiten von Attributen anzeigen\",\n pick_feature: \"Zu änderndes Feature auf der Karte auswählen\",\n insert_attributes_feature: \"Attribute des Features einfügen\"\n }\n },\n workflow: {\n steps: {\n select: 'Zum Auswählen auf ein Feature klicken',\n draw_part: \"Neues Teil zeichnen\",\n draw_geometry: \"Geometrie zeichnen\",\n merge: 'Feature zum Auflösen auswählen',\n selectSHIFT: 'Features auswählen indem ein Rechteck mit SHIFT gezeichnet wird',\n selectDrawBox: \"Features auswählen, indem man ein Rechteck mit zwei gegenüberliegenden Eckpunkten zeichnet\",\n selectDrawBoxAtLeast2Feature: \"Mindestens Features auswählen, indem man ein Rechteck mit zwei gegenüberliegenden Eckpunkten zeichnet\",\n selectPoint: \"Zum Auswählen auf ein Feature klicken\",\n selectPointSHIFT: 'Features auswählen, indem ein Rechteck mit SHIFT gezeichnet wird (Multifeatures) oder auf ein Feature klicken',\n selectMultiPointSHIFT: 'Features auswählen, indem man ein Rechteck zeichnet und SHIFT drückt oder auf ein Feature klickt',\n selectMultiPointSHIFTAtLeast2Feature: 'Mindestens 2 Features auswählen und mit SHIFT ein Rechteck zeichnen oder auf ein Feature klicken',\n copyCTRL: 'Kopieren ausgewählter Features mit CTRL+C',\n selectStartVertex: 'Start-Eckpunkt der ausgewählten Features auswählen',\n selectToPaste: 'Den Punkt auswählen, an dem die ausgewählten Features eingefügt werden sollen',\n draw_split_line: \"Eine Linie zeichnen, um das ausgewählte Feature zu teilen\"\n },\n title: {\n steps: 'Schritte'\n },\n next: 'Weiter'\n },\n messages: {\n featureslockbyotheruser: \"Einige Geometrien/Datensätze können nicht bearbeitet werden, da sie von anderen Benutzern bearbeitet werden\",\n splitted: \"Getrennt\",\n nosplittedfeature: \"Feature nicht getrennt\",\n press_esc: \"Mit ESC zurück\",\n online: \"Wieder ONLINE. Jetzt kann man die Änderungen in der Datenbank speichern\",\n offline: \"OFFLINE. Alle Änderungen werden lokal gespeichert\",\n delete_feature: \"Soll das ausgewählte Feature gelöscht werden?\",\n delete_feature_relations: \"Wenn ein Feature Verknüpfungen beinhaltet, werden diese Relationen verwaist. Wir schlagen vor, diese Relationen zu behandeln, bevor das Feature gelöscht wird\",\n unlink_relation: \"Soll die Verknüpfung aufgehoben werden?\",\n commit_feature: \"Zusammenfassung der Änderungen\",\n toolbox_has_relation: \"Diese Ebene ist Teil einer Beziehung\",\n saved: \"Daten erfolgreich gespeichert\",\n saved_local: \"Daten erfolgreich lokal gespeichert\",\n loading_data: \"Daten laden\",\n saving: \"Daten werden gespeichert. Bitte warten ...\",\n constraints: {\n enable_editing: \"Bitte zoomen Sie hinein, um die Editier-Tools zu aktivieren \\nAktivierungsskala bei 1:\"\n },\n pdf: \"Dokumentenvorschau nicht verfügbar. Bitte hier klicken \",\n commit: {\n header: \"Die folgende Liste zeigt alle zu übernehmenden Änderungen.\",\n header_relation: \"Relation\",\n header_add: \"Hinzufgefügt Die Anzahl der hinzugefügten Features anzeigen\",\n header_update_delete: \"Bearbeitet und Gelöscht Die Liste der Feature-ID anzeigen\",\n add: \"Hinzugefügt\",\n delete: \"Gelöscht\",\n update: \"Bearbeitet\"\n },\n loading_table_data: \"Datentabelle wird erstellt. Bitte warten ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Vor dem Speichern müssen alle Pflichtfelder des eingegebenen features ausgefüllt werden\",\n no_feature_selected: \"Keine feature ausgewählt\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
W\\xE4hlen Sie Relationen aus, um sie mit dem aktuellen Feature zu verkn\\xFCpfen.
\"\n },\n draw_new_feature: \"Zeichnen Sie eine neue feature\",\n draw_or_copy: \"oder\",\n copy_feature_from_other_layer: \"Kopieren Sie feature aus einer anderen layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Zurück zur Bearbeitung des Vaters\",\n add_relation: \"Neue Relation erstellen und verknüpfen\",\n link_relation: \"Eine Relation zu diesem Feature herstellen\",\n open_relation_tools: \"Relationstools anzeigen\",\n unlink_relation: \"Relation trennen\"\n }\n },\n buttons: {\n save: \"Einfügung/Bearbeiten\",\n save_and_back: \"Speichern und zurück\",\n save_and_back_table: \"Speichern und zurück\",\n cancel: \"Änderungen ignorieren\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select one feature\"\n }\n }\n }\n};\n\n},{}],17:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"An error occurs. It's no possible to edit layers\",\n some_layers: \"An error occurs: It's no possible to edit some layers\",\n editing_multiple_relations: 'Editing multiple relationships is not currently supported'\n },\n search: \"Search\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Editing Layers\",\n editing_attributes: \"Editing attributes\",\n relations: \"Relations\",\n edit_relation: \"Edit relation\",\n back_to_relations: \"Back to Relations\",\n no_relations_found: \"No relations found\",\n relation_data: \"Relation data\",\n relation_already_added: \"Relation already added\",\n list_of_relations_feature: \"List of relations feature \",\n tooltip: {\n edit_layer: \"Edit Layer\",\n filter_by_relation: \"Filter layers by relation\"\n },\n toolbox: {\n title: 'Edit'\n },\n table: {\n edit: \"Edit feature\",\n copy: \"Create a copy\",\n delete: \"Delete feature\"\n },\n tools: {\n copy: \"Copy features\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Add part to multipart\",\n deletepart: \"Delete part from multipart\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n add_feature: \"Add feature\",\n delete_feature: \"Delete feature\",\n move_feature: \"Move feature\",\n update_vertex: \"Update feature vertex\",\n update_feature: \"Update feature attribute\",\n update_multi_features: \"Update attributes of selected features\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Select features\",\n select_element: \"Select feature\",\n copy: \"Create new copy of selected features\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n new: \"Create new feature\",\n edit_table: \"Edit table features\",\n draw_new_feature: \"Draw feature on map\",\n action_confirm: \"Confirm action\",\n double_click_delete: \"Select feature on map to delete\",\n edit_feature_vertex: \"Modify or add a vertex on selected feature\",\n move: \"Move selected feature\",\n select_feature_to_relation: \"Select feature that you bind relation\",\n show_edit_feature_form: \"Show feature form to edit attributes\",\n pick_feature: \"Select feature on map to modify\",\n insert_attributes_feature: \"Insert attributes of the feature\"\n }\n },\n workflow: {\n steps: {\n select: 'Click on feature to select',\n draw_part: \"Draw new part\",\n draw_geometry: \"Draw geometry\",\n merge: 'Select featurewhere dissolve',\n selectSHIFT: 'Select features drawing a rectangle pressing SHIFT',\n selectDrawBox: \"Select features drawing a rectangle by two point of opposite corners\",\n selectDrawBoxAtLeast2Feature: \"Select at least features drawing a rectangle by two point of opposite corners\",\n selectPoint: \"Click on feature to select\",\n selectPointSHIFT: 'Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature',\n selectMultiPointSHIFT: 'Select features drawing a rectangle pressing SHIFT or click on feature',\n selectMultiPointSHIFTAtLeast2Feature: 'Select at least 2 features drawing a rectangle pressing SHIFT or click on feature',\n copyCTRL: 'Copy selected features using CTRL+C',\n selectStartVertex: 'Select starting vertex of selected features',\n selectToPaste: 'Select the point where paste the features selected',\n draw_split_line: \"Draw a line to split selected feature\"\n },\n title: {\n steps: 'Steps'\n },\n next: 'Next'\n },\n messages: {\n featureslockbyotheruser: \"Some geometries/records are not editable because in editing by other user\",\n splitted: \"Splitted\",\n nosplittedfeature: \"Feature not spitted\",\n press_esc: \"Press ESC to back\",\n online: \"Back ONLINE. Now you can save your changes on database\",\n offline: \"You are OFFLINE. All changes are saved locally\",\n delete_feature: \"Do you want delete selected feature ?\",\n delete_feature_relations: \"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature\",\n unlink_relation: \"Do you want unlink relation?\",\n commit_feature: \"Summary of changes\",\n toolbox_has_no_geometry: \"this layer has no geometry\",\n toolbox_has_relation: \"this layer is part of a relation\",\n saved: \"Data saved successfully\",\n saved_local: \"Data saved locally successfully\",\n loading_data: \"Loading data\",\n saving: \"Saving data. Please wait ...\",\n constraints: {\n enable_editing: \"Please Zoom In to enable editing tools \\nActivation scale at 1:\"\n },\n pdf: \"Document preview not available. Please click here \",\n commit: {\n header: \"The following list show all changes to commit.\",\n header_relation: \"Relation\",\n header_add: \"Added show the number of features added\",\n header_update_delete: \"Modified and Deleted show the list of features id\",\n add: \"Added\",\n delete: \"Deleted\",\n update: \"Updated\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Select relations to link it to current editing feature.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Create and link new relation\",\n link_relation: \"Join a relation to this feature\",\n open_relation_tools: \"Show relation tools\",\n unlink_relation: \"Unlink relation\"\n }\n },\n buttons: {\n save: \"Insert/Edit\",\n save_and_back: \"Save and Back\",\n save_and_back_table: \"Save and Back\",\n cancel: \"Ignore Changes\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],18:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Tapahtui virhe. Tasoja ei ole mahdollista muokata.\",\n some_layers: \"Tapahtui virhe. Jotkin tasot eivät ole muokattavissa.\"\n },\n search: \"Haku\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Muokataan tasoja\",\n editing_attributes: \"Muokataan attribuutteja\",\n relations: \"Relaatiot\",\n edit_relation: \"Muokkaa relaatiota\",\n back_to_relations: \"Takaisin relaatioihin\",\n no_relations_found: \"Relaatioita ei löytynyt\",\n relation_data: \"Relaation tiedot\",\n relation_already_added: \"Relaatio on jo lisätty\",\n list_of_relations_feature: \"Lista relaation ominaisuuksista\",\n tooltip: {\n edit_layer: \"Muokkaa tasoa\"\n },\n toolbox: {\n title: 'Muokkaa'\n },\n table: {\n edit: \"Muokkaa ominaisuutta\",\n copy: \"Luo kopio\",\n delete: \"Poista ominaisuus\"\n },\n tools: {\n copy: \"Kopio ominaisuuksia\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Lisää osa\",\n deletepart: \"Poista osa\",\n merge: \"Yhdistä ominaisuudet\",\n split: \"Leikkaa ominaisuus\",\n add_feature: \"Lisää ominaisuus\",\n delete_feature: \"Poista ominaisuus\",\n move_feature: \"Siirrä ominaisuutta\",\n update_vertex: \"Päivitä pisteen ominaisuutta\",\n update_feature: \"Päivitä ominaisuus\",\n update_multi_features: \"Muokkaa valittujen ominaisuuksien attribuutteja\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Valitse ominaisuudet\",\n select_element: \"Valitse ominaisuus\",\n copy: \"Luo kopio valituista ominaisuuksista\",\n merge: \"Yhdistä ominaisuudet\",\n split: \"Leikkaa ominaisuus\",\n new: \"Luo uusi ominaisuus\",\n edit_table: \"Muuta taulun ominaisuuksia\",\n draw_new_feature: \"Piirrä ominaisuus kartalle\",\n action_confirm: \"Hyväksy toiminto\",\n double_click_delete: \"Valitse poistettava ominaisuus kartalta\",\n edit_feature_vertex: \"Muuta pistettä tai lisää piste valittuun ominaisuuteen\",\n move: \"Siirrä valittu ominaisuus\",\n select_feature_to_relation: \"Valitse relaatio\",\n show_edit_feature_form: \"Näytä ominaisuuslomake muokataksesi attribuutteja\",\n pick_feature: \"Valitse muokattava ominaisuus kartalta\",\n insert_attributes_feature: \"Lisää ominaisuuden attribuutit\"\n }\n },\n workflow: {\n steps: {\n select: 'Valitse ominaisuus',\n draw_part: \"Piirrä uusi osa\",\n merge: 'Valitse ominaisuus yhdistääksesi',\n draw_geometry: \"Piirrä geometria\",\n selectSHIFT: 'Paina SHIFT, jos haluat valita kohteita suorakulmiovalinnalla.', //Tero 10.12.2020\n selectDrawBox: \"Piirrä suorakulmio, jonka siältä kohteet valitaan \", //Tero 10.12.2020\n selectDrawBoxAtLeast2Feature: \"Piirrä suorakulmio, jonka siältä kohteet vähintään 2 valitaan \",\n selectPoint: \"Valitse ominaisuus\",\n selectPointSHIFT: 'Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n selectMultiPointSHIFT: 'Paina SHIFT, jos haluat valita ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n selectMultiPointSHIFTAtLeast2Feature: 'Paina SHIFT, jos haluat valita vähintään 2 ominaisuuksia suorakulmiovalinnalla, tai valitse yksittäinen ominaisuus.',\n copyCTRL: 'CTRL+C, voit kopioida valitut ominaisuudet.', //Tero 10.12.2020\n selectStartVertex: 'Osoita valittujen ominaisuuksien alkupiste.',\n selectToPaste: 'Valitse kohta, johon liität valitut ominaisuudet.',\n draw_split_line: \"Piirrä viiva, jonka mukaan valittu ominaisuus jaetaan.\"\n },\n title: {\n steps: 'Vaiheet'\n },\n next: \"Seuraava\"\n },\n messages: {\n featureslockbyotheruser: \"Some features are locked by another user\",\n splitted: \"Jaettu\",\n nosplittedfeature: \"Ominaisuutta ei jaettu\",\n press_esc: \"Paina ESC palataksesi\",\n online: \"Yhteys muodostettu. Muutokset voidaan tallentaa tietokantaan.\",\n offline: \"Olet offline-tilassa. Muutokset tallennetaan paikallisesti\",\n delete_feature: \"Haluatko poistaa valitun ominaisuuden?\",\n delete_feature_relations: \"Mikäli ominaisuudella on sitovia relaatioita, näistä relaatiosta tulee orpoja. Suosittelemme käsittelemään nämä relaatiot ennen poistamista\",\n unlink_relation: \"Haluatko poistaa relaation?\",\n commit_feature: \"Yhteenveto muutoksista\",\n toolbox_has_relation: \"tämä kerros on osa relaatiota\",\n saved: \"Tiedot tallennettu onnistuneesti\",\n saved_local: \"Tiedot on tallennettu onnistuneesti paikallisesti.\",\n loading_data: \"Ladataan tietoja\",\n saving: \"Tallentaan tietoja. Odota...\",\n constraints: {\n enable_editing: \"Lähennä ottaaksesi muokkaustyökalut käyttöön \\nAktivointi mittakaava 1:\"\n },\n pdf: \"Dokumentin esikatselu ei ole saatavilla. Paina tästä \",\n commit: {\n header: \"Seuraava luettelo näyttää kaikki muutokset.\",\n header_relation: \"Relation\",\n header_add: \"Lisätty näytä lisättyjen ominaisuuksien lukumäärä\",\n header_update_delete: \"Muokattu ja Poistettu Näytä listä ominaisuuksien id:stä\",\n add: \"Lisätty\",\n delete: \"Poistettu\",\n update: \"Muokattu\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Valitse relaatiota linkitt\\xE4\\xE4ksesi ne muokattavaan ominaisuuteen.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Luo ja linkitä uusi relaatio\",\n link_relation: \"Liitä relaatio tähän ominaisuuteen\",\n open_relation_tools: \"Näytä relaatiotyökalut\",\n unlink_relation: \"Poista relaatio\"\n }\n },\n buttons: {\n save: \"Lisää/muokkaa\",\n save_and_back: \"Tallenna ja palaa\",\n save_and_back_table: \"Tallenna ja palaa\",\n cancel: \"Peruuta\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Une erreur s'est produite lors du chargement des layers dans l'édition.\",\n some_layers: \"Une erreur s'est produite lors du chargement de certaines layers dans l'édition.\"\n },\n search: \"Recherche\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Modifier les donnes\",\n editing_attributes: \"Modifier les attributs\",\n relations: \"Relations\",\n edit_relation: \"Modifier la relation\",\n back_to_relations: \"Retour aux relations\",\n no_relations_found: \"Il n'y a pas de relations\",\n relation_data: \"Données sur les relations\",\n relation_already_added: \"Relation déjà présente\",\n list_of_relations_feature: \"Lister les relations de la fonctionnalité\",\n tooltip: {\n edit_layer: \"Modifier le layer\"\n },\n toolbox: {\n title: 'Modifier'\n },\n table: {\n edit: \"Modifier fonctionnalités\",\n copy: \"Créer une copie\",\n delete: \"Supprimer la fonctionnalité\"\n },\n tools: {\n copy: \"Copier les fonctionnalités\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Ajouter une pièce à la géométrie\",\n deletepart: \"Supprimer la partie de la géométrie\",\n merge: \"Dissoudre les fonctionnalités\",\n split: \"Couper la fonctionnalité\",\n add_feature: \"Ajouter une fonctionnalité\",\n delete_feature: \"Supprimer la fonctionnalité\",\n move_feature: \"Déplacez la fonctionnalité\",\n update_vertex: \"Mettre à jour les sommets des fonctionnalités\",\n update_feature: \"Modifier les attributs des fonctionnalités\",\n update_multi_features: \"Modifier les attributs des fonctionnalités sélectionnées\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Sélectionner les fonctionnalités\",\n select_element: \"Sélectionner une fonctionnalité\",\n copy: \"Créer une copie des fonctionnalités sélectionnées\",\n merge: \"Dissoudre les fonctionnalités\",\n split: \"Couper la fonctionnalité\",\n new: \"Créer une nouvelle fonctionnalité\",\n edit_table: \"Modifier les fonctionnalités de la table\",\n draw_new_feature: \"Dessiner une fonctionnalité sur la carte\",\n action_confirm: \"Confirmer l'action\",\n double_click_delete: \"Sélectionner la fonctionnalité sur la carte à supprimer\",\n edit_feature_vertex: \"Modifier ou ajouter un sommet à la fonctionnalité sélectionnée\",\n move: \"Déplacer la fonctionnalité sélectionnée\",\n select_feature_to_relation: \"Sélectionner la fonctionnalité que vous souhaitez mettre en relation\",\n show_edit_feature_form: \"Afficher le formulaire de la fonctionnalité permettant de modifier les attributs\",\n pick_feature: \"Sélectionner l'élément de la carte à modifier\",\n insert_attributes_feature: \"Insérer les attributs de la fonctionnalité\"\n }\n },\n workflow: {\n steps: {\n select: 'Cliquer sur la fonctionnalité à sélectionner',\n draw_part: \"Dessiner la nouvelle partie\",\n draw_geometry: \"Dessiner la géométrie\",\n merge: 'Sélectionner la fonction à introduire en fondu',\n selectPoint: \"Cliquer sur la fonctionnalité pour la sélectionner\",\n selectSHIFT: 'Sélectionner des fonctionnalités en maintenant la touche SHIFT enfoncée',\n selectDrawBox: \"Sélectionner les fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale\",\n selectDrawBoxAtLeast2Feature: \"Sélectionner au moins 2 fonctionnalités en dessinant un rectangle par la création des deux points de la diagonale\",\n selectPointSHIFT: 'Sélectionner des caractéristiques en maintenant la touche SHIFT enfoncée (multi-sélection) ou en cliquant sur une seule caractéristique',\n selectMultiPointSHIFT: 'Sélectionner des fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle',\n selectMultiPointSHIFTAtLeast2Feature: 'Sélectionner au moins 2 fonctionnalités en maintenant la touche SHIFT appuyée ou en cliquant sur la fonctionnalité individuelle',\n copyCTRL: 'Copier les fonctionnalités sélectionnées avec CTRL+C',\n selectStartVertex: 'Sélectionner le sommet de départ des fonctionnalités choisies',\n selectToPaste: 'Sélectionner le point où les fonctionnalités sélectionnées seront collées',\n draw_split_line: \"Tracez une ligne pour couper la fonctionnalité sélectionnée\"\n },\n title: {\n steps: 'Étapes'\n },\n next: 'Suivant'\n },\n messages: {\n featureslockbyotheruser: \"Certaines géométries/enregistrements ne sont pas modifiables car ils ont été modifiés par un autre utilisateur\",\n splitted: \"Fonctionnalité(s) divisé(es)\",\n nosplittedfeature: \"La (les) fonctionnalité(s) n’a (n'ont) pas été divisé(es)\",\n press_esc: \"Appuyez sur ESC pour revenir\",\n online: \"Vous êtes à nouveau EN LIGNE. Vous pouvez enregistrer les modifications de façon permanente\",\n offline: \"Vous êtes HORS LIGNE. Toutes les modifications seront enregistrées temporairement en local\",\n delete_feature: \"Voulez-vous supprimer la fonctionnalité sélectionnée ?\",\n delete_feature_relations: \"La suppression d'une fonctionnalité avec des relations associées laissera ces relations orphelines. Il est recommandé de gérer ces relations avant de supprimer la fonctionnalité\",\n unlink_relation: \"Voulez-vous détacher la relation ?\",\n commit_feature: \"Sommaire des changements\",\n toolbox_has_relation: \"cette couche fait partie d'une relation\",\n saved: \"Les données ont été enregistrées correctement\",\n saved_local: \"Les données ont été correctement sauvegardées localement\",\n loading_data: \"Chargement des données\",\n saving: \"Sauvegarde des données. Veuillez patienter ...\",\n constraints: {\n enable_editing: \"Augmenter le niveau de zoom pour permettre l'édition \\nEchelle de déclenchement 1 :\"\n },\n pdf: \"Aperçu du document non disponible. Cliquez ici \",\n commit: {\n header: \"La liste ci-dessous montre toutes les modifications qui seront enregistrées.\",\n header_relation: \"Relation\",\n header_add: \"Ajouts indique le nombre de fonctionnalités ajoutées\",\n header_update_delete: \"Modifié e Supprimé liste les ids\",\n add: \"Ajouté\",\n delete: \"Supprimé\",\n update: \"Modifié\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Avant d'enregistrer, il est nécessaire de remplir tous les champs obligatoires du features saisi\",\n no_feature_selected: \"Aucune feature sélectionnée\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
S\\xE9lectionner les relations pour les associer \\xE0 l'\\xE9l\\xE9ment en cours d'\\xE9dition.
\"\n },\n draw_new_feature: \"Dessiner une nouvelle feature\",\n draw_or_copy: \"ou\",\n copy_feature_from_other_layer: \"Copier feature d'une autre layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Créer et ajouter une nouvelle relation\",\n link_relation: \"Associer une relation existante à cette fonctionnalité\",\n open_relation_tools: \"Outils de relation ouverte\",\n unlink_relation: \"Annuler la relation\"\n }\n },\n buttons: {\n save: \"Insérer/Modifier\",\n save_and_back: \"Sauvegarder et retourner au parent\",\n save_and_back_table: \"Sauvegarder et et revenir en arrière\",\n cancel: \"Ignorer modifications\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],20:[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\nexports.default = {\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\n},{\"./de\":16,\"./en\":17,\"./fi\":18,\"./fr\":19,\"./it\":21,\"./pl\":22,\"./ro\":23,\"./se\":24}],21:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"Terminare l'editing dei singoli layer per chiudere la sessione\"\n },\n errors: {\n no_layers: \"Si è verificato un errore nel caricamento dei layers in editing.\",\n some_layers: \"Si è verificato un errore nel caricamento di alcuni layers in editing\",\n editing_multiple_relations: 'Le modifica di relazioni multiple non è attualmente supportata'\n },\n search: \"Cerca\",\n editing_changes: \"Modifiche Editing\",\n editing_data: \"Modifica dati\",\n editing_attributes: \"Edita attributi\",\n relations: \"Relazioni\",\n edit_relation: \"Edita relazione\",\n back_to_relations: \"Ritorna alle Relazioni\",\n no_relations_found: \"Non ci sono relazioni\",\n relation_data: \"Dati relativi alla relazione\",\n relation_already_added: \"Relazione già presente\",\n list_of_relations_feature: \"Elenco Relazioni della feature \",\n tooltip: {\n edit_layer: \"Modifica livello\",\n filter_by_relation: \"Filtra i livelli per relazione\"\n },\n toolbox: {\n title: 'Edita'\n },\n table: {\n edit: \"Edita feature\",\n copy: \"Crea una copia\",\n delete: \"Cancella feature\"\n },\n tools: {\n copy: \"Copia elementi\",\n pastefeaturesfromotherlayers: \"Incolla elemento da altro livello\",\n addpart: \"Aggiungi parte alla geometria\",\n deletepart: \"Cancella parte dalla geometria\",\n merge: \"Dissolvi elementi\",\n split: \"Dividi elementi\",\n add_feature: \"Aggiungi elemento\",\n delete_feature: \"Elimina elemento\",\n move_feature: \"Muovi elemento\",\n update_vertex: \"Aggiorna vertici elemento\",\n update_feature: \"Modifica attributi elemento\",\n update_multi_features: \"Modifica gli attributi degli elementi selezionati\",\n update_multi_features_relations: \"Modifica gli attributi di tutte le relazioni selezionate\",\n copyfeaturefromexternallayer: \"Crea elemento da un livello esterno\"\n },\n toolsoftool: {\n measure: \"Visualizza misura\",\n snap: \"Snap sul layer\",\n snapall: \"Snap su tutti i layer\"\n },\n steps: {\n help: {\n select_elements: \"Seleziona le geometrie\",\n select_element: \"Seleziona l'elemento\",\n copy: \"Crea una copia degli elementi selezionati\",\n merge: \"Dissolvi elementi\",\n split: \"Dvidi elemento\",\n new: \"Crea un nuovo elemento\",\n edit_table: \"Modifica gli elementi della tabella\",\n draw_new_feature: \"Disegna la nuova geometria\",\n action_confirm: \"Conferma azione\",\n double_click_delete: \"Seleziona la geometria sulla mappa da cancellare\",\n edit_feature_vertex: \"Modifica o aggiungi un vertice alla geometria selezionata\",\n move: \"Muovi la geometria selezionata\",\n select_feature_to_relation: \"Seleziona la geometria che vuoi mettere in relazione\",\n show_edit_feature_form: \"Mostra il modulo per modificare gli attributi del'elemento\",\n pick_feature: \"Seleziona la geometria da modificare dalla mappa\",\n insert_attributes_feature: \"Inserisci gli attributi dell'elemento\"\n }\n },\n\n workflow: {\n steps: {\n select: 'Seleziona una geometria',\n draw_part: \"Disegna il nuovo elemento da aggiungere alla geometria\",\n draw_geometry: \"Disegna la geometria\",\n merge: 'Seleziona la geometria su cui dissolvere',\n selectPoint: \"Clicca sulla geometria per selezionarla\",\n selectSHIFT: 'Seleziona le geometrie tenedo premuto il tasto SHIFT',\n selectDrawBox: \"Seleziona le geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale\",\n selectDrawBoxAtLeast2Feature: \"Seleziona almeno 2 geometrie disegnando un rettangolo mediante la creazione dei due punti della diagonale\",\n selectPointSHIFT: 'Seleziona le geometrie
MAIUSC+DRAG seleziona più elementi in un area',\n selectMultiPointSHIFT: 'Seleziona le geometrie
SHIFT+DRAG seleziona più elementi in un area',\n selectMultiPointSHIFTAtLeast2Feature: 'Seleziona almeno 2 geometrie
SHIFT+DRAG seleziona più elementi in un area',\n copyCTRL: 'Copia le geometrie selezionate con CTRL+C',\n selectStartVertex: 'Seleziona il vertice di partenza',\n selectToPaste: 'Seleziona il punto dove verranno incollate le geometrie',\n draw_split_line: \"Disegna una linea per dividere la geometria selezionata\"\n },\n title: {\n steps: 'Passi'\n },\n next: 'Avanti'\n },\n messages: {\n featureslockbyotheruser: \"Ci sono alcune geometrie/records non editabili perchè in modifica da altri utenti\",\n splitted: \"Feature(s) splittata(e)\",\n nosplittedfeature: \"La(e) feature(s) non è stata splittata\",\n press_esc: \"Premi ESC per tornare indietro\",\n online: \"Ora sei di nuovo ONLINE. Puoi slavare le modifiche in modo permanente\",\n offline: \"Sei OFFLINE. Tutte le modifiche saranno salvate temporaneamente in locale\",\n delete_feature: \"Vuoi eliminare l'elemento selezionato?\",\n delete_feature_relations: \"Cancellando una feature con relazioni associate, tale relazioni rimarranno orfane. Si consiglia di gestire tali relazioni prima di cancellare la feature\",\n unlink_relation: \"Vuoi staccare la relazione?\",\n commit_feature: \"Riepilogo modifiche\",\n toolbox_has_no_geometry: \"questo livello non ha geometria\",\n toolbox_has_relation: \"questo livello fa parte di una relazione\",\n saved: \"I dati sono stati salvati correttamente\",\n saved_local: \"I dati sono stati salvati correttamente in locale\",\n loading_data: \"Caricamento dati\",\n saving: \"Salvataggio dati in corso. Attendere ...\",\n constraints: {\n enable_editing: \"Ingrandisci per modificare \\nScala di attivazione 1:\"\n },\n pdf: \"Anteprima del documento non disponibile. Clicca qui \",\n commit: {\n header: \"La lista sotto riporta tutte le modifiche che verranno salvate.\",\n header_relation: \"Relazione\",\n header_add: \"Aggiunte riporta il numero delle features aggiunte\",\n header_update_delete: \"Modificate e Cancellate riporta la lista degli id\",\n add: \"Aggiunte\",\n delete: \"Cancellate\",\n update: \"Aggiornate\"\n },\n loading_table_data: \"Costruzione tabella dati in corso. Attendere ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Necessario compilare eventuali campi obbligatori sulle features incollate prima del salvataggio\",\n no_feature_selected: \"Nessuna feature selezionata\",\n select_min_2_features: 'Seleziona come minimo due features'\n },\n relation: {\n table: {\n info: \"
Seleziona le relazioni per associarle alla feature in editing.
\"\n },\n draw_new_feature: \"Disegna nuova geometria\",\n draw_or_copy: \"oppure\",\n copy_feature_from_other_layer: \"Copia geometria da altro layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Torna ad editare il padre\",\n add_relation: \"Crea ed aggiungi nuova relazione\",\n link_relation: \"Associa una relazione esistente a questa feature\",\n open_relation_tools: \"Apri strumenti relatione\",\n unlink_relation: \"Annulla relazione\"\n }\n },\n buttons: {\n save: \"Inserisci/Modifica\",\n save_table: 'Modifica',\n save_and_back: \"Salva e torna al padre\",\n save_and_back_table: \"Salva e torna indietro\",\n cancel: \"Ignora Modifiche\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Seleziona layer\",\n edit_attributes: \"Edita attributi delle features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Seleziona una feature\"\n }\n }\n }\n};\n\n},{}],22:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n errors: {\n no_layers: \"An error occurs. It's no possible to edit layers\",\n some_layers: \"An error occurs: It's no possible to edit some layers\"\n },\n search: \"Search\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Editing Layers\",\n editing_attributes: \"Editing attributes\",\n relations: \"Relations\",\n edit_relation: \"Edit relation\",\n back_to_relations: \"Back to Relations\",\n no_relations_found: \"No relations found\",\n relation_data: \"Relation data\",\n relation_already_added: \"Relation already added\",\n list_of_relations_feature: \"List of relations feature \",\n tooltip: {\n edit_layer: \"Edit Layer\"\n },\n toolbox: {\n title: 'Edit'\n },\n table: {\n edit: \"Edit feature\",\n copy: \"Create a copy\",\n delete: \"Delete feature\"\n },\n tools: {\n copy: \"Copy features\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Add part to multipart\",\n deletepart: \"Delete part from multipart\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n add_feature: \"Add feature\",\n delete_feature: \"Delete feature\",\n move_feature: \"Move feature\",\n update_vertex: \"Update feature vertex\",\n update_feature: \"Update feature attribute\",\n update_multi_features: \"Update attributes of selected features\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Select features\",\n select_element: \"Select feature\",\n copy: \"Create new copy of selected features\",\n merge: \"Dissolve features\",\n split: \"Split Feature\",\n new: \"Create new feature\",\n edit_table: \"Edit table features\",\n draw_new_feature: \"Draw feature on map\",\n action_confirm: \"Confirm action\",\n double_click_delete: \"Select feature on map to delete\",\n edit_feature_vertex: \"Modify or add a vertex on selected feature\",\n move: \"Move selected feature\",\n select_feature_to_relation: \"Select feature that you bind relation\",\n show_edit_feature_form: \"Show feature form to edit attributes\",\n pick_feature: \"Select feature on map to modify\",\n insert_attributes_feature: \"Insert attributes of the feature\"\n }\n },\n workflow: {\n steps: {\n select: 'Click on feature to select',\n draw_part: \"Draw new part\",\n merge: 'Select featurewhere dissolve',\n selectSHIFT: 'Select features drawing a rectangle pressing SHIFT',\n selectDrawBox: \"Select features drawing a rectangle by two point of opposite corners\",\n selectDrawBoxAtLeast2Feature: \"Select at least features drawing a rectangle by two point of opposite corners\",\n selectPoint: \"Click on feature to select\",\n selectPointSHIFT: 'Select features drawing a rectangle pressing SHIFT (multifeatures) or click on one feature',\n selectMultiPointSHIFT: 'Select features drawing a rectangle pressing SHIFT or click on feature',\n selectMultiPointSHIFTAtLeast2Feature: 'Select at least 2 features drawing a rectangle pressing SHIFT or click on feature',\n copyCTRL: 'Copy selected features using CTRL+C',\n selectStartVertex: 'Select starting vertex of selected features',\n selectToPaste: 'Select the point where paste the features selected',\n draw_split_line: \"Draw a line to split selected feature\"\n },\n title: {\n steps: 'Steps'\n },\n next: 'Next'\n },\n messages: {\n featureslockbyotheruser: \"Some geometries/records are not editable because in editing by other user\",\n splitted: \"Splitted\",\n nosplittedfeature: \"Feature not spitted\",\n press_esc: \"Press ESC to back\",\n online: \"Back ONLINE. Now you can save your changes on database\",\n offline: \"You are OFFLINE. All changes are saved locally\",\n delete_feature: \"Do you want delete selected feature ?\",\n delete_feature_relations: \"If feature has bindings relations, these relations become orphans. We suggest to handle these relations before detele this feature\",\n unlink_relation: \"Do you want unlink relation?\",\n commit_feature: \"Do you want to save the changes\",\n toolbox_has_relation: \"this layer is part of a relation\",\n saved: \"Data saved successfully\",\n saved_local: \"Data saved locally successfully\",\n loading_data: \"Loading data\",\n saving: \"Saving data. Please wait ...\",\n constraints: {\n enable_editing: \"Please Zoom In to enable editing tools \\nActivation scale at 1:\"\n },\n pdf: \"Document preview not available. Please click here \",\n commit: {\n header: \"The following list show all changes to commit.\",\n header_add: \"Added show the number of features added\",\n header_update_delete: \"Modified and Deleted show the list of features id\",\n add: \"Added(n. features)\",\n delete: \"Deleted(id)\",\n update: \"Modified(id)\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Select relations to link it to current editing feature.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Create and link new relation\",\n link_relation: \"Join a relation to this feature\",\n open_relation_tools: \"Show relation tools\",\n unlink_relation: \"Unlink relation\"\n }\n },\n buttons: {\n save: \"Insert/Edit\",\n save_and_back: \"Save and Back\",\n save_and_back_table: \"Save and Back\",\n cancel: \"Ignore Changes\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],23:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Avem o eroare. Straturile nu sunt editabile\",\n some_layers: \"Avem o eroare: Anumite straturi nu se pot edita\"\n },\n search: \"Caută\",\n editing_changes: \"Modificare schimbări\",\n editing_data: \"Modificare straturi\",\n editing_attributes: \"Modificare atribute\",\n relations: \"Relații\",\n edit_relation: \"Modifică relația\",\n back_to_relations: \"Înapoi la Relații\",\n no_relations_found: \"Nu am găsit relații\",\n relation_data: \"Date relații\",\n relation_already_added: \"Relație adăugată deja\",\n list_of_relations_feature: \"Lista relații entitatea \",\n tooltip: {\n edit_layer: \"Modifică strat\"\n },\n toolbox: {\n title: 'Modifică'\n },\n table: {\n edit: \"Modifică entitate\",\n copy: \"Creează o copie\",\n delete: \"Elimină entitatea\"\n },\n tools: {\n copy: \"Copiază entitățile\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Adaugă o parte la multiparte\",\n deletepart: \"Elimină partea din multiparte\",\n merge: \"Dizolvare entități\",\n split: \"Divizare Entitate\",\n add_feature: \"Adaugă entitate\",\n delete_feature: \"Eliminare entitate\",\n move_feature: \"Mută entitate\",\n update_vertex: \"Actualizează vertecșii entității\",\n update_feature: \"Actualizează atributul entității\",\n update_multi_features: \"Actualizează atributele entităților selectate\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Arată măsurătorile\",\n snap: \"Acroșare strat\",\n snapall: \"Acroșare pe toate straturile\"\n },\n steps: {\n help: {\n select_elements: \"Selectează entități\",\n select_element: \"Selectează entitate\",\n copy: \"Creează o nouă copie a entităților selectate\",\n merge: \"Dizolvă entitățile\",\n split: \"Divizare Entitate\",\n new: \"Creează o entitate\",\n edit_table: \"Modifică entitățile tabelare\",\n draw_new_feature: \"Desenează entitate pe hartă\",\n action_confirm: \"Confirmă acțiunea\",\n double_click_delete: \"Selectează entitatea de eliminat din hartă\",\n edit_feature_vertex: \"Modifică sau adaugă un vertex la entitatea selectată\",\n move: \"Mută entitatea selectată\",\n select_feature_to_relation: \"Selectează entitate pentru relaționare\",\n show_edit_feature_form: \"Arată formularul entității pentru modificări\",\n pick_feature: \"Selectează entitățile de modificat din hartă\",\n insert_attributes_feature: \"Inserează atributele entității\"\n }\n },\n workflow: {\n steps: {\n select: 'Click pe entitate pentru a o selecta',\n draw_part: \"Desenează o parte nouă\",\n draw_geometry: \"Desenați geometria\",\n merge: 'Selectează partea de dizolvat',\n selectSHIFT: 'Selectează entități prin desen triunghi apăsând SHIFT',\n selectDrawBox: \"Selectează entități desenând un dreptunghi prin două puncte opuse\",\n selectDrawBoxAtLeast2Feature: \"Selectează cel puțin 2 entități prin desenul unui dreptunghi\",\n selectPoint: \"Click pe entitate pentru selectare\",\n selectPointSHIFT: 'Selectează entități prin desen dreptunghi apăsând SHIFT (multientități) sau prin click pe entitate',\n selectMultiPointSHIFT: 'Selectează entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate',\n selectMultiPointSHIFTAtLeast2Feature: 'Selectează cel puțin 2 entități prin desen dreptunghi apăsând SHIFT sau prin click pe entitate',\n copyCTRL: 'Copiază entitățile selectate folosint CTRL+C',\n selectStartVertex: 'Selectează vertexul de start a entităților selectate',\n selectToPaste: 'Selectează punctul unde să lipim entitățile selectate',\n draw_split_line: \"Desenează o linie pentru a diviza entitatea selectată\"\n },\n title: {\n steps: 'Pași'\n },\n next: 'Următorul'\n },\n messages: {\n featureslockbyotheruser: \"Unele geometrii/înregistrări nu sunt editabile deoarece sunt editate de către alt utilizator\",\n splitted: \"Divizat\",\n nosplittedfeature: \"Entitate nedivizată\",\n press_esc: \"ESC pentru înapoi\",\n online: \"Înapoi ONLINE. Acum se pot salva schimbările\",\n offline: \"OFFLINE. Schimbările sunt salvate local\",\n delete_feature: \"Șterg entitatea selectată?\",\n delete_feature_relations: \"Dacă entitatea are relații care trimit la ea, acele relații devin orfane. Sugerăm să vă ocupați de acele elemente înainte să eliminați această entitate.\",\n unlink_relation: \"Dorești să eliminați legătura cu relația?\",\n commit_feature: \"Rezumatul modificărilor\",\n toolbox_has_relation: \"acest strat face parte dintr-o relație\",\n saved: \"Datele sunt salvate\",\n saved_local: \"Datele s-au salvat local\",\n loading_data: \"Datele se încarcă.\",\n saving: \"Salvăm datele. Așteptați ...\",\n constraints: {\n enable_editing: \"Pentru a activa Modificare faceți zoom la \\nScara de activare 1:\"\n },\n pdf: \"Previzualizarea documentului nu este disponibilă. Click aici \",\n commit: {\n header: \"Lista cu toate modificările.\",\n header_relation: \"Relation\",\n header_add: \"Adăugate arată nr. de entități adăugate\",\n header_update_delete: \"Modificate și Șterse arată lista de id-uri de entități\",\n add: \"Adăugate\",\n delete: \"Eliminate\",\n update: \"Modificate\"\n },\n loading_table_data: \"Încărcăm tabelul de date ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"Înainte de a salva, este necesar să completați toate câmpurile obligatorii ale entități introduse\",\n no_feature_selected: \"Nicio feature selectată\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
Selecteaz\\u0103 rela\\u021Biile pentru a face leg\\u0103tura cu entitatea curent\\u0103.
\"\n },\n draw_new_feature: \"Desenați o nouă feature\",\n draw_or_copy: \"sau\",\n copy_feature_from_other_layer: \"Copiați feature dintr-un alt layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Înapoi la modificările entității părinte\",\n add_relation: \"Creează și fă legătura unei relații noi\",\n link_relation: \"Leagă o relație de entitate\",\n open_relation_tools: \"Arată instrumentele pentru relații\",\n unlink_relation: \"Elimină legătura la relație\"\n }\n },\n buttons: {\n save: \"Inserați/Editați\",\n save_and_back: \"Salvează și dă înapoi\",\n save_and_back_table: \"Salvează și dă înapoi\",\n cancel: \"Ignorați modificările\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],24:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n close_editing_panel: {\n message: \"To close editing form need to exit from editing layer\"\n },\n errors: {\n no_layers: \"Ett fel uppstod. Nivåerna kan inte redigeras.\",\n some_layers: \"Ett fel uppstod. Vissa nivåer kan inte redigeras.\"\n },\n search: \"Sökning\",\n editing_changes: \"Editing Changes\",\n editing_data: \"Nivåerna redigeras\",\n editing_attributes: \"Attributen redigeras\",\n relations: \"Relationer\",\n edit_relation: \"Redigera relationen\",\n back_to_relations: \"Tillbaka till relationerna\",\n no_relations_found: \"Inga relationer hittades\",\n relation_data: \"Relationsuppgifter\",\n relation_already_added: \"Relationen har redan lagts till\",\n list_of_relations_feature: \"Lista på relationens egenskaper\",\n tooltip: {\n edit_layer: \"Redigera nivån\"\n },\n toolbox: {\n title: 'Redigera'\n },\n table: {\n edit: \"Redigera egenskap\",\n copy: \"Skapa en kopia\",\n delete: \"Ta bort egenskap\"\n },\n tools: {\n copy: \"Kopiera egenskaper\",\n pastefeaturesfromotherlayers: \"Paste features from other layer\",\n addpart: \"Lägg till del\",\n deletepart: \"Ta bort del\",\n merge: \"Slå samman egenskaper\",\n split: \"Dela upp egenskap\",\n add_feature: \"Lägg till egenskap\",\n delete_feature: \"Ta bort egenskap\",\n move_feature: \"Flytta egenskap\",\n update_vertex: \"Uppdatera punktens egenskap\",\n update_feature: \"Uppdatera egenskap\",\n update_multi_features: \"Ändra attributen för de valda funktionerna\",\n update_multi_features_relations: \"Update attributes of all selected relations\",\n copyfeaturefromexternallayer: \"Create Feature from added layer\"\n },\n toolsoftool: {\n measure: \"Show measure\",\n snap: \"Snap layer\",\n snapall: \"Snap to all layers\"\n },\n steps: {\n help: {\n select_elements: \"Välj egenskaper\",\n select_element: \"Välj egenskapalitse ominaisuus\",\n copy: \"Skapa kopia av valda egenskaper\",\n merge: \"Slå samman egenskaper\",\n split: \"Dela upp egenskap\",\n new: \"Skapa ny egenskap\",\n edit_table: \"Ändra egenskaper i tabellen\",\n draw_new_feature: \"Piirrä ominaisuus kartalle\",\n action_confirm: \"Godkänn funktionen\",\n double_click_delete: \"Välj funktionen som du vill ta bort på kartan\",\n edit_feature_vertex: \"Ändra punkten eller lägg till punkten till den valda egenskapen\",\n move: \"Flytta den valda egenskapen\",\n select_feature_to_relation: \"Välj relation\",\n show_edit_feature_form: \"Visa egenskapsformuläret för redigering av attribut\",\n pick_feature: \"Välj funktion på kartan för att ändras\",\n insert_attributes_feature: \"Lägg till egenskapens attribut\"\n }\n },\n workflow: {\n steps: {\n select: 'Välj egenskap',\n draw_part: \"Rita ny del\",\n draw_geometry: \"Rita geometri\",\n merge: 'Välj egenskap att slå samman',\n selectSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel.', //Tero 10.12.2020\n selectDrawBox: \"Rita upp den rektangel inom vilken objekten väljs \", //Tero 10.12.2020\n selectDrawBoxAtLeast2Feature: \"Rita rektangeln inom vilken minst två objekt är markerade \",\n selectPoint: \"Välj egenskap\",\n selectPointSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.',\n selectMultiPointSHIFT: 'Tryck SHIFT, om du vill välja objekt med hjälp av rektangel, eller välj en enskild egenskap.',\n selectMultiPointSHIFTAtLeast2Feature: 'Tryck på SKIFT för att välja minst två objekt med en rektangel eller välj en enda egenskap. ',\n copyCTRL: 'CTRL+C, du kan kopiera valda egenskaper.', //Tero 10.12.2020\n selectStartVertex: 'Visa startpunkten för valda egenskaper.',\n selectToPaste: 'Välj punkt till vilken de valda egenskaperna ska fogas.',\n draw_split_line: \"Rita en linje enligt vilken den valda egenskapen ska uppdelas.\"\n },\n title: {\n steps: 'Skeden'\n },\n next: \"Nästa\"\n },\n messages: {\n featureslockbyotheruser: \"Jotkut geometriat/tietueet eivät ole muokattavissa, koska muut käyttäjät muokkaavat niitä\",\n splitted: \"Uppdelad\",\n nosplittedfeature: \"Egenskapen har inte delats upp\",\n press_esc: \"Tryck ESC för att gå tillbaka\",\n online: \"Förbindelsen har upprättats. Ändringar kan sparas i databasen.\",\n offline: \"Du är i offline-läge. Ändringarna sparas lokalt\",\n delete_feature: \"Vill du ta bort den valda egenskapen?\",\n delete_feature_relations: \"Om egenskapen saknar bindande relationer blir dessa relationer föräldralösa. Vi rekommenderar att du behandlar dessa relationer innan du lämnar programmet\",\n unlink_relation: \"Vill du ta bort relationen?\",\n commit_feature: \"Sammanfattning av ändringar\",\n toolbox_has_relation: \"detta lager är en del av en relation\",\n saved: \"Uppgifterna sparades\",\n saved_local: \"Uppgifterna sparades lokalt.\",\n loading_data: \"Uppgifterna laddas\",\n saving: \"Uppgifterna sparas. Vänta...\",\n constraints: {\n enable_editing: \"Zooma in för att börja använda redigeringsverktyg \\nAktivering skala 1:\"\n },\n pdf: \"Förhandsgranskning av dokument är inte tillgänglig. Tryck här\",\n commit: {\n header: \"Följande lista visar alla ändringar.\",\n header_relation: \"Relation\",\n header_add: \"Tillagda visar antalet egenskaper som lagts till\",\n header_update_delete: \"Redigerad och Borttagen Visa en lista på egenskapernas id\",\n add: \"har lagts till\",\n delete: \"Borttagen\",\n update: \"Redigerad\"\n },\n loading_table_data: \"Building Data Table. Please wait ...\",\n copy_and_paste_from_other_layer_mandatory_fields: \"It is necessary to fill in any mandatory fields on the features pasted before saving\",\n no_feature_selected: \"No feature selected\",\n select_min_2_features: 'Select at least 2 features'\n },\n relation: {\n table: {\n info: \"
V\\xE4lj relation f\\xF6r l\\xE4nkning till egenskap som ska redigeras.
\"\n },\n draw_new_feature: \"Draw new feature\",\n draw_or_copy: \"or\",\n copy_feature_from_other_layer: \"Copy feature from other layer\"\n },\n form: {\n relations: {\n tooltips: {\n back_to_father: \"Back to edit father\",\n add_relation: \"Skapa och länka ny relation\",\n link_relation: \"Foga relationen till denna egenskap\",\n open_relation_tools: \"Visa relationsverktyg\",\n unlink_relation: \"Ta bort relation\"\n }\n },\n buttons: {\n save: \"Infoga/Redigera\",\n save_and_back: \"Spara och gå tillbaka\",\n save_and_back_table: \"Spara och gå tillbaka\",\n cancel: \"Ignorera ändringar\"\n }\n },\n modal: {\n tools: {\n copyfeaturefromotherlayer: {\n title: \"Select layer\",\n edit_attributes: \"Edit attributes of pasted features in multiple mode\"\n },\n copyfeaturefromprojectlayer: {\n title: \"Select a feature\"\n }\n }\n }\n};\n\n},{}],25:[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 _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 _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 _rollback = function () {\n var _ref39 = _asyncToGenerator(function* () {\n var relations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return Promise.allSettled(Object.entries(relations).flatMap(function (_ref40) {\n var _ref41 = _slicedToArray(_ref40, 2),\n layerId = _ref41[0],\n _ref41$ = _ref41[1],\n add = _ref41$.add,\n del = _ref41$.delete,\n update = _ref41$.update,\n _ref41$$relations = _ref41$.relations,\n relations = _ref41$$relations === undefined ? {} : _ref41$$relations;\n\n var source = (0, _getEditingLayerById.getEditingLayerById)(layerId).getEditingSource();\n var has_features = source.readFeatures().length > 0; // check if the relation layer has some features\n // get original values\n return [].concat(_toConsumableArray((has_features && add || []).map(function () {\n var _ref43 = _asyncToGenerator(function* (_ref42) {\n var id = _ref42.id;\n\n source.removeFeature(source.getFeatureById(id));\n });\n\n return function (_x23) {\n return _ref43.apply(this, arguments);\n };\n }())), _toConsumableArray((has_features && update || []).map(function () {\n var _ref45 = _asyncToGenerator(function* (_ref44) {\n var id = _ref44.id;\n\n try {\n var response = yield XHR.get({\n url: CatalogLayersStoresRegistry.getLayerById(layerId).getUrl('data'),\n params: { fids: id }\n });\n var f = (response.result && response.vector.data.features || []).at(0);\n var feature = source.getFeatureById(id);\n feature.setProperties(f.properties);\n feature.setGeometry(f.geometry);\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x24) {\n return _ref45.apply(this, arguments);\n };\n }())), _toConsumableArray(del.map(function () {\n var _ref46 = _asyncToGenerator(function* (id) {\n try {\n var response = yield XHR.get({\n url: CatalogLayersStoresRegistry.getLayerById(layerId).getUrl('data'),\n params: { fids: id }\n });\n var f = (response.result && response.vector.data.features || []).at(0);\n var feature = new ol.Feature({ geometry: f.geometry });\n feature.setProperties(f.properties);\n feature.setId(id);\n source.addFeature(new Feature({ feature: feature })); // add it again to source because relation layer is locked\n } catch (e) {\n console.warn(e);\n }\n });\n\n return function (_x25) {\n return _ref46.apply(this, arguments);\n };\n }())), [_rollback(relations)]);\n }));\n });\n\n return function _rollback() {\n return _ref39.apply(this, arguments);\n };\n}();\n\nrequire('./g3wsdk');\n\nvar _i18n = require('./i18n');\n\nvar _i18n2 = _interopRequireDefault(_i18n);\n\nvar _workflow = require('./g3wsdk/workflow/workflow');\n\nvar _step = require('./g3wsdk/workflow/step');\n\nvar _promisify = require('./utils/promisify');\n\nvar _createFeature = require('./utils/createFeature');\n\nvar _getEditingLayerById = require('./utils/getEditingLayerById');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('./utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _addPartToMultigeometries = require('./utils/addPartToMultigeometries');\n\nvar _workflows = require('./workflows');\n\nvar _toolbox = require('./toolboxes/toolbox');\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 _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\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\nvar G3W_FID = g3wsdk.constant.G3W_FID;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n ApplicationService = _g3wsdk$core.ApplicationService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar _g3wsdk$core$i18n = g3wsdk.core.i18n,\n t = _g3wsdk$core$i18n.t,\n tPlugin = _g3wsdk$core$i18n.tPlugin;\nvar _g3wsdk$core$layer = g3wsdk.core.layer,\n Layer = _g3wsdk$core$layer.Layer,\n LayersStore = _g3wsdk$core$layer.LayersStore;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar MapLayersStoreRegistry = g3wsdk.core.map.MapLayersStoreRegistry;\nvar _g3wsdk$core$plugin = g3wsdk.core.plugin,\n Plugin = _g3wsdk$core$plugin.Plugin,\n PluginService = _g3wsdk$core$plugin.PluginService;\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n XHR = _g3wsdk$core$utils.XHR,\n noop = _g3wsdk$core$utils.noop;\nvar GUI = g3wsdk.gui.GUI;\nvar Panel = g3wsdk.gui.vue.Panel;\nvar serverErrorParser = g3wsdk.core.errors.parsers.Server;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n getScaleFromResolution = _g3wsdk$ol$utils.getScaleFromResolution,\n getResolutionFromScale = _g3wsdk$ol$utils.getResolutionFromScale;\n\n\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep,\n AddFeatureStep: _workflows.AddFeatureStep,\n ToolBox: _toolbox.ToolBox\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nnew (function (_Plugin) {\n _inherits(_class, _Plugin);\n\n function _class() {\n _classCallCheck(this, _class);\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Global plugin state\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, {\n name: 'editing',\n i18n: _i18n2.default,\n fontClasses: [{ name: 'measure', className: \"fas fa-ruler-combined\" }, { name: 'magnete', className: \"fas fa-magnet\" }, { name: 'clipboard', className: \"fas fa-clipboard\" }]\n }));\n\n _this.state = {\n open: false, // check if panel is open or not\n toolboxes: [],\n _toolboxes: [], // TODO: `state._toolboxes` vs `state.toolboxes` ?\n toolboxselected: null,\n /** @since g3w-client-plugin-editing@v3.6.2 */\n showselectlayers: true, // whether to show selected layers on editing panel\n message: null,\n relations: [],\n sessions: {}, // store all sessions\n layers_in_error: false,\n formComponents: {}, // plugin components\n subscribers: {},\n constraints: { // editing contraints (layer, filter, ..) to get features\n toolboxes: {},\n showToolboxesExcluded: true\n },\n featuresOnClose: {}, // layers fatures to result when close editing (KEY LAYERID, VALUES ARRAY OF FEATURE FID CHANGES OR ADDED)\n uniqueFieldsValues: {}, // store unique fields values for each layer\n saveConfig: { // store configuration of how save/commit changes to server\n mode: \"default\", // default, autosave\n modal: false,\n messages: undefined, // object to set custom message\n cb: {\n done: function done() {}, // function executed after commit change done\n error: function error() {} // function executed after commit changes error\n }\n },\n editableLayers: {},\n events: {\n 'start-editing': {},\n 'show-relation-editing': {},\n layer: {\n start_editing: {\n before: {},\n after: {}\n }\n }\n },\n show_errors: false,\n editFeatureKey: undefined,\n panel: null, // editing panel\n currentLayout: ApplicationService.getCurrentLayoutName(),\n unwatchLayout: new Vue().$watch(function () {\n return ApplicationState.gui.layout.__current;\n }, function (layoutName) {\n return _this.state.currentLayout = layoutName !== _this.getName() ? layoutName : _this.state.currentLayout;\n }),\n onMapControlToggled: function onMapControlToggled(_ref3) {\n var target = _ref3.target;\n\n target.isToggled() && target.isClickMap() && _this.state.toolboxselected && _this.state.toolboxselected.getActiveTool() && _this.state.toolboxselected.stopActiveTool();\n }\n };\n\n // BACKOMP v3.x\n _this.setService(Object.assign(new PluginService(), {\n state: _this.state,\n config: _this.config,\n getSession: _this.getSession.bind(_this),\n getFeature: _this.getFeature.bind(_this),\n subscribe: _this.subscribe.bind(_this),\n unsubscribe: _this.unsubscribe.bind(_this),\n fireEvent: _this.fireEvent.bind(_this),\n undo: _this.undo.bind(_this),\n redo: _this.redo.bind(_this),\n getEditingLayer: _this.getEditingLayer.bind(_this),\n addToolBox: _this.addToolBox.bind(_this),\n runEventHandler: _this.runEventHandler.bind(_this),\n resetDefault: _this.resetDefault.bind(_this),\n resetAPIDefault: _this.resetAPIDefault.bind(_this),\n getLayers: _this.getLayers.bind(_this),\n getLayerById: _this.getLayerById.bind(_this),\n getToolBoxById: _this.getToolBoxById.bind(_this),\n getSessionById: _this.getSessionById.bind(_this),\n setApplicationEditingConstraints: _this.setApplicationEditingConstraints.bind(_this),\n getToolBoxes: _this.getToolBoxes.bind(_this),\n getEditableLayers: _this.getEditableLayers.bind(_this),\n stop: _this.stop.bind(_this),\n saveChange: _this.saveChange.bind(_this),\n commit: _this.commit.bind(_this),\n undoRedoLayerUniqueFieldValues: _this.undoRedoLayerUniqueFieldValues.bind(_this),\n undoRedoRelationUniqueFieldValues: _this.undoRedoRelationUniqueFieldValues.bind(_this),\n stopEditing: _this.stopEditing.bind(_this),\n startEditing: _this.startEditing.bind(_this),\n addLayerFeature: _this.addLayerFeature.bind(_this)\n }));\n\n // set map control toggle event\n GUI.getService('map').on('mapcontrol:toggled', _this.state.onMapControlToggled);\n\n _this._init();\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\n _createClass(_class, [{\n key: '_init',\n value: function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n // skip when no editable layer\n if (!CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }).length) {\n return;\n }\n\n this.setHookLoading({ loading: true });\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1 */\n this.service.setApi({\n api: {\n getSession: this.getSession.bind(this),\n getFeature: this.getFeature.bind(this),\n subscribe: this.subscribe.bind(this),\n unsubscribe: this.unsubscribe.bind(this),\n getToolBoxById: this.getToolBoxById.bind(this),\n addNewFeature: _createFeature.createFeature,\n commitChanges: this.commit.bind(this),\n setApplicationEditingConstraints: this.setApplicationEditingConstraints.bind(this),\n getMapService: function getMapService() {\n return GUI.getService('map');\n },\n updateLayerFeature: noop,\n deleteLayerFeature: noop,\n addLayerFeature: this.addLayerFeature.bind(this),\n hidePanel: this.hideEditingPanel.bind(this),\n resetDefault: this.resetAPIDefault.bind(this),\n startEditing: this.startEditing.bind(this),\n stopEditing: this.stopEditing.bind(this),\n showPanel: this.showPanel.bind(this),\n setSaveConfig: this.setSaveConfig.bind(this),\n addFormComponents: this.addFormComponents.bind(this)\n }\n });\n\n // add editing layer store to mapstoreregistry\n MapLayersStoreRegistry.addLayersStore(new LayersStore({ id: 'editing', queryable: false }));\n\n this.state.editableLayers = {};\n this.state._toolboxes = [];\n this.state.toolboxes = [];\n\n // loop over editable layers\n (yield Promise.allSettled(CatalogLayersStoresRegistry.getLayers({ EDITABLE: true }, { TOC_ORDER: true }).map(function (l) {\n return l.getLayerForEditing({\n vectorurl: _this2.config.vectorurl,\n project_type: _this2.config.project_type\n });\n }))).forEach(function (_ref5) {\n var status = _ref5.status,\n layer = _ref5.value;\n\n\n // skip on http error\n if ('fulfilled' !== status) {\n _this2.state.layers_in_error = true;\n return;\n }\n\n _this2.state.editableLayers[layer.getId()] = layer;\n\n //set default empty object\n _this2.state.uniqueFieldsValues[layer.getId()] = {};\n\n /**\n * attach layer widgets event: get data from api when a field of a layer\n * is related to a wgis form widget (ex. relation reference, value map, etc..)\n */\n layer.getEditingFields().filter(function (field) {\n return field.input && 'select_autocomplete' === field.input.type && !field.input.options.filter_expression && !field.input.options.usecompleter;\n })\n /** @TODO need to avoid to call the same fnc to same event many times to avoid waste server request time */\n .forEach(function (field) {\n return ['start-editing', 'show-relation-editing'].forEach(function (type) {\n var id = layer.getId();\n _this2.state.events[type][id] = _this2.state.events[type][id] || [];\n\n _this2.state.events[type][id].push(_asyncToGenerator(function* () {\n var options = field.input.options;\n\n // remove all values\n options.loading.state = 'loading';\n options.values = [];\n\n var relationLayer = options.layer_id && CatalogLayersStoresRegistry.getLayerById(options.layer_id);\n var has_filter = [undefined, null].includes(options.filter_fields || []) || 0 === (options.filter_fields || []).length;\n\n try {\n\n // relation reference widget + no filter set\n if (options.relation_reference && has_filter) {\n var response = yield layer.getFilterData({ fformatter: field.name }); // get data with fformatter\n if (response && response.data) {\n var _options$values;\n\n // response data is an array ok key value objects\n (_options$values = options.values).push.apply(_options$values, _toConsumableArray(response.data.map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n value = _ref8[0],\n key = _ref8[1];\n\n return { key: key, value: value };\n })));\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, data: [response.data] });\n return options.values;\n }\n }\n\n // value map widget\n if (relationLayer) {\n //ordering by value or key depend on orderbyvalue Boolean value\n var _response = yield (0, _promisify.promisify)(relationLayer.getDataTable({ ordering: options.orderbyvalue ? options.value : options.key }));\n if (_response && _response.features) {\n var _options$values2;\n\n (_options$values2 = options.values).push.apply(_options$values2, _toConsumableArray((_response.features || []).map(function (feature) {\n return {\n key: feature.properties[options.value],\n value: feature.properties[options.key]\n };\n })));\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, features: _response.features });\n return options.values;\n }\n }\n\n /** @TODO check if deprecated */\n var features = [];\n options.loading.state = 'ready';\n _this2.fireEvent('autocomplete', { field: field, features: features });\n return features;\n } catch (e) {\n console.warn(e);\n options.loading.state = 'error';\n return Promise.reject(e);\n }\n }));\n });\n });\n\n _this2.state.sessions[layer.getId()] = null;\n });\n\n var i = 0;\n this.getLayers().forEach(function (editingLayer) {\n /**\n * set 1:1 relation fields editable\n * \n * Check if layer has relation 1:1 (type ONE) and if fields\n *\n * belongs to relation where child layer is editable\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\n var fatherId = editingLayer.getId(); // father layer\n CatalogLayersStoresRegistry.getLayerById(fatherId).getRelations().getArray().filter(function (relation) {\n return 'ONE' === relation.getType() && fatherId === relation.getFather();\n }) // 'ONE' == join 1:1 + father layerId is a father of relation\n .forEach(function (relation) {\n var isChildEditable = undefined !== _this2.getLayerById(relation.getChild()); // check if child layerId is editable (in editing)\n _this2.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }) // father layer fields (in editing)\n .forEach(function (f) {\n f.editable = f.editable && isChildEditable;\n }); // current editable boolean value + child editable layer\n });\n // Set editing layer color and toolbox style\n if (!editingLayer.getColor()) {\n editingLayer.setColor(editingLayer.isGeoLayer() ? [\"#C43C39\", \"#d95f02\", \"#91522D\", \"#7F9801\", \"#0B2637\", \"#8D5A99\", \"#85B66F\", \"#8D2307\", \"#2B83BA\", \"#7D8B8F\", \"#E8718D\", \"#1E434C\", \"#9B4F07\", '#1b9e77', \"#FF9E17\", \"#7570b3\", \"#204B24\", \"#9795A3\", \"#C94F44\", \"#7B9F35\", \"#373276\", \"#882D61\", \"#AA9039\", \"#F38F3A\", \"#712333\", \"#3B3A73\", \"#9E5165\", \"#A51E22\", \"#261326\", \"#e4572e\", \"#29335c\", \"#f3a712\", \"#669bbc\", \"#eb6841\", \"#4f372d\", \"#cc2a36\", \"#00a0b0\", \"#00b159\", \"#f37735\", \"#ffc425\"][i++ % 40] : '#fff');\n }\n });\n\n // after add layers to layerstore\n MapLayersStoreRegistry.getLayersStore('editing').addLayers(this.getLayers());\n\n // create toolboxes\n this.getLayers().forEach(function (l) {\n return _this2.addToolBox(new _toolbox.ToolBox(l, [].concat(_toConsumableArray(l.getChildren()), _toConsumableArray(l.getFathers())).filter(function (id) {\n return _this2.getLayerById(id);\n })));\n });\n\n yield GUI.isReady();\n\n this._setupGUI();\n\n this.setHookLoading({ loading: false });\n this.setReady(true);\n });\n\n function _init() {\n return _ref4.apply(this, arguments);\n }\n\n return _init;\n }()\n\n // setup plugin interface\n\n }, {\n key: '_setupGUI',\n value: function () {\n var _ref9 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n //@since 3.9.0\n // skip when:\n // 1 - plugin is not referred to the current project id\n // 2 - configuration of plugin, visible is set to false\n // 3 - There aren't editable layers or all are not visible\n if (!this.registerPlugin(this.config.gid) || false === this.config.visible || 0 === this.getLayers().filter(function (l) {\n return l.config.editing.visible;\n }).length) {\n return;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin/toolboxes/toolboxesfactory.js@v3.7.1\n *\n * Register query result action: edit selected feature from query results\n */\n this.state.editFeatureKey = GUI.getService('queryresults').onafter('editFeature', _asyncToGenerator(function* () {\n var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layer = _ref11.layer,\n feature = _ref11.feature;\n\n var fid = feature.attributes[G3W_FID] || feature.id;\n\n //In case of not unique id, skip\n if (undefined === fid) {\n return;\n }\n\n _this3.getToolBoxes().forEach(function (tb) {\n return tb.setShow(layer.id === tb.getId());\n });\n _this3.showEditingPanel();\n\n _this3.state.showselectlayers = false;\n\n _this3.subscribe('closeeditingpanel', function () {\n _this3.state.showselectlayers = true;return { once: true };\n });\n\n var toolBox = _this3.getToolBoxById(layer.id);\n //set selected\n toolBox.setSelected(true);\n\n var session = toolBox.getSession();\n\n var _toolBox$getEditingCo = toolBox.getEditingConstraints(),\n scale = _toolBox$getEditingCo.scale; // get scale constraint from setting layer\n\n var w = void 0;\n\n // start toolbox (filtered by feature id)\n try {\n // check map scale after zoom to feature\n // if currentScale is more that scale constraint set by layer editing\n // needs to go to scale setting by layer editing constraint\n if (scale) {\n var units = GUI.getService('map').getMapUnits();\n var map = GUI.getService('map').getMap();\n var currentScale = parseInt(getScaleFromResolution(map.getView().getResolution(), GUI.getService('map').getMapUnits()));\n if (currentScale > scale) {\n map.getView().setResolution(getResolutionFromScale(scale, units));\n }\n }\n\n yield (0, _promisify.promisify)(toolBox.start({ filter: { fids: fid } }));\n\n var _layer = toolBox.getLayer();\n var source = _layer.getEditingLayer().getSource();\n var is_vector = Layer.LayerTypes.VECTOR === _layer.getType();\n\n // get feature from an Editing layer source (with styles)\n var features = is_vector ? source.getFeatures() : source.readFeatures();\n var _feature = features.find(function (f) {\n return fid == f.getId();\n });\n\n // skip when not feature is get from server\n if (!_feature) {\n return;\n }\n\n var geom = _feature.getGeometry();\n\n // feature has geometry → zoom to geometry\n if (geom) {\n GUI.getService('map').zoomToGeometry(geom);\n }\n\n toolBox.setSelected(true);\n\n _this3.state.toolboxselected = toolBox;\n\n var addPartTool = is_vector && !geom && toolBox.getTools().find(function (t) {\n return 'addPart' === t.getId();\n });\n\n // check if layer is single geometry. Need to show and change behaviour\n if (addPartTool && !Geometry.isMultiGeometry(_layer.getGeometryType())) {\n addPartTool.visible = true;\n }\n\n // add geometry when vector layer feature has no geometry\n if (addPartTool) {\n //get workflow\n var op = addPartTool.getOperator();\n var _w = new _workflow.Workflow({\n type: 'drawgeometry',\n helpMessage: 'editing.workflow.steps.draw_geometry',\n runOnce: true, // need to run once time\n steps: [new _workflows.AddFeatureStep({\n add: false,\n steps: {\n addfeature: {\n description: 'editing.workflow.steps.draw_geometry'\n }\n },\n onRun: function onRun(_ref12) {\n var inputs = _ref12.inputs,\n context = _ref12.context;\n\n _w.emit('settoolsoftool', [{\n type: 'snap',\n options: {\n layerId: inputs.layer.getId(),\n source: inputs.layer.getEditingLayer().getSource(),\n active: true\n }\n }, {\n type: 'measure',\n options: {\n active: false\n }\n }]);\n _w.emit('active', ['snap']);\n },\n onStop: function onStop() {\n return _w.emit('deactive', ['snap', 'measure']);\n }\n }),\n // add part to multi geometries\n new _step.Step({ run: _addPartToMultigeometries.addPartToMultigeometries })],\n registerEscKeyEvent: true\n });\n\n addPartTool.setOperator(_w);\n\n _this3.subscribe('closeeditingpanel', function () {\n addPartTool.setOperator(op);\n addPartTool.visible = Geometry.isMultiGeometry(_layer.getGeometryType());\n });\n }\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editnopickmapfeatureattributesworkflow.js@v3.7.1 */\n w = new _workflow.Workflow({\n type: 'editnopickmapfeatureattributes',\n runOnce: true,\n helpMessage: 'editing.tools.update_feature',\n steps: [new _workflows.OpenFormStep()]\n });\n\n yield (0, _promisify.promisify)(w.start({\n inputs: { layer: _layer, features: [_feature] },\n context: { session: session }\n }));\n\n yield (0, _promisify.promisify)(session.save());\n\n _this3.saveChange();\n } catch (e) {\n console.warn(e);\n session.rollback();\n } finally {\n w.stop();\n }\n }));\n\n this.config.name = this.config.name || \"plugins.editing.editing_data\";\n\n this.addToolGroup({ position: 0, title: 'EDITING' });\n this.addTools({\n action: this.showEditingPanel,\n offline: false,\n icon: 'pencil'\n }, { position: 0, title: 'EDITING' });\n });\n\n function _setupGUI() {\n return _ref9.apply(this, arguments);\n }\n\n return _setupGUI;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Get session\n *\n * @param layerId\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref13.layerId;\n\n return this.getToolBoxById(layerId).getSession();\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n *\n * @param layerId\n *\n * @returns Feature in editing\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getFeature',\n value: function getFeature() {\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref14.layerId;\n\n return this.getToolBoxById(layerId).getActiveTool().getLayer().features[0];\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Subscribe handler function on event\n *\n * @param event\n * @param { Function } fnc\n *\n * @returns { Function } function\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'subscribe',\n value: function subscribe(event, fnc) {\n if (!this.state.subscribers[event]) {\n this.state.subscribers[event] = [];\n }\n if (!this.state.subscribers[event].find(function (subscribe) {\n return fnc === subscribe;\n })) {\n this.state.subscribers[event].push(fnc);\n }\n return fnc;\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.8\n * \n * Unsubscribe handler function on event\n *\n * @param event\n * @param fnc\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'unsubscribe',\n value: function unsubscribe(event, fnc) {\n this.state.subscribers[event] = this.state.subscribers[event].filter(function (sub) {\n return fnc !== sub;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param event\n * @param options\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'fireEvent',\n value: function () {\n var _ref15 = _asyncToGenerator(function* (event) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.state.subscribers[event]) {\n this.state.subscribers[event].forEach(function (fnc) {\n var response = fnc(options);\n if (response && response.once) {\n _this4.unsubscribe(event, fnc);\n }\n });\n }\n });\n\n function fireEvent(_x5) {\n return _ref15.apply(this, arguments);\n }\n\n return fireEvent;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Undo method\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undo',\n value: function undo() {\n var _this5 = this;\n\n var session = this.state.toolboxselected.getSession();\n var layerId = session.getId();\n var sessionItems = session.getLastHistoryState().items;\n\n //update unique values fields after undo\n this.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: 'undo'\n });\n\n var undoItems = session.undo();\n //update unique values of relations after undo\n this.undoRedoRelationUniqueFieldValues({\n relationSessionItems: undoItems,\n action: 'undo'\n });\n\n // undo relations\n Object.entries(undoItems).forEach(function (_ref16) {\n var _ref17 = _slicedToArray(_ref16, 2),\n toolboxId = _ref17[0],\n items = _ref17[1];\n\n _this5.getToolBoxById(toolboxId).getSession().undo(items);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'redo',\n value: function redo() {\n var _this6 = this;\n\n var session = this.state.toolboxselected.getSession();\n var layerId = session.getId();\n var sessionItems = session.getLastHistoryState().items;\n //update unique values fields after redo\n this.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: 'redo'\n });\n var redoItems = session.redo();\n //update unique values of relations after redo\n this.undoRedoRelationUniqueFieldValues({\n relationSessionItems: redoItems,\n action: 'redo'\n });\n\n // redo relations\n Object.entries(redoItems).forEach(function (_ref18) {\n var _ref19 = _slicedToArray(_ref18, 2),\n toolboxId = _ref19[0],\n items = _ref19[1];\n\n _this6.getToolBoxById(toolboxId).getSession().redo(items);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getEditingLayer',\n value: function getEditingLayer(id) {\n return this.state.editableLayers[id].getEditingLayer();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param toolbox\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addToolBox',\n value: function addToolBox(toolbox) {\n this.state._toolboxes.push(toolbox);\n this.state.sessions[toolbox.getId()] = toolbox.getSession(); // add session\n this.state.toolboxes.push(toolbox.state);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } handler\n * @param handler.type\n * @param handler.id\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'runEventHandler',\n value: function () {\n var _ref20 = _asyncToGenerator(function* () {\n var _ref21 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n type = _ref21.type,\n id = _ref21.id;\n\n if (this.state.events[type] && this.state.events[type][id]) {\n yield Promise.allSettled(this.state.events[type][id].map(function (fnc) {\n return fnc();\n }));\n }\n });\n\n function runEventHandler() {\n return _ref20.apply(this, arguments);\n }\n\n return runEventHandler;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Reset default values\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'resetDefault',\n value: function resetDefault() {\n this.state.saveConfig = {\n mode: \"default\", // default, autosave\n modal: false,\n messages: undefined, // object to set a custom message\n cb: {\n done: function done() {}, // function Called after save\n error: function error() {} // function called affect commit error\n }\n };\n GUI.getService('map').disableClickMapControls(false);\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Reset default toolbox state modified by other plugin\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'resetAPIDefault',\n value: function resetAPIDefault() {\n var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref22$plugin = _ref22.plugin,\n plugin = _ref22$plugin === undefined ? true : _ref22$plugin,\n _ref22$toolboxes = _ref22.toolboxes,\n toolboxes = _ref22$toolboxes === undefined ? true : _ref22$toolboxes;\n\n if (toolboxes) {\n this.getToolBoxes().forEach(function (tb) {\n return tb.resetDefault();\n });\n }\n if (plugin) {\n this.resetDefault();\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getLayers',\n value: function getLayers() {\n return Object.values(this.state.editableLayers);\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getLayerById',\n value: function getLayerById(id) {\n return this.state.editableLayers[id];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } id\n *\n * @returns {*}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getToolBoxById',\n value: function getToolBoxById(id) {\n return this.state._toolboxes.find(function (tb) {\n return id === tb.getId();\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Get layer session by id (layer id is the same of session)\n *\n * @param id\n *\n * @returns {*}\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\n\n }, {\n key: 'getSessionById',\n value: function getSessionById(id) {\n return this.state.sessions[id];\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Method to apply filter editing contsraint to toolbox editing\n * Apply filter editing contsraint to toolbox editing\n *\n * @param constraints\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setApplicationEditingConstraints',\n value: function setApplicationEditingConstraints() {\n var _this7 = this;\n\n var constraints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { showToolboxesExcluded: true, toolboxes: {} };\n\n this.state.constraints = _extends({}, this.state.constraints, constraints);\n\n var toolboxes = constraints.toolboxes,\n showToolboxesExcluded = constraints.showToolboxesExcluded;\n\n var toolboxIds = Object.keys(toolboxes);\n if (false === showToolboxesExcluded) {\n this.state.toolboxes.forEach(function (t) {\n return t.show = toolboxIds.includes(t.id);\n });\n }\n toolboxIds.forEach(function (id) {\n return _this7.getToolBoxById(id).setEditingConstraints(toolboxes[id]);\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getToolBoxes',\n value: function getToolBoxes() {\n return this.state._toolboxes;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @returns {*|{}}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'getEditableLayers',\n value: function getEditableLayers() {\n return this.state.editableLayers;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Stop editing\n *\n * @returns { Promise }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'stop',\n value: function () {\n var _ref23 = _asyncToGenerator(function* () {\n var _this8 = this;\n\n var commitpromises = this.state._toolboxes.filter(function (t) {\n return t.getSession().getHistory().state.commit;\n }) // check if temp changes are waiting to save on server\n .map(function (toolbox) {\n return _this8.commit({ toolbox: toolbox, modal: true });\n });\n try {\n yield (0, _promisify.promisify)($.when.apply(this, commitpromises));\n } catch (e) {\n console.warn(e);\n }\n\n this.state._toolboxes.forEach(function (t) {\n return t.stop();\n });\n\n this.state.toolboxselected = null;\n this.state.message = null;\n\n //reset unique values\n Object.keys(this.state.uniqueFieldsValues).forEach(function (id) {\n return _this8.state.uniqueFieldsValues[id] = {};\n });\n\n GUI.getService('map').refreshMap();\n });\n\n function stop() {\n return _ref23.apply(this, arguments);\n }\n\n return stop;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Function called very single change saved temporary\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'saveChange',\n value: function () {\n var _ref24 = _asyncToGenerator(function* () {\n if ('autosave' === this.state.saveConfig.mode) {\n return this.commit({ modal: false }); // set to not show a modal ask window\n }\n });\n\n function saveChange() {\n return _ref24.apply(this, arguments);\n }\n\n return saveChange;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Commit and save changes on server persistently\n *\n * @param { Object } commit\n * @param commit.toolbox\n * @param commit.commitItems\n * @param commit.messages\n * @param commit.done\n * @param { boolean } commit.modal\n * @param { boolean } commit.close\n *\n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'commit',\n value: function commit() {\n var _this10 = this;\n\n var _ref25 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n toolbox = _ref25.toolbox,\n commitItems = _ref25.commitItems,\n _ref25$modal = _ref25.modal,\n modal = _ref25$modal === undefined ? true : _ref25$modal,\n _ref25$close = _ref25.close,\n close = _ref25$close === undefined ? false : _ref25$close;\n\n var messages = Object.assign({ success: { message: \"plugins.editing.messages.saved\", autoclose: true }, error: {} }, this.state.saveConfig.messages || {});\n toolbox = toolbox || this.state.toolboxselected;\n var layer = toolbox.getLayer();\n var items = commitItems;\n commitItems = commitItems || toolbox.getSession().getCommitItems();\n var online = ApplicationState.online;\n var has_changes = [].concat(_toConsumableArray(commitItems.add || []), _toConsumableArray(commitItems.delete || []), _toConsumableArray(commitItems.update || []), _toConsumableArray(Object.keys(commitItems.relations || {}))).length;\n var workflow = void 0,\n dialog = void 0,\n serverError = void 0;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n\n // skip when there is nothing to save\n if (!has_changes) {\n GUI.showUserMessage({ type: 'info', message: 'Nothing to save', autoclose: true, closable: false });\n return toolbox;\n }\n\n try {\n\n // show commit modal window\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 */\n if (modal) {\n workflow = new _workflow.Workflow({\n type: 'commitfeatures',\n steps: [\n // confirm step\n new _step.Step({\n run: function run(inputs) {\n var _this9 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var dialog = GUI.dialog.dialog({\n message: inputs.message,\n title: tPlugin(\"editing.messages.commit_feature\") + ': \"' + inputs.layer.getName() + '\"',\n buttons: _extends({\n SAVE: { className: \"btn-success\", callback: function callback() {\n resolve(inputs);\n },\n label: t(\"save\") },\n CANCEL: { className: \"btn-danger\", callback: function callback() {\n reject({ cancel: true });\n },\n label: t(inputs.close ? \"exitnosave\" : \"annul\") }\n }, inputs.close ? { CLOSEMODAL: { className: \"btn-primary\", callback: function callback() {\n dialog.modal('hide');\n },\n label: t(\"annul\") } } : {})\n });\n if (inputs.features) {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: promise(), inputs: inputs, style: _this9.selectStyle });\n }\n }));\n }\n })]\n });\n //need to get to confirm or cancel choose from modal\n try {\n yield (0, _promisify.promisify)(workflow.start({\n inputs: {\n close: close,\n layer: layer,\n message: new (Vue.extend(require('./components/Changes.vue')))({\n propsData: {\n commits: commitItems,\n layer: layer\n } }).$mount().$el\n }\n }));\n yield (0, _promisify.promisify)(workflow.stop());\n } catch (e) {\n console.warn(e);\n // In the case of pressed cancel button to commit features modal\n if (e && e.cancel) {\n return Promise.reject(e);\n }\n //need to be set server Error\n serverError = true;\n }\n\n //in case of online application\n if (online) {\n dialog = GUI.dialog.dialog({\n message: '

\\n ' + tPlugin('editing.messages.saving') + '\\n

',\n closeButton: false\n });\n }\n }\n\n var data = !online && _defineProperty({}, toolbox.getSession().getId(), commitItems);\n //get current offline editing changes\n var changes = !online && JSON.parse(window.localStorage.getItem('EDITING_CHANGES') || null);\n\n // handle offline changes\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 */\n Object.keys(changes || {}).forEach(function (layerId) {\n var currLayerId = Object.keys(data)[0];\n\n // check if previous changes are made in the same layer or in relationlayer of current\n var current = null;\n\n if (data[layerId]) {\n current = data;\n } else if (data[currLayerId].relations[layerId]) {\n current = data[currLayerId].relations;\n }\n\n // check if in the last changes\n var relationsIds = !current && Object.keys(changes[layerId].relations || {});\n var has_relations = !current && relationsIds.length > 0;\n var GIVE_ME_A_NAME = !current && has_relations && relationsIds.includes(currLayerId);\n\n // apply changes\n if (current || GIVE_ME_A_NAME) {\n var id = current ? layerId : currLayerId;\n var curr = current ? current : data;\n var prev = current ? changes : changes[layerId].relations;\n curr[id].add = [].concat(_toConsumableArray(curr[id].add), _toConsumableArray(curr[id].add));\n curr[id].delete = [].concat(_toConsumableArray(curr[id].delete), _toConsumableArray(curr[id].delete));\n\n (prev[id].update || []).filter(function (update) {\n return !curr[id].update.find(function (u) {\n return u.id === update.id;\n });\n }).forEach(function (update) {\n return curr[id].update.unshift(update);\n });\n\n (prev[id].lockids || []).filter(function (lock) {\n return !curr[id].lockids.find(function (l) {\n return l.featureid === lock.featureid;\n });\n }).forEach(function (lock) {\n return curr[id].update.unshift(lock);\n });\n }\n\n if (GIVE_ME_A_NAME) {\n changes[layerId].relations[currLayerId] = data[currLayerId];\n data = changes;\n }\n if (!current && !has_relations) {\n data[layerId] = changes[layerId];\n }\n });\n\n if (!online) {\n\n GUI.showUserMessage({\n type: 'success',\n message: \"plugins.editing.messages.saved_local\",\n autoclose: true\n });\n //clear history because it saved on browser\n toolbox.getSession().clearHistory();\n }\n\n try {\n // check if the application is online\n var _ref28 = online ? yield (0, _promisify.promisify)(toolbox.getSession().commit({ items: items || commitItems, __esPromise: true })) : {},\n commit = _ref28.commit,\n response = _ref28.response;\n\n //check if is online and there are some commit items\n\n\n var online2 = online && commit;\n\n var result = online2 && response.result;\n\n if (result && messages && messages.success) {\n // hide saving dialog\n if (dialog) {\n dialog.modal('hide');\n }\n\n //Show save user message\n GUI.showUserMessage({\n type: 'success',\n message: messages.success.message || \"plugins.editing.messages.saved\",\n duration: 2000,\n autoclose: undefined === messages.success.autoclose ? true : messages.success.autoclose\n });\n }\n\n // In the case of vector layer need to refresh map commit changes\n if (result && Layer.LayerTypes.VECTOR === layer.getType()) {\n GUI.getService('map').refreshMap({ force: true });\n }\n\n if (online) {\n _this10.state.saveConfig.cb.done(toolbox);\n }\n\n // add items when close editing to result to show changes\n var layerId = result && toolbox.getId();\n\n if (layerId) {\n _this10.state.featuresOnClose[layerId] = _this10.state.featuresOnClose[layerId] || new Set();\n [].concat(_toConsumableArray(response.response.new.map(function (n) {\n return n.id;\n })), _toConsumableArray(commit.update.map(function (u) {\n return u.id;\n }))).forEach(function (fid) {\n return _this10.state.featuresOnClose[layerId].add(fid);\n });\n }\n\n // @since 3.7.2 - click on save all disk icon (editing form relation)\n if (result) {\n _this10.emit('commit', response.response);\n }\n\n // the result is false. It was done a commit, but an error occurs\n if (online2 && !result) {\n serverError = true;\n throw response;\n }\n } catch (e) {\n console.warn(e);\n if (online) {\n serverError = true;\n throw e;\n }\n }\n } catch (e) {\n console.warn(e);\n\n // hide saving dialog\n if (dialog) {\n dialog.modal('hide');\n }\n\n // rollback\n //@TODO check if it is usefull\n if (modal) {\n try {\n yield _rollback(commitItems.relations);\n } catch (e) {\n console.warn(e);\n }\n }\n\n // parse server error\n if (serverError || modal) {\n var message = online ? messages.error.message || new serverErrorParser({ error: e.errors || e || {} }).parse({ type: 'String' }) : e;\n\n GUI.showUserMessage({\n type: 'alert',\n message: message,\n textMessage: online ? !messages.error.message : true,\n autoclose: online ? undefined !== messages.error.autoclose ? messages.error.autoclose : false : false\n });\n\n _this10.state.saveConfig.cb.error(toolbox, message);\n }\n\n return Promise.reject(toolbox);\n }\n return toolbox;\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param { string } opts.layerId\n * @param { Array } opts.sessionItems\n * @param opts.action\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undoRedoLayerUniqueFieldValues',\n value: function undoRedoLayerUniqueFieldValues(_ref29) {\n var _this11 = this;\n\n var layerId = _ref29.layerId,\n _ref29$sessionItems = _ref29.sessionItems,\n sessionItems = _ref29$sessionItems === undefined ? [] : _ref29$sessionItems,\n action = _ref29.action;\n\n\n // if not set\n if (undefined === this.state.uniqueFieldsValues[layerId]) {\n return;\n }\n\n sessionItems.forEach(function (item) {\n\n Object.keys(_this11.state.uniqueFieldsValues[layerId]).forEach(function (name) {\n //name is the name of field\n //check if change is an update [oldVal, newValue]\n var is_array = Array.isArray(item);\n var oldVal = void 0,\n newVal = void 0;\n if (is_array) {\n // 0 = old value feature, 1 = new value feature\n var has_change = item[1].feature.get(name) != item[0].feature.get(name);\n // update feature that contains \"new\" and \"old\" values of feature\n oldVal = has_change ? action === 'undo' ? item[1].feature.get(name) : item[0].feature.get(name) : undefined;\n newVal = has_change ? action === 'undo' ? item[0].feature.get(name) : item[1].feature.get(name) : undefined;\n } else {\n oldVal = 'add' === item.feature.getState() ? item.feature.get(name) : undefined;\n newVal = 'delete' === item.feature.getState() ? item.feature.get(name) : undefined;\n }\n // delete layer unique field value\n if (undefined !== oldVal) {\n _this11.state.uniqueFieldsValues[layerId][name].delete(oldVal);\n }\n // add layer unique field value\n if (undefined !== newVal) {\n _this11.state.uniqueFieldsValues[layerId][name].add(newVal);\n }\n });\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.relationSessionItems\n * @param opts.action\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'undoRedoRelationUniqueFieldValues',\n value: function undoRedoRelationUniqueFieldValues(_ref30) {\n var _this12 = this;\n\n var relationSessionItems = _ref30.relationSessionItems,\n action = _ref30.action;\n\n Object.entries(relationSessionItems).forEach(function (_ref31) {\n var _ref32 = _slicedToArray(_ref31, 2),\n layerId = _ref32[0],\n _ref32$ = _ref32[1],\n sessionItems = _ref32$.own,\n relationSessionItems = _ref32$.dependencies;\n\n //undo/redo unique field of layer\n _this12.undoRedoLayerUniqueFieldValues({\n layerId: layerId,\n sessionItems: sessionItems,\n action: action\n });\n //undo/redo unique field of relations\n _this12.undoRedoRelationUniqueFieldValues({\n relationSessionItems: relationSessionItems,\n action: action\n });\n });\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Stop editing on layerId\n *\n * @param layerId\n * @param options\n *\n * @returns { Promise }\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'stopEditing',\n value: function () {\n var _ref33 = _asyncToGenerator(function* (layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return (0, _promisify.promisify)(this.getToolBoxById(layerId).stop(options));\n });\n\n function stopEditing(_x11) {\n return _ref33.apply(this, arguments);\n }\n\n return stopEditing;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Start editing API\n *\n * @param layerId\n * @param { Object } options\n * @param { boolean } [options.selected=true]\n * @param { boolean } [options.disablemapcontrols=false]\n * @param { boolean } [options.showselectlayers=true]\n * @param { string } [options.title]\n * @param data\n *\n *\n * @returns { Promise }\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'startEditing',\n value: function () {\n var _ref34 = _asyncToGenerator(function* (layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n options.selected = undefined === options.selected ? true : options.selected;\n options.showselectlayers = undefined === options.showselectlayers ? true : options.showselectlayers;\n options.disablemapcontrols = undefined === options.disablemapcontrols ? false : options.showselectlayers;\n // get toolbox related to layer id\n var toolbox = this.getToolBoxById(layerId);\n // set show select layers input visibility\n this.state.showselectlayers = options.showselectlayers;\n // skip if toolbox doesn't exist\n if (!toolbox) {\n return Promise.reject();\n }\n // set selected\n toolbox.setSelected(options.selected);\n // set seletcted toolbox\n if (options.selected) {\n this.state.toolboxselected = toolbox;\n }\n\n //set toolbox title if provide\n if (options.title) {\n toolbox.setTitle(options.title);\n }\n\n // start editing toolbox (options contain also a filter type)\n data = yield (0, _promisify.promisify)(toolbox.start(options));\n // disablemapcontrols in conflict\n if (options.disablemapcontrols) {\n GUI.getService('map').disableClickMapControls(true);\n }\n // opts contain information about start editing has features loaded\n return data ? { toolbox: toolbox, data: data } : toolbox;\n });\n\n function startEditing(_x14) {\n return _ref34.apply(this, arguments);\n }\n\n return startEditing;\n }()\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Add Feature\n *\n * @param { Object } opts\n * @param opts.layerId\n * @param opts.feature\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'addLayerFeature',\n value: function addLayerFeature() {\n var _this13 = this;\n\n var _ref35 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref35.layerId,\n feature = _ref35.feature;\n\n // skip when mandatory params are missing\n if ([feature, layerId].includes(undefined)) {\n return Promise.reject();\n }\n return new Promise(function () {\n var _ref36 = _asyncToGenerator(function* (resolve, reject) {\n var layer = _this13.getLayerById(layerId);\n // get session\n var session = _this13.getSessionById(layerId);\n // exclude an eventual attribute pk (primary key) not editable (mean autoincrement)\n var attributes = layer.getEditingFields().filter(function (attr) {\n return !(attr.pk && !attr.editable);\n });\n // start session (get no features but set layer in editing)\n session.start({\n filter: {\n nofeatures: true, // no feature\n nofeatures_field: attributes[0].name // get the first field in editing form\n },\n editing: true\n });\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/easyaddfeatureworkflow.js@v3.7.1 */\n // create workflow\n var workflow = new _workflow.Workflow({\n type: 'addfeature',\n steps: [new _workflows.OpenFormStep({\n push: true,\n showgoback: false,\n saveAll: false\n })]\n });\n\n var stop = function stop(cb) {\n workflow.stop();\n session.stop();\n return cb();\n };\n\n try {\n //check if feature has property of layer\n attributes.forEach(function (a) {\n if (undefined === feature.get(a.name)) {\n feature.set(a.name, null);\n }\n });\n\n try {\n //set feature as g3w feature\n feature = new Feature({ feature: feature, properties: attributes.map(function (a) {\n return a.name;\n }) });\n //set new\n feature.setTemporaryId();\n\n // add to session and source as new feature\n session.pushAdd(layerId, feature, false);\n layer.getEditingLayer().getSource().addFeature(feature);\n //start workflow\n yield (0, _promisify.promisify)(workflow.start({\n inputs: { layer: layer, features: [feature] },\n context: { session: session }\n }));\n\n session.save();\n\n try {\n yield (0, _promisify.promisify)(_this13.commit({ modal: false, toolbox: _this13.getToolBoxById(layerId) }));\n stop(resolve);\n } catch (e) {\n console.warn(e);\n stop(reject);\n }\n } catch (e) {\n console.warn(e);\n stop(reject);\n }\n } catch (e) {\n console.warn(e);\n reject();\n }\n });\n\n return function (_x16, _x17) {\n return _ref36.apply(this, arguments);\n };\n }());\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } save\n * @param save.mode - default or autosave\n * @param save.cb - object contain done/error two functions\n * @param save.modal - Boolean true or false to show to ask\n * @param save.messages - object success or error\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setSaveConfig',\n value: function setSaveConfig() {\n var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref37$mode = _ref37.mode,\n mode = _ref37$mode === undefined ? 'default' : _ref37$mode,\n _ref37$cb = _ref37.cb,\n cb = _ref37$cb === undefined ? {} : _ref37$cb,\n _ref37$modal = _ref37.modal,\n modal = _ref37$modal === undefined ? false : _ref37$modal,\n messages = _ref37.messages;\n\n Object.assign(this.state.saveConfig, { mode: mode, modal: modal, messages: messages, cb: _extends({}, this.state.saveConfig.cb, cb) });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8 \n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'addFormComponents',\n value: function addFormComponents() {\n var _ref38 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref38.layerId,\n _ref38$components = _ref38.components,\n components = _ref38$components === undefined ? [] : _ref38$components;\n\n this.state.formComponents[layerId] = (this.state.formComponents[layerId] || []).concat(components);\n }\n\n /**\n * [API Method] ORIGINAL SOURCE: g3w-client-plugin-editing/api/index.js@v3.7.1\n *\n * Show editing panel\n *\n * @param options\n * @param options.toolboxes\n *\n * @since g3w-client-plugin-editing@v3.7.2\n */\n\n }, {\n key: 'showPanel',\n value: function showPanel() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options.toolboxes && Array.isArray(options.toolboxes)) {\n this.getToolBoxes().forEach(function (tb) {\n return tb.setShow(options.toolboxes.includes(tb.getId()));\n });\n }\n this.showEditingPanel(options);\n }\n\n /**\n * Show editing panel toolbars\n * \n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/editing.js.js@v3.6\n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/panel.js.js@v3.6\n */\n\n }, {\n key: 'showEditingPanel',\n value: function showEditingPanel() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n //need to filter visible\n if (this.getLayers().filter(function (l) {\n return l.config.editing.visible;\n }).length > 0) {\n this.state.panel = new Panel(_extends({}, opts, {\n id: \"editing-panel\",\n title: opts.title || \"plugins.editing.editing_data\",\n internalPanel: new (Vue.extend(require('./components/Editing.vue')))({\n service: this,\n resourcesurl: opts.resourcesUrl || GUI.getResourcesUrl(),\n showcommitbar: undefined !== opts.showcommitbar ? opts.showcommitbar : true\n })\n }));\n GUI.showPanel(this.state.panel);\n\n if (!this.state.show_errors && this.state.layers_in_error) {\n GUI.showUserMessage({ type: 'warning', message: 'plugins.editing.errors.some_layers', closable: true });\n this.state.show_errors = true;\n }\n } else {\n GUI.showUserMessage({ type: 'alert', message: 'plugins.editing.errors.no_layers' });\n }\n return this.state.panel;\n }\n }, {\n key: 'hideEditingPanel',\n value: function hideEditingPanel() {\n if (null !== this.state.panel) {\n GUI.closePanel();\n this.state.panel = null;\n }\n }\n }, {\n key: 'unload',\n value: function unload() {\n this.hideEditingPanel();\n\n if (this.config.visible) {\n this.removeTools();\n }\n\n this.state.unwatchLayout();\n MapLayersStoreRegistry.removeLayersStore(MapLayersStoreRegistry.getLayersStore('editing'));\n _toolbox.ToolBox.clear();\n // turn off events\n GUI.getService('map').off('mapcontrol:toggled', this.state.onMapControlToggled);\n // unregister query result action\n GUI.getService('queryresults').un('editFeature', this.state.editFeatureKey);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'setCurrentLayout',\n value: function setCurrentLayout() {\n ApplicationService.setCurrentLayout(this.getName());\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'resetCurrentLayout',\n value: function resetCurrentLayout() {\n ApplicationService.setCurrentLayout(this.state.currentLayout);\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.1\n */\n\n }, {\n key: 'getActiveTool',\n value: function getActiveTool() {\n return this.getToolBoxes().filter(function (t) {\n return t.getActiveTool();\n })[0];\n }\n }]);\n\n return _class;\n}(Plugin))();\n\n},{\"./components/Changes.vue\":2,\"./components/Editing.vue\":5,\"./g3wsdk\":13,\"./g3wsdk/workflow/step\":14,\"./g3wsdk/workflow/workflow\":15,\"./i18n\":20,\"./toolboxes/toolbox\":27,\"./utils/addPartToMultigeometries\":28,\"./utils/createFeature\":38,\"./utils/getEditingLayerById\":42,\"./utils/promisify\":58,\"./utils/setAndUnsetSelectedFeaturesStyle\":59,\"./workflows\":65}],26:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\n/**\n * @see https://openlayers.org/en/v5.3.0/apidoc/module-ol_interaction_Pointer.html\n */\nvar PickFeaturesInteraction = exports.PickFeaturesInteraction = function (_ol$interaction$Point) {\n _inherits(PickFeaturesInteraction, _ol$interaction$Point);\n\n function PickFeaturesInteraction() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, PickFeaturesInteraction);\n\n var features = []; // picked features\n\n var featuresAtPixel = function featuresAtPixel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n pixel = _ref.pixel,\n map = _ref.map;\n\n return map.getFeaturesAtPixel(pixel, {\n layerFilter: function layerFilter(l) {\n return opts.layer === l;\n },\n hitTolerance: isMobile && isMobile.any ? 10 : 0\n });\n };\n\n return _possibleConstructorReturn(this, (PickFeaturesInteraction.__proto__ || Object.getPrototypeOf(PickFeaturesInteraction)).call(this, {\n handleDownEvent: function handleDownEvent(e) {\n features = featuresAtPixel(e);\n return features;\n },\n handleUpEvent: function handleUpEvent(e) {\n if (features && features.length > 0) {\n this.dispatchEvent({ type: 'picked', features: features, coordinate: e.coordinate, layer: opts.layer });\n }\n return true;\n },\n handleMoveEvent: function handleMoveEvent(e) {\n e.map.getTargetElement().style.cursor = featuresAtPixel(e) ? 'pointer' : '';\n }\n }));\n }\n\n return PickFeaturesInteraction;\n}(ol.interaction.Pointer);\n\n},{}],27:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ToolBox = undefined;\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 _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 _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 _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\n\nvar _createEditingDataOptions = require('../utils/createEditingDataOptions');\n\nvar _setLayerUniqueFieldValues = require('../utils/setLayerUniqueFieldValues');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _chooseFeature = require('../utils/chooseFeature');\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getNotEditableFieldsNoPkValues = require('../utils/getNotEditableFieldsNoPkValues');\n\nvar _getDeltaXY = require('../utils/getDeltaXY');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _convertToGeometry = require('../utils/convertToGeometry');\n\nvar _addTableFeature = require('../utils/addTableFeature');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _getRelationsInEditingByFeature = require('../utils/getRelationsInEditingByFeature');\n\nvar _isPointOnVertex = require('../utils/isPointOnVertex');\n\nvar _handleSplitFeature = require('../utils/handleSplitFeature');\n\nvar _addPartToMultigeometries = require('../utils/addPartToMultigeometries');\n\nvar _checkSessionItems = require('../utils/checkSessionItems');\n\nvar _promisify = require('../utils/promisify');\n\nvar _unlinkRelation = require('../utils/unlinkRelation');\n\nvar _splitFeatures = require('../utils/splitFeatures');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _dissolve = require('../utils/dissolve');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _workflows = require('../workflows');\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\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\nObject.entries({\n Workflow: _workflow.Workflow,\n OpenFormStep: _workflows.OpenFormStep,\n SelectElementsStep: _workflows.SelectElementsStep,\n PickFeatureStep: _workflows.PickFeatureStep,\n MoveFeatureStep: _workflows.MoveFeatureStep,\n ModifyGeometryVertexStep: _workflows.ModifyGeometryVertexStep,\n OpenTableStep: _workflows.OpenTableStep,\n AddFeatureStep: _workflows.AddFeatureStep\n}).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n return console.assert(undefined !== v, k + ' is undefined');\n});\n\nvar GEOMETRY_TYPES = g3wsdk.constant.GEOMETRY_TYPES;\nvar _g3wsdk$core = g3wsdk.core,\n ApplicationState = _g3wsdk$core.ApplicationState,\n G3WObject = _g3wsdk$core.G3WObject;\nvar ProjectsRegistry = g3wsdk.core.project.ProjectsRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar removeZValueToOLFeatureGeometry = g3wsdk.core.geoutils.Geometry.removeZValueToOLFeatureGeometry;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n debounce = _g3wsdk$core$utils.debounce,\n toRawType = _g3wsdk$core$utils.toRawType;\nvar GUI = g3wsdk.gui.GUI;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n getScaleFromResolution = _g3wsdk$ol$utils.getScaleFromResolution,\n getResolutionFromScale = _g3wsdk$ol$utils.getResolutionFromScale;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin/toolboxes/toolsfactory.js@v3.7.1\n */\n\nvar ToolBox = exports.ToolBox = function (_G3WObject) {\n _inherits(ToolBox, _G3WObject);\n\n function ToolBox(layer) {\n var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n _classCallCheck(this, ToolBox);\n\n var _this = _possibleConstructorReturn(this, (ToolBox.__proto__ || Object.getPrototypeOf(ToolBox)).call(this));\n\n var is_vector = [undefined, Layer.LayerTypes.VECTOR].includes(layer.getType());\n var geometryType = is_vector && layer.getGeometryType();\n var is_point = is_vector && Geometry.isPointGeometryType(geometryType);\n var is_line = is_vector && Geometry.isLineGeometryType(geometryType);\n var is_poly = is_vector && Geometry.isPolygonGeometryType(geometryType);\n var is_table = Layer.LayerTypes.TABLE === layer.getType();\n var isMultiGeometry = geometryType && Geometry.isMultiGeometry(geometryType);\n var iconGeometry = is_vector && (is_point ? 'Point' : is_line ? 'Line' : 'Polygon');\n //@since 3.9.0 Check if layer has relation layers editable\n var editable_relations = layer.getRelations().getArray().filter(function (relation) {\n var l = CatalogLayersStoresRegistry.getLayerById((0, _getRelationId.getRelationId)({ layerId: layer.getId(), relation: relation }));\n return l.isEditable() && l.config.editing.visible;\n }).map(function (r) {\n return r;\n });\n _this._start = false;\n\n /** constraint loading features to a filter set */\n _this.constraints = { filter: null, show: null, tools: [] };\n\n /** reactive state of history */\n _this._constrains = { commit: false, undo: false, redo: false };\n\n /**\n * Array of states of a layer in editing\n * {\n * _states: [\n * {\n * id: unique key\n * state: [state] // example: history contains features state\n * // array because a tool can apply changes to more than one features at time (split di una feature)\n * },\n * {\n * id: unique key\n * state: [state]\n * },\n * ]\n * ....\n *\n * _current: unique key // usefult to undo redo\n *\n *\n */\n _this._states = [];\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._history = {\n id: layer.getId(),\n state: new Proxy({}, { get: function get(_, prop) {\n return _this._constrains[prop];\n } }),\n add: _this.__add.bind(_this),\n undo: _this.__undo.bind(_this),\n clear: _this.__clearHistory.bind(_this),\n redo: _this.__redo.bind(_this),\n getState: _this.__getState.bind(_this),\n getLastState: _this.__getLastHistoryState.bind(_this),\n commit: _this.__commit.bind(_this)\n };\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n */\n _this._session = Object.assign(new G3WObject({ setters: {\n start: function start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _promisify.$promisify)(_this.__startSession(options));\n },\n stop: function stop() {\n return (0, _promisify.$promisify)(_this.__stopSession());\n },\n getFeatures: function getFeatures() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return (0, _promisify.$promisify)(_this.__getFeatures(options));\n },\n saveChangesOnServer: function saveChangesOnServer(commitItems) {\n return _this.__saveChangesOnServer(commitItems);\n }\n } }), {\n _history: _this._history,\n state: new Proxy({}, { get: function get(_, prop) {\n return _this.state.editing.session[prop];\n } }),\n getId: function getId() {\n return layer.getId();\n },\n getLastHistoryState: _this.__getLastHistoryState.bind(_this),\n isStarted: _this.__isStarted.bind(_this),\n getHistory: _this.__getHistory.bind(_this),\n getEditor: _this.__getEditor.bind(_this),\n push: _this.__push.bind(_this),\n pushDelete: _this.__pushDelete.bind(_this),\n save: _this.__save.bind(_this),\n pushAdd: _this.__pushAdd.bind(_this),\n pushUpdate: _this.__pushUpdate.bind(_this),\n rollback: _this.__rollback.bind(_this),\n rollbackDependecies: _this.__rollbackDependecies.bind(_this),\n undo: _this.__undoSession.bind(_this),\n redo: _this.__redoSession.bind(_this),\n getCommitItems: _this.__getCommitItems.bind(_this),\n commit: _this.save.bind(_this),\n clear: _this.__clearSession.bind(_this),\n clearHistory: _this.__clearHistory.bind(_this)\n });\n\n // register this session on session registry\n ToolBox._sessions[layer.getId()] = _this;\n\n /** @type { 'create' | 'update_attributes' | 'update_geometry' | delete' | undefined } undefined means all possible tools base on type */\n var capabilities = layer.getEditingCapabilities() || [];\n\n _this.state = {\n layer: layer,\n id: layer.getId(),\n changingtools: false, // whether to show tools during change phase\n show: layer.config.editing.visible, // whether to show the toolbox if we need to filtered\n color: layer.getColor() || 'blue',\n title: ' ' + layer.getTitle() || \"Edit Layer\",\n customTitle: false,\n loading: false,\n enabled: false,\n toolboxheader: true,\n startstopediting: true,\n message: null,\n toolmessages: { help: null },\n toolsoftool: [],\n selected: false,\n activetool: null,\n editing: {\n session: {\n id: new Proxy({}, { get: function get() {\n return _this.state.id;\n } }),\n started: false,\n getfeatures: false,\n /** current state of history (useful for undo /redo) */\n current: null,\n /** temporary change not save on history */\n changes: []\n },\n history: _this._history.state,\n on: false,\n dependencies: dependencies,\n relations: Object.values(layer.isFather() && dependencies.length ? layer.getRelations().getRelations() : {}),\n father: layer.isFather(),\n canEdit: true\n },\n /** @since g3w-client-plugin-editing@v3.7.0 store key events setters */\n _unregisterStartSettersEventsKey: [],\n _getFeaturesOption: {},\n _layerType: layer.getType() || Layer.LayerTypes.VECTOR,\n _enabledtools: undefined,\n _disabledtools: undefined,\n _constraints: layer.getEditingConstrains() || {},\n _tools: [\n // Add Feature\n is_vector && capabilities.includes('add_feature') && {\n id: 'addfeature',\n type: ['add_feature'],\n name: 'editing.tools.add_feature',\n icon: 'add' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addfeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addfeature',\n steps: [new _workflows.AddFeatureStep({ layer: layer, tools: ['snap', 'measure'] }), new _workflows.OpenFormStep({ layer: layer })]\n })\n },\n // Edit Attributes Feature\n is_vector && capabilities.includes('change_attr_feature') && {\n id: 'editattributes',\n type: ['change_attr_feature'],\n name: 'editing.tools.update_feature',\n icon: 'editAttributes.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editfeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n helpMessage: 'editing.tools.update_feature',\n type: 'editfeatureattributes',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.OpenFormStep()]\n })\n },\n // Delete Feature\n is_vector && capabilities.includes('delete_feature') && {\n id: 'deletefeature',\n type: ['delete_feature'],\n name: 'editing.tools.delete_feature',\n icon: 'delete' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/deletefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'deletefeature',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }),\n // delete feature\n new _step.Step({\n help: \"editing.steps.help.double_click_delete\",\n run: function run(inputs, context) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var layerId = inputs.layer.getId();\n var feature = inputs.features[0];\n\n // get all relations of the current editing layer that are in editing\n // and filter relations\n // get relation layer id that are in relation with layerId (current layer in editing)\n // get fields of relation layer that are in relation with layerId\n // Exclude relation child layer that has at least one\n // editing field required because when unlink relation feature from\n // delete father, when try to commit update relation, we receive an error\n // due missing value /null to required field.\n var relations = (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: inputs.layer.getRelations() ? inputs.layer.getRelations().getArray() : []\n }).filter(function (relation) {\n return (0, _getEditingLayerById.getEditingLayerById)((0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation })).getEditingFields() //get editing field of relation layer\n .filter(function (f) {\n return (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ relation: relation, layerId: (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation }) }).ownField.includes(f.name);\n }) //filter only relation fields\n .every(function (f) {\n return !f.validate.required;\n });\n } // check required\n );\n\n // promise return features relations and add to relation layer child\n if (relations.length > 0) {\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(layerId, { feature: feature, relations: relations });\n }\n\n inputs.features = [feature];\n\n // Unlink relation features related to layer id\n (0, _getRelationsInEditingByFeature.getRelationsInEditingByFeature)({ layerId: layerId, relations: relations, feature: feature }).forEach(function (_ref4) {\n var relation = _ref4.relation,\n relations = _ref4.relations;\n\n relations.forEach(function (r) {\n return (0, _unlinkRelation.unlinkRelation)({ layerId: layerId, relation: relation, relations: relations, index: 0, dialog: false });\n });\n });\n\n context.session.pushDelete(layerId, feature);\n\n return inputs;\n }));\n }\n }),\n // confirm step\n new _step.Step({\n run: function run(inputs) {\n var _this2 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var editingLayer = inputs.layer.getEditingLayer();\n var feature = inputs.features[0];\n var layerId = inputs.layer.getId();\n var promise = new Promise(function (resolve, reject) {\n GUI.dialog.confirm('

' + tPlugin('editing.messages.delete_feature') + '

' + '
' + (inputs.layer.getChildren().length && (0, _getRelationsInEditing.getRelationsInEditing)({ layerId: layerId, relations: inputs.layer.getRelations().getArray() }).length ? tPlugin('editing.messages.delete_feature_relations') : '') + '
', function (result) {\n if (!result) {\n reject(inputs);\n return;\n }\n editingLayer.getSource().removeFeature(feature);\n // Remove unique values from unique fields of a layer (when deleting a feature)\n var fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[layerId];\n if (fields) {\n Object.keys(feature.getProperties()).filter(function (f) {\n return undefined !== fields[f];\n }).forEach(function (f) {\n return fields[f].delete(feature.get(f));\n });\n }\n resolve(inputs);\n });\n });\n\n if (inputs.features) {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({\n promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })),\n inputs: inputs,\n style: _this2.selectStyle\n });\n }\n return promise;\n }));\n }\n })]\n })\n },\n // Edit vertex Feature\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'movevertex',\n type: ['change_feature'],\n name: \"editing.tools.update_vertex\",\n icon: \"moveVertex.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/modifygeometryvertexworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'modifygeometryvertex',\n helpMessage: 'editing.tools.update_vertex',\n steps: [new _workflows.PickFeatureStep({ layer: layer }), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.ModifyGeometryVertexStep({ tools: ['snap', 'measure'] })]\n })\n },\n // Edit Attributes to Multi features\n is_vector && capabilities.includes('change_attr_feature') && {\n id: 'editmultiattributes',\n type: ['change_attr_feature'],\n name: \"editing.tools.update_multi_features\",\n icon: \"multiEditAttributes.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editmultifeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'editmultiattributes',\n helpMessage: 'editing.tools.update_multi_features',\n registerEscKeyEvent: true,\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n type: 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBoxAtLeast2Feature' : 'selectMultiPointSHIFTAtLeast2Feature'),\n buttonnext: {\n disabled: true,\n condition: function condition(_ref7) {\n var _ref7$features = _ref7.features,\n features = _ref7$features === undefined ? [] : _ref7$features;\n return features.length < 2;\n },\n done: function done() {\n _workflow.Workflow.Stack.getCurrent().clearUserMessagesSteps();\n }\n },\n dynamic: 0,\n done: false,\n reset: function reset() {\n this.dynamic = 0;\n }\n }\n }\n }), new _workflows.OpenFormStep({ multi: true })]\n })\n },\n // @since 3.9.0 Edit Attributes of relations features to Multi features\n is_vector && capabilities.includes('change_attr_feature') && editable_relations.filter(function (r) {\n return 'ONE' !== r.getType();\n }).length > 0 && {\n id: 'editmultiattributesrelationfeatures',\n type: ['change_attr_feature'],\n name: \"editing.tools.update_multi_features\",\n icon: \"EditMultiRelationFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/editmultifeatureattributesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'editmultiattributesrelationfeatures',\n helpMessage: 'editing.tools.update_multi_features',\n registerEscKeyEvent: true,\n runOnce: false,\n steps: [new _workflows.SelectElementsStep({\n type: 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBoxAtLeast2Feature' : 'selectMultiPointSHIFTAtLeast2Feature'),\n buttonnext: {\n disabled: true,\n condition: function condition(_ref8) {\n var _ref8$features = _ref8.features,\n features = _ref8$features === undefined ? [] : _ref8$features;\n return features.length < 2;\n },\n done: function done() {\n _workflow.Workflow.Stack.getCurrent().clearUserMessagesSteps();\n }\n },\n dynamic: 0,\n done: false,\n reset: function reset() {\n this.dynamic = 0;\n }\n }\n }\n }), new _step.Step({\n run: function () {\n var _ref9 = _asyncToGenerator(function* (inputs, context) {\n GUI.setModal(true);\n var relations = editable_relations.filter(function (r) {\n return 'ONE' !== r.getType();\n });\n //get relation features from feature parent layer\n yield Promise.allSettled(inputs.features.map(function (feature) {\n return (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(inputs.layer.getId(), {\n relations: relations,\n feature: feature,\n filterType: 'fid'\n });\n }));\n //get first relation layer id\n var relationLayerId = relations[0].getChild();\n\n //In case of multi relation in editing\n if (relations.length > 1) {\n //ser relation layer id\n try {\n yield new Promise(function (resolve, reject) {\n var vueInstance = new (Vue.extend({\n name: 'multi-relations-fetures',\n template: '
\\n \\n
\\n ',\n data: function data() {\n return {\n relations: this.$options.relations,\n relationId: this.$options.relationId\n };\n }\n }))({ relations: relations, relationId: relations[0].state.id });\n\n GUI.showModalDialog({\n title: tPlugin('editing.relations'),\n className: 'modal-left',\n closeButton: false,\n message: vueInstance.$mount().$el,\n buttons: {\n cancel: {\n label: 'Cancel',\n className: 'btn-danger',\n callback: function callback() {\n reject();\n }\n },\n ok: {\n label: 'Ok',\n className: 'btn-success',\n callback: function () {\n var _ref10 = _asyncToGenerator(function* () {\n //set relation layer id to editin\n relationLayerId = relations.find(function (r) {\n return vueInstance.relationId === r.state.id;\n }).getChild();\n resolve();\n });\n\n function callback() {\n return _ref10.apply(this, arguments);\n }\n\n return callback;\n }()\n }\n }\n }).on('hide.bs.modal', function () {\n return vueInstance.$destroy();\n }); //destroy vue instance after dialog is a closed\n //hide user message step\n });\n } catch (e) {\n console.warn(e);\n GUI.setModal(false);\n return (0, _promisify.$promisify)(Promise.reject(e));\n }\n }\n\n //start child workflow\n var workflow = new _workflow.Workflow({\n type: 'editmultiattributes',\n steps: [new _workflows.OpenFormStep({ multi: true })]\n });\n //Relations layer\n var rLayer = (0, _getEditingLayerById.getEditingLayerById)(relationLayerId);\n\n var fields = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({\n layerId: relations[0].getChild(),\n relation: relations[0]\n });\n\n var options = {\n context: {\n session: _workflow.Workflow.Stack.getCurrent().getSession(), // get parent workflow\n excludeFields: fields.ownField, // array of fields to be excluded\n isContentChild: false //@since 3.9.0 force child to flase\n },\n inputs: {\n features: rLayer.readFeatures(),\n layer: rLayer\n }\n };\n\n try {\n //set eventually unique values\n yield (0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(relationLayerId);\n yield (0, _promisify.promisify)(workflow.start(options));\n } catch (e) {\n console.warn(e);\n }\n\n workflow.stop();\n\n GUI.setModal(false);\n return (0, _promisify.$promisify)(Promise.resolve(inputs, context));\n });\n\n function run(_x4, _x5) {\n return _ref9.apply(this, arguments);\n }\n\n return run;\n }()\n })]\n })\n },\n // Move Feature\n is_vector && capabilities.includes('change_feature') && {\n id: 'movefeature',\n type: ['change_feature'],\n name: 'editing.tools.move_feature',\n icon: 'move' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/movefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'movefeature',\n helpMessage: 'editing.tools.move_feature',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }), new _workflows.MoveFeatureStep()]\n })\n },\n // Copy Feature from another layer\n function () {\n var layers = [];\n return is_vector && capabilities.includes('add_feature') && {\n id: 'copyfeaturesfromotherlayer',\n type: ['add_feature'],\n name: \"editing.tools.pastefeaturesfromotherlayers\",\n icon: \"pasteFeaturesFromOtherLayers.png\",\n enable: function () {\n var catalogService = GUI.getService('catalog');\n var layerId = layer.getId();\n var geometryType = layer.getGeometryType();\n var data = {\n bool: true,\n tool: undefined\n };\n CatalogLayersStoresRegistry.getLayers({\n GEOLAYER: true,\n BASELAYER: false\n });\n // check selected feature layers\n var updatelayers = function updatelayers() {\n var checkGeometry = function checkGeometry(type) {\n return type && (0, _isSameBaseGeometryType.isSameBaseGeometryType)(geometryType, type) && (geometryType === type || Geometry.isMultiGeometry(geometryType) || !Geometry.isMultiGeometry(type));\n };\n layers = [].concat(_toConsumableArray(CatalogLayersStoresRegistry.getLayers({ GEOLAYER: true, BASELAYER: false }).filter(function (l) {\n return layerId !== l.getId() && checkGeometry(l.getGeometryType());\n })), _toConsumableArray(catalogService.getExternalLayers({ type: 'vector' }).filter(function (l) {\n return checkGeometry(l.geometryType);\n }))).map(function (l, i) {\n return {\n id: (l.state || { id: l.id }).id,\n name: (l.state || { name: l.name }).name,\n external: l.external || false,\n selected: 0 === i\n };\n });\n return data.tool.enabled = layers.length > 0;\n };\n return function (_ref11) {\n var bool = _ref11.bool,\n _ref11$tool = _ref11.tool,\n tool = _ref11$tool === undefined ? {} : _ref11$tool;\n\n data.tool = tool;\n data.bool = bool;\n catalogService.onafter('addExternalLayer', updatelayers);\n catalogService.onafter('removeExternalLayer', updatelayers);\n return updatelayers();\n };\n }(),\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/copyfeaturesfromotherlayerworkflow.js@v3.7.1 */\n op: function () {\n var openFormStep = new _workflows.OpenFormStep({ layer: layer, help: 'editing.steps.help.copy' });\n return new _workflow.Workflow({\n layer: layer,\n type: 'copyfeaturesfromotherlayer',\n runOnce: true,\n steps: [new _step.Step({\n layer: layer,\n //@since 3.9.0 to show user message steps\n steps: {\n chooselayer: {\n description: 'editing.modal.tools.copyfeaturefromotherlayer.title',\n done: false\n },\n selectgeometry: {\n description: 'editing.workflow.steps.selectPoint',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this3 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var originalLayer = inputs.layer;\n var geometryType = originalLayer.getGeometryType();\n var layerId = originalLayer.getId();\n //get attributes/properties from current layer in editing\n var attributes = originalLayer.getEditingFields().filter(function (a) {\n return !a.pk;\n });\n var session = context.session;\n var editingLayer = originalLayer.getEditingLayer();\n var source = editingLayer.getSource();\n //set reactive\n var vueInstance = new (Vue.extend(require('../components/CopyFeaturesFromOtherLayers.vue')))({ layers: layers });\n var message = vueInstance.$mount().$el;\n GUI.showModalDialog({\n title: tPlugin('editing.relation.copy_feature_from_other_layer'),\n className: 'modal-left',\n closeButton: false,\n message: message,\n buttons: {\n cancel: {\n label: 'Cancel',\n className: 'btn-danger',\n callback: function callback() {\n reject();\n }\n },\n ok: {\n label: 'Ok',\n className: 'btn-success',\n callback: function () {\n var _ref12 = _asyncToGenerator(function* () {\n //set choose layer step done\n _this3.setUserMessageStepDone('chooselayer');\n try {\n var feature = yield (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n //get selected layer\n var layer = layers.find(function (l) {\n return l.selected;\n });\n var features = yield new Promise(function () {\n var _ref14 = _asyncToGenerator(function* (resolve) {\n _this3.addInteraction(layer.external ? new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: GUI.getService('map').getLayerById(layer.id) }) : new g3wsdk.ol.interactions.PickCoordinatesInteraction(), {\n 'picked': function () {\n var _ref15 = _asyncToGenerator(function* (e) {\n try {\n resolve((0, _convertToGeometry.convertToGeometry)(layer.external ? e.features // external layer\n : ((yield DataRouterService.getData('query:coordinates', { // TOC/PROJECT layer\n inputs: {\n coordinates: e.coordinate,\n query_point_tolerance: ProjectsRegistry.getCurrentProject().getQueryPointTolerance(),\n layerIds: [layer.id],\n multilayers: false\n },\n outputs: null\n })).data[0] || { features: [] }).features, geometryType));\n } catch (e) {\n console.warn(e);\n }\n });\n\n function picked(_x7) {\n return _ref15.apply(this, arguments);\n }\n\n return picked;\n }()\n });\n });\n\n return function (_x6) {\n return _ref14.apply(this, arguments);\n };\n }());\n\n var _feature = void 0;\n\n try {\n _feature = features.length > 1 ? yield (0, _promisify.promisify)((0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs })) : features[0];\n } catch (e) {\n console.warn(e);\n }\n\n if (_feature) {\n var _feature2 = new Feature({\n feature: _feature,\n properties: attributes.map(function (a) {\n return a.name;\n })\n });\n\n _feature2.setTemporaryId();\n return _feature2;\n }\n\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n closable: false,\n autoclose: true\n });\n\n return Promise.reject();\n }));\n\n //@TODO check better way\n //Set undefined property to null otherwise on commit\n // property are lost\n attributes.forEach(function (_ref16) {\n var name = _ref16.name;\n\n if (undefined === feature.get(name)) {\n feature.set(name, null);\n }\n });\n\n originalLayer.getEditingNotEditableFields().find(function (field) {\n if (originalLayer.isPkField(field)) {\n feature.set(field, null);\n }\n });\n //remove eventually Z Values\n removeZValueToOLFeatureGeometry({ feature: feature });\n feature.setTemporaryId();\n source.addFeature(feature);\n session.pushAdd(layerId, feature, false);\n inputs.features.push(feature);\n _this3.fireEvent('addfeature', feature);\n resolve(inputs);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n function callback() {\n return _ref12.apply(this, arguments);\n }\n\n return callback;\n }()\n }\n }\n }).on('hide.bs.modal', function () {\n return vueInstance.$destroy();\n }); //destroy vue instance after dialog is a closed\n //hide user message step\n }));\n }\n }), openFormStep],\n registerEscKeyEvent: true\n });\n }()\n };\n }(),\n // Copy Feature from layer\n is_vector && capabilities.includes('add_feature') && {\n id: 'copyfeatures',\n type: ['add_feature'],\n name: \"editing.tools.copy\",\n icon: 'copy' + iconGeometry + '.png',\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/copyfeaturesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'copyfeatures',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n help: 'editing.steps.help.copy',\n type: ApplicationState.ismobile ? 'single' : 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectPoint' : 'selectPointSHIFT'),\n done: false\n }\n }\n }, true),\n // get vertex\n layer.getGeometryType().includes('Point') ? undefined : new _step.Step({\n layer: layer,\n help: 'editing.steps.help.select',\n steps: {\n from: {\n description: 'editing.workflow.steps.selectStartVertex',\n done: false\n }\n },\n run: function run(inputs) {\n var _this4 = this;\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var promise = new Promise(function (resolve, reject) {\n _this4.resolve = resolve;\n if (0 === inputs.features.length) {\n return reject('no feature');\n }\n _this4.addInteraction(new ol.interaction.Draw({ type: 'Point', condition: function condition(e) {\n return inputs.features.some(function (f) {\n return (0, _isPointOnVertex.isPointOnVertex)({ feature: f, coordinates: e.coordinate });\n });\n } }), {\n 'drawend': function drawend(e) {\n inputs.coordinates = e.feature.getGeometry().getCoordinates();\n _this4.setUserMessageStepDone('from');\n resolve(inputs);\n }\n });\n _this4.addInteraction(new ol.interaction.Snap({ edge: false, features: new ol.Collection(inputs.features) }));\n });\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this4.selectStyle });\n return promise;\n }));\n },\n stop: function stop() {\n /** @since g3w-client-plugin-editing@v3.8.0 */\n //Always resolve promise (in case of a press esc key)\n this.resolve(true);\n this.resolve = null;\n }\n }),\n // move elements\n new _step.Step({\n layer: layer,\n help: \"editing.steps.help.select_vertex_to_paste\",\n steps: {\n to: {\n description: 'editing.workflow.steps.selectToPaste',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this5 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var layer = inputs.layer,\n features = inputs.features,\n coordinates = inputs.coordinates;\n\n var source = layer.getEditingLayer().getSource();\n var layerId = layer.getId();\n var session = context.session;\n var promise = new Promise(function (resolve, reject) {\n _this5.addInteraction(new ol.interaction.Draw({ type: 'Point', features: new ol.Collection() }), {\n 'drawend': function drawend(evt) {\n var _evt$feature$getGeome = evt.feature.getGeometry().getCoordinates(),\n _evt$feature$getGeome2 = _slicedToArray(_evt$feature$getGeome, 2),\n x = _evt$feature$getGeome2[0],\n y = _evt$feature$getGeome2[1];\n\n var deltaXY = coordinates ? (0, _getDeltaXY.getDeltaXY)({ x: x, y: y, coordinates: coordinates }) : null;\n var featuresLength = features.length;\n var promisesDefaultEvaluation = [];\n\n var _loop = function _loop(i) {\n var feature = (0, _cloneFeature.cloneFeature)(features[i], layer);\n if (deltaXY) {\n feature.getGeometry().translate(deltaXY.x, deltaXY.y);\n } else {\n var _coordinates = feature.getGeometry().getCoordinates();\n var _deltaXY = (0, _getDeltaXY.getDeltaXY)({ x: x, y: y, coordinates: _coordinates });\n feature.getGeometry().translate(_deltaXY.x, _deltaXY.y);\n }\n // set media fields to null\n layer.getEditingMediaFields({}).forEach(function (f) {\n return feature.set(f, null);\n });\n /**\n * evaluated geometry expression\n */\n promisesDefaultEvaluation.push((0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }));\n };\n\n for (var i = 0; i < featuresLength; i++) {\n _loop(i);\n }\n Promise.allSettled(promisesDefaultEvaluation).then(function (promises) {\n return promises.forEach(function (_ref20) {\n var status = _ref20.status,\n feature = _ref20.value;\n\n\n /**\n * @todo improve client core to handle this situation on session.pushAdd not copy pk field not editable only\n */\n var noteditablefieldsvalues = (0, _getNotEditableFieldsNoPkValues.getNotEditableFieldsNoPkValues)({ layer: layer, feature: feature });\n var newFeature = session.pushAdd(layerId, feature);\n // after pushAdd need to set not edit\n if (Object.entries(noteditablefieldsvalues).length) {\n Object.entries(noteditablefieldsvalues).forEach(function (_ref21) {\n var _ref22 = _slicedToArray(_ref21, 2),\n field = _ref22[0],\n value = _ref22[1];\n\n return newFeature.set(field, value);\n });\n }\n\n //need to add to editing layer source newFeature\n source.addFeature(newFeature);\n\n inputs.features.push(newFeature);\n });\n }).finally(function () {\n _this5.setUserMessageStepDone('to');\n resolve(inputs);\n });\n }\n });\n\n _this5.addInteraction(new ol.interaction.Snap({ source: source, edge: false }));\n });\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this5.selectStyle });\n return promise;\n }));\n }\n })].filter(Boolean),\n registerEscKeyEvent: true\n })\n },\n // Add part to MultiGeometry Feature\n is_vector && capabilities.includes('add_feature') && capabilities.includes('change_feature') && {\n id: 'addPart',\n type: ['add_feature', 'change_feature'],\n name: \"editing.tools.addpart\",\n icon: \"addPart.png\",\n visible: isMultiGeometry,\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addparttomultigeometriesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addparttomultigeometries',\n helpMessage: 'editing.tools.addpart',\n runOnce: true,\n steps: [new _workflows.PickFeatureStep({\n steps: {\n select: {\n description: 'editing.workflow.steps.select',\n done: false\n }\n }\n }), new _step.Step({\n run: _chooseFeature.chooseFeature,\n help: 'editing.steps.help.select_element'\n }), new _workflows.AddFeatureStep({\n layer: layer,\n help: 'editing.steps.help.select_element',\n add: false,\n steps: {\n addfeature: {\n description: 'editing.workflow.steps.draw_part',\n done: false\n }\n },\n tools: ['snap', 'measure']\n }),\n // add part to multi geometries\n new _step.Step({\n layer: layer,\n help: 'editing.steps.help.select_element',\n run: _addPartToMultigeometries.addPartToMultigeometries\n })],\n registerEscKeyEvent: true\n })\n },\n // Remove part from MultiGeometry Feature\n is_vector && capabilities.includes('change_feature') && {\n id: 'deletePart',\n type: ['change_feature'],\n name: \"editing.tools.deletepart\",\n icon: \"deletePart.png\",\n visible: isMultiGeometry,\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/deletepartfrommultigeometriesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'deletepartfrommultigeometries',\n steps: [new _workflows.PickFeatureStep(), new _step.Step({ run: _chooseFeature.chooseFeature }),\n // delete part from multi geometries\n new _step.Step({\n layer: layer,\n run: function run(inputs, context) {\n var _this6 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var originaLayer = inputs.layer;\n var editingLayer = inputs.layer.getEditingLayer();\n var layerId = originaLayer.getId();\n var session = context.session;\n var features = inputs.features,\n coordinate = inputs.coordinate;\n\n var feature = features[0];\n var originalFeature = feature.clone();\n var geometry = feature.getGeometry();\n var geometries = [];\n\n // ensure single geometry\n switch (geometry.getType()) {\n case GEOMETRY_TYPES.MULTIPOLYGON:\n geometries = geometry.getPolygons();break;\n case GEOMETRY_TYPES.MULTILINE:\n geometries = geometry.getLineStrings();break;\n case GEOMETRY_TYPES.MULTILINESTRING:\n geometries = geometry.getLineStrings();break;\n case GEOMETRY_TYPES.MULTIPOINT:\n geometries = geometry.getPoints();break;\n default:\n console.warn('invalid geometry type', geometry.getType());break;\n }\n\n var source = new ol.source.Vector({ features: geometries.map(function (geometry) {\n return new ol.Feature(geometry);\n }) });\n var map = _this6.getMap();\n var pixel = map.getPixelFromCoordinate(coordinate);\n var tempLayer = new ol.layer.Vector({\n source: source,\n style: editingLayer.getStyle()\n });\n\n map.addLayer(tempLayer);\n\n map.once('postrender', function () {\n var found = false;\n //need to call map.forEachFeatureAtPixel and not this.forEachFeatureAtPixel\n //because we use arrow function, and it referred this to outside context\n map.forEachFeatureAtPixel(pixel, function (_feature) {\n if (!found) {\n source.removeFeature(_feature);\n if (source.getFeatures().length) {\n var _geometries = source.getFeatures().map(function (f) {\n return f.getGeometry();\n });\n var type = _geometries[0] && _geometries[0].getType();\n feature.setGeometry(type && new ol.geom['Multi' + type](_geometries.map(function (g) {\n return g.getCoordinates();\n })) // ensures multi geometry\n );\n /**\n * evaluated geometry expression\n */\n (0, _evaluateExpressionFields.evaluateExpressionFields)({\n inputs: inputs,\n context: context,\n feature: feature\n }).finally(function () {\n session.pushUpdate(layerId, feature, originalFeature);\n resolve(inputs);\n });\n /**\n * end of evaluated\n */\n } else {\n editingLayer.getSource().removeFeature(feature);\n session.pushDelete(layerId, feature);\n resolve(inputs);\n }\n found = true;\n }\n }, {\n layerFilter: function layerFilter(layer) {\n return layer === tempLayer;\n },\n\n hitTolerance: 1\n });\n //need to call map.forEachFeatureAtPixel and not this.forEachFeatureAtPixel\n //because we use arrow function, and it referred this to outside context\n map.removeLayer(tempLayer);\n tempLayer = null;\n });\n }));\n }\n })],\n helpMessage: 'editing.tools.deletepart'\n })\n },\n // Split Feature\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'splitfeature',\n type: ['change_feature'],\n name: \"editing.tools.split\",\n icon: \"splitFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/splitfeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'splitfeature',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n help: 'editing.steps.help.split',\n type: ApplicationState.ismobile ? 'single' : 'multiple',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectPoint' : 'selectPointSHIFT'),\n done: false\n }\n }\n }, true),\n // split feature\n new _step.Step({\n layer: layer,\n help: '',\n steps: {\n draw_line: {\n description: 'editing.workflow.steps.draw_split_line',\n done: false\n }\n },\n run: function run(inputs, context) {\n var _this7 = this;\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var source = inputs.layer.getEditingLayer().getSource();\n var promise = new Promise(function (resolve, reject) {\n _this7.addInteraction(new ol.interaction.Draw({\n type: 'LineString',\n features: new ol.Collection(),\n freehandCondition: ol.events.condition.never\n }), {\n 'drawend': function () {\n var _ref25 = _asyncToGenerator(function* (e) {\n var isSplitted = false;\n var splittedGeometries = (0, _splitFeatures.splitFeatures)(inputs.features, e.feature);\n var splittedGeometriesLength = splittedGeometries.length;\n\n var _loop2 = function* _loop2(i) {\n if (splittedGeometries[i].geometries.length > 1) {\n isSplitted = true;\n yield (0, _handleSplitFeature.handleSplitFeature)({\n context: context,\n inputs: inputs,\n feature: inputs.features.find(function (f) {\n return f.getUid() === splittedGeometries[i].uid;\n }),\n splittedGeometries: splittedGeometries[i].geometries,\n session: context.session\n });\n }\n };\n\n for (var i = 0; i < splittedGeometriesLength; i++) {\n yield* _loop2(i);\n }\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (isSplitted ? resolve : reject)(inputs);\n //need to set timeout promise, because at the end of the workflow all user messages are cleared\n yield new Promise(function (r) {\n return setTimeout(r, 600);\n });\n GUI.showUserMessage({\n type: isSplitted ? 'success' : 'warning',\n message: isSplitted ? 'plugins.editing.messages.splitted' : 'plugins.editing.messages.nosplittedfeature',\n autoclose: true\n });\n });\n\n function drawend(_x8) {\n return _ref25.apply(this, arguments);\n }\n\n return drawend;\n }()\n });\n\n _this7.addInteraction(new ol.interaction.Snap({ source: source, edge: true }));\n });\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n return yield promise;\n } catch (e) {\n console.warn(e);return Promise.reject(e);\n }\n })), inputs: inputs, style: _this7.selectStyle });\n\n return promise;\n }));\n }\n })],\n registerEscKeyEvent: true\n })\n },\n // Merge features in one\n (is_line || is_poly) && capabilities.includes('change_feature') && {\n id: 'mergefeatures',\n type: ['change_feature'],\n name: \"editing.tools.merge\",\n icon: \"mergeFeatures.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/mergefeaturesworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'mergefeatures',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n type: 'bbox',\n help: 'editing.steps.help.merge',\n steps: {\n select: {\n description: 'editing.workflow.steps.' + (ApplicationState.ismobile ? 'selectDrawBox' : 'selectSHIFT'),\n done: false\n }\n }\n }, true),\n // merge features\n new _step.Step({\n layer: layer,\n help: 'editing.steps.help.merge',\n steps: {\n choose: {\n description: 'editing.workflow.steps.merge',\n done: false\n }\n },\n run: function run(inputs, context) {\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var layer = inputs.layer,\n features = inputs.features;\n\n var editingLayer = layer.getEditingLayer();\n var source = editingLayer.getSource();\n var layerId = layer.getId();\n var session = context.session;\n\n if (features.length < 2) {\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.select_min_2_features',\n autoclose: true\n });\n reject();\n } else {\n (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: inputs }).then(function () {\n var _ref27 = _asyncToGenerator(function* (feature) {\n var index = features.findIndex(function (_feature) {\n return feature === _feature;\n });\n var originalFeature = feature.clone();\n var newFeature = (0, _dissolve.dissolve)({ features: features, index: index });\n\n if (newFeature) {\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: newFeature });\n } catch (e) {\n console.warn(e);\n }\n session.pushUpdate(layerId, newFeature, originalFeature);\n features.filter(function (_feature) {\n return _feature !== feature;\n }).forEach(function (deleteFeature) {\n session.pushDelete(layerId, deleteFeature);\n source.removeFeature(deleteFeature);\n });\n inputs.features = [feature];\n resolve(inputs);\n } else {\n GUI.showUserMessage({\n type: 'warning',\n message: 'plugins.editing.messages.no_feature_selected',\n autoclose: true\n });\n reject();\n }\n });\n\n return function (_x9) {\n return _ref27.apply(this, arguments);\n };\n }()).catch(function (e) {\n console.warn(e);\n reject();\n });\n }\n }));\n }\n })],\n registerEscKeyEvent: true\n })\n },\n // Copy Features from external layer\n (is_line || is_poly) && capabilities.includes('add_feature') && {\n id: 'copyfeaturefromexternallayer',\n type: ['add_feature'],\n name: \"editing.tools.copyfeaturefromexternallayer\",\n icon: \"copyPolygonFromFeature.png\",\n visible: function visible(tool) {\n var map = GUI.getService('map');\n var type = _this.getLayer().getGeometryType();\n var has_same_geom = function has_same_geom(layer) {\n // check if tool is visible and the layer is a Vector\n var features = 'VECTOR' === layer.getType() && layer.getSource().getFeatures();\n return features && features.length ? (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), type) : true;\n };\n map.onbefore('loadExternalLayer', function (layer) {\n return !tool.visible && (tool.visible = has_same_geom(layer));\n });\n map.onafter('unloadExternalLayer', function (layer) {\n var features = tool.visible && 'VECTOR' === layer.getType() && layer.getSource().getFeatures();\n if (features && features.length && (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), type)) {\n tool.visible = map.getExternalLayers().find(function (l) {\n return undefined !== has_same_geom(l);\n });\n }\n });\n return false;\n },\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addfeaturefrommapvectorlayersworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addfeaturefrommapvectorlayers',\n runOnce: true,\n steps: [new _workflows.SelectElementsStep({\n layer: layer,\n type: 'external',\n help: 'editing.steps.help.copy'\n }, false), new _workflows.OpenFormStep({\n layer: layer,\n help: 'editing.steps.help.copy'\n })],\n registerEscKeyEvent: true\n })\n },\n // Add Table feature (alphanumerical layer - No geometry)\n is_table && capabilities.includes('add_feature') && {\n id: 'addfeature',\n type: ['add_feature'],\n name: \"editing.tools.add_feature\",\n icon: \"addTableRow.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/addtablefeatureworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'addtablefeature',\n steps: [new _step.Step({ help: 'editing.steps.help.new', run: _addTableFeature.addTableFeature }), new _workflows.OpenFormStep()]\n })\n },\n // Edit Table feature (alphanumerical layer - No geometry)\n is_table && capabilities.includes('delete_feature') && capabilities.includes('change_attr_feature') && {\n id: 'edittable',\n type: ['delete_feature', 'change_attr_feature'],\n name: \"editing.tools.update_feature\",\n icon: \"editAttributes.png\",\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/edittableworkflow.js@v3.7.1 */\n op: new _workflow.Workflow({\n layer: layer,\n type: 'edittable',\n backbuttonlabel: 'plugins.editing.form.buttons.save_and_back_table',\n runOnce: true,\n steps: [new _workflows.OpenTableStep()]\n })\n }].filter(Boolean).map(function (tool) {\n return Object.assign(new G3WObject(), tool);\n })\n };\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n */\n _this.state._tools.forEach(function (tool) {\n Object.assign(tool, {\n disabledtoolsoftools: [],\n enabled: !!tool.enabled,\n active: false,\n message: null,\n messages: tool.op.getMessages(),\n visible: tool.visible instanceof Function ? tool.visible(tool) : undefined !== tool.visible ? tool.visible : true,\n state: new Proxy({}, { get: function get(_, prop) {\n return tool[prop];\n }, set: function set(_, prop, value) {\n tool[prop] = value;return true;\n } }),\n start: _this._startTool.bind(_this, tool),\n stop: _this._stopTool.bind(_this, tool),\n getId: function getId() {\n return tool.id;\n },\n getOperator: function getOperator() {\n return tool.op;\n },\n setOperator: function setOperator(op) {\n return tool.op = op;\n }\n });\n });\n\n Object.assign(_this.state, {\n tools: _this.state._tools,\n /** original value of state in case of custom changes */\n originalState: {\n title: _this.state.title,\n toolsoftool: [].concat(_toConsumableArray(_this.state.toolsoftool))\n }\n });\n\n // BACKOMP v3.x\n _this.originalState = _this.state.originalState;\n\n //event features\n _this._getFeaturesEvent = { event: null, fnc: null };\n\n // @since v3.8.0 constraint messages to show\n _this.messages = {\n //set message of scale constraint\n constraint: {\n scale: ('' + tPlugin('editing.messages.constraints.enable_editing') + _this.state._constraints.scale).toUpperCase()\n }\n\n //@since 3.8.0 Need to store Promise resolve when start toolbox but non editing is enabled (scale constraint, etc..)\n };_this.startResolve = null;\n\n //@since 3.8.0 Store ol keys event start when we are in editing\n _this._olStartKeysEvent = [];\n\n //@since 3.8.1 store all unwatches\n _this.unwatches = [];\n return _this;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } layerId\n *\n */\n\n\n _createClass(ToolBox, [{\n key: '_stopSessionChildren',\n value: function _stopSessionChildren(layerId) {\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n var layer = service.getLayerById(layerId);\n (0, _getRelationsInEditing.getRelationsInEditing)({\n layerId: layerId,\n relations: layer.getRelations() ? layer.getRelations().getArray() : []\n }).filter(function (relation) {\n return relation.getFather() === layerId;\n }).forEach(function (relation) {\n var relationId = (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation });\n // In case of no editing is started (click on pencil of relation layer) need to stop (unlock) features\n if (!service.getToolBoxById(relationId).inEditing()) {\n service.state.sessions[relationId].stop();\n }\n });\n }\n\n /**\n * @returns toolbox state\n */\n\n }, {\n key: 'getState',\n value: function getState() {\n return this.state;\n }\n\n /**\n * @param bool\n */\n\n }, {\n key: 'setShow',\n value: function setShow() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.state.show = bool;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getLayer',\n value: function getLayer() {\n return this.state.layer;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isFather',\n value: function isFather() {\n return this.state.editing.father;\n }\n\n /**\n * @returns { Array } parent and child layers\n */\n\n }, {\n key: 'getDependencies',\n value: function getDependencies() {\n return this.state.editing.dependencies;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'hasDependencies',\n value: function hasDependencies() {\n return this.state.editing.dependencies.length > 0;\n }\n\n /**\n * Create getFeatures options\n * \n * @param filter\n */\n\n }, {\n key: 'setFeaturesOptions',\n value: function setFeaturesOptions() {\n var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n filter = _ref28.filter;\n\n if (filter) {\n // in case of no features filter request check if no features_filed is present otherwise it get first field\n if (filter.nofeatures) {\n filter.nofeatures_field = filter.nofeatures_field || this.state.layer.getEditingFields()[0].name;\n }\n this.state._getFeaturesOption = {\n filter: filter,\n editing: true,\n registerEvents: false\n };\n // in case of constraint attribute set the filter as constraint\n if (filter.constraint) {\n this.constraintFeatureFilter = filter;\n }\n } else {\n this.state._getFeaturesOption = (0, _createEditingDataOptions.createEditingDataOptions)(Layer.LayerTypes.TABLE === this.state._layerType ? 'all' : 'bbox', { layerId: this.getId() });\n }\n }\n\n /**\n * @param constraints\n */\n\n }, {\n key: 'setEditingConstraints',\n value: function setEditingConstraints() {\n var _this8 = this;\n\n var constraints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object.keys(constraints).forEach(function (c) {\n return _this8.constraints[c] = constraints[c];\n });\n }\n\n /**\n * @since 3.8.0 Handle scale constraint\n * @sto stop true when called from stop method\n * @private\n */\n\n }, {\n key: '_handleScaleConstraint',\n value: function _handleScaleConstraint() {\n var _this9 = this;\n\n var stop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // get features from server or wait to start\n var map = GUI.getService('map').getMap();\n\n this.state.editing.canEdit = getScaleFromResolution(map.getView().getResolution()) <= this.state._constraints.scale;\n\n //check if start method is called\n var in_editing = this._start || this.startResolve;\n\n var showZoomCursor = !stop && this.state.selected && !this.state.editing.canEdit;\n\n var control = GUI.getService('map').getCurrentToggledMapControl();\n\n if (control && control.cursorClass && (stop || in_editing)) {\n control.setMouseCursor(!showZoomCursor);\n }\n\n map.getViewport().classList.toggle('ol-zoom-in', showZoomCursor);\n\n // check if selected → hide modal\n if (stop || !this.state.selected || !in_editing) {\n GUI.setModal(false);\n return;\n }\n\n if (this.state.editing.canEdit && this.startResolve) {\n this.startResolve();\n }\n\n // async show message because another toolbox can be unselected before\n setTimeout(function () {\n return GUI.setModal(!_this9.state.editing.canEdit, _this9.messages.constraint.scale);\n });\n }\n\n /**\n *\n * Start editing\n * @param options\n * @return {*}\n */\n //added option object to start method to have a control by other plugin how\n\n }, {\n key: 'start',\n value: function start() {\n var _this10 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref29 = _asyncToGenerator(function* (resolve, reject) {\n var id = _this10.getId();\n var applicationConstraint = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.constraints.toolboxes[id];\n var _options$toolboxheade = options.toolboxheader,\n toolboxheader = _options$toolboxheade === undefined ? true : _options$toolboxheade,\n _options$startstopedi = options.startstopediting,\n startstopediting = _options$startstopedi === undefined ? true : _options$startstopedi,\n _options$changingtool = options.changingtools,\n changingtools = _options$changingtool === undefined ? false : _options$changingtool,\n tools = options.tools,\n filter = options.filter;\n\n\n _this10.state.changingtools = changingtools;\n\n if (tools) {\n _this10.setEnablesDisablesTools(tools);\n }\n\n _this10.state.toolboxheader = toolboxheader;\n _this10.state.startstopediting = startstopediting;\n\n filter = applicationConstraint && applicationConstraint.filter || _this10.constraints.filter || filter;\n\n //register lock features to show a message\n var unKeyLock = _this10.state.layer.getFeaturesStore().onceafter('featuresLockedByOtherUser', function () {\n GUI.showUserMessage({\n type: 'warning',\n subtitle: _this10.state.layer.getName().toUpperCase(),\n message: 'plugins.editing.messages.featureslockbyotheruser'\n });\n });\n\n //add featuresLockedByOtherUser setter\n _this10.state._unregisterStartSettersEventsKey.push(function () {\n return _this10.state.layer.getFeaturesStore().un('featuresLockedByOtherUser', unKeyLock);\n });\n\n // check if can we edit based on scale contraint (vector layer)\n if (_this10.state._constraints.scale) {\n\n yield new Promise(function (resolve) {\n //set as resolve handler to resolve waiting get features from server\n _this10.startResolve = resolve;\n //call scale constraint handler\n _this10._handleScaleConstraint();\n\n var map = GUI.getService('map');\n\n // click to fit zoom scale constraint\n _this10._olStartKeysEvent.push(map.getMap().on('click', function (e) {\n if (_this10.state.selected && !_this10.state.editing.canEdit) {\n map.goToRes(e.coordinate, getResolutionFromScale(_this10.state._constraints.scale, GUI.getService('map').getMapUnits()));\n }\n }));\n\n // if click on start toolbox can edit\n if (_this10.state.editing.canEdit) {\n resolve();\n }\n });\n }\n\n //reset start startResolve promise reolve function\n _this10.startResolve = null;\n // set filterOptions\n _this10.setFeaturesOptions({ filter: filter });\n\n var handlerAfterSessionGetFeatures = function () {\n var _ref30 = _asyncToGenerator(function* (promise) {\n _this10.emit('start-editing');\n //set unique fields values\n yield (0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(_this10.getId());\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'start-editing', id: id });\n try {\n var features = yield (0, _promisify.promisify)(promise);\n _this10.stopLoading();\n _this10.setEditing(true);\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'get-features-editing', id: id, options: { features: features } });\n resolve({ features: features });\n } catch (e) {\n console.warn(e);\n GUI.notify.error(e.message);\n yield g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').runEventHandler({ type: 'error-editing', id: id, error: e });\n _this10.stop();\n _this10.stopLoading();\n reject(e);\n }\n });\n\n return function handlerAfterSessionGetFeatures(_x17) {\n return _ref30.apply(this, arguments);\n };\n }();\n\n var is_started = !!_this10.__isStarted();\n\n //@TODO need to explain better\n var GIVE_ME_A_NAME = ApplicationState.ismobile // is mobile\n && GUI.getService('map').isMapHidden() // map is not visible (content 100%)\n && Layer.LayerTypes.VECTOR === _this10.state._layerType // is vector\n ;\n\n if (!is_started && GIVE_ME_A_NAME) {\n _this10.setEditing(true);\n GUI.getService('map').onceafter('setHidden', function () {\n setTimeout(_asyncToGenerator(function* () {\n _this10._start = true;\n _this10.startLoading();\n _this10.setFeaturesOptions({ filter: filter });\n try {\n handlerAfterSessionGetFeatures((yield (0, _promisify.promisify)(_this10._session.start(_this10.state._getFeaturesOption))));\n } catch (e) {\n console.warn(e);\n _this10.setEditing(false);\n }\n }), 300);\n });\n }\n\n /** @TODO merge the following condtions? */\n if (!is_started && !GIVE_ME_A_NAME) {\n _this10._start = true;\n _this10.startLoading();\n _this10._session.start(_this10.state._getFeaturesOption).then(handlerAfterSessionGetFeatures);\n }\n\n if (is_started && !_this10._start) {\n _this10.startLoading();\n _this10._session.getFeatures(_this10.state._getFeaturesOption).then(handlerAfterSessionGetFeatures);\n _this10._start = true;\n }\n\n if (is_started) {\n _this10.setEditing(true);\n }\n });\n\n return function (_x15, _x16) {\n return _ref29.apply(this, arguments);\n };\n }()));\n }\n }, {\n key: 'startLoading',\n\n\n /**\n *\n */\n value: function startLoading() {\n this.state.loading = true;\n }\n\n /**\n *\n */\n\n }, {\n key: 'stopLoading',\n value: function stopLoading() {\n this.state.loading = false;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n var _this11 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n if (_this11.disableCanEditEvent) {\n _this11.disableCanEditEvent();\n }\n\n _this11.state._unregisterStartSettersEventsKey.forEach(function (fnc) {\n return fnc();\n });\n _this11.state._unregisterStartSettersEventsKey = [];\n\n _this11._olStartKeysEvent.forEach(function (k) {\n return ol.Observable.unByKey(k);\n });\n _this11._olStartKeysEvent.splice(0);\n\n _this11.unwatches.forEach(function (uw) {\n return uw();\n });\n _this11.unwatches.splice(0);\n\n //eventually reset start resolve feature waiting promise\n _this11.startResolve = null;\n //set start to false\n _this11._start = false;\n _this11.state.editing.on = false;\n\n if (_this11.state._constraints.scale) {\n _this11._handleScaleConstraint(true);\n }\n\n var is_started = !!_this11.__isStarted();\n\n if (!is_started) {\n return true;\n }\n\n if (!ApplicationState.online) {\n return;\n }\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n var layerId = _this11.state.id;\n\n // Check if father relation is editing and has commit feature\n var fathersInEditing = service.getLayerById(layerId).getFathers().filter(function (id) {\n var toolbox = service.getToolBoxById(id);\n if (toolbox && toolbox.inEditing() && toolbox.isDirty()) {\n //get a temporary relations object and check if layerId has some changes\n return Object.keys(toolbox.getSession().getCommitItems() || {}).find(function (id) {\n return layerId === id;\n });\n }\n });\n\n if (fathersInEditing.length > 0) {\n _this11.stopActiveTool();\n _this11.enableTools(false);\n _this11.clearToolboxMessages();\n // unregister get features event\n if (Layer.LayerTypes.VECTOR === _this11.state._layerType) {\n GUI.getService('map').getMap().un(_this11._getFeaturesEvent.event, _this11._getFeaturesEvent.fnc);\n }\n _this11._stopSessionChildren(_this11.state.id);\n // clear layer unique field values\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this11.getId()] = {};\n return;\n }\n\n try {\n yield (0, _promisify.promisify)(_this11._session.stop());\n _this11.state.enabled = false;\n _this11.stopLoading();\n _this11.state._getFeaturesOption = {};\n _this11.stopActiveTool();\n _this11.enableTools(false);\n _this11.clearToolboxMessages();\n _this11.emit('stop-editing');\n // clear layer unique field values\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.uniqueFieldsValues[_this11.getId()] = {};\n return true;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Commit changes on server (save)\n * \n * @param opts.ids\n * @param opts.items\n * @param opts.relations\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: 'save',\n value: function save() {\n var _this12 = this;\n\n var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref33$ids = _ref33.ids,\n ids = _ref33$ids === undefined ? null : _ref33$ids,\n items = _ref33.items,\n _ref33$relations = _ref33.relations,\n relations = _ref33$relations === undefined ? true : _ref33$relations,\n _ref33$__esPromise = _ref33.__esPromise,\n __esPromise = _ref33$__esPromise === undefined ? false : _ref33$__esPromise;\n\n return (0, _promisify.$promisify)(new Promise(function () {\n var _ref34 = _asyncToGenerator(function* (resolve, reject) {\n var commit = void 0; // committed items\n\n // skip when ..\n //@TODO Check if deprecated\n if (ids) {\n commit = _this12.__commit(ids);\n _this12.__clearHistory(ids);\n return resolve(commit);\n }\n\n commit = items || _this12.__getCommitItems(_this12.__commit());\n\n if (!relations) {\n commit.relations = {};\n }\n\n _this12.state.layer.getEditor().commit(commit).then(function (response) {\n\n // skip when response is null or undefined and response.result is false\n if (!(response && response.result)) {\n reject(response);\n return;\n }\n\n var _response$response$ne = response.response.new_relations,\n new_relations = _response$response$ne === undefined ? {} : _response$response$ne; // check if new relations are saved on server\n\n // sync server data with local data\n\n for (var id in new_relations) {\n var toolbox = ToolBox.get(id);\n toolbox.getSession().getEditor().applyCommitResponse({ // apply commit response to current editing relation layer\n response: new_relations[id],\n result: true\n });\n }\n\n _this12.__clearHistory();\n\n /**\n * @since v3.9.0\n * After commit get new unique values\n */\n _this12._session.saveChangesOnServer(commit);\n\n // ES6 promises only accept a single response\n if (__esPromise) {\n resolve({ commit: commit, response: response });\n } else {\n resolve(commit, response);\n }\n }).fail(function (e) {\n console.warn(e);reject(e);\n });\n });\n\n return function (_x19, _x20) {\n return _ref34.apply(this, arguments);\n };\n }()));\n }\n\n /**\n * @returns {*|{}}\n */\n\n }, {\n key: 'getEditingConstraints',\n value: function getEditingConstraints() {\n return this.state._constraints;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'canEdit',\n value: function canEdit() {\n return this.state.editing.canEdit;\n }\n\n /**\n * @param message\n */\n\n }, {\n key: 'setMessage',\n value: function setMessage(message) {\n this.state.message = message;\n }\n\n /**\n * @returns {null}\n */\n\n }, {\n key: 'getMessage',\n value: function getMessage() {\n return this.state.message;\n }\n\n /**\n *\n */\n\n }, {\n key: 'clearMessage',\n value: function clearMessage() {\n this.setMessage(null);\n }\n\n /**\n *\n */\n\n }, {\n key: 'clearToolboxMessages',\n value: function clearToolboxMessages() {\n this.state.toolmessages.help = null;\n this.clearMessage();\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getId',\n value: function getId() {\n return this.state.id;\n }\n\n /**\n * @returns {string}\n */\n\n }, {\n key: 'getTitle',\n value: function getTitle() {\n return this.state.title;\n }\n\n /**\n * @param title\n */\n\n }, {\n key: 'setTitle',\n value: function setTitle(title) {\n this.state.customTitle = true;\n this.state.title = title;\n }\n\n /**\n * @returns {string}\n */\n\n }, {\n key: 'getColor',\n value: function getColor() {\n return this.state.color;\n }\n\n /**\n * Enable toolbox\n * \n * @param bool\n */\n\n }, {\n key: 'setEditing',\n value: function setEditing() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.setEnable(bool);\n this.state.editing.on = bool;\n this.enableTools(bool);\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'inEditing',\n value: function inEditing() {\n return this.state.editing.on;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return this.state.enabled;\n }\n\n /**\n * @param bool\n * \n * @returns {boolean}\n */\n\n }, {\n key: 'setEnable',\n value: function setEnable() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.state.enabled = bool;\n return this.state.enabled;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isLoading',\n value: function isLoading() {\n return this.state.loading;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'isDirty',\n value: function isDirty() {\n return this.state.editing.history.commit;\n }\n\n /**\n * @returns {boolean}\n */\n\n }, {\n key: 'isSelected',\n value: function isSelected() {\n return this.state.selected;\n }\n\n /**\n * @param bool\n */\n\n }, {\n key: 'setSelected',\n value: function setSelected() {\n var _this13 = this;\n\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.state.selected = bool;\n //Check if layer has a scale constraint\n if (this.state._constraints.scale) {\n var map = GUI.getService('map').getMap();\n //run handle scale contraint handler function\n this._handleScaleConstraint();\n\n //IN CASE START EDITING AND CAN EDIT NEED TO DISPATCH EVENT MOVE END MAP\n if (this._start && this.state.canEdit) {\n map.dispatchEvent({ type: this._getFeaturesEvent.event, target: map });\n }\n //SELECTED AND NOT REGISTER MAP CHANGE RESOLUTION\n if (this.state.selected && !this.keyChangeResolution) {\n this.keyChangeResolution = map.getView().on('change:resolution', function () {\n return _this13._handleScaleConstraint();\n });\n }\n\n //NOT SELECTED AND REGISTER MAP CHANGE RESOLUTION, NEED TO REMOVE CHANGE RESOLUTION CHECK\n if (!this.state.selected && this.keyChangeResolution) {\n ol.Observable.unByKey(this.keyChangeResolution);\n this.keyChangeResolution = null;\n }\n }\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getTools',\n value: function getTools() {\n return this.state._tools;\n }\n\n /**\n * @param toolId\n * \n * @returns {*|number|bigint|T|T} tool by id\n */\n\n }, {\n key: 'getToolById',\n value: function getToolById(toolId) {\n return this.state._tools.find(function (tool) {\n return toolId === tool.getId();\n });\n }\n\n /**\n * @param toolId\n */\n\n }, {\n key: 'setEnableTool',\n value: function setEnableTool(toolId) {\n this.state._tools.find(function (tool) {\n return tool.getId() === toolId;\n }).state.enabled = true;\n }\n\n /**\n * Set tools bases on add\n * editing_constraints : true // follow the tools related toi editing conttraints configuration\n * \n * @see g3w-client-plugin-sispi-worksite\n */\n\n }, {\n key: 'setAddEnableTools',\n value: function setAddEnableTools() {\n var _ref35 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref35$tools = _ref35.tools,\n tools = _ref35$tools === undefined ? {} : _ref35$tools,\n _ref35$options = _ref35.options,\n options = _ref35$options === undefined ? { editing_constraints: true } : _ref35$options;\n\n var _options$editing_cons = options.editing_constraints,\n editing_constraints = _options$editing_cons === undefined ? false : _options$editing_cons;\n\n\n this.setEnablesDisablesTools({\n enabled: this.state._tools.filter(function (tool) {\n return editing_constraints ? tool.type.includes('add_feature') : ['addfeature', 'editattributes', 'movefeature', 'movevertex'].includes(tool.getId());\n }).map(function (tool) {\n return { id: tool.getId(), options: tools[tool.getId()] };\n })\n });\n\n this.enableTools(true);\n }\n\n /**\n * Set tools bases on update\n * \n * @see g3w-client-plugin-sispi-worksite\n */\n\n }, {\n key: 'setUpdateEnableTools',\n value: function setUpdateEnableTools(_ref36) {\n var _ref36$tools = _ref36.tools,\n tools = _ref36$tools === undefined ? {} : _ref36$tools,\n _ref36$excludetools = _ref36.excludetools,\n excludetools = _ref36$excludetools === undefined ? [] : _ref36$excludetools,\n _ref36$options = _ref36.options,\n options = _ref36$options === undefined ? { editing_constraints: true } : _ref36$options;\n var _options$editing_cons2 = options.editing_constraints,\n editing_constraints = _options$editing_cons2 === undefined ? false : _options$editing_cons2;\n\n var UPDATEONEFEATUREONLYTOOLSID = ['editattributes', 'movefeature', 'movevertex'];\n var update_tools = this.state._tools.filter(function (tool) {\n // exclude\n if (excludetools.includes(tool.getId())) {\n return false;\n }\n return editing_constraints ? tool.type.find(function (type) {\n return type === 'change_feature' || type === 'change_attr_feature';\n }) : UPDATEONEFEATUREONLYTOOLSID.includes(tool.getId());\n }).map(function (tool) {\n var id = tool.getId();\n return { id: id, options: tools[id] };\n });\n\n this.setEnablesDisablesTools({ enabled: update_tools });\n this.enableTools(true);\n }\n\n /**\n * Set enable tools\n *\n * @param tools\n */\n\n }, {\n key: 'setEnablesDisablesTools',\n value: function setEnablesDisablesTools(tools) {\n var _this14 = this;\n\n if (tools) {\n this.state.changingtools = true;\n // Check if tools is an array\n var _tools$enabled = tools.enabled,\n enableTools = _tools$enabled === undefined ? [] : _tools$enabled,\n _tools$disabled = tools.disabled,\n disableTools = _tools$disabled === undefined ? [] : _tools$disabled;\n\n\n var toolsId = enableTools.length ? [] : this.state._tools.map(function (tool) {\n return tool.getId();\n });\n\n enableTools.forEach(function (_ref37) {\n var id = _ref37.id,\n _ref37$options = _ref37.options,\n options = _ref37$options === undefined ? {} : _ref37$options;\n\n //check if id of tool passed as argument is right\n var tool = _this14.getToolById(id);\n if (tool) {\n var _options$active = options.active,\n active = _options$active === undefined ? false : _options$active;\n // set tool options\n\n tool.messages = options.messages || tool.messages;\n tool.visible = undefined !== options.visible ? options.visible : true;\n tool.enabled = undefined !== options.enabled ? options.enabled : false;\n tool.disabledtoolsoftools = undefined !== options.disabledtoolsoftools ? options.disabledtoolsoftools : [];\n if (tool.visible) {\n toolsId.push(id);\n }\n if (active) {\n _this14.setActiveTool(tool);\n }\n if (_this14.state._enabledtools === undefined) {\n _this14.state._enabledtools = [];\n }\n _this14.state._enabledtools.push(tool);\n }\n });\n //disabled and visible\n disableTools.forEach(function (_ref38) {\n var id = _ref38.id,\n options = _ref38.options;\n\n var tool = _this14.getToolById(id);\n if (tool) {\n if (_this14.state._disabledtools === undefined) {\n _this14.state._disabledtools = [];\n }\n _this14.state._disabledtools.push(id);\n //add it toi visible tools\n toolsId.push(id);\n }\n });\n //set not visible all remain\n this.state._tools.forEach(function (tool) {\n return !toolsId.includes(tool.getId()) && (tool.visible = false);\n });\n this.state.changingtools = false;\n }\n }\n }, {\n key: 'enableTools',\n\n\n /**\n * @param {*} bool whehter enable all tools\n */\n value: function enableTools() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var tools = this.state._enabledtools || this.state._tools;\n var disabledtools = this.state._disabledtools || [];\n tools.forEach(function (tool) {\n var enabled = undefined === tool.enable ? bool : tool.enable;\n tool.enabled = bool && disabledtools.length > 0 ? !disabledtools.includes(tool.getId()) : toRawType(enabled) === 'Boolean' ? enabled : enabled({ bool: bool, tool: tool });\n if (!bool) {\n tool.active = bool;\n }\n });\n }\n\n /**\n * @param tool\n */\n\n }, {\n key: 'setActiveTool',\n value: function setActiveTool(tool) {\n var _this15 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n yield (0, _promisify.promisify)(_this15.stopActiveTool(tool));\n\n _this15.state.toolsoftool.splice(0);\n _this15.state.activetool = tool;\n\n var workflow = tool.getOperator();\n\n if (workflow) {\n // filter eventually disable tools of tools\n workflow.once('settoolsoftool', function (ts) {\n var _state$toolsoftool;\n\n return (_state$toolsoftool = _this15.state.toolsoftool).push.apply(_state$toolsoftool, _toConsumableArray((ts || []).filter(function (t) {\n return !tool.disabledtoolsoftools.includes(t.type);\n })));\n });\n workflow.once('start', function (ts) {\n return _this15.state.toolsoftool.forEach(function (t) {\n return (ts || []).includes(t.type) && (t.options.active = true);\n });\n });\n workflow.once('stop', function (ts) {\n return _this15._deactivetools(tool, ts);\n });\n workflow.once('reject', function (ts) {\n return _this15._deactivetools(tool, ts);\n });\n }\n\n tool.start();\n\n // set tool messages\n var messages = _this15.state.activetool.getOperator().getHelpMessage() || _this15.state.activetool.getOperator().getRunningStep() ? _this15.state.activetool.messages : null;\n _this15.state.toolmessages.help = messages && messages.help || null;\n } catch (e) {\n console.warn(e);\n }\n }));\n }\n\n /**\n * @since g3w-client-plugin-editing@v3.8.0 \n */\n\n }, {\n key: '_deactivetools',\n value: function _deactivetools(tool) {\n var tools = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n // in case of deactivate tool and current active tool, it was clicked\n if (tool === this.state.activetool) {\n this.state.activetool = null;\n this.state.toolsoftool.splice(0);\n }\n this.state.toolsoftool.forEach(function (t) {\n return tools.includes(t.type) && (t.options.active = false);\n });\n }\n\n /**\n * @returns {null}\n */\n\n }, {\n key: 'getActiveTool',\n value: function getActiveTool() {\n return this.state.activetool;\n }\n\n /**\n * @param tool\n * \n * @returns {*}\n */\n\n }, {\n key: 'stopActiveTool',\n value: function stopActiveTool(tool) {\n var _this16 = this;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var activeTool = _this16.getActiveTool();\n if (tool && (!activeTool || tool === activeTool)) {\n tool.removeAllListeners();\n return;\n }\n\n try {\n //Need to check if is there active tool\n if (activeTool) {\n activeTool.removeAllListeners();\n yield (0, _promisify.promisify)(activeTool.stop(true));\n }\n _this16.state.toolsoftool.splice(0);\n _this16.state.toolmessages.help = null;\n _this16.state.activetool = null;\n } catch (e) {\n console.warn(e);\n }\n }));\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getSession',\n value: function getSession() {\n return this._session;\n }\n\n /**\n * @returns {*}\n */\n\n }, {\n key: 'getEditor',\n value: function getEditor() {\n return this.state.layer.getEditor();\n }\n\n /**\n * Reset default values\n */\n\n }, {\n key: 'resetDefault',\n value: function resetDefault() {\n this.state.title = this.state.originalState.title;\n this.state.toolboxheader = true;\n this.state.startstopediting = true;\n this.constraints = {\n filter: null,\n show: null,\n tools: []\n };\n\n if (this.state._enabledtools) {\n this.state._enabledtools = undefined;\n this.enableTools();\n this.state._tools.forEach(function (tool) {\n tool.visible = true;\n tool.enabled = false;\n tool.messages = tool.op.getMessages();\n tool.disabledtoolsoftools = []; //reset disabled tools eventually set by other\n });\n }\n this.state._disabledtools = null;\n /** since 3.9.0 set show based on visibile porpety of config editing object setting*/\n this.state.show = this.state.layer.config.editing.visible;\n //need to set selected false\n this.state.selected = false;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @param uniqueId\n * @param items\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__add',\n value: function __add(uniqueId, items) {\n var _this17 = this;\n\n //state object is an array of feature/features changed in a transaction\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n // before insert an item into the history\n // check if are at last state step (no redo was done)\n // If we are in the middle of undo, delete all changes\n // in the history from the current \"state\" so if it\n // can create a new history\n if (null === _this17.state.editing.session.current) {\n _this17._states = [{ id: uniqueId, items: items }];\n } else {\n if (_this17._states.length > 0 && _this17.state.editing.session.current < _this17._states.at(-1).id) {\n _this17._states = _this17._states.filter(function (s) {\n return s.id <= _this17.state.editing.session.current;\n });\n }\n _this17._states.push({ id: uniqueId, items: items });\n }\n\n _this17.state.editing.session.current = uniqueId;\n // set internal state\n _this17.__canUndo();\n _this17.__canCommit();\n _this17.__canRedo();\n // return unique id key\n // it can be used in save relation\n resolve(uniqueId);\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * undo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undo',\n value: function __undo() {\n var _this18 = this;\n\n var items = void 0;\n if (this.state.editing.session.current === this._states[0].id) {\n this.state.editing.session.current = null;\n items = this._states[0].items;\n } else {\n this._states.find(function (state, idx) {\n if (state.id === _this18.state.editing.session.current) {\n items = _this18._states[idx].items;\n _this18.state.editing.session.current = _this18._states[idx - 1].id;\n return true;\n }\n });\n }\n items = (0, _checkSessionItems.checkSessionItems)(this._history.id, items, 0);\n // set internal state\n this.__canUndo();\n this.__canCommit();\n this.__canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * redo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redo',\n value: function __redo() {\n var _this19 = this;\n\n var items = void 0;\n // if not set get first state\n if (!this.state.editing.session.current) {\n items = this._states[0].items;\n // set current to first\n this.state.editing.session.current = this._states[0].id;\n } else {\n this._states.find(function (state, idx) {\n if (_this19.state.editing.session.current === state.id) {\n _this19.state.editing.session.current = _this19._states[idx + 1].id;\n items = _this19._states[idx + 1].items;\n return true;\n }\n });\n }\n items = (0, _checkSessionItems.checkSessionItems)(this._history.id, items, 1);\n // set internal state\n this.__canUndo();\n this.__canCommit();\n this.__canRedo();\n return items;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param id\n * \n * @returns {T}\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getState',\n value: function __getState(id) {\n return this._states.find(function (s) {\n return s.id === id;\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * @returns { boolean } true if we can commit\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canCommit',\n value: function __canCommit() {\n var checkCommitItems = this.__commit();\n var canCommit = false;\n for (var layerId in checkCommitItems) {\n var commitItem = checkCommitItems[layerId];\n canCommit = canCommit || commitItem.length > 0;\n }\n this._constrains.commit = canCommit;\n return this._constrains.commit;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canUdo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canUndo',\n value: function __canUndo() {\n var _this20 = this;\n\n var currentStateIndex = null;\n if (this.state.editing.session.current && this._states.length) {\n this._states.forEach(function (state, idx) {\n if (_this20.state.editing.session.current === state.id) {\n currentStateIndex = idx;\n return false;\n }\n });\n };\n var steps = this._states.length - 1 - currentStateIndex;\n this._constrains.undo = null !== this.state.editing.session.current && steps < 10; // 10 = maximum \"buffer history\" lenght for undo/redo\n return this._constrains.undo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * canRedo method\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__canRedo',\n value: function __canRedo() {\n this._constrains.redo = this._states.at(-1) && this._states.at(-1).id != this.state.editing.session.current || null === this.state.editing.session.current && this._states.length > 0;\n return this._constrains.redo;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n *\n * get all changes to send to server (mandare al server)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__commit',\n value: function __commit() {\n var _this21 = this;\n\n var commitItems = {};\n var statesToCommit = this._states.filter(function (s) {\n return s.id <= _this21.state.editing.session.current;\n });\n statesToCommit.forEach(function (state) {\n state.items.forEach(function (item) {\n var add = true;\n if (Array.isArray(item)) {\n item = item[1];\n }\n if (commitItems[item.layerId]) {\n commitItems[item.layerId].forEach(function (commitItem, index) {\n // check if already inserted feature\n if (commitItem.getUid() === item.feature.getUid()) {\n if (item.feature.isNew() && !commitItem.isDeleted() && item.feature.isUpdated()) {\n var _item = item.feature.clone();\n _item.add();\n commitItems[item.layerId][index] = _item;\n } else if (item.feature.isNew() && item.feature.isDeleted()) {\n commitItems[item.layerId].splice(index, 1);\n } else if (item.feature.isUpdated() || item.feature.isDeleted()) {\n commitItems[item.layerId][index] = item.feature;\n }\n add = false;\n return false;\n }\n });\n }\n if (add) {\n var _feature3 = item.feature;\n var layerId = item.layerId;\n if (!(!_feature3.isNew() && _feature3.isAdded())) {\n if (!commitItems[layerId]) {\n commitItems[layerId] = [];\n }\n commitItems[layerId].push(_feature3);\n }\n }\n });\n });\n return commitItems;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @returns {*|null}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getLastHistoryState',\n value: function __getLastHistoryState() {\n return this._states.at(-1) || null;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__isStarted',\n value: function __isStarted() {\n return this.state.editing.session.started;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getHistory',\n value: function __getHistory() {\n return this._history;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getEditor',\n value: function __getEditor() {\n return this.state.layer.getEditor();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary features that will be added with save method\n * \n * @param { { layerId: string, feature: * } } NewFeat \n * @param { { layerId: string, feature: * } } OldFeat\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__push',\n value: function __push(newFeat, oldFeat) {\n this.state.editing.session.changes.push(oldFeat ? [oldFeat, newFeat] : newFeat); // check is set old (edit)\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Delete temporary feature\n * \n * @param layerId\n * @param feature\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushDelete',\n value: function __pushDelete(layerId, feature) {\n this.__push({ layerId: layerId, feature: feature.delete() });\n return feature;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Save temporary changes to the layer in history instance and feature store\n * \n * @param options\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__save',\n value: function __save() {\n var _this22 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // fill history\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n // add temporary modify to history\n if (_this22.state.editing.session.changes.length) {\n var uniqueId = options.id || Date.now();\n yield (0, _promisify.promisify)(_this22.__add(uniqueId, _this22.state.editing.session.changes));\n // clear to temporary changes\n _this22.state.editing.session.changes = [];\n // resolve if unique id\n return uniqueId;\n }\n return null;\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary feature\n * \n * @param layerId \n * @param feature \n * @param removeNotEditableProperties\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushAdd',\n value: function __pushAdd(layerId, feature) {\n var removeNotEditableProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n /**\n * @TODO check if it need to deprecate it. All properties are need\n * Please take care of this to understand\n * In case of removeNotEditableProperties true, remove not editable field\n * from feature properties\n */\n var editor = layerId === this.state.layer.getId() ? this.state.layer.getEditor() : ToolBox.get(layerId).getSession().getEditor();\n\n // remove not editable proprierties from feature\n if (removeNotEditableProperties) {\n (editor.getLayer().getEditingNotEditableFields() || []).forEach(function (f) {\n return feature.unset([f]);\n });\n }\n\n var newFeature = feature.clone();\n\n this.__push({ layerId: layerId, feature: newFeature.add() });\n\n return newFeature;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Add temporary feature changes\n * \n * @param layerId\n * @param newFeature\n * @param oldFeature\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__pushUpdate',\n value: function __pushUpdate(layerId, newFeature, oldFeature) {\n // get index of temporary changes\n var is_new = newFeature.isNew();\n var i = is_new && this.state.editing.session.changes.findIndex(function (c) {\n return layerId === c.layerId && c.feature.getId() === newFeature.getId();\n });\n\n // in case of new feature\n if (is_new && i >= 0) {\n var _feature4 = newFeature.clone();\n _feature4.add();\n this.state.editing.session.changes[i].feature = _feature4;\n return;\n }\n\n this.__push({ layerId: layerId, feature: newFeature.update() }, { layerId: layerId, feature: oldFeature.update() });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n *\n * @param changes\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__rollback',\n value: function __rollback(changes) {\n var _this23 = this;\n\n // skip when..\n if (changes) {\n return this.state.layer.getEditor().rollback(changes);\n }\n\n // Handle temporary changes of layer\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var id = _this23.state.layer.getId();\n changes = { own: [], dependencies: {} };\n\n _this23.state.editing.session.changes.forEach(function (c) {\n var change = Array.isArray(c) ? c[0] : c;\n if (change.layerId === id) {\n changes.own.push(change);\n } else {\n changes.dependencies[change.layerId] = changes.dependencies[change.layerId] || [];\n // FILO\n changes.dependencies[change.layerId].unshift(change);\n }\n });\n\n try {\n yield (0, _promisify.promisify)(_this23.state.layer.getEditor().rollback(changes.own));\n for (var _id in changes.dependencies) {\n ToolBox.get(_id).getSession().rollback(changes.dependencies[_id]);\n }\n return changes.dependencies;\n } catch (e) {\n console.warn(e);\n } finally {\n _this23.state.editing.session.changes = [];\n }\n }));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Rollback child changes of current session\n * \n * @param ids [array of child layer id]\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__rollbackDependecies',\n value: function __rollbackDependecies() {\n var _this24 = this;\n\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n ids.forEach(function (id) {\n var changes = [];\n _this24.state.editing.session.changes = _this24.state.editing.session.changes.filter(function (temporarychange) {\n if (temporarychange.layerId === id) {\n changes.push(temporarychange);\n return false;\n }\n });\n if (changes.length) {\n ToolBox.get(id).getSession().rollback(changes);\n }\n });\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n *\n * undo method\n * \n * @param items\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__undoSession',\n value: function __undoSession(items) {\n items = items || this.__undo();\n this.state.layer.getEditor().setChanges(items.own, true);\n this.__canCommit();\n return items.dependencies;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * redo method\n * \n * @param items\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__redoSession',\n value: function __redoSession(items) {\n items = items || this.__redo();\n this.state.layer.getEditor().setChanges(items.own, true);\n this.__canCommit();\n return items.dependencies;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Serialize commit\n * \n * @returns {{ add: *[], update: *[], relations: {}, delete: *[] }} JSON Object for a commit body send to server\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__getCommitItems',\n value: function __getCommitItems() {\n var _this25 = this;\n\n var itemsToCommit = this.__commit();\n var id = this.state.layer.getId();\n var state = void 0;\n var layer = void 0;\n var commitObj = {\n add: [], // features to add\n update: [], // features to update\n delete: [], // features to delete\n relations: {} // relation features\n };\n // key is a layer id that has changes to apply\n for (var key in itemsToCommit) {\n var isRelation = false; //set relation to false\n var items = itemsToCommit[key];\n // case key (layer id) is not equal to id (current layer id on editing)\n if (key !== id) {\n isRelation = true; //set true because these changes belong to features relation items\n var sessionRelation = ToolBox.get(key).getSession();\n //check lock ids of relation layer\n var lockids = sessionRelation ? sessionRelation.getEditor().getLockIds() : [];\n //create a relations object\n commitObj.relations[key] = {\n lockids: lockids,\n add: [],\n update: [],\n delete: [],\n relations: {} //@since v3.7.1\n };\n layer = commitObj.relations[key];\n } else {\n layer = commitObj;\n }\n\n items.forEach(function (item) {\n //check state of feature item\n state = item.getState();\n var GeoJSONFormat = new ol.format.GeoJSON();\n // item needs to be deleted\n if ('delete' === state) {\n //check if is new. If is new mean is not present on server\n //so no need to say to server to delete it\n if (!item.isNew()) {\n layer.delete.push(item.getId());\n }\n return;\n }\n //convert feature to json ex. {geometry:{tye: 'Point'}, properties:{}.....}\n var itemObj = GeoJSONFormat.writeFeatureObject(item);\n //get properties\n var childs_properties = item.getProperties();\n for (var p in itemObj.properties) {\n // in case the value of property is an object\n if (itemObj.properties[p] && _typeof(itemObj.properties[p]) === 'object' && itemObj.properties[p].constructor === Object) {\n //need to get value from value attribute object\n itemObj.properties[p] = itemObj.properties[p].value;\n }\n // @TODO explain when this condition happen\n if (undefined === itemObj.properties[p] && childs_properties[p]) {\n itemObj.properties[p] = childs_properties[p];\n }\n }\n // in case of add it have to remove not editable properties\n layer[item.isNew() ? 'add' : item.getState()].push(itemObj);\n });\n // check in case of no edit remove relation key\n if (isRelation && layer.add.length === 0 //no relation features to add\n && layer.update.length === 0 //no relation features to update\n && layer.delete.length === 0 //no relation features to delete\n ) {\n delete commitObj.relations[key];\n }\n }\n // Remove deep relations from current layer (commitObj) that are not relative to that layer\n var relations = Object.keys(commitObj.relations || {});\n relations.filter(function (id) {\n return undefined === _this25.state.layer.getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild();\n });\n }) // child relations\n .map(function (id) {\n commitObj.relations[ToolBox.get(id).getSession().getEditor().getLayer().getRelations().getArray().find(function (r) {\n return id === r.getChild() && commitObj.relations[r.getFather()];\n }) // parent relation layer\n .getFather()].relations[id] = commitObj.relations[id];\n return id;\n }).forEach(function (id) {\n return delete commitObj.relations[id];\n });\n\n return commitObj;\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/session.js@v3.9.1\n * \n * Clear all things bind to session\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__clearSession',\n value: function __clearSession() {\n this._allfeatures = false;\n this.state.editing.session.started = false;\n this.state.editing.session.getfeatures = false;\n this.__clearHistory();\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * @param ids since g3w-client-plugin-editing@v3.8.0\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '__clearHistory',\n value: function __clearHistory(ids) {\n var _this26 = this;\n\n if (ids) {\n this._states.forEach(function (state, idx) {\n if (ids.indexOf(state.id) !== -1) {\n if (_this26.state.editing.session.current && _this26.state.editing.session.current === state.id()) {\n _this26.__undo();\n }\n _this26._states.splice(idx, 1);\n }\n });\n } else {\n // clear all\n this._states = [];\n this.state.editing.session.current = null;\n this._constrains.commit = false;\n this._constrains.redo = false;\n this._constrains.undo = false;\n }\n }\n\n /**\n * Start session\n */\n\n }, {\n key: '__startSession',\n value: function () {\n var _ref43 = _asyncToGenerator(function* () {\n var _this27 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n try {\n var features = yield (0, _promisify.promisify)(this.state.layer.getEditor().start(options));\n this.state.editing.session.started = true;\n return features;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n } finally {\n if (!options.registerEvents) {\n return;\n }\n this.state._getFeaturesOption = options;\n // register get features event (only in case filter bbox)\n if (Layer.LayerTypes.VECTOR === this.state._layerType && this.state._getFeaturesOption.filter.bbox) {\n var fnc = function fnc() {\n if (\n //added ApplicationState.online\n ApplicationState.online && _this27.state.editing.canEdit && _this27.state.selected //need to be selected\n && 0 === GUI.getContentLength()) {\n _this27.state._getFeaturesOption.filter.bbox = GUI.getService('map').getMapBBOX();\n _this27.state.loading = true;\n _this27._session.getFeatures(_this27.state._getFeaturesOption).then(function (promise) {\n return promise.then(function () {\n return _this27.state.loading = false;\n });\n });\n }\n };\n this._getFeaturesEvent.event = 'moveend';\n this._getFeaturesEvent.fnc = debounce(fnc, 300);\n this._olStartKeysEvent.push(GUI.getService('map').getMap().on('moveend', this._getFeaturesEvent.fnc));\n if (GUI.getContentLength()) {\n GUI.once('closecontent', function () {\n var map = GUI.getService('map').getMap();\n setTimeout(function () {\n map.dispatchEvent({ type: _this27._getFeaturesEvent.event, target: map });\n });\n });\n }\n }\n }\n });\n\n function __startSession() {\n return _ref43.apply(this, arguments);\n }\n\n return __startSession;\n }()\n\n /**\n * Stop session\n */\n\n }, {\n key: '__stopSession',\n value: function () {\n var _ref44 = _asyncToGenerator(function* () {\n try {\n if (this.state.editing.session.started || this.state.editing.session.getfeatures) {\n yield (0, _promisify.promisify)(this.state.layer.getEditor().stop());\n this.__clearSession();\n }\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n } finally {\n if (!this.inEditing()) {\n return;\n }\n if (ApplicationState.online) {\n this._stopSessionChildren(this.state.id);\n }\n // unregister get features event\n if (this.state._getFeaturesOption.registerEvents && Layer.LayerTypes.VECTOR === this.state._layerType) {\n GUI.getService('map').getMap().un(this._getFeaturesEvent.event, this._getFeaturesEvent.fnc);\n }\n }\n });\n\n function __stopSession() {\n return _ref44.apply(this, arguments);\n }\n\n return __stopSession;\n }()\n\n /**\n * Get features from server (by editor)\n */\n\n }, {\n key: '__getFeatures',\n value: function () {\n var _ref45 = _asyncToGenerator(function* () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this._allfeatures) {\n this._allfeatures = !options.filter;\n var features = yield (0, _promisify.promisify)(this.state.layer.getEditor().getFeatures(options));\n this.state.editing.session.getfeatures = true;\n return features;\n }\n return [];\n });\n\n function __getFeatures() {\n return _ref45.apply(this, arguments);\n }\n\n return __getFeatures;\n }()\n\n /**\n * Hook to get informed that are saved on server\n * Get unique id for each commited layer/relation\n */\n\n }, {\n key: '__saveChangesOnServer',\n value: function () {\n var _ref46 = _asyncToGenerator(function* (commit) {\n var promises = [(0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(this.getId())];\n var relationsId = [];\n var addRelationId = function addRelationId() {\n var relations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n Object.entries(relations).forEach(function (_ref47) {\n var _ref48 = _slicedToArray(_ref47, 2),\n id = _ref48[0],\n commit = _ref48[1];\n\n relationsId.push(id);\n addRelationId(commit.relations);\n });\n };\n addRelationId(commit.relations);\n relationsId.forEach(function (id) {\n return promises.push((0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(id));\n });\n\n yield Promise.allSettled(promises);\n });\n\n function __saveChangesOnServer(_x32) {\n return _ref46.apply(this, arguments);\n }\n\n return __saveChangesOnServer;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_startTool',\n value: function _startTool(tool) {\n var _this28 = this;\n\n if (tool.getOperator()) {\n tool.active = true;\n setTimeout(_asyncToGenerator(function* () {\n return yield _this28._startOp(tool, {\n inputs: { layer: _this28.getLayer(), features: [] },\n context: { session: _this28._session }\n }, !!GUI.getService('map').isMapHidden());\n })); // prevent rendering change state\n }\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_startOp',\n value: function () {\n var _ref50 = _asyncToGenerator(function* (tool, options, hideSidebar) {\n // reset features\n options.inputs.features = [];\n\n if (hideSidebar) {\n GUI.hideSidebar();\n }\n\n try {\n yield (0, _promisify.promisify)(tool.op.start(options));\n yield (0, _promisify.promisify)(this._session.save());\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').saveChange(); // after save temp change check if editing service has a autosave\n } catch (e) {\n console.warn(e);\n if (hideSidebar) {\n GUI.showSidebar();\n }\n this._session.rollback();\n } finally {\n if (!tool.getOperator().runOnce && Layer.LayerTypes.TABLE !== this.getLayer().getType()) {\n yield this._startOp(tool, options, hideSidebar);\n } else {\n tool.stop();\n }\n }\n });\n\n function _startOp(_x34, _x35, _x36) {\n return _ref50.apply(this, arguments);\n }\n\n return _startOp;\n }()\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/toolboxes/tool.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n }, {\n key: '_stopTool',\n value: function _stopTool(tool) {\n var _this29 = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n if (!tool.getOperator()) {\n tool.emit('stop', { session: _this29._session });\n return;\n }\n try {\n yield (0, _promisify.promisify)(tool.getOperator().stop(force));\n } catch (e) {\n console.warn(e);\n _this29._session.rollback();\n } finally {\n tool.active = false;\n tool.emit('stop', { session: _this29._session });\n }\n }));\n }\n }]);\n\n return ToolBox;\n}(G3WObject);\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/store/sessions.js@v3.9.1\n *\n * Store editing sessions\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n\n\nToolBox._sessions = {};\nToolBox.get = function (id) {\n return ToolBox._sessions[id];\n};\nToolBox.clear = function () {\n return Object.keys(sessions).forEach(function (id) {\n return delete ToolBox._sessions[id];\n });\n};\n\n},{\"../components/CopyFeaturesFromOtherLayers.vue\":4,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addPartToMultigeometries\":28,\"../utils/addTableFeature\":30,\"../utils/checkSessionItems\":32,\"../utils/chooseFeature\":33,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/cloneFeature\":35,\"../utils/convertToGeometry\":36,\"../utils/createEditingDataOptions\":37,\"../utils/dissolve\":39,\"../utils/evaluateExpressionFields\":40,\"../utils/getDeltaXY\":41,\"../utils/getEditingLayerById\":42,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getNotEditableFieldsNoPkValues\":46,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/getRelationsInEditing\":51,\"../utils/getRelationsInEditingByFeature\":52,\"../utils/handleSplitFeature\":54,\"../utils/isPointOnVertex\":55,\"../utils/isSameBaseGeometryType\":56,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/setLayerUniqueFieldValues\":61,\"../utils/splitFeatures\":62,\"../utils/unlinkRelation\":63,\"../workflows\":65}],28:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addPartToMultigeometries = addPartToMultigeometries;\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _promisify = require('./promisify');\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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addparttomultigeometriestask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addparttomultigeometriesstep.js@v3.7.1\n * \n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addPartToMultigeometries(inputs, context) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n var feature = void 0;\n var originalFeature = void 0;\n\n // add part\n if (inputs.features.length > 1) {\n feature = inputs.features[0];\n var geometry = feature.getGeometry();\n originalFeature = feature.clone();\n geometry.setCoordinates([].concat(_toConsumableArray(geometry.getCoordinates()), _toConsumableArray(inputs.features[1].getGeometry().getCoordinates())));\n } else {\n feature = inputs.layer.getEditingLayer().getSource().getFeatures()[0];\n originalFeature = feature.clone();\n feature.setGeometry(inputs.features[0].getGeometry());\n }\n\n // evaluated geometry expression\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n context.session.pushUpdate(inputs.layer.getId(), feature, originalFeature);\n\n inputs.features = [feature];\n return inputs;\n }));\n}\n\n},{\"../utils/evaluateExpressionFields\":40,\"./promisify\":58}],29:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addRemoveToMultipleSelectFeatures = addRemoveToMultipleSelectFeatures;\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/selectelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/selectelementsstep.js@v3.7.1\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addRemoveToMultipleSelectFeatures(features, inputs, selected, task) {\n (features || []).forEach(function (f) {\n var selIndex = selected.indexOf(f);\n if (selIndex < 0) {\n task._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)([f]);\n selected.push(f);\n } else {\n selected.splice(selIndex, 1);\n f.setStyle(task._originalStyle);\n }\n inputs.features = selected;\n });\n\n var steps = task.getSteps();\n var buttonnext = steps.select.buttonnext;\n\n buttonnext.disabled = buttonnext.condition ? buttonnext.condition({ features: selected }) : 0 === selected.length;\n\n if (undefined !== steps.select.dynamic) {\n steps.select.dynamic = selected.length;\n }\n}\n\n},{\"../utils/setFeaturesSelectedStyle\":60}],30:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addTableFeature = addTableFeature;\n\nvar _promisify = require('./promisify');\n\n/**\n * \n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addtablefeaturestep.js@v3.7.1\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction addTableFeature(inputs, context) {\n var feature = inputs.features.length > 0 ? inputs.features[inputs.features.length - 1] : inputs.layer.createNewFeature();\n\n feature.setTemporaryId();\n\n inputs.layer.getEditingLayer().getEditingSource().addFeature(feature);\n\n context.session.pushAdd(inputs.layer.getId(), feature, false);\n\n inputs.features.push(feature);\n\n context.get_default_value = true;\n\n return (0, _promisify.$promisify)(Promise.resolve(inputs, context));\n}\n\n},{\"./promisify\":58}],31:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.areCoordinatesEqual = areCoordinatesEqual;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param feature\n * @param coordinates\n *\n * @returns { boolean }\n */\nfunction areCoordinatesEqual(_ref) {\n var feature = _ref.feature,\n coordinates = _ref.coordinates;\n\n //get geometry from feature\n var geometry = feature.getGeometry();\n var type = geometry.getType();\n var coords = function coords(c1, c2) {\n return g3wsdk.core.geoutils.areCoordinatesEqual(c1, c2);\n }; // whether element have same coordinates\n\n switch (type) {\n case 'Polygon':\n case 'MultiLineString':\n coordinates = _.flatMap(coordinates);\n return _.flatMap(geometry.getCoordinates()).every(function (c, i) {\n return coords(c, coordinates[i]);\n });\n\n case 'LineString':\n case 'MultiPoint':\n return geometry.getCoordinates().every(function (c, i) {\n return coords(c, coordinates[i]);\n });\n\n case 'MultiPolygon':\n // in case of add part or remove part\n if (coordinates.length !== geometry.getPolygons().length) {\n return false;\n }\n return geometry.getPolygons().some(function (poly, i) {\n var _coords = _.flatMap(coordinates[i]);\n return _.flatMap(poly.getCoordinates()).every(function (c, i) {\n return coords(c, _coords[i]);\n });\n });\n\n case 'Point':\n return coords(coordinates, geometry.getCoordinates());\n\n default:\n return false;\n }\n}\n\n},{}],32:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSessionItems = checkSessionItems;\n/**\n * ORIGINAL SOURCE: g3w-client/src/core/editing/history.js@v3.9.1\n * \n * check if was done an update (update are array contains two items, old and new value)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction checkSessionItems(historyId, items, action) {\n /**\n * action: \n * 0: undo;\n * 1: redo;\n **/\n var newItems = {\n own: [], //array of changes of layer of the current session\n dependencies: {} // dependencies\n };\n\n items.forEach(function (item) {\n if (Array.isArray(item)) {\n item = item[action];\n }\n // check if belong to session\n if (historyId === item.layerId) {\n newItems.own.push(item);\n } else {\n newItems.dependencies[item.layerId] = newItems.dependencies[item.layerId] || {\n own: [],\n dependencies: {}\n };\n newItems.dependencies[item.layerId].own.push(item);\n }\n });\n\n return newItems;\n}\n\n},{}],33:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chooseFeature = chooseFeature;\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _promisify = require('../utils/promisify');\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 * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/choosefeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/choosefeaturestep.js@v3.7.1\n * \n * @returns jQuery promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction chooseFeature(inputs) {\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n try {\n if (1 !== inputs.features.length) {\n var feature = yield (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: inputs.features, inputs: inputs });\n inputs.features = [feature];\n }\n return inputs;\n } catch (e) {\n console.warn(e);\n return Promise.reject(e);\n }\n }));\n}\n\n},{\"../utils/chooseFeatureFromFeatures\":34,\"../utils/promisify\":58}],34:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chooseFeatureFromFeatures = chooseFeatureFromFeatures;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/g3w-editing-components/choosefeaturetoedit.js@v3.6\n * \n * @since g3w-client-plugin-editing@v3.5.13\n */\n\nfunction chooseFeatureFromFeatures(_ref) {\n var _ref$features = _ref.features,\n features = _ref$features === undefined ? [] : _ref$features,\n inputs = _ref.inputs;\n\n return new Promise(function (resolve, reject) {\n\n var feature = [];\n\n var comp = new (Vue.extend(require('../components/ChooseFeatureToEdit.vue')))({\n features: Array.isArray(features) ? features : [],\n feature: feature,\n attributes: inputs.layer.getEditingFields().map(function (_ref2) {\n var name = _ref2.name,\n label = _ref2.label;\n return { name: name, label: label };\n })\n });\n\n var dialog = g3wsdk.gui.GUI.showModalDialog({\n title: tPlugin('editing.modal.tools.copyfeaturefromprojectlayer.title'),\n className: 'modal-left',\n closeButton: false,\n message: comp.$mount().$el,\n buttons: {\n cancel: { label: 'Cancel', className: 'btn-danger', callback: function callback() {\n reject();\n }\n },\n ok: { label: 'Ok', className: 'btn-success', callback: function callback() {\n resolve(feature[0]);\n }\n }\n }\n });\n\n dialog.find('button.btn-success').prop('disabled', true);\n\n comp.$watch('feature', function (feature) {\n return dialog.find('button.btn-success').prop('disabled', null === feature);\n });\n });\n}\n\n},{\"../components/ChooseFeatureToEdit.vue\":3}],35:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cloneFeature = cloneFeature;\n/**\n * Clone a feature by Primary Key\n * \n * @param { Feature } feature to be cloned\n * @param { TableLayer } layer from which obtain the primary key field\n * \n * @returns { Feature }\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nfunction cloneFeature(feature, layer) {\n var clone = feature.cloneNew();\n //check if layer has a primary key as field\n var pk = layer && layer.getEditingFields().find(function (f) {\n return f.pk;\n }); // get PK field (of value-relation widget?)\n /**\n * In case of layer has a primary key field and is not editabe,\n * clone feature need to set pk value to null to avoid conflict\n * with already pk field value store on server*/\n if (pk && false === pk.editable) {\n clone.set(pk.name, null);\n }\n return clone;\n}\n\n},{}],36:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertToGeometry = convertToGeometry;\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar convertSingleMultiGeometry = g3wsdk.core.geoutils.convertSingleMultiGeometry;\nvar _g3wsdk$core$geoutils = g3wsdk.core.geoutils.Geometry,\n is3DGeometry = _g3wsdk$core$geoutils.is3DGeometry,\n removeZValueToOLFeatureGeometry = _g3wsdk$core$geoutils.removeZValueToOLFeatureGeometry,\n addZValueToOLFeatureGeometry = _g3wsdk$core$geoutils.addZValueToOLFeatureGeometry;\nvar isMultiGeometry = g3wsdk.core.geoutils.Geometry.isMultiGeometry;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param { Array } features to be converted (eg. Polygon)\n * @param { string } geometryType target geometry type (eg. MultiPolygon)\n *\n * @returns { Array } converted features\n */\n\nfunction convertToGeometry() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var geometryType = arguments[1];\n\n return (features || []).flatMap(function (f) {\n var type = f.getGeometry() && f.getGeometry().getType();\n\n // ensure 3D coords\n if (type && !is3DGeometry(geometryType)) {\n removeZValueToOLFeatureGeometry({ feature: f });\n } else if (type && is3DGeometry(geometryType)) {\n addZValueToOLFeatureGeometry({ feature: f, geometryType: geometryType });\n }\n\n // same geometry\n if (geometryType === type) {\n return f;\n }\n\n // convert single → multi\n if ((0, _isSameBaseGeometryType.isSameBaseGeometryType)(type, geometryType) && (isMultiGeometry(geometryType) || !isMultiGeometry(type))) {\n var cloned = f.clone();\n cloned.__layerId = f.__layerId;\n cloned.setGeometry(convertSingleMultiGeometry(f.getGeometry(), geometryType));\n return cloned;\n }\n\n // skip → invalid conversion (eg. Point → Polygon)\n return [];\n });\n}\n\n},{\"../utils/isSameBaseGeometryType\":56}],37:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createEditingDataOptions = createEditingDataOptions;\nvar GUI = g3wsdk.gui.GUI;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { 'all' | 'bbox' | 'field' | 'fid' | '1:1' } filterType\n * @param { Object } options\n * @param options.feature\n * @param options.relation\n * @param options.field\n * @param options.layerId\n * @param options.operator\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction createEditingDataOptions() {\n var filterType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var filter = void 0;\n\n switch (filterType) {\n\n case 'all':\n filter = undefined;\n break;\n\n case 'bbox':\n filter = { bbox: GUI.getService('map').getMapBBOX() };\n break;\n\n case 'field':\n filter = {\n field: { field: options.field, type: 'editing' }\n };\n break;\n\n case 'fid':\n if ('not' !== options.operator) {\n // get relations of current feature\n filter = {\n fid: {\n fid: options.feature.getId(),\n layer: { id: options.layerId },\n type: 'editing',\n relation: options.relation.state,\n formatter: 0 // 0 = retrieve stored value\n }\n };\n }\n break;\n\n // relation 1:1\n case '1:1':\n filter = {\n field: options.relation.getChildField()[0] + '|eq|' + options.feature.get(options.relation.getFatherField()[0]),\n type: 'editing'\n };\n break;\n\n }\n\n return {\n registerEvents: true, // usefult to get register vent on toolbox example mapmoveend\n editing: true,\n filter: filter\n };\n}\n\n},{}],38:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createFeature = createFeature;\nvar Feature = g3wsdk.core.layer.features.Feature;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Create a new feature\n *\n * @param layerId\n * @param options.geometry.type\n * @param options.geometry.coordinates\n *\n * @returns { Feature }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction createFeature(layerId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var feature = new Feature();\n\n if (options.geometry) {\n feature.setGeometry(new ol.geom[options.geometry.type](options.geometry.coordinates));\n }\n\n feature.setProperties(options.properties);\n feature.setTemporaryId();\n\n var toolbox = this.getToolBoxById(layerId);\n var editingLayer = toolbox.getLayer().getEditingLayer();\n var session = toolbox.getSession();\n\n editingLayer.getSource().addFeature(feature);\n session.pushAdd(layerId, feature, false);\n\n return feature;\n}\n\n},{}],39:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dissolve = dissolve;\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/dissolve.js@v3.10.2\n * \n * @param { Object } opts \n * @param { Array } opts.features\n * @param { number } opts.index\n * @param { boolean } opts.clone\n * \n * @returns dissolved feature\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\nfunction dissolve() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$features = _ref.features,\n features = _ref$features === undefined ? [] : _ref$features,\n _ref$index = _ref.index,\n index = _ref$index === undefined ? 0 : _ref$index,\n _ref$clone = _ref.clone,\n clone = _ref$clone === undefined ? false : _ref$clone;\n\n var parser = new jsts.io.OL3Parser();\n var featuresLength = features.length;\n\n /** In case no features to dissolve */\n if (0 === featuresLength) {\n return null;\n }\n\n /** In the case of single feature, return feature */\n if (1 === featuresLength) {\n return features[0];\n }\n\n var jstsdissolvedFeatureGeometry = void 0;\n\n var baseFeature = clone ? features[index].clone() : features[index];\n var baseFeatureGeometry = baseFeature.getGeometry();\n var baseFeatureGeometryType = baseFeatureGeometry.getType();\n\n // check if it can build a LineString\n if ('LineString' === baseFeatureGeometryType) {\n var lineMerger = new jsts.operation.linemerge.LineMerger();\n for (var i = 0; i < featuresLength; i++) {\n lineMerger.addLineString(new jsts.geom.GeometryFactory().createLineString(parser.read(features[i].getGeometry()).getCoordinates()));\n }\n var mergedLineString = lineMerger.getMergedLineStrings();\n jstsdissolvedFeatureGeometry = 1 === mergedLineString.size() ? mergedLineString.toArray()[0] : null;\n }\n\n if ('LineString' !== baseFeatureGeometryType) {\n jstsdissolvedFeatureGeometry = parser.read(baseFeatureGeometry);\n for (var _i = 0; _i < featuresLength; _i++) {\n if (index !== _i) {\n jstsdissolvedFeatureGeometry = jstsdissolvedFeatureGeometry.union(parser.read(features[_i].getGeometry()));\n }\n }\n }\n\n /** In case of no dissolved geometry */\n if (!jstsdissolvedFeatureGeometry) {\n return null;\n }\n\n var dissolvedFeatureGeometry = parser.write(jstsdissolvedFeatureGeometry);\n var dissolvedFeatureGeometryType = dissolvedFeatureGeometry.getType();\n var dissolvedFeatureGeometryCoordinates = dissolvedFeatureGeometryType === baseFeatureGeometryType ? dissolvedFeatureGeometry.getCoordinates() : -1 !== baseFeatureGeometryType.indexOf('Multi') && dissolvedFeatureGeometryType === baseFeatureGeometryType.replace('Multi', '') ? [dissolvedFeatureGeometry.getCoordinates()] : null;\n\n /** In case of null feature dissolved coordinates */\n if (null === dissolvedFeatureGeometryCoordinates) {\n return null;\n }\n\n baseFeature.getGeometry().setCoordinates(dissolvedFeatureGeometryCoordinates);\n\n return baseFeature;\n}\n\n},{}],40:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.evaluateExpressionFields = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param expression.inputs.layer\n * @param expression.context.excludeFields\n * @param expression.context.get_default_value\n * @param expression.feature\n *\n * @returns {Promise}\n *\n * @since g3w-client-plugin-editing@v3.5.14\n */\nvar evaluateExpressionFields = exports.evaluateExpressionFields = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n inputs = _ref2.inputs,\n context = _ref2.context,\n feature = _ref2.feature;\n\n var promises = []; // promises from expression evaluation\n\n inputs.layer.getFieldsWithValues(feature, {\n exclude: context.excludeFields,\n get_default_value: undefined !== context.get_default_value ? context.get_default_value : false\n }).forEach(function (field) {\n\n // default expression\n if (field.input.options.default_expression && (field.input.options.default_expression.apply_on_update || feature.isNew())) {\n promises.push(new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n try {\n yield g3wsdk.core.input.inputService.handleDefaultExpressionFormInput({\n field: field,\n feature: feature,\n qgs_layer_id: inputs.layer.getId(),\n parentData: (0, _getParentFormData.getParentFormData)()\n });\n feature.set(field.name, field.value);\n resolve(feature);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n }()));\n }\n\n // filter expression\n if (field.input.options.filter_expression) {\n promises.push(new Promise(function () {\n var _ref4 = _asyncToGenerator(function* (resolve, reject) {\n try {\n yield g3wsdk.core.input.inputService.handleFilterExpressionFormInput({\n field: field,\n feature: feature,\n qgs_layer_id: inputs.layer.getId(),\n parentData: (0, _getParentFormData.getParentFormData)()\n });\n feature.set(field.name, field.value);\n resolve(feature);\n } catch (e) {\n console.warn(e);\n reject(e);\n }\n });\n\n return function (_x4, _x5) {\n return _ref4.apply(this, arguments);\n };\n }()));\n }\n });\n\n yield Promise.allSettled(promises);\n\n return feature;\n });\n\n return function evaluateExpressionFields() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _getParentFormData = require('./getParentFormData');\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},{\"./getParentFormData\":47}],41:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDeltaXY = getDeltaXY;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/moveelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/movelementsstep.js@v3.7.1\n *\n * @param { Object } delta\n * @param delta.x\n * @param delta.y\n * @param delta.coordinates\n * \n * @returns {{ x: number, y: number }}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getDeltaXY() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n x = _ref.x,\n y = _ref.y,\n coordinates = _ref.coordinates;\n\n var coords = _getCoordinates(coordinates);\n return {\n x: x - coords.x,\n y: y - coords.y\n };\n}\n\nfunction _getCoordinates(coords) {\n return Array.isArray(coords[0]) ? _getCoordinates(coords[0]) : {\n x: coords[0],\n y: coords[1]\n };\n}\n\n},{}],42:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEditingLayerById = getEditingLayerById;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getEditingLayerById(layerId) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId);\n}\n\n},{}],43:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFeatureTableFieldValue = getFeatureTableFieldValue;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Finalize \"formatter\" value for any kind of field\n *\n * @param { string } opts.layerId\n * @param {ol.Feature} opts.feature\n * @param { string } opts.property\n *\n * @returns (field.key) or (field.value)\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nfunction getFeatureTableFieldValue() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n feature = _ref.feature,\n property = _ref.property;\n\n // get editable fields\n var fields = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId).config.editing.fields;\n\n // get field value (raw)\n\n var value = feature.get(property);\n\n // get key-value fields implicated into: https://github.com/g3w-suite/g3w-client-plugin-editing/pull/64\n var values = null !== value && (fields.filter(function (f) {\n return ['select_autocomplete', 'select'].includes(f.input.type);\n }) || []).reduce(function (kv, field) {\n kv[field.name] = field.input.options.values;return kv;\n }, {});\n\n // get the last key-value feature add to\n var kv_field = values && values[property] && values[property].find(function (kv) {\n return value == kv.value;\n });\n\n // return key for key-values fields (raw field value otherwise)\n return kv_field ? kv_field.key : value;\n}\n\n},{}],44:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFormFields = getFormFields;\n/** Sort an array of strings (alphabetical order) */\nvar sortAlphabeticallyArray = function sortAlphabeticallyArray(arr) {\n return arr.sort(function (a, b) {\n return a.localeCompare(b, undefined, { sensitivity: 'base' });\n });\n};\n\n/* Sort an array of numbers (natural order) */\nvar sortNumericArray = function sortNumericArray(arr) {\n var ascending = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return arr.sort(function (a, b) {\n return ascending ? a - b : b - a;\n });\n};\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Get form fields\n *\n * @param form.inputs.layer\n * @param form.inputs.features\n * @param form.context.excludeFields\n * @param form.context.get_default_value\n * @param form.isChild - whether is child form (ie. belongs to relation)\n * @param form.multi - in case of multi editing set all fields to null\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getFormFields() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n inputs = _ref.inputs,\n context = _ref.context,\n feature = _ref.feature,\n multi = _ref.multi;\n\n //editing service\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n // current form layerId// unique values by feature field\n var layerId = inputs.layer.getId();\n\n var fields = inputs.layer.getFieldsWithValues( // editing fields with values (in case of update)\n feature, {\n exclude: context.excludeFields, // add exclude fields\n get_default_value: undefined === context.get_default_value ? false : context.get_default_value\n });\n\n //Loop through fields\n var unique_values = fields\n //check if field is a unique field. Exclude pk not edittable\n .filter(function (f) {\n return !(f.pk && false === f.editable) && ('unique' === f.input.type || f.validate.unique);\n }).map(function (field) {\n return {\n field: field, // feature field\n _value: feature.get(field.name) // feature current field value\n };\n });\n\n //Loop through unique fields\n unique_values.forEach(function (_ref2) {\n var _value = _ref2._value,\n field = _ref2.field;\n\n //get current stored unique values for field\n var current_values = service.state.uniqueFieldsValues[layerId][field.name] || new Set([]);\n //filter null value otherwise sort function gets an error\n var values = Array.from(current_values).filter(function (v) {\n return null !== v;\n });\n //NEED TO ADD ALWAYS CURRENT VALUE\n field.input.options.values = (['integer', 'float', 'bigint'].includes(field.type) ? sortNumericArray : sortAlphabeticallyArray)(values);\n if (current_values.has(null)) {\n field.input.options.values.unshift(null);\n }\n\n // convert \"current\" values to string (when not null or undefined)\n current_values.forEach(function (v) {\n return field.validate.exclude_values.add(![null, undefined].includes(v) ? '' + v : v);\n });\n\n // remove current value from exclude_values\n field.validate.exclude_values.delete('' + _value);\n });\n\n // skip when no fields are unique in multi features change form attribute\n if (0 === unique_values.length) {\n return _handleMulti(fields, multi);\n }\n\n // Listen to event method after close/save form\n var savedfeatureFnc = function savedfeatureFnc() {\n unique_values.forEach(function (_ref3) {\n var _value = _ref3._value,\n field = _ref3.field;\n\n // initial value is the same that current field vale (no changed)\n if (_value === field.value) {\n return;\n }\n // layer form\n if (service.state.uniqueFieldsValues[layerId][field.name]) {\n // change layer unique field values\n var values = service.state.uniqueFieldsValues[layerId][field.name];\n //If changed, delete it from _value\n values.delete(_value);\n //aff new one to value list unique field\n values.add(field.value);\n }\n });\n\n return { once: true };\n };\n\n //event when insert/edit form button is pressed\n service.subscribe('savedfeature_' + layerId, savedfeatureFnc);\n //event when close form layer\n service.subscribe('closeform_' + layerId, function () {\n //unsubscribe event\n service.unsubscribe('savedfeature_' + layerId, savedfeatureFnc);\n return { once: true };\n });\n\n return _handleMulti(fields, multi);\n}\n\nfunction _handleMulti(fields, multi) {\n if (multi) {\n fields = fields.map(function (field) {\n var f = JSON.parse(JSON.stringify(field));\n f.value = null;\n f._value = null; // @since v3.9.0 Fix update form field: Set the same value of value\n f.forceNull = true;\n f.validate.required = false; //set false because all features have already required field filled\n return f;\n }).filter(function (f) {\n return !f.pk;\n });\n }\n\n return fields;\n}\n\n},{}],45:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLayersDependencyFeatures = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { string } layerId\n * @param opts\n *\n * @returns { Promise[]> }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar getLayersDependencyFeatures = exports.getLayersDependencyFeatures = function () {\n var _ref = _asyncToGenerator(function* (layerId) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n\n var layer = service.getLayerById(layerId);\n var relations = opts.relations || layer.getChildren().length && layer.getRelations() && (0, _getRelationsInEditing.getRelationsInEditing)({ layerId: layerId, relations: layer.getRelations().getArray().filter(function (r) {\n return r.getFather() === layerId;\n }) }) || [];\n\n var response = void 0;\n\n try {\n response = yield Promise.all(relations.map(function () {\n var _ref2 = _asyncToGenerator(function* (relation) {\n\n if (relation.setLoading) {\n relation.setLoading(true);\n } else {\n relation.loading = true;\n }\n\n var id = (0, _getRelationId.getRelationId)({ layerId: layerId, relation: relation });\n\n opts.relation = relation;\n opts.layerId = layerId;\n opts.filterType = 'ONE' === (relation.getType ? relation.getType() : relation.type) ? '1:1' : opts.filterType; // In a case of relation 1:1\n var filterType = opts.filterType || 'fid';\n var options = (0, _createEditingDataOptions.createEditingDataOptions)(filterType, opts);\n var session = service.state.sessions[id];\n var online = ApplicationState.online && session;\n var toolbox = service.getToolBoxById(id);\n\n // getLayersDependencyFeaturesFromSource\n\n opts.operator = undefined !== opts.operator ? opts.operator : 'eq';\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: id, relation: relation }),\n ownField = _getRelationFieldsFro.ownField,\n relationField = _getRelationFieldsFro.relationField;\n\n var features = service.getLayerById(layerId).readEditingFeatures();\n var featureValues = relationField.map(function (field) {\n return opts.feature.get(field);\n });\n\n // try to get feature from source without a server request\n var find = (!ApplicationState.online || !session || session.isStarted()) && 'eq' === opts.operator && ownField.every(function (field, i) {\n return features.find(function (f) {\n return featureValues[i] == f.get(field);\n });\n });\n\n toolbox.startLoading();\n\n try {\n if (online && !session.isStarted()) {\n yield (0, _promisify.promisify)(session.start(options)); // start session and get features\n } else if (online && !find) {\n yield (0, _promisify.promisify)(session.getFeatures(options)); // request features from server\n }\n } catch (promise) {\n try {\n yield (0, _promisify.promisify)(promise);\n } catch (e) {\n console.warn(e, promise);\n }\n }\n\n toolbox.stopLoading();\n\n return id;\n });\n\n return function (_x3) {\n return _ref2.apply(this, arguments);\n };\n }()));\n } catch (e) {\n console.warn(e);\n }\n\n // at the end se loading false\n relations.forEach(function (relation) {\n if (relation.setLoading) {\n relation.setLoading(false);\n } else {\n relation.loading = false;\n }\n });\n\n return response;\n });\n\n return function getLayersDependencyFeatures(_x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _promisify = require('../utils/promisify');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _getRelationId = require('../utils/getRelationId');\n\nvar _getRelationsInEditing = require('../utils/getRelationsInEditing');\n\nvar _createEditingDataOptions = require('../utils/createEditingDataOptions');\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 ApplicationState = g3wsdk.core.ApplicationState;\n\n},{\"../utils/createEditingDataOptions\":37,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/getRelationId\":50,\"../utils/getRelationsInEditing\":51,\"../utils/promisify\":58}],46:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getNotEditableFieldsNoPkValues = getNotEditableFieldsNoPkValues;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param layer,\n * @param feature\n *\n * @returns Array of fields\n */\nfunction getNotEditableFieldsNoPkValues(_ref) {\n var layer = _ref.layer,\n feature = _ref.feature;\n\n return layer.getEditingNotEditableFields().reduce(function (fields, field) {\n fields[field] = layer.isPkField(field) ? null : feature.get(field); // NB: Primary Key fields need to be `null`\n return fields;\n }, {});\n}\n\n},{}],47:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getParentFormData = getParentFormData;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @returns { undefined | { feature: * , qgs_layer_id: * } }\n */\nfunction getParentFormData() {\n // skip when ..\n if (!(_workflow.Workflow.Stack.getLength() > 1)) {\n return;\n }\n\n var _Workflow$Stack$getPa = _workflow.Workflow.Stack.getParent().getInputs(),\n features = _Workflow$Stack$getPa.features,\n layer = _Workflow$Stack$getPa.layer,\n _Workflow$Stack$getPa2 = _Workflow$Stack$getPa.fields,\n fields = _Workflow$Stack$getPa2 === undefined ? [] : _Workflow$Stack$getPa2;\n\n // in the case of temporary fields (setted by form) set temporary value to feature (cloned) parent\n\n\n var feature = features[features.length - 1].clone();\n\n fields.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n feature.set(name, value);\n });\n\n return {\n feature: feature,\n qgs_layer_id: layer.getId()\n };\n}\n\n},{\"../g3wsdk/workflow/workflow\":15}],48:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelation1_1ChildFeature = undefined;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * @param { Object } opts\n * @param opts.relation\n * @param opts.fatherFormRelationField\n * \n * @returns {Promise<{feature: *, locked: boolean}>}\n * \n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar getRelation1_1ChildFeature = exports.getRelation1_1ChildFeature = function () {\n var _ref2 = _asyncToGenerator(function* (_ref) {\n var relation = _ref.relation,\n fatherFormRelationField = _ref.fatherFormRelationField;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n var fatherLayerId = relation.getFather();\n var childLayerId = relation.getChild(); // get relation child layer id\n var childField = relation.getChildField()[0];\n\n // lock feature false\n var locked = false;\n var feature = service.getLayerById(childLayerId).getEditingSource().readFeatures().find(function (f) {\n return fatherFormRelationField.value === f.get(childField);\n });\n\n //get feature from server and lock\n if (undefined === feature) {\n\n var childFeatureStore = service.getLayerById(childLayerId).getFeaturesStore();\n\n var unByKey = childFeatureStore.oncebefore('featuresLockedByOtherUser', function (features) {\n return feature = features[0];\n });\n\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(fatherLayerId, {\n feature: new ol.Feature(_defineProperty({}, fatherFormRelationField.name, fatherFormRelationField.value)),\n relations: [relation]\n });\n\n //remove listener\n childFeatureStore.un('featuresLockedByOtherUser', unByKey);\n\n //in case of no locked check feature on a source\n if (undefined === feature) {\n\n feature = service.getLayerById(childLayerId).getEditingSource().readFeatures().find(function (f) {\n return fatherFormRelationField.value === f.get(childField);\n });\n }\n }\n\n //not find on source need to check if exist\n if (undefined === feature) {\n\n try {\n var layer = CatalogLayersStoresRegistry.getLayerById(childLayerId);\n\n var _ref4 = yield DataRouterService.getData('search:features', { // get feature of relation layer based on value of relation field\n inputs: {\n layer: layer,\n formatter: 0,\n filter: g3wsdk.core.utils.createFilterFormInputs({\n layer: layer,\n search_endpoint: 'api',\n inputs: [{ attribute: childField, value: fatherFormRelationField.value }]\n }),\n search_endpoint: 'api'\n },\n outputs: false\n }),\n data = _ref4.data;\n\n if (data && data[0] && 1 === data[0].features.length) {\n // NB: length == 1, due to 1:1 relation type\n //locked\n locked = true;\n feature = data[0].features[0];\n }\n } catch (e) {\n console.warn(e);\n }\n }\n\n //return\n return {\n feature: feature, //feature search\n locked: locked //locked status\n };\n });\n\n return function getRelation1_1ChildFeature(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\nvar DataRouterService = g3wsdk.core.data.DataRouterService;\n\n},{\"../utils/getLayersDependencyFeatures\":45}],49:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationFieldsFromRelation = getRelationFieldsFromRelation;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Based on layerId and relation, extract field of relation.\n * ownField are array of fields related to relation and belong to layerId\n * relationField area array of fields related to relation thar belong to other layer in relation with layerId\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relation\n *\n * @returns {{ ownField: [], relationField: [] }} `ownField` and `relationField` are Arrays since g3w-client-plugin-editing@v3.7.0\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationFieldsFromRelation() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n relation = _ref.relation;\n\n /** @type { string } */\n var childId = relation.getChild ? relation.getChild() : relation.child;\n /** @type { Boolean } whether is a child */\n var isChild = childId !== layerId;\n /** @type { Array } of fields */\n var _fatherField = relation.getFatherField ? relation.getFatherField() : relation.fatherField;\n /** @type { Array } of fields */\n var _childField = relation.getChildField ? relation.getChildField() : relation.childField;\n\n return {\n ownField: isChild ? _fatherField : _childField,\n relationField: isChild ? _childField : _fatherField\n };\n}\n\n},{}],50:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationId = getRelationId;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relation\n *\n * @returns the layer id of the other layer that is in relation with layerId\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationId() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n relation = _ref.relation;\n\n var fatherId = relation.getFather ? relation.getFather() : relation.father;\n var childId = relation.getChild ? relation.getChild() : relation.child;\n\n return layerId === fatherId ? childId : fatherId;\n}\n\n},{}],51:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationsInEditing = getRelationsInEditing;\n\nvar _getRelationId = require('../utils/getRelationId');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relations\n *\n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationsInEditing(_ref) {\n var layerId = _ref.layerId,\n _ref$relations = _ref.relations,\n relations = _ref$relations === undefined ? [] : _ref$relations;\n\n return relations.filter(function (r) {\n return g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getToolBoxById((0, _getRelationId.getRelationId)({ layerId: layerId, relation: r }));\n });\n}\n\n},{\"../utils/getRelationId\":50}],52:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRelationsInEditingByFeature = getRelationsInEditingByFeature;\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * \n * Get Relation in editing\n *\n * @param { Object } opts\n * @param opts.layerId\n * @param opts.relations\n * @param opts.feature\n *\n * @returns { Array }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction getRelationsInEditingByFeature() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref.layerId,\n _ref$relations = _ref.relations,\n relations = _ref$relations === undefined ? [] : _ref$relations,\n feature = _ref.feature;\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n var relationsinediting = [];\n var relationinediting = void 0;\n relations.forEach(function (relation) {\n var child = relation.getChild ? relation.getChild() : relation.child;\n var father = relation.getFatherField ? relation.getFatherField() : relation.fatherField;\n var relationLayerId = child === layerId ? father : child; // get relation LayerId\n //check if the layer is editable\n if (service.getLayerById(relationLayerId)) {\n var layer = service.getToolBoxById(relationLayerId).getLayer();\n var fatherLayer = service.getLayerById(relation.getFather ? relation.getFather() : relation.father);\n\n var _getRelationFieldsFro = (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ layerId: relationLayerId, relation: relation }),\n ownField = _getRelationFieldsFro.ownField,\n relationField = _getRelationFieldsFro.relationField;\n // get features of relation child layers\n // Loop relation fields\n // In case of new feature, need to check if field is pk field\n\n\n var values = relationField.map(function (field) {\n return feature.isNew() && fatherLayer.isPkField(field) ? feature.getId() : feature.get(field);\n });\n\n relationinediting = {\n relation: relation.getState(),\n // get relation attributes by feature\n relations: service.getLayerById(relationLayerId).readEditingFeatures().filter(function (feature) {\n return ownField.every(function (field, i) {\n return feature.get(field) == values[i];\n });\n }) // get relations by feature\n .map(function (relation) {\n return {\n fields: layer.getFieldsWithValues(relation, { relation: true }),\n id: relation.getId(),\n select: false /** @since v3.9.0 Used to set relation select or not **/\n };\n })\n };\n relationinediting.validate = { valid: true };\n relationsinediting.push(relationinediting);\n }\n });\n return relationsinediting;\n}\n\n},{\"../utils/getRelationFieldsFromRelation\":49}],53:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Handle layer relation 1:1 features related to feature\n *\n * @param opts.layerId Root layerId\n * @param opts.features Array of update/new features belong to Root layer\n * @param opts.fields Array of form fields father\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar handleRelation1_1LayerFields = exports.handleRelation1_1LayerFields = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId,\n _ref2$features = _ref2.features,\n features = _ref2$features === undefined ? [] : _ref2$features,\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === undefined ? [] : _ref2$fields,\n task = _ref2.task;\n\n // skip when no features\n if (features.length === 0) {\n return;\n }\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing');\n\n // Get layer relation 1:1\n var promises = CatalogLayersStoresRegistry.getLayerById(layerId).getRelations().getArray().filter(function (relation) {\n return 'ONE' === relation.getType();\n }).map(function (relation) {\n return new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve) {\n // skip when layer is not a father layer (1:1 relation)\n if (layerId !== relation.getFather()) {\n resolve();\n return;\n }\n var fatherField = relation.getFatherField()[0];\n var value = features[0].get(fatherField);\n\n //no set father field value. No set\n if (null === value) {\n resolve();\n return;\n }\n\n // check if child relation layer is editable (in editing)\n var childLayerId = relation.getChild();\n var childField = relation.getChildField()[0];\n var source = service.getLayerById(childLayerId).getEditingSource();\n var childFeature = void 0; // original child feature\n var newChild = void 0; //eventually child feature cloned with changes\n\n //check if child feature is already added to\n childFeature = source.readFeatures().find(function (f) {\n return f.get(childField) === value;\n });\n\n var fieldsUpdated = undefined !== service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }).find(function (_ref4) {\n var name = _ref4.name;\n return fields.find(function (f) {\n return name == f.name;\n }).update;\n });\n\n var isNewChildFeature = undefined === childFeature;\n\n //check if fields related to child are changed\n if (fieldsUpdated) {\n //Check if we need to create a new child feature\n if (isNewChildFeature) {\n //create feature for child layer\n childFeature = new g3wsdk.core.layer.features.Feature();\n childFeature.setTemporaryId();\n // set name attribute to `null`\n CatalogLayersStoresRegistry.getLayerById(childLayerId).getEditingFields().forEach(function (field) {\n return childFeature.set(field.name, null);\n });\n //set father field value\n childFeature.set(childField, fields.find(function (f) {\n return fatherField === f.name;\n }).value);\n //add feature to a child source\n source.addFeature(childFeature);\n //new feature and child feature are the same\n newChild = childFeature;\n } else {\n //is update\n if (childFeature) {\n //clone child Feature so all changes apply by father is set to clone new feature\n newChild = childFeature.clone();\n }\n }\n\n //check if there is a childFeature to save\n if (childFeature) {\n // Loop editable only field of father layerId when\n // a child relation (1:1) is bind to the current feature\n var editiableRelatedFieldChild = service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId() && f.editable;\n });\n\n editiableRelatedFieldChild.forEach(function (field) {\n return newChild.set(field.name.replace(relation.getPrefix(), ''), features[0].get(field.name));\n });\n\n // add relation new relation\n if (isNewChildFeature) {\n\n // check if father field is a Pk (Primary key) if feature is new\n if (service.getLayerById(layerId).isPkField(fatherField)) {\n childFeature.set(childField, features[0].getId()); // set temporary\n }\n\n //if new need to add to session\n task.getContext().session.pushAdd(childLayerId, newChild, false);\n } else {\n //need to update source child feature\n source.updateFeature(newChild);\n //need to update\n task.getContext().session.pushUpdate(childLayerId, newChild, childFeature);\n }\n }\n }\n\n resolve();\n });\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n });\n\n yield Promise.allSettled(promises);\n });\n\n return function handleRelation1_1LayerFields() {\n return _ref.apply(this, arguments);\n };\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{}],54:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleSplitFeature = undefined;\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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/splitfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/splitfeaturestep.js@v3.7.1\n *\n * @param feature\n * @param inputs\n * @param context\n * @param splittedGeometries\n * \n * @returns {Promise<*[]>}\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar handleSplitFeature = exports.handleSplitFeature = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n feature = _ref2.feature,\n inputs = _ref2.inputs,\n context = _ref2.context,\n _ref2$splittedGeometr = _ref2.splittedGeometries,\n splittedGeometries = _ref2$splittedGeometr === undefined ? [] : _ref2$splittedGeometr;\n\n var newFeatures = [];\n var layer = inputs.layer;\n\n var session = context.session;\n var source = layer.getEditingLayer().getSource();\n var layerId = layer.getId();\n var oriFeature = feature.clone();\n inputs.features = splittedGeometries.length ? [] : inputs.features;\n var splittedGeometriesLength = splittedGeometries.length;\n\n for (var index = 0; index < splittedGeometriesLength; index++) {\n var splittedGeometry = splittedGeometries[index];\n if (0 === index) {\n /**\n * check geometry evaluated expression\n */\n feature.setGeometry(splittedGeometry);\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n session.pushUpdate(layerId, feature, oriFeature);\n } else {\n yield* function* () {\n var newFeature = (0, _cloneFeature.cloneFeature)(oriFeature, layer);\n newFeature.setGeometry(splittedGeometry);\n\n // set media fields to null\n layer.getEditingMediaFields({}).forEach(function (f) {\n return newFeature.set(f, null);\n });\n\n feature = new Feature({ feature: newFeature });\n\n feature.setTemporaryId();\n\n // evaluate geometry expression\n try {\n yield (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature });\n } catch (e) {\n console.warn(e);\n }\n\n /**\n * @todo improve client core to handle this situation on sesssion.pushAdd not copy pk field not editable only\n */\n var noteditablefieldsvalues = (0, _getNotEditableFieldsNoPkValues.getNotEditableFieldsNoPkValues)({ layer: layer, feature: feature });\n\n if (Object.entries(noteditablefieldsvalues).length) {\n var _newFeature = session.pushAdd(layerId, feature);\n Object.entries(noteditablefieldsvalues).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n field = _ref4[0],\n value = _ref4[1];\n\n return _newFeature.set(field, value);\n });\n newFeatures.push(_newFeature);\n //need to add features with no editable fields on layers source\n source.addFeature(_newFeature);\n } else {\n newFeatures.push(session.pushAdd(layerId, feature));\n //add feature to source\n source.addFeature(feature);\n }\n }();\n }\n inputs.features.push(feature);\n }\n\n return newFeatures;\n });\n\n return function handleSplitFeature() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _cloneFeature = require('../utils/cloneFeature');\n\nvar _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getNotEditableFieldsNoPkValues = require('../utils/getNotEditableFieldsNoPkValues');\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 Feature = g3wsdk.core.layer.features.Feature;\n\n},{\"../utils/cloneFeature\":35,\"../utils/evaluateExpressionFields\":40,\"../utils/getNotEditableFieldsNoPkValues\":46}],55:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isPointOnVertex = isPointOnVertex;\n/**\n * @param feature\n * @param coordinates\n *\n * @returns { boolean }\n */\nfunction isPointOnVertex(_ref) {\n var feature = _ref.feature,\n coordinates = _ref.coordinates;\n\n var geometry = feature.getGeometry();\n var type = geometry.getType();\n var coords = function coords(c) {\n return g3wsdk.core.geoutils.areCoordinatesEqual(coordinates, c);\n }; // whether element have same coordinates\n\n switch (type) {\n case 'Polygon':\n case 'MultiLineString':\n return _.flatMap(geometry.getCoordinates()).some(coords);\n\n case 'LineString':\n case 'MultiPoint':\n return geometry.getCoordinates().some(coords);\n\n case 'MultiPolygon':\n return geometry.getPolygons().some(function (poly) {\n return _.flatMap(poly.getCoordinates()).some(coords);\n });\n\n case 'Point':\n return g3wsdk.core.geoutils.areCoordinatesEqual(coordinates, geometry.getCoordinates());\n\n default:\n return false;\n }\n}\n\n},{}],56:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isSameBaseGeometryType = isSameBaseGeometryType;\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/isSameBaseGeometryType.js@v3.10.2\n * \n * @param { string } geometryType1\n * @param { string } geometryType2\n * \n * @returns { boolean } whether two geometry typeshave same geometry type or have in common tha same base geometry type:\n * \n * @example Compare \n * ```\n * Point <--> Point => true\n * MultiPoint <--> Point => true\n * Point <--> Polygon => false\n * ```\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\nfunction isSameBaseGeometryType(a, b) {\n return a.replace('Multi', '') === b.replace('Multi', '');\n}\n\n},{}],57:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.listenRelation1_1FieldChange = undefined;\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 * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Listen changes on 1:1 relation fields (get child values from child layer)\n *\n * @param opts.layerId Current editing layer id\n * @param opts.fields Array of form fields of current editing layer\n *\n * @returns Array of watch function event to remove listen\n *\n * @since g3w-client-plugin-editing@v3.7.0\n */\nvar listenRelation1_1FieldChange = exports.listenRelation1_1FieldChange = function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId,\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === undefined ? [] : _ref2$fields;\n\n var unwatches = []; // unwatches field value (event change)\n\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n\n var ONE = CatalogLayersStoresRegistry.getLayerById(layerId).getRelations().getArray().filter(function (r) {\n return 'ONE' === r.getType();\n });\n\n // get all relations 1:1 of current layer\n\n var _loop = function* _loop(relation) {\n\n var childLayerId = relation.getChild(); // get relation child layer id\n var fatherField = relation.getFatherField();\n var relationLockFeatures = {}; //store value\n\n // NB:\n // need to check if editable when opening form task\n // Not set this condition because maybe i ca be used this method\n // on a move task or other when current fatherFormRelationField, related to 1:1 relation\n // it can be changed by default expression or in another way not only with form\n var fatherFormRelationField = fields.find(function (f) {\n return fatherField.includes(f.name);\n }); // get father layer field (for each relation)\n // skip when not relation field and not layer child is in editing\n if (!(fatherFormRelationField && service.getLayerById(childLayerId))) {\n return {\n v: void 0\n };\n }\n\n //store original editable property of fields relation to child layer relation\n var editableRelatedFatherChild = service.getLayerById(relation.getFather()).getEditingFields().filter(function (f) {\n return f.vectorjoin_id && f.vectorjoin_id === relation.getId();\n }).reduce(function (accumulator, field) {\n var formField = fields.find(function (f) {\n return f.name === field.name;\n });\n accumulator[formField.name] = formField.editable;\n return accumulator;\n }, {});\n\n fatherFormRelationField.input.options.loading.state = 'loading'; // show input bar loader\n\n //get feature from a child layer source\n relationLockFeatures[fatherFormRelationField.value] = yield (0, _getRelation1_1ChildFeature.getRelation1_1ChildFeature)({\n relation: relation,\n fatherFormRelationField: fatherFormRelationField\n });\n\n fatherFormRelationField.input.options.loading.state = null; // show input bar loader\n\n //if locked need to set editable to false\n //can update child\n if (relationLockFeatures[fatherFormRelationField.value].locked) {\n Object.keys(editableRelatedFatherChild).forEach(function (fn) {\n return fields.find(function (f) {\n return fn === f.name;\n }).editable = false;\n });\n }\n\n //if not feature is on source child layer, it means it locked or not exist on a server need to check\n\n // listen for relation field changes (vue watcher)\n unwatches.push(_eventbus.VM.$watch(function () {\n return fatherFormRelationField.value;\n }, function () {\n var _ref3 = _asyncToGenerator(function* (value) {\n\n // skip empty values\n if (!value) {\n fatherFormRelationField.input.options.loading.state = null;\n fatherFormRelationField.editable = true;\n return;\n }\n\n fatherFormRelationField.editable = false; // disable edit\n fatherFormRelationField.input.options.loading.state = 'loading'; // show input bar loader\n\n if (undefined === relationLockFeatures[fatherFormRelationField.value]) {\n //get feature from a child layer source\n try {\n\n relationLockFeatures[fatherFormRelationField.value] = yield (0, _getRelation1_1ChildFeature.getRelation1_1ChildFeature)({\n relation: relation,\n fatherFormRelationField: fatherFormRelationField\n });\n } catch (e) {\n console.warn(e);\n }\n }\n\n var _relationLockFeatures = relationLockFeatures[fatherFormRelationField.value],\n feature = _relationLockFeatures.feature,\n locked = _relationLockFeatures.locked;\n\n\n Object.keys(editableRelatedFatherChild).forEach(function (fn) {\n var field = fields.find(function (f) {\n return fn === f.name;\n });\n //set editable property\n field.editable = locked ? false : editableRelatedFatherChild[fn];\n //need to check if feature is new and not locked ot not present on a source\n field.value = feature ? feature.get(field.name.replace(relation.getPrefix(), '')) : null;\n });\n\n // reset edit state\n fatherFormRelationField.input.options.loading.state = null;\n fatherFormRelationField.editable = true;\n });\n\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }()));\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = ONE[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var relation = _step.value;\n\n var _ret = yield* _loop(relation);\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\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 unwatches;\n });\n\n return function listenRelation1_1FieldChange() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _eventbus = require('../eventbus');\n\nvar _getRelation1_1ChildFeature = require('./getRelation1_1ChildFeature');\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{\"../eventbus\":11,\"./getRelation1_1ChildFeature\":48}],58:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.promisify = promisify;\nexports.$promisify = $promisify;\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 * Migrate your consumer code away from jQuery promises.\n * Covert a jQuery promise into an ES6 Promise\n *\n * @param promise jquery promise\n */\nfunction promisify(promise) {\n if (promise instanceof Promise) {\n return promise;\n }\n if (!promise || !promise.then) {\n console.trace(promise);\n return Promise.reject('not a promise');\n }\n return new Promise(function (resolve, reject) {\n promise.then(resolve).fail(reject);\n });\n}\n\n/**\n * Migrate your consumer code away from jQuery promises.\n * Convert ES6 Promise into jQuery\n *\n * @param promise async function or ES6 promise\n */\nfunction $promisify(promise) {\n if (undefined === promise) {\n console.trace();\n return $.Deferred(function (d) {\n return d.reject('not a promise');\n }).promise();\n }\n if (promise.always) {\n return promise;\n }\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n d.resolve((yield promise instanceof Promise ? promise : promise()));\n } catch (e) {\n console.warn(e);d.reject(e);\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n}\n\n},{}],59:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setAndUnsetSelectedFeaturesStyle = setAndUnsetSelectedFeaturesStyle;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _promisify = require('../utils/promisify');\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\nvar Layer = g3wsdk.core.layer.Layer;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Method that set selected style to current editing features and\n * reset original style when workflow (tool) is done.\n * \n * @param promise jQuery promise\n * @param { Object } inputs\n * @param { ol.style.Style } style\n */\n\nfunction setAndUnsetSelectedFeaturesStyle() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n promise = _ref.promise,\n inputs = _ref.inputs,\n style = _ref.style;\n\n /** @FIXME temporary add in order to fix issue on pending promise (but which issue ?) */\n var layer = inputs.layer,\n _inputs$features = inputs.features,\n features = _inputs$features === undefined ? [] : _inputs$features;\n\n /**\n * @TODO if coming from relation ( Workflow.Stack.getLength() > 1 )\n * no need setTimeout because we already it has selected style\n * so original is the same selected. In case of current layer\n * need to wait.\n */\n\n var selectOriginalStyleHandle = function selectOriginalStyleHandle() {\n var originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features, style);\n (0, _promisify.promisify)(promise).finally(function () {\n features.flat().forEach(function (f) {\n return f.setStyle(originalStyle);\n });\n });\n };\n\n var is_vector = Layer.LayerTypes.VECTOR === layer.getType();\n var is_single = _workflow.Workflow.Stack.getLength();\n\n if (is_vector && is_single) {\n setTimeout(function () {\n return selectOriginalStyleHandle();\n });\n } else if (is_vector) {\n selectOriginalStyleHandle();\n }\n}\n\n},{\"../g3wsdk/workflow/workflow\":15,\"../utils/promisify\":58,\"../utils/setFeaturesSelectedStyle\":60}],60:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setFeaturesSelectedStyle = setFeaturesSelectedStyle;\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Get selected style from \"extracted\" original feature style \n * \n * @param feature\n * \n * @returns {{ originalStyle: *, selectedStyle: * }} selected style based on a geometry type\n */\nfunction getSelectedStyle(feature) {\n return {\n originalStyle: feature.getStyle(),\n selectedStyle: feature.getGeometry() ? g3wsdk.core.geoutils.createSelectedStyle({ geometryType: feature.getGeometry().getType() }) : feature.getStyle()\n };\n}\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/tasks/editingtask.js@v3.7.1\n * \n * Set selected style to feature and return original feature style\n * \n * @param { Array } features\n * @param { ol.style.Style } style @since 3.8.0 custom select style\n * \n * @returns { ol.style.Style }\n */\nfunction setFeaturesSelectedStyle() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var style = arguments[1];\n\n if (features.length > 0) {\n // copy feature from other layers when selecting multiple features\n var arr = features.flat(); // flat nested features\n\n var _getSelectedStyle = getSelectedStyle(arr[0]),\n originalStyle = _getSelectedStyle.originalStyle,\n selectedStyle = _getSelectedStyle.selectedStyle;\n\n arr.forEach(function (f) {\n return f.setStyle(style || selectedStyle);\n });\n\n return originalStyle;\n }\n}\n\n},{}],61:[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\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/editingservice.js@v3.7.8\n * Method to get unique values of unique input values from server\n * It's called\n * - When toolbox start (parent layer and relation)\n * - After commit to server (to get fresh new data)\n * \n * @param { string } layerId\n *\n * @returns { Promise<*> }\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nvar setLayerUniqueFieldValues = exports.setLayerUniqueFieldValues = function () {\n var _ref = _asyncToGenerator(function* (layerId) {\n var service = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing'); //get editing service\n yield new Promise(function (resolve, reject) {\n var layer = g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').getLayerById(layerId);\n //get all values for unique field\n layer.getWidgetData({\n type: 'unique',\n fields: Object.values(layer.getEditingFields()\n //filter field that is unique and not yet set unique values\n .filter(function (f) {\n return !(f.pk && false === f.editable) && ('unique' === f.input.type || f.validate.unique);\n })).map(function (f) {\n return f.name;\n }).join()\n }).then(function (response) {\n Object.entries(response.data || {}).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n name = _ref3[0],\n values = _ref3[1];\n\n service.state.uniqueFieldsValues[layerId][name] = new Set(values);\n });\n\n resolve(service.state.uniqueFieldsValues[layerId][name]);\n }).fail(function (e) {\n console.warn(e);reject(e);\n });\n });\n return service.state.uniqueFieldsValues[layerId];\n });\n\n return function setLayerUniqueFieldValues(_x) {\n return _ref.apply(this, arguments);\n };\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 CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n},{}],62:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.splitFeatures = splitFeatures;\nvar splitFeature = g3wsdk.core.geoutils.splitFeature;\n\n/**\n * ORIGINAL SOURCE: g3w-client/src/utils/splitFeatures.js@v3.10.2\n * \n * @param { Object } opts\n * @param { Array } opts.features\n * @param opts.splitfeature\n * \n * @returns { Array } splittered geometries\n * \n * @since g3w-client-plugin-editing@v3.9.0\n */\n\nfunction splitFeatures(features, splitfeature) {\n return (features || []).reduce(function (a, f) {\n var geometries = splitFeature({ splitfeature: splitfeature, feature: f });\n if (geometries.length > 1) {\n a.push({ uid: f.getUid(), geometries: geometries });\n }\n return a;\n }, []);\n}\n\n},{}],63:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unlinkRelation = unlinkRelation;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _getRelationFieldsFromRelation = require('../utils/getRelationFieldsFromRelation');\n\nvar _updateWorkflows = require('./updateWorkflows');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _promisify = require('../utils/promisify');\n\nvar GUI = g3wsdk.gui.GUI;\nvar tPlugin = g3wsdk.core.i18n.tPlugin;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/relationservice.js@v3.7.1\n * \n * Unlink relation\n * @param layerId\n * @param relation\n * @param relations\n * @param index\n * @param dialog\n * \n * @returns JQuery Promise\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\n\nfunction unlinkRelation(_ref) {\n var layerId = _ref.layerId,\n relation = _ref.relation,\n relations = _ref.relations,\n index = _ref.index,\n _ref$dialog = _ref.dialog,\n dialog = _ref$dialog === undefined ? true : _ref$dialog;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n var unlink = function unlink() {\n var id = layerId === relation.child ? relation.father : relation.child; // relation layer id\n var feature = (0, _getEditingLayerById.getEditingLayerById)(id).getEditingSource().getFeatureById(relations[index].id);\n var originalRelation = feature.clone();\n // loop on ownField (Array field child relation)\n (0, _getRelationFieldsFromRelation.getRelationFieldsFromRelation)({ relation: relation, layerId: id }).ownField.forEach(function (f) {\n return feature.set(f, null);\n });\n _workflow.Workflow.Stack.getCurrent().getSession().pushUpdate(id, feature, originalRelation);\n relations.splice(index, 1);\n (0, _updateWorkflows.updateWorkflows)();\n resolve(true);\n };\n if (dialog) {\n GUI.dialog.confirm(tPlugin(\"editing.messages.unlink_relation\"), function (result) {\n return result ? unlink() : d.reject(false);\n });\n } else {\n unlink();\n }\n }));\n}\n\n},{\"../g3wsdk/workflow/workflow\":15,\"../utils/getEditingLayerById\":42,\"../utils/getRelationFieldsFromRelation\":49,\"../utils/promisify\":58,\"./updateWorkflows\":64}],64:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.updateWorkflows = updateWorkflows;\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/relationservice.js@v3.7.1\n * \n * force parent workflow form service\n * update only when workflow has service (form service)\n * \n * @since g3w-client-plugin-editing@v3.8.0\n */\nfunction updateWorkflows() {\n _workflow.Workflow.Stack._workflows.filter(function (w) {\n return w.getContextService();\n }).forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n}\n\n},{\"../g3wsdk/workflow/workflow\":15}],65:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SelectElementsStep = exports.PickFeatureStep = exports.OpenTableStep = exports.OpenFormStep = exports.MoveFeatureStep = exports.ModifyGeometryVertexStep = exports.AddFeatureStep = undefined;\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\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 _evaluateExpressionFields = require('../utils/evaluateExpressionFields');\n\nvar _getParentFormData = require('../utils/getParentFormData');\n\nvar _setFeaturesSelectedStyle = require('../utils/setFeaturesSelectedStyle');\n\nvar _setAndUnsetSelectedFeaturesStyle = require('../utils/setAndUnsetSelectedFeaturesStyle');\n\nvar _getFormFields = require('../utils/getFormFields');\n\nvar _chooseFeatureFromFeatures = require('../utils/chooseFeatureFromFeatures');\n\nvar _handleRelation1_1LayerFields = require('../utils/handleRelation1_1LayerFields');\n\nvar _listenRelation1_1FieldChange = require('../utils/listenRelation1_1FieldChange');\n\nvar _getLayersDependencyFeatures = require('../utils/getLayersDependencyFeatures');\n\nvar _getEditingLayerById = require('../utils/getEditingLayerById');\n\nvar _setLayerUniqueFieldValues = require('../utils/setLayerUniqueFieldValues');\n\nvar _getRelationsInEditingByFeature = require('../utils/getRelationsInEditingByFeature');\n\nvar _getFeatureTableFieldValue = require('../utils/getFeatureTableFieldValue');\n\nvar _addRemoveToMultipleSelectFeatures = require('../utils/addRemoveToMultipleSelectFeatures');\n\nvar _promisify = require('../utils/promisify');\n\nvar _isSameBaseGeometryType = require('../utils/isSameBaseGeometryType');\n\nvar _pickfeaturesinteraction = require('../interactions/pickfeaturesinteraction');\n\nvar _workflow = require('../g3wsdk/workflow/workflow');\n\nvar _step = require('../g3wsdk/workflow/step');\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 _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\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\nvar _g3wsdk$core = g3wsdk.core,\n G3WObject = _g3wsdk$core.G3WObject,\n ApplicationState = _g3wsdk$core.ApplicationState;\nvar Geometry = g3wsdk.core.geoutils.Geometry;\nvar convertSingleMultiGeometry = g3wsdk.core.geoutils.convertSingleMultiGeometry;\nvar removeZValueToOLFeatureGeometry = g3wsdk.core.geoutils.Geometry.removeZValueToOLFeatureGeometry;\nvar Layer = g3wsdk.core.layer.Layer;\nvar Feature = g3wsdk.core.layer.features.Feature;\nvar GUI = g3wsdk.gui.GUI;\nvar Component = g3wsdk.gui.vue.Component;\nvar FormService = g3wsdk.gui.vue.services.FormService;\nvar _g3wsdk$ol$interactio = g3wsdk.ol.interactions.measure,\n AreaInteraction = _g3wsdk$ol$interactio.AreaInteraction,\n LengthInteraction = _g3wsdk$ol$interactio.LengthInteraction;\nvar _g3wsdk$ol$utils = g3wsdk.ol.utils,\n createMeasureTooltip = _g3wsdk$ol$utils.createMeasureTooltip,\n removeMeasureTooltip = _g3wsdk$ol$utils.removeMeasureTooltip;\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/addfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/addfeaturestep.js@v3.7.1\n */\n\nvar AddFeatureStep = exports.AddFeatureStep = function (_Step) {\n _inherits(AddFeatureStep, _Step);\n\n function AddFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, AddFeatureStep);\n\n options.help = \"editing.steps.help.draw_new_feature\";\n\n var _this = _possibleConstructorReturn(this, (AddFeatureStep.__proto__ || Object.getPrototypeOf(AddFeatureStep)).call(this, options));\n\n _this._add = undefined === options.add ? true : options.add;\n\n _this.drawInteraction;\n\n _this.measeureInteraction;\n\n _this.drawingFeature;\n\n _this._snap = false === options.snap ? false : true;\n\n /**\n * Handle tasks that stops after `run(inputs, context)` promise (or if ESC key is pressed)\n *\n * @since g3w-client-plugin-editing@v3.8.0\n */\n _this._stopPromise;\n\n /**\n *\n * @param e event\n * @returns {boolean|void}\n * @private\n * callback of pressing esc to remove last point drawed\n */\n _this._delKeyRemoveLastPoint = function (e) {\n return 46 === e.keyCode && _this.removeLastPoint();\n };\n\n return _this;\n }\n\n _createClass(AddFeatureStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this2 = this;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n //create promise to listen to pass to setAndUnsetSelectedFeaturesStyle\n var promise = new Promise(function (r) {\n return _this2.resolve = r;\n });\n\n var layerId = inputs.layer.getId();\n\n // Skip when a layer type is vector\n if (Layer.LayerTypes.VECTOR !== inputs.layer.getType()) {\n return;\n }\n\n /** @since g3w-client-plugin-editing@v3.8.0 */\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this2.selectStyle });\n\n var originalGeometryType = inputs.layer.getEditingGeometryType();\n\n _this2.geometryType = Geometry.getOLGeometry(originalGeometryType);\n\n var source = inputs.layer.getEditingLayer().getSource();\n var attributes = inputs.layer.getEditingFields();\n\n _this2.drawInteraction = _this2.addInteraction(new ol.interaction.Draw({\n type: _this2.geometryType,\n source: new ol.source.Vector(),\n condition: _this2._options.condition || function () {\n return true;\n },\n freehandCondition: ol.events.condition.never,\n finishCondition: _this2._options.finishCondition || function () {\n return true;\n }\n }), {\n 'drawstart': function drawstart(_ref) {\n var feature = _ref.feature;\n\n _this2.drawingFeature = feature;\n document.addEventListener('keydown', _this2._delKeyRemoveLastPoint);\n },\n 'drawend': function drawend(e) {\n var feature = void 0;\n if (_this2._add) {\n attributes.forEach(function (attr) {\n return e.feature.set(attr.name, null);\n });\n feature = new Feature({ feature: e.feature });\n feature.setTemporaryId();\n source.addFeature(feature);\n context.session.pushAdd(layerId, feature, false);\n } else {\n feature = e.feature;\n }\n // set Z values based on layer Geometry\n if (Geometry.is3DGeometry(originalGeometryType)) {\n feature = Geometry.addZValueToOLFeatureGeometry({ feature: feature, geometryType: originalGeometryType });\n }\n\n inputs.features.push(feature);\n _this2.getContext().get_default_value = true;\n _this2.fireEvent('addfeature', feature); // emit event to get from subscribers\n resolve(inputs);\n }\n });\n\n _this2.drawInteraction.setActive(true);\n }));\n }\n\n /**\n * Method to add Measure\n */\n\n }, {\n key: 'addMeasureInteraction',\n value: function addMeasureInteraction() {\n var is_line = Geometry.isLineGeometryType(this.geometryType);\n var is_poly = Geometry.isPolygonGeometryType(this.geometryType);\n\n //Skip in case geometry is not Line or Polygon\n if (!is_line && !is_poly) {\n return;\n }\n\n this.measureInteraction = this.addInteraction(new (is_line ? LengthInteraction : AreaInteraction)({\n projection: GUI.getService('map').getProjection(),\n drawColor: 'transparent',\n feature: this.drawingFeature\n }));\n\n this.measureInteraction.setActive(true);\n }\n\n /**\n * Remove Measure Interaction\n */\n\n }, {\n key: 'removeMeasureInteraction',\n value: function removeMeasureInteraction() {\n if (this.measureInteraction) {\n this.measureInteraction.clear();\n this.removeInteraction(this.measureInteraction);\n this.measureInteraction = null;\n }\n }\n\n /**\n * Removed last point/vertex draw\n */\n\n }, {\n key: 'removeLastPoint',\n value: function removeLastPoint() {\n try {\n if (this.drawInteraction) {\n this.drawInteraction.removeLastPoint();\n }\n } catch (e) {\n console.warn(e);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.removeInteraction(this.drawInteraction);\n this.removeMeasureInteraction();\n this.resolve(true);\n\n this.drawInteraction = null;\n this.drawingFeature = null;\n this.resolve = null;\n\n document.removeEventListener('keydown', this._delKeyRemoveLastPoint);\n\n return true;\n }\n }]);\n\n return AddFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/modifygeometryvertextask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/modifygeometryvertexstep.js@v3.7.1\n */\n\n\nvar ModifyGeometryVertexStep = exports.ModifyGeometryVertexStep = function (_Step2) {\n _inherits(ModifyGeometryVertexStep, _Step2);\n\n function ModifyGeometryVertexStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ModifyGeometryVertexStep);\n\n options.snap = undefined !== options.snap ? options.snap : true;\n options.help = \"editing.steps.help.edit_feature_vertex\";\n\n var _this3 = _possibleConstructorReturn(this, (ModifyGeometryVertexStep.__proto__ || Object.getPrototypeOf(ModifyGeometryVertexStep)).call(this, options));\n\n _this3._originalStyle = null;\n\n _this3._feature = null;\n\n _this3.tooltip;\n return _this3;\n }\n\n _createClass(ModifyGeometryVertexStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this4 = this;\n\n var newFeature = void 0,\n originalFeature = void 0;\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var layerId = inputs.layer.getId();\n var feature = _this4._feature = inputs.features[0];\n _this4._originalStyle = inputs.layer.getEditingLayer().getStyle();\n feature.setStyle(function () {\n return [new ol.style.Style({\n image: new ol.style.Circle({ radius: 5, fill: null, stroke: new ol.style.Stroke({ color: 'orange', width: 2 }) }),\n geometry: function geometry(feature) {\n return new ol.geom.MultiPoint( // in the case of multipolygon geometry\n Geometry.isPolygonGeometryType(inputs.layer.getGeometryType()) && Geometry.isMultiGeometry(inputs.layer.getGeometryType()) ? feature.getGeometry().getCoordinates()[0][0] : feature.getGeometry().getCoordinates()[0]);\n }\n }), new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'yellow', width: 4 }) })];\n });\n _this4._modifyInteraction = _this4.addInteraction(new ol.interaction.Modify({\n features: new ol.Collection(inputs.features),\n deleteCondition: _this4._options.deleteCondition\n }), {\n 'modifystart': function modifystart(e) {\n originalFeature = e.features.getArray()[0].clone();\n },\n 'modifyend': function modifyend(e) {\n var feature = e.features.getArray()[0];\n if (feature.getGeometry().getExtent() !== originalFeature.getGeometry().getExtent()) {\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n newFeature = feature.clone();\n context.session.pushUpdate(layerId, newFeature, originalFeature);\n inputs.features.push(newFeature);\n resolve(inputs);\n });\n }\n }\n });\n }));\n }\n }, {\n key: 'addMeasureInteraction',\n value: function addMeasureInteraction() {\n var _this5 = this;\n\n this._modifyInteraction.on('modifystart', function (e) {\n _this5.tooltip = createMeasureTooltip({ map: _this5.getMap(), feature: e.features.getArray()[0] });\n });\n }\n }, {\n key: 'removeMeasureInteraction',\n value: function removeMeasureInteraction() {\n if (this.tooltip) {\n removeMeasureTooltip(_extends({ map: this.getMap() }, this.tooltip));\n }\n this.tooltip = null;\n }\n }, {\n key: 'stop',\n value: function stop() {\n this._feature.setStyle(this._originalStyle);\n return true;\n }\n }]);\n\n return ModifyGeometryVertexStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/movefeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/movefeaturestep.js@v3.7.1\n */\n\n\nvar MoveFeatureStep = exports.MoveFeatureStep = function (_Step3) {\n _inherits(MoveFeatureStep, _Step3);\n\n function MoveFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, MoveFeatureStep);\n\n options.help = \"editing.steps.help.move\";\n\n var _this6 = _possibleConstructorReturn(this, (MoveFeatureStep.__proto__ || Object.getPrototypeOf(MoveFeatureStep)).call(this, options));\n\n _this6.drawInteraction = null;\n _this6.promise; // need to be set here in case of picked features\n return _this6;\n }\n\n _createClass(MoveFeatureStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this7 = this;\n\n /** Need two different promises: One for stop() method and clean-selected feature,\n * and another one for a run task. If we use the same promise, when stop a task without move feature,\n * this.promise.resolve(), it fires also thenable method listens to resolve promise of a run task,\n * that call stop task method.*/\n return (0, _promisify.$promisify)(new Promise(function (resolve) {\n var promise = new Promise(function (r) {\n return _this7.resolve = r;\n });\n var layerId = inputs.layer.getId();\n var originalFeature = null;\n _this7.changeKey = null;\n var isGeometryChange = false; // changed if geometry is changed\n\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this7.selectStyle });\n\n _this7.addInteraction(new ol.interaction.Translate({\n features: new ol.Collection(inputs.features),\n hitTolerance: isMobile && isMobile.any ? 10 : 0 }), {\n 'translatestart': function translatestart(e) {\n var feature = e.features.getArray()[0];\n _this7.changeKey = feature.once('change', function () {\n return isGeometryChange = true;\n });\n originalFeature = feature.clone();\n },\n 'translateend': function translateend(e) {\n ol.Observable.unByKey(_this7.changeKey);\n var feature = e.features.getArray()[0];\n if (isGeometryChange) {\n // evaluated geometry expression\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n context.session.pushUpdate(layerId, feature.clone(), originalFeature);\n resolve(inputs);\n });\n } else {\n resolve(inputs);\n }\n }\n });\n }));\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.resolve(true);\n this.resolve = null;\n this.changeKey = null;\n }\n }]);\n\n return MoveFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/openformtask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/openformstep.js@v3.7.1\n */\n\n\nvar OpenFormStep = exports.OpenFormStep = function (_Step4) {\n _inherits(OpenFormStep, _Step4);\n\n function OpenFormStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OpenFormStep);\n\n options.help = \"editing.steps.help.insert_attributes_feature\";\n\n /**\n * Show saveAll button\n *\n * @since v3.7\n */\n var _this8 = _possibleConstructorReturn(this, (OpenFormStep.__proto__ || Object.getPrototypeOf(OpenFormStep)).call(this, options));\n\n _this8._saveAll = false === options.saveAll ? options.saveAll : _asyncToGenerator(function* () {});\n\n /**\n * Whether it can handle multi edit features\n */\n _this8._multi = options.multi || false;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8.layerId;\n\n /**\n * whether form is coming from parent table component\n */\n _this8._isContentChild = false;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8._features;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8._originalFeatures;\n\n /**\n * @FIXME set a default value + add description\n */\n _this8.promise;\n\n /**\n * @since g3w-client-plugin-editing@v3.7.0\n */\n _this8._unwatchs = [];\n\n return _this8;\n }\n\n /**\n * @since v3.7\n * @param bool\n */\n\n\n _createClass(OpenFormStep, [{\n key: 'updateMulti',\n value: function updateMulti() {\n var bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this._multi = bool;\n }\n\n /**\n * @param inputs\n * @param context\n *\n * @returns {*}\n */\n\n }, {\n key: 'run',\n value: function run(inputs, context) {\n var _this9 = this;\n\n var promise = new Promise(function () {\n var _ref3 = _asyncToGenerator(function* (resolve, reject) {\n //@since 3.9.0 can set isContentChild attribute to force it (case edit relation features from multi parent features)\n _this9._isContentChild = undefined === context.isContentChild ? _workflow.Workflow.Stack.getLength() > 1 : context.isContentChild;\n _this9.layerId = inputs.layer.getId();\n\n GUI.setLoadingContent(false);\n\n GUI.getService('map').disableClickMapControls(true);\n\n if (!_this9._multi && Array.isArray(inputs.features[inputs.features.length - 1])) {\n resolve();\n return;\n }\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').setCurrentLayout();\n\n var layerName = inputs.layer.getName();\n _this9._features = _this9._multi ? inputs.features : [inputs.features[inputs.features.length - 1]];\n _this9._originalFeatures = _this9._features.map(function (f) {\n return f.clone();\n });\n\n // create a child relation feature set a father relation field value\n if (_this9._isContentChild) {\n context.fatherValue = context.fatherValue || []; // are array\n (context.fatherField || []).forEach(function (field, i) {\n _this9._features[0].set(field, context.fatherValue[i]);\n _this9._originalFeatures[0].set(field, context.fatherValue[i]);\n });\n }\n\n var fields = (0, _getFormFields.getFormFields)({\n inputs: inputs,\n context: context,\n feature: _this9._features[0],\n isChild: _this9._isContentChild,\n multi: _this9._multi\n });\n\n // set fields. Useful getParentFormData\n _workflow.Workflow.Stack.getCurrent().setInput({ key: 'fields', value: fields });\n\n // whether disable relations editing (ref: \"editmultiattributes\")\n var feature = !_this9._multi && inputs.features && inputs.features[inputs.features.length - 1];\n var layerId = !_this9._multi && inputs.layer.getId();\n\n // @since g3w-client-plugin-editing@v3.7.2\n // skip relations that don't have a form structure\n if (feature && !feature.isNew() && inputs.layer.getLayerEditingFormStructure()) {\n yield (0, _getLayersDependencyFeatures.getLayersDependencyFeatures)(inputs.layer.getId(), {\n // @since g3w-client-plugin-editin@v3.7.0\n relations: inputs.layer.getRelations().getArray().filter(function (r) {\n return inputs.layer.getId() === r.getFather() && // get only child relation features of current editing layer\n (0, _getEditingLayerById.getEditingLayerById)(r.getChild()) && // child layer is in editing\n 'ONE' !== r.getType();\n } // exclude ONE relation (Join 1:1)\n ),\n feature: feature,\n filterType: 'fid'\n });\n }\n\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/form/editingform.js@v3.7.8 */\n /** ORIGINAL SOURCE: g3w-client-plugin-editing/form/editingformservice.js@v3.7.8 */\n var formService = GUI.showForm({\n feature: _this9._originalFeatures[0],\n title: \"plugins.editing.editing_attributes\",\n name: layerName,\n crumb: { title: layerName },\n id: 'form_' + layerName,\n dataid: layerName,\n layer: inputs.layer,\n isnew: _this9._originalFeatures.length > 1 ? false : _this9._originalFeatures[0].isNew(), // specify if is a new feature\n parentData: (0, _getParentFormData.getParentFormData)(),\n fields: fields,\n context_inputs: _this9._multi ? false : { context: context, inputs: inputs },\n formStructure: inputs.layer.hasFormStructure() && inputs.layer.getLayerEditingFormStructure() || undefined,\n modal: true,\n push: _this9._options.push || _this9._isContentChild, /** @since v3.7 force push content on top without clear previous content */\n showgoback: undefined === _this9._options.showgoback ? !_this9._isContentChild : _this9._options.showgoback, /** @since v3.7 force show back button */\n /** @TODO make it straightforward: `headerComponent` vs `buttons` ? */\n headerComponent: _this9._saveAll && {\n template: /* html */'\\n
\\n \\n \\n \\n \\n \\n
',\n name: 'Saveall',\n /** @TODO figure out who populate these props (ie. core client code?) */\n props: { update: { type: Boolean }, valid: { type: Boolean } },\n data: function data() {\n return {\n enabled: _workflow.Workflow.Stack._workflows.slice(0, _workflow.Workflow.Stack.getLength() - 1).every(function (w) {\n var valid = (w.getContext().service instanceof FormService ? w.getContext().service.getState() : {}).valid;\n return valid || undefined === valid;\n })\n };\n },\n\n computed: {\n /** @returns {boolean} whether disable save all button (eg. when parent or current form is not valid/ updated) */\n disabled: function disabled() {\n return !this.enabled || !(this.valid && this.update);\n }\n },\n methods: {\n saveAll: function () {\n var _ref4 = _asyncToGenerator(function* () {\n //Set loading content\n GUI.setLoadingContent(true);\n //Disable form\n GUI.disableContent(true);\n yield Promise.allSettled([].concat(_toConsumableArray(_workflow.Workflow.Stack._workflows)).reverse().filter(function (w) {\n return \"function\" === typeof w.getLastStep()._saveAll;\n }) // need to filter only workflow that\n .map(function (w) {\n return new Promise(function () {\n var _ref5 = _asyncToGenerator(function* (resolve) {\n var task = w.getLastStep();\n var fields = w.getContext().service.state.fields.filter(function (f) {\n return task._multi ? null !== f.value : true;\n });\n // skip when no fields\n if (0 === fields.length) {\n return;\n }\n yield _workflow.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies();\n task._features.forEach(function (f) {\n return task.getInputs().layer.setFieldsWithValues(f, fields);\n });\n var newFeatures = task._features.map(function (f) {\n return f.clone();\n });\n //Is a relation form\n if (task._isContentChild) {\n task.getInputs().relationFeatures = { newFeatures: newFeatures, originalFeatures: task._originalFeatures };\n }\n yield task.fireEvent('saveform', { newFeatures: newFeatures, originalFeatures: task._originalFeatures });\n newFeatures.forEach(function (f, i) {\n return task.getContext().session.pushUpdate(task.layerId, f, task._originalFeatures[i]);\n });\n yield (0, _handleRelation1_1LayerFields.handleRelation1_1LayerFields)({ layerId: task.layerId, features: newFeatures, fields: fields, task: task });\n task.fireEvent('savedfeature', newFeatures); // called after saved\n task.fireEvent('savedfeature_' + task.layerId, newFeatures); // called after saved using layerId\n task.getContext().session.save();\n return resolve();\n });\n\n return function (_x8) {\n return _ref5.apply(this, arguments);\n };\n }());\n }));\n try {\n yield (0, _promisify.promisify)(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').service.commit({ modal: false }));\n [].concat(_toConsumableArray(_workflow.Workflow.Stack._workflows)).reverse().filter(function (w) {\n return \"function\" === typeof w.getLastStep()._saveAll;\n }).forEach(function (w) {\n var service = w.getContext().service; //form service\n //need to set update form false because already saved on server\n service.setUpdate(false, { force: false });\n var feature = service.feature;\n // Check if the feature is new.\n // In this case, after commit, need to set new to false, and force update to false.\n if (feature.isNew()) {\n feature.state.new = false;\n service.force.update = false;\n }\n Object.entries(w.getInputs().layer.getEditingSource().readFeatures().find(function (f) {\n return f.getUid() === feature.getUid();\n }) //Find current form editing feature by unique id of feature uid\n .getProperties() //get properties\n ).forEach(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n k = _ref7[0],\n v = _ref7[1];\n\n var field = service.getFields().find(function (f) {\n return k === f.name;\n });\n //if field exists (geometry field is discarded)\n if (field) {\n field.value = field._value = v;\n }\n });\n });\n } catch (e) {\n console.warn(e);\n }\n //set loading content false\n GUI.setLoadingContent(false);\n //enable form\n GUI.disableContent(false);\n });\n\n function saveAll() {\n return _ref4.apply(this, arguments);\n }\n\n return saveAll;\n }()\n }\n },\n buttons: [{\n id: 'save',\n title: _this9._isContentChild ? _workflow.Workflow.Stack.getParent().getBackButtonLabel() || \"plugins.editing.form.buttons.save_and_back\" // get custom back label from parent\n : \"plugins.editing.form.buttons.save\",\n type: \"save\",\n class: \"btn-success\",\n // save features\n cbk: function () {\n var _ref8 = _asyncToGenerator(function* (fields) {\n fields = _this9._multi ? fields.filter(function (f) {\n return null !== f.value;\n }) : fields;\n\n // skip when no fields\n if (0 === fields.length) {\n resolve(inputs);\n return;\n }\n\n var newFeatures = [];\n\n // @since 3.5.15\n GUI.setLoadingContent(true);\n GUI.disableContent(true);\n\n yield _workflow.Workflow.Stack.getCurrent().getContextService().saveDefaultExpressionFieldsNotDependencies();\n\n GUI.setLoadingContent(false);\n GUI.disableContent(false);\n\n _this9._features.forEach(function (f) {\n inputs.layer.setFieldsWithValues(f, fields);\n newFeatures.push(f.clone());\n });\n\n if (_this9._isContentChild) {\n inputs.relationFeatures = {\n newFeatures: newFeatures,\n originalFeatures: _this9._originalFeatures\n };\n }\n\n yield _this9.fireEvent('saveform', { newFeatures: newFeatures, originalFeatures: _this9._originalFeatures });\n\n newFeatures.forEach(function (f, i) {\n return context.session.pushUpdate(_this9.layerId, f, _this9._originalFeatures[i]);\n });\n\n // check and handle if layer has relation 1:1\n yield (0, _handleRelation1_1LayerFields.handleRelation1_1LayerFields)({\n layerId: _this9.layerId,\n features: newFeatures,\n fields: fields,\n task: _this9\n });\n\n GUI.setModal(false);\n\n _this9.fireEvent('savedfeature', newFeatures); // called after saved\n _this9.fireEvent('savedfeature_' + _this9.layerId, newFeatures); // called after saved using layerId\n // In case of save of child it means that child is updated so also parent\n if (_this9._isContentChild) {\n _workflow.Workflow.Stack.getParents()\n //filter only with has getContextService to be sure\n .filter(function (w) {\n return w.getContextService() && w.getContextService().setUpdate;\n }).forEach(function (w) {\n return w.getContextService().setUpdate(true, { force: true });\n });\n }\n //@TODO add field unique new value id not set\n resolve(inputs);\n });\n\n function cbk(_x9) {\n return _ref8.apply(this, arguments);\n }\n\n return cbk;\n }()\n }, {\n id: 'cancel',\n title: \"plugins.editing.form.buttons.cancel\",\n type: \"cancel\",\n class: \"btn-danger\",\n /// buttons in case of change\n eventButtons: {\n update: {\n false: {\n id: 'close',\n title: \"close\",\n type: \"cancel\",\n class: \"btn-danger\"\n }\n }\n },\n cbk: function cbk() {\n if (!_this9._isContentChild) {\n GUI.setModal(false);\n _this9.fireEvent('cancelform', inputs.features); // fire event cancel form to emit to subscrivers\n }\n reject(inputs);\n }\n }]\n });\n\n // Overwrite click on relation.\n // Open FormRelation.vue component\n formService.handleRelation = function () {\n var _ref9 = _asyncToGenerator(function* (e) {\n // Skip when multi editing features\n // It is not possible to manage relationss when we edit multi-features\n if (_this9._multi) {\n GUI.showUserMessage({ type: 'info', message: 'plugins.editing.errors.editing_multiple_relations', duration: 3000, autoclose: true });\n return;\n }\n GUI.setLoadingContent(true);\n //set unique values for relation layer based on unique fields\n //@TODO need a find a way to call once and not every time we open a relation\n yield (0, _setLayerUniqueFieldValues.setLayerUniqueFieldValues)(inputs.layer.getRelationById(e.relation.name).getChild());\n formService.setCurrentComponentById(e.relation.name);\n GUI.setLoadingContent(false);\n });\n\n return function (_x10) {\n return _ref9.apply(this, arguments);\n };\n }();\n\n formService.addComponents([].concat(_toConsumableArray(g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').state.formComponents[layerId] || []), _toConsumableArray((0, _getRelationsInEditingByFeature.getRelationsInEditingByFeature)({\n layerId: layerId,\n relations: _this9._multi ? [] : inputs.layer.getRelations().getArray().filter(function (r) {\n return r.getType() !== 'ONE' && r.getFather() === layerId;\n }),\n feature: _this9._multi ? false : inputs.features[inputs.features.length - 1]\n }).map(function (_ref10) {\n var relation = _ref10.relation,\n relations = _ref10.relations;\n return {\n title: \"plugins.editing.edit_relation\",\n name: relation.name,\n id: relation.id,\n header: false, // hide a header form\n component: Vue.extend({\n mixins: [require('../components/FormRelation.vue')],\n name: 'relation_' + Date.now(),\n data: function data() {\n return { layerId: layerId, relation: relation, relations: relations };\n }\n })\n };\n }))));\n\n // fire openform event\n _this9.fireEvent('openform', {\n layerId: _this9.layerId,\n session: context.session,\n feature: _this9._originalFeature,\n formService: formService\n });\n\n // set context service to form Service in case of a single task (i.e., no workflow)\n if (_workflow.Workflow.Stack.getCurrent()) {\n _workflow.Workflow.Stack.getCurrent().setContextService(formService);\n }\n\n //listen eventually field relation 1:1 changes value\n (0, _listenRelation1_1FieldChange.listenRelation1_1FieldChange)({ layerId: _this9.layerId, fields: fields }).then(function (d) {\n return _this9._unwatchs = d;\n });\n\n _this9.disableSidebar(true);\n });\n\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this9.selectStyle });\n return promise;\n }));\n }\n\n /**\n *\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n this.disableSidebar(false);\n\n //Check if form coming from the parent table component\n var is_parent_table = false === this._isContentChild || // no child workflow\n\n // case edit feature of a table (edit layer alphanumeric)\n 2 === _workflow.Workflow.Stack.getLength() && //open features table\n _workflow.Workflow.Stack.getParent().isType('edittable');\n\n // when the last feature of features is Array\n // and is resolved without setting form service\n // Ex. copy multiple features from another layer\n if (is_parent_table) {\n GUI.getService('map').disableClickMapControls(false);\n }\n\n var contextService = is_parent_table && _workflow.Workflow.Stack.getCurrent().getContextService();\n\n // force update parent form update\n if (contextService && contextService.setUpdate && false === this._isContentChild) {\n contextService.setUpdate(false, { force: false });\n }\n //@since 3.9.0 add GUI.getContentLength() in case of edit multi relationfeatures tool\n GUI.closeForm({ pop: this.push || this._isContentChild && GUI.getContentLength() > 1 });\n\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').resetCurrentLayout();\n\n this.fireEvent('closeform');\n this.fireEvent('closeform_' + this.layerId);\n\n this.layerId = null;\n this._unwatchs.forEach(function (unwatch) {\n return unwatch();\n });\n this._unwatchs = [];\n }\n }]);\n\n return OpenFormStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/opentabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/opentablestep.js@v3.7.1\n */\n\n\nvar OpenTableStep = exports.OpenTableStep = function (_Step5) {\n _inherits(OpenTableStep, _Step5);\n\n function OpenTableStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OpenTableStep);\n\n options.help = \"editing.steps.help.edit_table\";\n\n return _possibleConstructorReturn(this, (OpenTableStep.__proto__ || Object.getPrototypeOf(OpenTableStep)).call(this, options));\n }\n\n /**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/opentabletask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/services/tableservice.js@v3.7.8\n *\n * @param inputs\n * @param context\n *\n * @returns {*}\n */\n\n\n _createClass(OpenTableStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this11 = this;\n\n // set current plugin layout (right content)\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').setCurrentLayout();\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n _this11._isContentChild = _workflow.Workflow.Stack.getLength() > 1;\n var features = inputs.layer.readEditingFeatures() || [];\n var headers = (inputs.layer.getEditingFields() || []).filter(function (h) {\n return features.length ? Object.keys(features[0].getProperties()).includes(h.name) : true;\n });\n _this11._isContentChild = _workflow.Workflow.Stack.getLength() > 1;\n var excludeFields = _this11._isContentChild ? context.excludeFields || [] : [];\n var service = Object.assign(new G3WObject(), {\n state: {\n inputs: inputs,\n context: context,\n promise: { resolve: resolve, reject: reject },\n headers: headers, // column names\n features: features,\n rows: features.length > 0\n // ordered properties\n ? (excludeFields.length > 0 ? features.filter(function (feat) {\n return !excludeFields.reduce(function (a, f, i) {\n return a && context.fatherValue[i] === '' + feat.get(f);\n }, true);\n }) : features).map(function (f) {\n return headers.map(function (h) {\n return h.name;\n }).reduce(function (props, header) {\n var _Object$assign;\n\n return Object.assign(props, (_Object$assign = {}, _defineProperty(_Object$assign, header, (0, _getFeatureTableFieldValue.getFeatureTableFieldValue)({ layerId: inputs.layer.getId(), feature: f, property: header })), _defineProperty(_Object$assign, '__gis3w_feature_uid', f.getUid()), _Object$assign));\n }, {});\n })\n // features already bind to parent feature\n : features,\n title: '' + inputs.layer.getName() || 'Link relation',\n isrelation: _this11._isContentChild,\n capabilities: inputs.layer.getEditingCapabilities(),\n layerId: inputs.layer.getId(),\n workflow: null\n }\n });\n\n GUI.showContent({\n content: new Component({\n title: '' + inputs.layer.getName(),\n push: _this11._isContentChild,\n service: service,\n state: service.state,\n internalComponent: new (Vue.extend(require('../components/Table.vue')))({ service: service })\n }),\n push: _this11._isContentChild,\n showgoback: false,\n closable: false\n });\n }));\n }\n\n /**\n *\n */\n\n }, {\n key: 'stop',\n value: function stop() {\n this.disableSidebar(false);\n GUI[this._isContentChild ? 'popContent' : 'closeContent']();\n //reset the current plugin layout (right content) to application\n g3wsdk.core.plugin.PluginsRegistry.getPlugin('editing').resetCurrentLayout();\n }\n }]);\n\n return OpenTableStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/pickfeaturetask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/pickfeaturestep.js@v3.7.1\n */\n\n\nvar PickFeatureStep = exports.PickFeatureStep = function (_Step6) {\n _inherits(PickFeatureStep, _Step6);\n\n function PickFeatureStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, PickFeatureStep);\n\n options.help = \"editing.steps.help.pick_feature\";\n options.highlight = options.highlight || false;\n options.multi = options.multi || false;\n return _possibleConstructorReturn(this, (PickFeatureStep.__proto__ || Object.getPrototypeOf(PickFeatureStep)).call(this, options));\n }\n\n _createClass(PickFeatureStep, [{\n key: 'run',\n value: function run(inputs) {\n var _this13 = this;\n\n var promise = new Promise(function (resolve) {\n _this13.addInteraction(new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: inputs.layer.getEditingLayer() }), {\n 'picked': function picked(e) {\n if (0 === inputs.features.length) {\n inputs.features = e.features;\n inputs.coordinate = e.coordinate;\n }\n if (_this13._steps) {\n _this13.setUserMessageStepDone('select');\n }\n resolve(inputs);\n }\n });\n });\n return (0, _promisify.$promisify)(_asyncToGenerator(function* () {\n (0, _setAndUnsetSelectedFeaturesStyle.setAndUnsetSelectedFeaturesStyle)({ promise: (0, _promisify.$promisify)(promise), inputs: inputs, style: _this13.selectStyle });\n return promise;\n }));\n }\n }]);\n\n return PickFeatureStep;\n}(_step.Step);\n\n/**\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/tasks/selectelementstask.js@v3.7.1\n * ORIGINAL SOURCE: g3w-client-plugin-editing/workflows/steps/selectelementsstep.js@v3.7.1\n */\n\n\nvar SelectElementsStep = exports.SelectElementsStep = function (_Step7) {\n _inherits(SelectElementsStep, _Step7);\n\n function SelectElementsStep() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var chain = arguments[1];\n\n _classCallCheck(this, SelectElementsStep);\n\n options.help = options.help || \"editing.steps.help.select_elements\";\n\n var _this14 = _possibleConstructorReturn(this, (SelectElementsStep.__proto__ || Object.getPrototypeOf(SelectElementsStep)).call(this, options));\n\n _this14._selectInteractions = [];\n _this14.multipleselectfeatures = [];\n _this14._originalStyle;\n _this14._vectorLayer;\n\n if (chain) {\n _this14.on('run', function () {\n _this14.emit('next-step', g3wsdk.core.i18n.tPlugin(\"editing.steps.help.select_elements\"));\n });\n }\n return _this14;\n }\n\n /**\n *\n * @param inputs\n * @param context\n * @returns {*}\n */\n\n\n _createClass(SelectElementsStep, [{\n key: 'run',\n value: function run(inputs, context) {\n var _this15 = this;\n\n var layer = inputs.layer;\n var type = this._options.type || 'bbox'; // 'single' 'bbox' 'multiple';\n var buttonnext = 'multiple' === type && !!this._steps.select.buttonnext;\n\n return (0, _promisify.$promisify)(new Promise(function (resolve, reject) {\n var _selectInteractions;\n\n if (buttonnext) {\n //check if it has already done handler function;\n var done = _this15._steps.select.buttonnext.done;\n\n _this15._steps.select.buttonnext.done = function () {\n if (done && done instanceof Function) {\n done();\n }\n resolve(inputs);\n };\n }\n\n var interactions = {};\n\n // add single select interaction\n if (['single', 'multiple'].includes(type)) {\n interactions.single = new _pickfeaturesinteraction.PickFeaturesInteraction({ layer: layer.getEditingLayer() });\n interactions.single.on('picked', function () {\n var _ref14 = _asyncToGenerator(function* (_ref13) {\n var features = _ref13.features;\n\n var feature = void 0;\n if (features.length > 1) {\n try {\n feature = yield (0, _chooseFeatureFromFeatures.chooseFeatureFromFeatures)({ features: features, inputs: _this15.getInputs() });\n } catch (e) {\n console.warn(e);\n }\n } else {\n feature = features[0];\n }\n\n if (feature) {\n inputs.features = [feature];\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)([feature], inputs, _this15.multipleselectfeatures, _this15);\n } else {\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(inputs.features);\n\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n\n resolve(inputs);\n }\n }\n });\n\n return function (_x14) {\n return _ref14.apply(this, arguments);\n };\n }());\n }\n\n // add multiple select interactions\n if (['multiple', 'bbox'].includes(type) && ApplicationState.ismobile) {\n _this15._vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector({}) });\n _this15.getMap().addLayer(_this15._vectorLayer);\n\n interactions.multi = new ol.interaction.Draw({ type: 'Circle', source: _this15._vectorLayer.getSource(), geometryFunction: ol.interaction.Draw.createBox() });\n\n interactions.multi.on('drawend', function (e) {\n var features = layer.getEditingLayer().getSource().getFeaturesInExtent(e.feature.getGeometry().getExtent());\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)(features, inputs, _this15.multipleselectfeatures, _this15);\n } else {\n if (features.length > 0) {\n inputs.features = features;\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features);\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n setTimeout(function () {\n return resolve(inputs);\n }, 500);\n } else {\n reject();\n }\n }\n });\n }\n\n if (['multiple', 'bbox'].includes(type) && !ApplicationState.ismobile) {\n interactions.dragbox = new ol.interaction.DragBox({ condition: ol.events.condition.shiftKeyOnly });\n\n interactions.dragbox.on('boxend', function () {\n var features = [];\n var extent = interactions.dragbox.getGeometry().getExtent();\n\n //https://openlayers.org/en/v5.3.0/apidoc/module-ol_source_Cluster-Cluster.html#forEachFeatureIntersectingExtent\n layer.getEditingLayer().getSource().forEachFeatureIntersectingExtent(extent, function (f) {\n features.push(f);\n });\n\n if (buttonnext) {\n (0, _addRemoveToMultipleSelectFeatures.addRemoveToMultipleSelectFeatures)(features, inputs, _this15.multipleselectfeatures, _this15);\n } else {\n if (features.length > 0) {\n inputs.features = features;\n _this15._originalStyle = (0, _setFeaturesSelectedStyle.setFeaturesSelectedStyle)(features);\n\n if (_this15._steps) {\n _this15.setUserMessageStepDone('select');\n }\n\n resolve(inputs);\n } else {\n reject();\n }\n }\n });\n }\n\n // pick feature from external layer added to map\n if ('external' === type) {\n var geometryType = layer.getGeometryType();\n var layerId = layer.getId();\n var source = layer.getEditingLayer().getSource();\n\n var _getContext = _this15.getContext(),\n session = _getContext.session;\n\n interactions.external = new _pickfeaturesinteraction.PickFeaturesInteraction({\n layers: GUI.getService('map').getExternalLayers()\n // filter external layer only vector - Exclude the\n // same base geometry\n .filter(function (l) {\n var features = 'VECTOR' == l.getType() && l.getSource().getFeatures();\n if (features.length > 0) {\n return (0, _isSameBaseGeometryType.isSameBaseGeometryType)(features[0].getGeometry().getType(), geometryType);\n }\n return true;\n })\n });\n interactions.external.on('picked', function (e) {\n if (!(e.features.length > 0)) {\n reject();\n return;\n }\n var attributes = layer.getEditingFields();\n var geometry = e.features[0].getGeometry();\n if (geometryType !== geometry.getType()) {\n e.feature.setGeometry(convertSingleMultiGeometry(geometry, geometryType));\n }\n var feature = new Feature({\n feature: e.feature,\n properties: attributes.map(function (attr) {\n // set media attribute to null or attribute belong to layer but not present o feature copied\n if (attr.pk || 'media' === attr.input.type || undefined === e.feature.get(attr.name)) {\n e.feature.set(attr.name, null);\n }\n return attr.name;\n })\n });\n\n // evaluate Geometry Expression\n (0, _evaluateExpressionFields.evaluateExpressionFields)({ inputs: inputs, context: context, feature: feature }).finally(function () {\n removeZValueToOLFeatureGeometry({ feature: feature }); // remove eventually Z Values\n feature.setTemporaryId();\n source.addFeature(feature);\n session.pushAdd(layerId, feature, false);\n inputs.features.push(feature);\n resolve(inputs);\n });\n });\n }\n\n Object.values(interactions).forEach(function (i) {\n return _this15.addInteraction(i);\n });\n (_selectInteractions = _this15._selectInteractions).push.apply(_selectInteractions, _toConsumableArray(Object.values(interactions)));\n }));\n }\n }, {\n key: 'stop',\n value: function stop() {\n var _this16 = this;\n\n Object.values(this.getSteps() || {}).forEach(function (s) {\n return s.reset && s.reset();\n });\n this._selectInteractions.forEach(function (i) {\n return _this16.removeInteraction(i);\n });\n\n if (this._vectorLayer) {\n this.getMap().removeLayer(this._vectorLayer);\n }\n // reset selected\n this.getInputs().features.forEach(function (f) {\n return f.setStyle(_this16._originalStyle);\n });\n\n this._originalStyle = null;\n this._vectorLayer = null;\n this._selectInteractions = [];\n this.multipleselectfeatures = [];\n }\n }]);\n\n return SelectElementsStep;\n}(_step.Step);\n\n},{\"../components/FormRelation.vue\":6,\"../components/Table.vue\":7,\"../g3wsdk/workflow/step\":14,\"../g3wsdk/workflow/workflow\":15,\"../interactions/pickfeaturesinteraction\":26,\"../utils/addRemoveToMultipleSelectFeatures\":29,\"../utils/chooseFeatureFromFeatures\":34,\"../utils/evaluateExpressionFields\":40,\"../utils/getEditingLayerById\":42,\"../utils/getFeatureTableFieldValue\":43,\"../utils/getFormFields\":44,\"../utils/getLayersDependencyFeatures\":45,\"../utils/getParentFormData\":47,\"../utils/getRelationsInEditingByFeature\":52,\"../utils/handleRelation1_1LayerFields\":53,\"../utils/isSameBaseGeometryType\":56,\"../utils/listenRelation1_1FieldChange\":57,\"../utils/promisify\":58,\"../utils/setAndUnsetSelectedFeaturesStyle\":59,\"../utils/setFeaturesSelectedStyle\":60,\"../utils/setLayerUniqueFieldValues\":61}],66:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.promisify = promisify;\nexports.$promisify = $promisify;\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 * Migrate your consumer code away from jQuery promises.\n * Covert a jQuery promise into an ES6 Promise\n * \n * @param promise jquery promise\n */\nfunction promisify(promise) {\n if (promise instanceof Promise) {\n return promise;\n }\n if (!promise || !promise.then) {\n console.trace(promise);\n return Promise.reject('not a promise');\n }\n return new Promise(function (resolve, reject) {\n promise.then(resolve).fail(reject);\n });\n}\n\n/**\n * Migrate your consumer code away from jQuery promises.\n * Convert ES6 Promise into jQuery\n * \n * @param promise async function or ES6 promise \n */\nfunction $promisify(promise) {\n if (undefined === promise) {\n console.trace();\n return $.Deferred(function (d) {\n return d.reject('not a promise');\n }).promise();\n }\n if (promise.always) {\n return promise;\n }\n return $.Deferred(function () {\n var _ref = _asyncToGenerator(function* (d) {\n try {\n d.resolve((yield promise instanceof Promise ? promise : promise()));\n } catch (e) {\n console.trace(e);d.reject(e);\n }\n });\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).promise();\n}\n\n},{}]},{},[25]);\n"],"names":["n","window","initConfig","group","plugins","Object","assign","version","hash","branch","r","e","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","inserted","cache","noop","insert","css","elem","document","createElement","setAttribute","textContent","styleSheet","cssText","getElementsByTagName","appendChild","removeChild","2","_ref","_areCoordinatesEqual","_getFeatureTableFieldValue","_asyncToGenerator","fn","gen","apply","this","arguments","Promise","resolve","reject","step","key","arg","info","value","error","done","then","err","defineProperty","default","name","props","commits","type","required","layer","relation","Boolean","data","features","readFeatures","efeatures","readEditingFeatures","methods","getFormattedValue","feat","get","getFlatCoordinates","getFeatureTableFieldValue","layerId","getId","feature","property","getValue","item","getFeature","getEditingValue","getEditingFeature","hasValue","efeat","id","_this","find","_this2","getType","getGeometry","isEdited","includes","undefined","areCoordinatesEqual","coordinates","getCoordinates","getAttrs","entries","getProperties","sort","b","getLayerById","g3wsdk","core","plugin","PluginsRegistry","getPlugin","service","mounted","$refs","filter","d","forEach","innerHTML","__esModule","__vue__options__","options","render","_vm","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","staticStyle","font-weight","margin","_v","_s","getName","_e","_l","keys","ref","refInFor","relations","attrs","add","update","delete","staticRenderFns","_scopeId","../utils/areCoordinatesEqual","../utils/getFeatureTableFieldValue","vueify/lib/insert-css","3","GUI","gui","$options","selectFeature","splice","push","getAttributesFeature","properties","attributes","map","attribute","label","zoomToFeature","getService","zoomToFeatures","highlight","duration","closeContent","index","on","click","$event","stopPropagation","for","class","g3wtemplate","font","4","layers","l","selected","watch","_id","domProps","5","_slicedToArray","_Toolbox","_promisify","_ref13","_ref9","_ref8","_ref7","_ref6","_ref5","ApplicationState","ApplicationService","CatalogLayersStoresRegistry","DataRouterService","arr","Array","isArray","Symbol","iterator","sliceIterator","_arr","_n","_d","_i","next","TypeError","_Toolbox2","obj","_g3wsdk$core","catalog","state","resourcesurl","showcommitbar","saving","layersInEditing","editingButtonsEnabled","selectedlayers","editinglayers","getEditableLayers","_ref2","config","editing","visible","_ref3","_ref4","title","getTitle","activetool","components","toolbox","transitions","addremovetransition","updateFilterLayers","_selectedlayers","$","selectlayers","val","trigger","updateLayersInEditing","bool","undo","canUndo","redo","canRedo","commit","toolboxId","canCommit","getToolBoxById","modal","always","startToolBox","online","getDependencies","isDirty","yield","commit_dirty","start","_x2","stopToolBox","history","promisify","stop","control","getToolBoxes","getMapControlByType","isToggled","toggle","_x3","startTool","toolId","_this3","enabled","stopTool","setActiveTool","getToolById","_x4","_x5","stopActiveTool","selectToolBox","isSelected","setSelected","clearMessage","toolboxselected","_x6","_this4","hasDependencies","concat","editor","getEditor","getEditingSource","setFeatures","clone","getSession","getHistory","clear","_x7","_enableEditingButtons","checkOfflineChanges","_this5","_ref10","_ref10$modal","_ref10$unlock","unlock","promises","layerIds","changes","JSON","parse","localStorage","getItem","setTimeout","_layerId","commitItems","when","setItem","computed","saveConfig","mode","fireEvent","django_admin_url","user","is_superuser","URL","baseurl","filemanager_url","onbeforeunload","getElementsByClassName","classList","has_layers","_ref12","is_commit","is_selected","setShow","created","_this6","appState","unByKeys","owner","setter","onafter","catch","notify","open","getLayers","EDITABLE","setInEditing","beforeDestroy","_this7","layerIdChanges","off","_ref14","un","featuresOnClose","inputs","fids","formatter","promise","arr2","from","getData","outputs","show","loading","resetDefault","message","height","showselectlayers","multiple","editinglayer","setselectedtoolbox","starttoolbox","stoptoolbox","setactivetool","stopactivetool","on-editing","update-filter-layers","href","target","../utils/promisify","./Toolbox.vue","6","_extends","_workflow2","_step","_cloneFeature","_setAndUnsetSelectedFeaturesStyle","_getRelationFieldsFromRelation","_getLayersDependencyFeatures","_getEditingLayerById","_convertToGeometry","_addTableFeature","_updateWorkflows","_getRelationId","_chooseFeatureFromFeatures","_isSameBaseGeometryType","_pickfeaturesinteraction","_eventbus","_workflows","_ref34","_unlinkRelation","_ref19","_ref16","ProjectsRegistry","Geometry","Layer","Feature","toRawType","FormService","fieldsMixin","resizeMixin","PickFeatureInteraction","PickCoordinatesInteraction","SELECTED_STYLES","_defineProperty","enumerable","configurable","writable","_toConsumableArray","unlinkRelation","_x8","source","prototype","hasOwnProperty","project","geoutils","i18n","tPlugin","utils","vue","services","_g3wsdk$gui$vue$Mixin","Mixins","mediaMixin","_g3wsdk$ol$interactio","ol","interactions","Workflow","Step","OpenFormStep","OpenTableStep","AddFeatureStep","ModifyGeometryVertexStep","MoveFeatureStep","color","Point","style","Style","image","Circle","radius","fill","Fill","MultiPoint","Linestring","stroke","Stroke","width","MultiLinestring","Polygon","MultiPolygon","mixins","show_vector_tools","disabled","copylayerid","copyFeatureLayers","active","placeholdersearch","getResourcesUrl","resize","table","$el","display","relation_body","querySelector","offsetHeight","relation_header_title","relation_header_tools","isVectorRelation","relation_vector_tools","relationsTable","columns","adjust","copyFeatureFromOtherLayer","external","is_vector","isGeoLayer","runAddRelationWorkflow","workflow","_add_link_workflow","selectandcopy","copyLayer","isVector","help","closeVectorTools","$nextTick","addVectorRelation","LayerTypes","VECTOR","_layerType","updateSelectRelations","selectall","some","select","editAttributesRelations","steps","multi","_createWorkflowOptions","getLayer","getFeatureById","addRelationAndLink","relationAttributesSubset","fields","flatMap","indexOf","_createDataTable","relationTable","DataTable","autoWidth","columnDefs","orderable","targets","destroy","order","pageLength","responsive","scrollCollapse","scrollResize","scrollX","hide","search","draw","destroyTable","updateTable","updateNewRelationId","_new_relations_ids","clientid","newrelation","tools","ts","split","replace","onCommit","_ref11","_ref11$new_relations","new_relations","relationLayer","getEditingLayerById","child","new","getRelationFeatureValue","featureId","_relationLayerId","enableDOMElements","querySelectorAll","contains","remove","addTools","capabilities","Vue","observable","icon","TABLE","getTools","isPointGeometryType","getGeometryType","tool","getOperator","flat","relationtool","VM","relationfeature","selectStyle","cloneFeature","_relations","run","addTableFeature","getFieldsWithValues","relationFeatures","newFeatures","setAndUnsetSelectedFeaturesStyle","dialog","confirm","res","unique_fields","Stack","getCurrent","pushDelete","uniqueFieldsValues","Set","removeFeature","isNew","w","_ref15","getUid","getContextService","updateWorkflows","rf","currentRelationFeatureId","setModal","_workflow","movevertex","movefeature","unwatch","$watch","unbindEscKeyUp","bindEscKeyUp","getParents","setUpdate","force","_this8","_ref17","_ref17$isVector","hideContent","_options$context","context","fatherField","fatherValue","relationField","getRelationFieldsFromRelation","_relations2","keyRelationFeatureChange","_outputs$relationFeat","originalFeatures","setRelationFieldValue","_ref18","field","newFeature","set","parentFeature","updateFeature","session","pushUpdate","getParent","editable","evt","Observable","unByKey","_relations3","rollbackDependecies","linkRelation","getRelationFeatures","getLayersDependencyFeatures","_this9","operator","filterType","link","_getRelationFieldsFro2","ownField","excludeFeatures","reduce","accumulator","rField","values","getCurrentFeature","response","showContent","linked","beforeRun","originalRelation","rel","_ref21","_ref22","findIndex","rF","warning","closeUserMessage","toString","_this10","parentLayer","parentWorkflow","pk","isPkField","isEditingFieldEditable","father","getInputs","parent","excludeFields","_ref23","_ref24","_ref25","every","relationsLength","fieldrequired","_this11","isFieldRequired","show_add_link","_","beforeCreate","delayType","geometryType","_this12","self","bind","QUERYABLE","GEOLAYER","isSameBaseGeometryType","isMultiGeometry","getExternalLayers","getSource","getFeatures","toLowerCase","localeCompare","addExternalLayerKey","_ref27","_type","externalLayer","loadEventuallyRelationValuesForInputs","getEditingCapabilities","_Layer$LayerTypes$TAB","backbuttonlabel","_ref28","_this13","$promisify","editingLayer","getEditingLayer","_ref29","_ref30","addInteraction","picked","_x14","_x15","addStep","description","setUserMessageStepDone","registerEscKeyEvent","_this14","_ref32","_feature","_ref33","PickFeaturesInteraction","convertToGeometry","coordinate","query_point_tolerance","getCurrentProject","getQueryPointTolerance","multilayers","_x19","_x18","chooseFeatureFromFeatures","getEditingFields","attr","setTemporaryId","addFeature","pushAdd","showUserMessage","closable","autoclose","activated","mapExtent","getMapBBOX","runEventHandler","getRelationId","component","deactivated","zoomToExtent","margin-bottom","margin-left","toUpperCase","placeholder","modifiers","create","src","align","align-self","padding","checked","change","padding-top","$$i","$$a","$$el","$$c","$set","slice","_obj","toggled","aria-hidden","isMedia","getMediaType","mime_type","pop","getFieldType","../eventbus","../g3wsdk/workflow/step","../g3wsdk/workflow/workflow","../interactions/pickfeaturesinteraction","../utils/addTableFeature","../utils/chooseFeatureFromFeatures","../utils/cloneFeature","../utils/convertToGeometry","../utils/getEditingLayerById","../utils/getLayersDependencyFeatures","../utils/getRelationFieldsFromRelation","../utils/getRelationId","../utils/isSameBaseGeometryType","../utils/setAndUnsetSelectedFeaturesStyle","../utils/updateWorkflows","../workflows","7","_typeof","_getRelationsInEditing","Media_Field","constructor","Fields","media_field","g3w-media","dataTable","showTool","cap","outerHeight","showValue","headers","h","isMediaField","header","input","save","isrelation","_linkFeatures","cancel","deleteFeature","uid","element","relationinediting","getChildren","getRelationsInEditing","getRelations","getArray","result","rows","row","_x","copyFeature","__gis3w_feature_uid","setDataTable","editFeature","_feature2","linkFeature","addindex","disableSideBar","max-width","margin-right","../utils/getRelationsInEditing","8","getResolutionFromScale","snapInteraction","helpmessage","snapAll","editDisabled","startstopediting","hasRelations","dependencies","changingtools","canEdit","showtoolsoftool","toolsoftool","isLayerReady","ready","toolboxCursor","get_tool_title","language","$emit","fitZoomToScale","goToRes","getCenter","_constraints","scale","getMapUnits","toggleEditing","toggleTool","toggleFilterByRelation","_initSnap","snapFeatures","Collection","snapEvents","snapToolboxes","snapUnwatches","activeSnapInteraction","checkedAll","removeInteraction","extend","olKey","getFeaturesCollection","addSnapFeatures","settersAndKeys","addFeatures","onbefore","getState","setShowSnapAll","_unloadSnap","event","showSnapAll","interaction","Snap","state.activetool","messages","state.editing.on","state.toolsoftool","newTools","oldTools","onChange","mobile","isMobile","toolboxactive","geolayer","background","pull-right","g3w-icon-toggled","panel-body","cursor","preventDefault","9","completeStep","buttonnext","dynamic","getFontClass","10","Session","ChangesManager","Flow","_createClass","Constructor","protoProps","staticProps","defineProperties","descriptor","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_classCallCheck","instance","Queque","task","tasks","reverse","shift","G3WObject","Deferred","counter","getContext","getSteps","runStep","runMicroTasks","setMessages","queques","micro","getLength","onDone","fail","onError","clearQueques","isRunning","end","getPrototypeOf","Actions","fnc","opposite","execute","object","items","historyId","action","newItems","own","_states","getLastHistoryState","stateId","s","current","Registry","register","unregister","started","_editor","uniqueId","Date","now","_history","setProperties","removeNotEditableProperties","getEditingNotEditableFields","unset","oldFeature","is_new","deleteState","ids","getCommitItems","states","getRelationStates","insertStates","newFeat","oldFeat","revert","clearHistory","rollback","unshift","temporarychange","setChanges","itemsToCommit","commitObj","lockids","isRelation","sessionRelation","getLockIds","GeoJSONFormat","format","GeoJSON","itemObj","writeFeatureObject","childs_properties","getChild","getFather","_ref4$layerId","MapLayersStoresRegistry","is3DGeometry","geometry","set3DGeometryType","_ref5$ids","_ref5$relations","_ref5$__esPromise","__esPromise","_response$response$ne","applyCommitResponse","saveChangesOnServer","_allfeatures","getfeatures","idx","_constrains","_this15","getLastStateId","relationStates","_state","insertState","_this16","getFirstState","_checkSessionItems","_this17","_this18","unsetnewid","setId","_this19","currentState","_this20","currentStateIndex","checkCommitItems","commitItem","getCurrentStateIndex","maxSteps","_this21","isDeleted","isUpdated","_item","isAdded","setters","Proxy","prop","__add","__getRelationStates","__insertState","removeState","removeStates","removeChangesFromHistory","__insertStates","__undo","__redo","setItemsFeatureIds","__setItemsFeatureIds","__getState","__getFirstState","getLastState","getCurrentState","__getCurrentState","__getCurrentStateIndex","__canCommit","__canUndo","__canRedo","__commit","sessions","_sessions","setSession","getSessions","../../utils/promisify","11","12","_toolbox","FeaturesStore","OlFeaturesStore","_features","dispatchEvent","removeAt","insertAt","opts","Editor","_featuresstore","_layer","_ref5$","ToolBox","rFeature","ff","childField","clearState","addLockIds","new_lockids","_commit","relationId","getRelationByFatherChildren","getFatherField","getChildField","_started","_filter","bbox","getFeaturesStore","resetEditingSource","doRequest","is_cached","extent","containsExtent","../../toolboxes/toolbox","13","_editor2","_deprecated","constant","DEFAULT_EDITING_CAPABILITIES","SessionsRegistry","Task","WorkflowsStack","../deprecated","./editing/editor","./workflow/step","./workflow/workflow","14","_options","_run","_stop","_inputs","_context","_outputs","running","usermessagesteps","escKeyPressEventHandler","setSteps","onRun","onStop","_tools","root","events","getMap","_pointerMoveCursor","getTargetElement","forEachFeatureAtPixel","pixel","_steps","setUserMessageSteps","_isContentChild","saveChange","callback","unbind","escKeyUpHandler","setInputs","setContext","_workflow$_toolsoftoo","toolsOfTools","snap","measure","removeMeasureInteraction","_toolsoftool","emit","__stop","MESSAGES","15","_promise","_child","_stackIndex","runOnce","_messages","_userMessageSteps","setUserMessagesSteps","helpMessage","_stepIndex","messagesSteps","getUserMessageSteps","addChild","getStackIndex","clearUserMessagesSteps","__run","isChild","position","size","hooks","body","clearMessages","_x9","_ref5$tools","setToolsOfTools","feats","keyCode","workflows","getFirst","getLast","getAt","../../components/UserMessage.vue","./step","16","close_editing_panel","errors","no_layers","some_layers","editing_changes","editing_data","editing_attributes","edit_relation","back_to_relations","no_relations_found","relation_data","relation_already_added","list_of_relations_feature","tooltip","edit_layer","edit","copy","pastefeaturesfromotherlayers","addpart","deletepart","merge","add_feature","delete_feature","move_feature","update_vertex","update_feature","update_multi_features","update_multi_features_relations","copyfeaturefromexternallayer","snapall","select_elements","select_element","edit_table","draw_new_feature","action_confirm","double_click_delete","edit_feature_vertex","move","select_feature_to_relation","show_edit_feature_form","pick_feature","insert_attributes_feature","draw_part","draw_geometry","selectSHIFT","selectDrawBox","selectDrawBoxAtLeast2Feature","selectPoint","selectPointSHIFT","selectMultiPointSHIFT","selectMultiPointSHIFTAtLeast2Feature","copyCTRL","selectStartVertex","selectToPaste","draw_split_line","featureslockbyotheruser","splitted","nosplittedfeature","press_esc","offline","delete_feature_relations","unlink_relation","commit_feature","toolbox_has_relation","saved","saved_local","loading_data","constraints","enable_editing","pdf","header_relation","header_add","header_update_delete","loading_table_data","copy_and_paste_from_other_layer_mandatory_fields","no_feature_selected","select_min_2_features","draw_or_copy","copy_feature_from_other_layer","form","tooltips","back_to_father","add_relation","link_relation","open_relation_tools","buttons","save_and_back","save_and_back_table","copyfeaturefromotherlayer","edit_attributes","copyfeaturefromprojectlayer","17","editing_multiple_relations","filter_by_relation","toolbox_has_no_geometry","18","19","20","_it2","_interopRequireDefault","_en2","_fi2","_se2","_fr2","_de2","_ro2","_pl2","it","en","fi","se","fr","de","ro","pl","./de","./en","./fi","./fr","./it","./pl","./ro","./se","21","save_table","22","23","24","25","_ref39","_rollback","allSettled","_ref40","_ref46","_ref45","_ref43","_ref41","_ref41$","del","_ref41$$relations","has_features","_ref42","_x23","_ref44","XHR","url","getUrl","params","vector","at","setGeometry","_x24","_x25","_i18n","_i18n2","_createFeature","_addPartToMultigeometries","G3W_FID","_g3wsdk$core$i18n","_g3wsdk$core$layer","LayersStore","MapLayersStoreRegistry","_g3wsdk$core$plugin","Plugin","PluginService","_g3wsdk$core$utils","Panel","serverErrorParser","parsers","Server","_g3wsdk$ol$utils","getScaleFromResolution","_ref20","_class","fontClasses","className","toolboxes","_toolboxes","layers_in_error","formComponents","subscribers","showToolboxesExcluded","cb","editableLayers","start-editing","show-relation-editing","start_editing","before","after","show_errors","editFeatureKey","panel","currentLayout","getCurrentLayoutName","unwatchLayout","layout","__current","layoutName","onMapControlToggled","isClickMap","getActiveTool","setService","subscribe","unsubscribe","addToolBox","resetAPIDefault","getSessionById","setApplicationEditingConstraints","undoRedoLayerUniqueFieldValues","undoRedoRelationUniqueFieldValues","stopEditing","startEditing","addLayerFeature","_init","setHookLoading","setApi","api","addNewFeature","createFeature","commitChanges","getMapService","updateLayerFeature","deleteLayerFeature","hidePanel","hideEditingPanel","showPanel","setSaveConfig","addFormComponents","addLayersStore","queryable","TOC_ORDER","getLayerForEditing","vectorurl","project_type","status","filter_expression","usecompleter","layer_id","has_filter","filter_fields","relation_reference","_options$values","getFilterData","fformatter","_options$values2","_response","getDataTable","ordering","orderbyvalue","fatherId","isChildEditable","vectorjoin_id","getColor","setColor","getLayersStore","addLayers","getFathers","isReady","_setupGUI","setReady","registerPlugin","gid","fid","tb","showEditingPanel","once","toolBox","getEditingConstraints","units","parseInt","getView","getResolution","setResolution","geom","addPartTool","op","_w","zoomToGeometry","addfeature","addPartToMultigeometries","setOperator","addToolGroup","sub","sessionItems","undoItems","relationSessionItems","redoItems","disableClickMapControls","_ref22$plugin","_ref22$toolboxes","toolboxIds","setEditingConstraints","commitpromises","refreshMap","_ref25$modal","_ref25$close","close","success","has_changes","serverError","SAVE","CANCEL","CLOSEMODAL","propsData","$mount","closeButton","curr","prev","currLayerId","relationsIds","has_relations","GIVE_ME_A_NAME","lock","featureid","online2","textMessage","_ref29$sessionItems","has_change","oldVal","newVal","_ref31","_ref32$","_x11","disablemapcontrols","setTitle","_ref36","_ref35","nofeatures","nofeatures_field","showgoback","saveAll","_x16","_x17","_ref37","_ref37$mode","_ref37$cb","_ref37$modal","_ref38","_ref38$components","internalPanel","resourcesUrl","closePanel","removeTools","removeLayersStore","setCurrentLayout","./components/Changes.vue","./components/Editing.vue","./g3wsdk","./g3wsdk/workflow/step","./g3wsdk/workflow/workflow","./i18n","./toolboxes/toolbox","./utils/addPartToMultigeometries","./utils/createFeature","./utils/getEditingLayerById","./utils/promisify","./utils/setAndUnsetSelectedFeaturesStyle","./workflows","26","_ol$interaction$Point","featuresAtPixel","getFeaturesAtPixel","layerFilter","hitTolerance","any","handleDownEvent","handleUpEvent","handleMoveEvent","Pointer","27","_createEditingDataOptions","_setLayerUniqueFieldValues","_chooseFeature","_evaluateExpressionFields","_getNotEditableFieldsNoPkValues","_getDeltaXY","_getRelationsInEditingByFeature","_isPointOnVertex","_handleSplitFeature","_splitFeatures","_dissolve","SelectElementsStep","PickFeatureStep","GEOMETRY_TYPES","removeZValueToOLFeatureGeometry","debounce","_ref50","is_line","is_poly","is_table","iconGeometry","editable_relations","is_point","isLineGeometryType","isPolygonGeometryType","isEditable","_start","__clearHistory","__getLastHistoryState","_session","__startSession","__stopSession","__getFeatures","__saveChangesOnServer","isStarted","__isStarted","__getHistory","__getEditor","__push","__pushDelete","__save","__pushAdd","__pushUpdate","__rollback","__rollbackDependecies","__undoSession","__redoSession","__getCommitItems","__clearSession","customTitle","toolboxheader","toolmessages","isFather","_unregisterStartSettersEventsKey","_getFeaturesOption","_enabledtools","_disabledtools","getEditingConstrains","chooseFeature","validate","getRelationsInEditingByFeature","ismobile","condition","_ref7$features","reset","_ref8$features","relationLayerId","vueInstance","template","showModalDialog","ok","$destroy","rLayer","isContentChild","setLayerUniqueFieldValues","enable","updatelayers","checkGeometry","BASELAYER","catalogService","_ref11$tool","openFormStep","chooselayer","selectgeometry","originalLayer","Draw","isPointOnVertex","drawend","edge","to","_evt$feature$getGeome","_evt$feature$getGeome2","x","y","deltaXY","getDeltaXY","featuresLength","promisesDefaultEvaluation","translate","_coordinates","_deltaXY","getEditingMediaFields","evaluateExpressionFields","noteditablefieldsvalues","getNotEditableFieldsNoPkValues","finally","originaLayer","originalFeature","geometries","MULTIPOLYGON","getPolygons","MULTILINE","MULTILINESTRING","getLineStrings","MULTIPOINT","getPoints","Vector","getPixelFromCoordinate","tempLayer","getStyle","addLayer","found","_geometries","g","removeLayer","draw_line","freehandCondition","never","isSplitted","splittedGeometries","splitFeatures","splittedGeometriesLength","handleSplitFeature","choose","dissolve","has_same_geom","disabledtoolsoftools","getMessages","Function","_startTool","_stopTool","originalState","_getFeaturesEvent","constraint","startResolve","_olStartKeysEvent","unwatches","inEditing","registerEvents","constraintFeatureFilter","createEditingDataOptions","in_editing","showZoomCursor","getCurrentToggledMapControl","cursorClass","setMouseCursor","getViewport","applicationConstraint","_options$toolboxheade","_options$startstopedi","_options$changingtool","unKeyLock","setEnablesDisablesTools","onceafter","subtitle","handlerAfterSessionGetFeatures","_handleScaleConstraint","setFeaturesOptions","stopLoading","setEditing","is_started","isMapHidden","startLoading","disableCanEditEvent","k","uw","enableTools","clearToolboxMessages","_stopSessionChildren","_ref33$ids","_ref33$relations","_ref33$__esPromise","_x20","setMessage","setEnable","keyChangeResolution","_ref35$tools","_ref35$options","_options$editing_cons","editing_constraints","_ref36$tools","_ref36$excludetools","excludetools","_ref36$options","_options$editing_cons2","UPDATEONEFEATUREONLYTOOLSID","update_tools","toolsId","_tools$enabled","disableTools","_tools$disabled","_ref37$options","_options$active","disabledtools","_state$toolsoftool","_deactivetools","getHelpMessage","getRunningStep","activeTool","removeAllListeners","checkSessionItems","_feature3","_this22","_feature4","_this23","_this24","_this25","_this26","_this27","getContentLength","relationsId","addRelationId","_ref47","_ref48","_x32","_this28","_startOp","hideSidebar","showSidebar","_x34","_x35","_x36","_this29","../components/CopyFeaturesFromOtherLayers.vue","../utils/addPartToMultigeometries","../utils/checkSessionItems","../utils/chooseFeature","../utils/createEditingDataOptions","../utils/dissolve","../utils/evaluateExpressionFields","../utils/getDeltaXY","../utils/getNotEditableFieldsNoPkValues","../utils/getRelationsInEditingByFeature","../utils/handleSplitFeature","../utils/isPointOnVertex","../utils/setLayerUniqueFieldValues","../utils/splitFeatures","../utils/unlinkRelation","28","setCoordinates","./promisify","29","addRemoveToMultipleSelectFeatures","selIndex","_originalStyle","_setFeaturesSelectedStyle","setFeaturesSelectedStyle","setStyle","../utils/setFeaturesSelectedStyle","30","createNewFeature","get_default_value","31","coords","c1","c2","poly","_coords","32","33","34","_ref$features","comp","../components/ChooseFeatureToEdit.vue","35","cloneNew","36","addZValueToOLFeatureGeometry","cloned","__layerId","convertSingleMultiGeometry","_g3wsdk$core$geoutils","37","38","39","_ref$index","_ref$clone","parser","jsts","io","OL3Parser","jstsdissolvedFeatureGeometry","baseFeature","baseFeatureGeometry","baseFeatureGeometryType","lineMerger","operation","linemerge","LineMerger","addLineString","GeometryFactory","createLineString","read","mergedLineString","getMergedLineStrings","toArray","union","dissolvedFeatureGeometry","write","dissolvedFeatureGeometryType","dissolvedFeatureGeometryCoordinates","40","exclude","default_expression","apply_on_update","inputService","handleDefaultExpressionFormInput","qgs_layer_id","parentData","_getParentFormData","getParentFormData","handleFilterExpressionFormInput","./getParentFormData","41","_getCoordinates","42","43","kv","kv_field","44","getFormFields","savedfeatureFnc","unique_values","unique","_value","current_values","v","sortNumericArray","sortAlphabeticallyArray","has","exclude_values","_handleMulti","sensitivity","ascending","stringify","forceNull","45","all","setLoading","_getRelationFieldsFro","featureValues","46","47","_Workflow$Stack$getPa","_Workflow$Stack$getPa2","48","getRelation1_1ChildFeature","childFeatureStore","fatherFormRelationField","fatherLayerId","childLayerId","locked","oncebefore","createFilterFormInputs","search_endpoint","49","_fatherField","_childField","50","childId","51","_ref$relations","52","relationsinediting","fatherLayer","valid","53","handleRelation1_1LayerFields","_ref2$features","_ref2$fields","newChild","childFeature","fieldsUpdated","isNewChildFeature","getPrefix","54","_ref2$splittedGeometr","oriFeature","splittedGeometry","_newFeature","55","56","57","listenRelation1_1FieldChange","ONE","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_ret","relationLockFeatures","editableRelatedFatherChild","formField","_getRelation1_1ChildFeature","_relationLockFeatures","return","./getRelation1_1ChildFeature","58","console","59","selectOriginalStyleHandle","originalStyle","_inputs$features","is_single","60","_getSelectedStyle","selectedStyle","createSelectedStyle","61","getWidgetData","join","62","splitfeature","splitFeature","63","_ref$dialog","unlink","./updateWorkflows","64","65","_getFormFields","_handleRelation1_1LayerFields","_listenRelation1_1FieldChange","_addRemoveToMultipleSelectFeatures","Component","AreaInteraction","LengthInteraction","createMeasureTooltip","removeMeasureTooltip","originalGeometryType","getEditingGeometryType","getOLGeometry","drawInteraction","finishCondition","drawstart","drawingFeature","addEventListener","_delKeyRemoveLastPoint","_add","setActive","measureInteraction","projection","getProjection","drawColor","removeLastPoint","removeEventListener","_snap","_modifyInteraction","Modify","deleteCondition","modifystart","modifyend","getExtent","isGeometryChange","changeKey","Translate","translatestart","translateend","_multi","layerName","formService","setLoadingContent","_originalFeatures","setInput","getLayerEditingFormStructure","showForm","crumb","dataid","isnew","context_inputs","formStructure","hasFormStructure","headerComponent","_saveAll","disableContent","getLastStep","saveDefaultExpressionFieldsNotDependencies","setFieldsWithValues","getFields","getBackButtonLabel","cbk","eventButtons","false","handleRelation","getRelationById","setCurrentComponentById","_x10","addComponents","_originalFeature","setContextService","_unwatchs","disableSidebar","is_parent_table","isType","contextService","closeForm","resetCurrentLayout","_Object$assign","content","internalComponent","_selectInteractions","single","multipleselectfeatures","_vectorLayer","geometryFunction","createBox","getFeaturesInExtent","dragbox","DragBox","shiftKeyOnly","forEachFeatureIntersectingExtent","chain","../components/FormRelation.vue","../components/Table.vue","../utils/addRemoveToMultipleSelectFeatures","../utils/getFormFields","../utils/getParentFormData","../utils/handleRelation1_1LayerFields","../utils/listenRelation1_1FieldChange","66"],"mappings":"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"} \ No newline at end of file