1import{c as D,m as I}from"./primevue-ca313794.js";import{L as C}from"./LayerAttributePopup-72843616.js";import{D as w,a as _,A as y,_ as A}from"./MetaDataImportPopup-e376edf7.js";import{_ as x,w as M,M as f}from"./index-cc1a661b.js";import{a4 as l,h as G,d as p,e as d,s as u,f as n,t as b,g as h,l as g,F as v}from"./vendor-ea0043bb.js";import"./BooleanInput-018648e6.js";import"./DateInput-c786bc11.js";import"./TimeInput-f2c928e0.js";import"./ColorInput-010b1085.js";import"./PhotoInput-46ed3585.js";import"./FileInput-8ff7d25a.js";import"./MapFeatureFormElement-1e618c8b.js";import"./RangeInput-700daa02.js";import"./ArrayInput-9b06f7f8.js";import"./VisibilityTriggers-70301eca.js";import"./BindToVariable-5f80cf31.js";import"./mapbox-v3-eadefc84.js";import"./geo-1391ac6a.js";import"./mapbox-addons-be198bf9.js";import"./editor-b65e0429.js";import"./pdf-7415fc80.js";const P={inject:["dialogRef"],name:"AttributesList",props:{element:{type:Object,required:!0},standardAttributes:{type:Array,required:!0},documentsList:{type:Array},isInModal:{type:Boolean,default:!1}},components:{DraggableGroup:w,DraggableAttribute:_,AttributeGroupPopup:y,MetaDataImportPopup:A},data(){return{attribute:null,attributeGroup:null,attributesGroup:null,restrictedAttributeTitles:[],restrictedGroupTitles:[],attributesArray:[],attributesGroupArray:[],attributeDialog:null,groupDialog:null,metadataDialog:null}},methods:{openMetaDataImport(){this.showMetaDataImport()},saveMetaDataImport(t,e=null){for(let s in t)this.attributeGroup=e,this.attributeSaved(t[s]);this.metadataDialog.close()},importFromJson(t,e){const s=t.target,r=new FileReader;r.onload=()=>{const i=JSON.parse(r.result);let o=!0;switch(e){case"style":i.hasOwnProperty("style")||(o=!1);break;case"label":i.hasOwnProperty("label")||(o=!1);break;case"attributes":i.hasOwnProperty("header")||(o=!1);break}o?(this.element.properties={...this.element.properties,...i},e==="attributes"&&this.attributesArrayMaker(),this.$toast.add({severity:"success",summary:"Done!",detail:this.$t("Import has been completed!"),life:5e3})):this.$toast.add({severity:"error",summary:"Error!",detail:this.$t("Import failed! Data is not correct!"),life:5e3})},r.readAsText(s.files[0])},exportToJson(t){const e={header:this.element?.properties?.header,headerGroup:this.element?.properties?.headerGroup},s=new Blob([JSON.stringify(e)],{type:"text/plain;charset=utf-8"});saveAs(s,`${this.element.title}-${t}.json`)},attributesArrayMaker(){for(let r=0;r<this.attributesGroupArray;r++)this.attributesGroupArray[r].children=[];let t=[],e=[];if(this.element.properties.headerGroup){for(let r in this.element.properties.headerGroup){const i=this.element.properties.headerGroup[r];i.hasOwnProperty("children")||(i.children=[]);const o=this.attributesGroupArray.findIndex(a=>a.title===r);e.push({...i,position:o>-1?o+1:i.position})}e=e.sort((r,i)=>r.position&&i.position?r.position-i.position:0)}for(let r in this.element.properties.header){const i=this.element.properties.header[r];if(i.dataType){const o=this.attributesArray.findIndex(a=>a.title===r);t.push({...i,position:o>-1?o+1:i.position})}}const s=M(e,[]);t=t.filter(r=>!r.groupId&&!s.find(i=>i.title===r.title)).sort((r,i)=>r.position&&i.position?r.position-i.position:0),this.attributesGroupArray=e,this.attributesArray=t},finalAttributeArray(){let t=[],e=1;for(let s=0;s<this.attributesGroupArray.length;s++)if(this.attributesGroupArray[s].position=e,e++,this.attributesGroupArray[s].children)for(let r=0;r<this.attributesGroupArray[s].children.length;r++)this.attributesGroupArray[s].children[r].groupId=this.attributesGroupArray[s].id,this.attributesGroupArray[s].children[r].position=e,e++,t.push(this.attributesGroupArray[s].children[r]);for(let s=0;s<this.attributesArray.length;s++)this.attributesArray[s].groupId=null,this.attributesArray[s].position=e,e++,t.push(this.attributesArray[s]);return t},setRestrictedAttributeTitles(){const t=[];this.attributesArray.forEach(e=>{t.push(e.title)}),this.attributesGroupArray.forEach(e=>{e.children.forEach(s=>{t.push(s.title)})}),this.restrictedAttributeTitles=t},showMetaDataImport(){this.metadataDialog=null,this.metadataDialog=this.$dialog.open(l("div"),{props:{modal:!0,style:{width:"640px"}},templates:{header:l("div",{id:"metadataModalHeader"})},emits:{onSave:this.saveMetaDataImport}}),this.$nextTick(()=>{this.metadataDialog.content=l(A,{groups:this.attributesGroupArray})})},showGroupPopup(){this.groupDialog=null;const t=this;this.groupDialog=this.$dialog.open(l("div"),{props:{modal:!0,style:{width:"640px"}},templates:{header:l("div",{id:"groupModalHeader"})},onClose(){t.attributesGroup=null},emits:{onSave:this.saveAttributeGroup}}),this.$nextTick(()=>{this.groupDialog.content=l(y,{data:this.attributesGroup,restrictedTitles:this.restrictedGroupTitles})})},showAttributePopup(){this.attributeDialog=null;const t=this;this.attributeDialog=this.$dialog.open(l("div"),{props:{modal:!0,style:{width:"640px"}},templates:{header:l("div",{id:"attributeModalHeader"})},onClose(){t.attribute=null,t.attributeGroup=null},emits:{onSave:this.attributeSaved}}),this.$nextTick(()=>{this.attributeDialog.content=l(C,{data:this.attribute,restrictedTitles:this.restrictedAttributeTitles,standardAttributes:this.standardAttributes,documentsList:this.documentsList})})},addAttribute(){this.setRestrictedAttributeTitles(),this.showAttributePopup()},editAttribute(t){this.setRestrictedAttributeTitles(),t.title?(this.attribute=this.attributesArray.find(e=>e.title===t.title),this.attribute||(delete t.position,t.groupId=null,this.attributesArray.push(t),this.attribute=t)):(this.attributeGroup=t.group.title,t.attribute?this.attribute=t.group.children.find(e=>e.title===t.attribute.title)||t.attribute:this.attribute=null),this.attribute&&this.restrictedAttributeTitles.splice(this.restrictedAttributeTitles.findIndex(e=>
1e===this.attribute.title),1),this.showAttributePopup()},deleteAttribute(t){this.$confirm.require({message:f(this.$t("Are you sure want to delete %s?"),[t.title]),header:this.$t("Confirm action"),icon:"pi pi-exclamation-triangle",accept:()=>{this.attributesArray=this.attributesArray.filter(e=>e.title!==t.title),this.attributesGroupArray.forEach(e=>{e.children=e.children.filter(s=>s.title!==t.title)})},reject:()=>{}})},attributeSaved(t,e,s){if(this.attributeGroup){const r=this.attributesGroupArray.find(i=>i.title===this.attributeGroup);if(e){const i=r.children.findIndex(o=>o.title===e.title);t.title!==e.title&&(t.previousTitle=e.title),t?.dataType?.code!==e?.dataType?.code&&(t.previousDataType=e.dataType),r.children[i]=t}else r.children[s?"unshift":"push"](t)}else if(e){const r=this.attributesArray.findIndex(i=>i.title===e.title);t.title!==e.title&&(t.previousTitle=e.title),t?.dataType?.code!==e?.dataType?.code&&(t.previousDataType=e.dataType),this.attributesArray[r]=t}else this.attributesArray[s?"unshift":"push"](t);this.attributeDialog&&this.attributeDialog.close()},addGroup(){this.restrictedGroupTitles=this.attributesGroupArray.map(t=>t.title),this.showGroupPopup()},editGroup(t){this.restrictedGroupTitles=[],this.attributesGroupArray.forEach(e=>{e.title===t.title?this.attributesGroup=e:this.restrictedGroupTitles.push(e.title)}),this.showGroupPopup()},deleteGroup(t){this.$confirm.require({message:f(this.$t("Are you sure want to delete %s?"),[t.title]),header:this.$t("Confirm action"),icon:"pi pi-exclamation-triangle",accept:()=>{this.attributesGroupArray=this.attributesGroupArray.filter(e=>e.title!==t.title);for(let e of t.children)delete e.groupId,this.attributesArray.push(e)},reject:()=>{}})},saveAttributeGroup(t,e,s){if(this.element.properties.headerGroup||(this.element.properties.headerGroup={}),e){const r=this.attributesGroupArray.findIndex(i=>i.title===e.title);this.attributesGroupArray[r]=t}else this.attributesGroupArray[s?"unshift":"push"](t);this.groupDialog.close()},save(){let t=this.finalAttributeArray();this.element.properties.header={};for(let e=0;e<t.length;e++)this.element.properties.header[t[e].title]={...t[e]};this.element.properties.headerGroup={};for(let e=0;e<this.attributesGroupArray.length;e++)this.element.properties.headerGroup[this.attributesGroupArray[e].title]={...this.attributesGroupArray[e]};this.$emit("save",this.element),this.dialogRef.close()},close(){this.dialogRef.close()}}},$={class:"p-button p-component p-button-primary gis-upload-button mr-2 mb-2"},E=n("i",{class:"pi pi-upload mr-2"},null,-1),S={class:"p-button-label"},j={key:0},B={key:2},L={class:"flex justify-content-end"};function O(t,e,s,r,i,o){const a=D,c=I,T=G("DraggableGroup"),k=G("DraggableAttribute");return p(),d(v,null,[u(a,{onClick:o.addAttribute,label:t.$t("Create attribute"),class:"mr-2 mb-2",severity:"success",icon:"pi pi-plus"},null,8,["onClick","label"]),u(a,{onClick:o.addGroup,label:t.$t("Create group"),class:"mr-2 mb-2",severity:"success",icon:"pi pi-plus"},null,8,["onClick","label"]),n("label",$,[E,n("span",S,b(t.$t("Import from .json")),1),n("input",{type:"file",accept:"application/json",onChange:e[0]||(e[0]=m=>o.importFromJson(m,"attributes"))},null,32)]),u(a,{onClick:e[1]||(e[1]=m=>o.exportToJson()),class:"p-button-primary mr-2 mb-2",icon:"pi pi-download",label:t.$t("Export to .json")},null,8,["label"]),u(a,{onClick:o.openMetaDataImport,class:"p-button-primary mr-2 mb-2",label:t.$t("Import from meta data"),icon:"pi pi-upload",severity:"info"},null,8,["onClick","label"]),u(c),n("div",null,[i.attributesGroupArray.length?(p(),d("h5",j,b(t.$t("Groups")),1)):h("",!0),i.attributesGroupArray.length>0?(p(),g(T,{key:1,groups:i.attributesGroupArray,onEditGroup:o.editGroup,onDeleteGroup:o.deleteGroup,onEditAttribute:o.editAttribute,onDeleteAttribute:o.deleteAttribute},null,8,["groups","onEditGroup","onDeleteGroup","onEditAttribute","onDeleteAttribute"])):h("",!0),i.attributesArray.length?(p(),d("h5",B,b(t.$t("Ungrouped attributes")),1)):h("",!0),i.attributesArray.length>0?(p(),g(k,{key:3,attributes:i.attributesArray,onEditAttribute:o.editAttribute,onDeleteAttribute:o.deleteAttribute},null,8,["attributes","onEditAttribute","onDeleteAttribute"])):h("",!0)]),s.isInModal?(p(),d(v,{key:0},[u(c),n("div",L,[u(a,{label:t.$t("Cancel"),icon:"pi pi-times",class:"p-button-danger border-noround-right",iconPos:"left",onClick:o.close},null,8,["label","onClick"]),u(a,{label:t.$t("Save"),icon:"pi pi-save",class:"p-button-primary border-noround-left",iconPos:"left",loading:t.attributeSaving,onClick:o.save},null,8,["label","loading","onClick"])])],64)):h("",!0)],64)}
1const at=x(P,[["render",O]]);export{at as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.