1import{s as D,E as T,f as E,a9 as S,a as $,dB as F,b as R,d,n as m,R as _}from"./index-ChSLynr4.js";import{A as w}from"./AppBreadcrumbs-B9e6ow05.js";import{m as p}from"./mdp-ui-kit.common-DBredVY1.js";import{v as k,c as M}from"./ValidationUtils-DMWQzUT1.js";import{A as f}from"./AppAlert.types-Dafd19Dq.js";import{A as P}from"./AppFormFrame-COS5un4n.js";import{A as V}from"./AppForm-CR-iQKQv.js";import{A as L}from"./AppLoadingTile-CFxg1aa0.js";import{A as N}from"./AppFileUpload-BbxXM_kv.js";import{O as v}from"./OfferService-CGwN8qO2.js";import{H as U}from"./HttpStatusCode-DcFhi7I7.js";import{A as B}from"./AppSelect-B-pRIMo_.js";import{A as Y}from"./AppFormRow-D7f_4zzY.js";import{A as G}from"./AppFormFieldset-olBVvfgg.js";import"./vue.runtime.esm-CL8Ml0hl.js";import"./StringUtils-CMeKVQbU.js";import"./FileUtils-CMUAZTTL.js";import"./RequestUtils-BYX7BqyI.js";import"./AppSpinner-CYP1qSJY.js";import"./AppFileItem-D0-4P_As.js";import"./OfferFileUtils-BXX2caxD.js";import"./download-file-B12JW61g.js";var l=(r=>(r.SUCCESS="SUCCESS",r.WARNING="WARNING",r.ERROR="ERROR",r))(l||{}),O=(r=>(r.SUCCESS="SUCCESS",r.FAILURE="FAILURE",r))(O||{}),g=(r=>(r.DUPLICATE="DUPLICATE",r))(g||{}),q=Object.defineProperty,W=Object.getOwnPropertyDescriptor,u=(r,t,e,i)=>{for(var o=i>1?void 0:i?W(t,e):t,s=r.length-1,c;s>=0;s--)(c=r[s])&&(o=(i?c(t,e,o):c(o))||o);return i&&o&&q(t,e,o),o};let n=class extends T{get payload(){var r;return!((r=this.importFiles[0])!=null&&r.file)||!this.syntaxItem?null:{file:this.importFiles[0].file,syntax:this.syntaxItem.value}}get isValidationSuccess(){return this.validationStatus===O.SUCCESS}get validationErrorsCount(){return this.validationReport.filter(({status:r})=>r===l.ERROR).length}get isImportSuccess(){return this.importOffersSuccessCount===this.importOffersTotalCount}get isImportFailure(){return this.importOffersSuccessCount===0}resetValidationResults(){this.validationStatus=null,this.validationReport=[],this.isSyntaxError=!1,this.isValidationResultsShown=!1}resetImportResults(){this.importOffersTotalCount=0,this.importOffersSuccessCount=0,this.importReport=[],this.isImportResultsShown=!1}async validateImportFile(){var r;if(this.payload){this.resetValidationResults(),this.isLoading=!0;try{const{result:t,report:e}=await v.validateImportFile(this.payload);this.validationStatus=t,this.validationReport=e,this.isValidationResultsShown=!0}catch(t){if(E.isAxiosError(t)&&((r=t.response)==null?void 0:r.status)===U.BAD_REQUEST){this.isSyntaxError=!0;return}throw S.addError("genericError"),t}finally{this.isLoading=!1}}}async importFile(){if(!(!this.isValidationSuccess||!this.payload)){this.resetImportResults(),this.isLoading=!0;try{const{total:r,imported:t,report:e}=await v.importFromFile(this.payload);this.importOffersTotalCount=r,this.importOffersSuccessCount=t,this.importReport=e,this.isValidationResultsShown=!1,this.isImportResultsShown=!0}catch(r){throw S.addError("genericError"),r}finally{this.isLoading=!1}}}};u([F],n.prototype,"resetValidationResults",1);u([F],n.prototype,"resetImportResults",1);u([R],n.prototype,"validateImportFile",1);u([R],n.prototype,"importFile",1);n=u([$({generateMutationSetters:!0})],n);const a=new n({state:{isLoading:!1,isSyntaxError:!1,syntaxItem:null,importFiles:[],validationStatus:null,validationReport:[],importOffersTotalCount:0,importOffersSuccessCount:0,importReport:[],isValidationResultsShown:!1,isImportResultsShown:!1},store:D,name:"importOffer"}),j=[{label:"JSON-LD",value:"application/ld+json"},{label:"RDF/XML",value:"application/rdf+xml"}],I={[l.SUCCESS]:f.SUCCESS,[l.WARNING]:f.WARNING,[l.ERROR]:f.DANGER},x=d({name:"ImportDetails",components:{AppFormField:p.AppFormField,AppAlert:p.AppAlert},props:{report:{type:Array,default:()=>[]}},computed:{REPORT_STATUS_TO_ALERT_TYPE(){return I},ReportStatus(){return l},ImportErrorReason(){return g}}});var h={en:{successful:"Import successful: Offer '{title}', id {id} created",failedDuplicate:"Import failed: Offer '{title}', Reason: offer with same 'dct:identifier' exists already",failed:"Import failed: Offer '{title}', Reason: technical error ({reason}), please contact the support."}
1,de:{successful:"Import erfolgreich: Datenangebot '{title}', id {id} angelegt",failedDuplicate:"Import fehlgeschlagen: Datenangebot '{title}', Grund: Es existiert bereits ein Datenangebot mit dem gleichen Wert 'dct:identifier'",failed:"Import fehlgeschlagen: Datenangebot '{title}', Grund: technischer Fehler ({reason}), bitte kontaktieren Sie den Support."}};const z=h;h.en;h.de;function b(r){const t=r.options||r;t.__i18n=t.__i18n||[],t.__i18n.push(JSON.stringify(z))}var X=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("AppFormField",{staticClass:"import-details",scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label"},[t._t("label")],2)]},proxy:!0},{key:"default",fn:function(){return t._l(t.report,function(i,o){return e("AppAlert",{key:o,staticClass:"import-details__alert",attrs:{type:t.REPORT_STATUS_TO_ALERT_TYPE[i.status]},scopedSlots:t._u([{key:"title",fn:function(){return[i.status===t.ReportStatus.SUCCESS?[t._v(" "+t._s(t.$t("successful",{id:i.publicationId,title:i.title}))+" ")]:i.reason===t.ImportErrorReason.DUPLICATE?[t._v(" "+t._s(t.$t("failedDuplicate",{title:i.title}))+" ")]:[t._v(" "+t._s(t.$t("failed",{title:i.title,reason:i.message}))+" ")]]},proxy:!0}],null,!0)})})},proxy:!0}],null,!0)})},H=[];typeof b=="function"&&b(x);var J=m(x,X,H,!1,null,null);const K=J.exports,Q=d({name:"ValidationDetails",components:{AppFormField:p.AppFormField,AppAlert:p.AppAlert},props:{report:{type:Array,default:()=>[]}},computed:{REPORT_STATUS_TO_ALERT_TYPE(){return I}}});var Z=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("AppFormField",{staticClass:"validation-details",scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label"},[t._t("label")],2)]},proxy:!0},{key:"default",fn:function(){return t._l(t.report,function(i,o){return e("AppAlert",{key:o,staticClass:"validation-details__alert",attrs:{type:t.REPORT_STATUS_TO_ALERT_TYPE[i.status]},scopedSlots:t._u([{key:"title",fn:function(){return[t._v(t._s(i.message))]},proxy:!0}],null,!0)})})},proxy:!0}],null,!0)})},tt=[],et=m(Q,Z,tt,!1,null,null);const rt=et.exports,C=d({name:"ImportOfferForm",components:{ValidationDetails:rt,ImportDetails:K,AppFormFieldset:G,AppFormRow:Y,AppFileUpload:N,AppLoadingTile:L,AppForm:V,AppFormFrame:P,AppFormField:p.AppFormField,AppSelect:B,AppAlert:p.AppAlert},emits:["validate","import"],computed:{RouteName(){return _},importOfferModule(){return a},isFormDisabled(){return a.isLoading||this.$v.$error},isValidationDisabled(){return this.isFormDisabled||a.isValidationSuccess},isImportDisabled(){return this.isFormDisabled||!a.isValidationSuccess||a.isImportResultsShown},SYNTAX_LIST(){return j},AlertType(){return f},validator(){return M(this.$v.importOfferModule)}},methods:{handleDelete({id:r}){a.importFiles=a.importFiles.filter(t=>t.id!==r)},handleValidate(){this.$v.$touch(),!this.isValidationDisabled&&this.$emit("validate")},handleImport(){this.$v.$touch(),!this.isImportDisabled&&this.$emit("import")}},validations(){return{importOfferModule:{importFiles:{required:r=>r.length>0},syntaxItem:{required:k.required}}}}});var y={en:{importOfferTitle:"Import Offers",importOfferDescription:`Please specify the file in DCAT-AP.de 2.0 format to be imported for validation. The file can contain one or more data offers. The validation rules are described in the metadata upload interface documentation, which you can find in the {link}. 2 3 After successful validation, you can import the data offers. The data offers are then created with the status âIn progressâ. Please complete the metadata for each of the imported data offers as far as possible using the editing screen. You must then publish the data offer so that it is also visible to other users.`,downloadArea:"download area",importFileLabel:"Import File",syntaxLabel:"Syntax",syntaxPlaceholder:"Select Syntax",validate:"Validate",import:"Import",invalidFileSyntax:"The file does not have a valid format.",summary:"Summary",resultDetails:"Result Details",errors:"{count} errors | {count} error | {count} errors",validationSuccess:"Validation successful. You can now create the data offer(s) using the âImportâ button.",validationFailure:"Validation not successful ({amount}). Please correct the import file.",importSuccess:"Import successful ({imported} offer(s) imported)",importPartialSuccess:"Import partially successful ({imported} of {total} offer(s) imported). Please check the details.",importFailure:"Import not successful (no offers imported). Please check the details."},de:{importOfferTitle:"Datenangebote importieren",importOfferDescription:`Bitte geben Sie die Datei im DCAT-AP.de 2.0 Format, die importiert werden soll, zur Validierung an. Die Datei kann eins oder auch mehrere Datenangebote enthalten. Die Validierungsregeln sind in der Metadaten-Upload Schnittstellendokumentation beschrieben, die Sie im {link} finden. 4 5 Nach erfolgreicher Validierung können Sie die Datenangebote importieren. Die Datenangebote werden dann im Status "in Bearbeitung" angelegt. Bitte vervollständigen für jedes der importierten Datenangebote die Metadaten soweit möglich über die Bearbeitungsmaske. AnschlieÃend müssen Sie das Datenangebot noch veröffentlichen, damit es auch für andere Nutzer und Nutzerinnen sichtbar ist.`,downloadArea:"Downloadbereich",importFileLabel:"Importdatei",syntaxLabel:"Syntax",syntaxPlaceholder:"Syntax auswählen",validate:"Validieren",import:"Importieren",invali
5dFileSyntax:"Die Datei hat kein gültiges Format.",summary:"Zusammenfassung",resultDetails:"Ergebnisse im Detail",errors:"{count} Fehler",validationSuccess:"Validierung erfolgreich. Sie können jetzt das Datenangebot/die Datenangebote über die Schaltfläche 'Import' anlegen.",validationFailure:"Validierung nicht erfolgreich ({amount}). Bitte korrigieren Sie die Importdatei.",importSuccess:"Import erfolgreich ({imported} Datenangebot(e) wurden importiert)",importPartialSuccess:"Import teilweise erfolgreich ({imported} von {total} Datenangebote(n) wurde(n) importiert). Bitte überprüfen Sie die Details.",importFailure:"Import nicht erfolgreich (es wurden keine Datenangebote importiert). Bitte überprüfen Sie die Details."}};const it=y;y.en;y.de;function A(r){const t=r.options||r;t.__i18n=t.__i18n||[],t.__i18n.push(JSON.stringify(it))}var ot=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("main",{staticClass:"import-offer-form"},[e("div",{staticClass:"container"},[e("AppFormFrame",{staticClass:"import-offer-form__frame"},[e("AppForm",{staticClass:"import-offer-form__form",attrs:{novalidate:""},scopedSlots:t._u([{key:"title",fn:function(){return[t._v(" "+t._s(t.$t("importOfferTitle"))+" ")]},proxy:!0},{key:"head",fn:function(){return[e("i18n",{staticClass:"import-offer-form__description",attrs:{path:"importOfferDescription",tag:"p"},scopedSlots:t._u([{key:"link",fn:function(){return[e("router-link",{attrs:{to:{name:t.RouteName.HELP_DOWNLOAD},target:"_blank",rel:"noopener noreferrer"}},[t._v(t._s(t.$t("downloadArea")))])]},proxy:!0}])})]},proxy:!0},{key:"footer",fn:function(){return[e("button",{staticClass:"button button--primary import-offer-form__validate-button",attrs:{type:"submit",disabled:t.isValidationDisabled},on:{click:t.handleValidate}},[t._v(" "+t._s(t.$t("validate"))+" ")]),e("button",{staticClass:"button button--primary import-offer-form__import-button",attrs:{type:"submit",disabled:t.isImportDisabled},on:{click:t.handleImport}},[t._v(" "+t._s(t.$t("import"))+" ")])]},proxy:!0}])},[t.importOfferModule.isLoading?e("AppLoadingTile",[t._v(" "+t._s(t.$t("generalFormLoadingText"))+" ")]):t._e(),e("AppFormFieldset",[e("AppFormRow",[e("AppFormField",{staticClass:"import-offer-form__file-upload",attrs:{"has-error":t.validator.importFiles.$error},scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label",attrs:{id:"import-file-label"}},[t._v(t._s(t.$t("importFileLabel")))])]},proxy:!0},{key:"default",fn:function({hasError:i,errorsId:o}){return[e("AppFileUpload",{attrs:{"is-multiple":!1,"aria-invalid":i,"aria-describedby":o,"aria-required":!0,"aria-labelledby":"import-file-label"},on:{delete:t.handleDelete},model:{value:t.importOfferModule.importFiles,callback:function(s){t.$set(t.importOfferModule,"importFiles",s)},expression:"importOfferModule.importFiles"}})]}},{key:"errors",fn:function(){return[t.validator.importFiles.$error?e("p",[t._v(" "+t._s(t.$t("errorFieldRequired",{field:t.$t("importFileLabel")}))+" ")]):t._e()]},proxy:!0}])})],1),e("AppFormRow",[e("div",{staticClass:"row"},[e("div",{staticClass:"col-lg-4"},[e("AppFormField",{staticClass:"import-offer-form__syntax",attrs:{"has-error":t.validator.syntaxItem.$error},scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label",attrs:{id:"syntaxLabel"}},[t._v(t._s(t.$t("syntaxLabel")))])]},proxy:!0},{key:"default",fn:function({hasError:i,errorsId:o}){return[e("AppSelect",{staticClass:"import-offer-form__syntax-select",attrs:{id:"syntax","aria-labelledby":"syntaxLabel","aria-invalid":i,"aria-describedby":o,"aria-required":!0,"has-search":!1,options:t.SYNTAX_LIST,placeholder:t.$t("syntaxPlaceholder"),"text-by":s=>s.label,"track-by":s=>s.value},model:{value:t.importOfferModule.syntaxItem,callback:function(s){t.$set(t.importOfferModule,"syntaxItem",s)},expression:"importOfferModule.syntaxItem"}})]}},{key:"errors",fn:function(){return[t.validator.syntaxItem.$error?e("p",[t._v(" "+t._s(t.$t("errorFieldRequired",{field:t.$t("syntaxLabel")}))+" ")]):t._e()]},proxy:!0}])})],1)])]),t.importOfferModule.isValidationResultsShown&&!t.importOfferModule.isValidationSuccess?e("AppFormRow",[e("AppFormField",{staticClass:"validation-results__validation-summary",scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label"},[t._v(t._s(t.$t("summary")))])]},proxy:!0},{key:"default",fn:function(){return[t._v(" "+t._s(t.$t("validationFailure",{amount:t.$tc("errors",t.importOfferModule.validationErrorsCount)}))+" ")]},proxy:!0}],null,!1,1450447341)})],1):t._e(),t.importOfferModule.isValidationResultsShown&&!t.importOfferModule.isValidationSuccess&&t.importOfferModule.validationReport.length>
50?e("AppFormRow",[e("ValidationDetails",{staticClass:"import-offer-form__validation-details",attrs:{report:t.importOfferModule.validationReport},scopedSlots:t._u([{key:"label",fn:function(){return[t._v(t._s(t.$t("resultDetails")))]},proxy:!0}],null,!1,4015426796)})],1):t._e(),t.importOfferModule.isImportResultsShown?e("AppFormRow",[e("AppFormField",{staticClass:"validation-results__import-summary",scopedSlots:t._u([{key:"head",fn:function(){return[e("span",{staticClass:"label"},[t._v(t._s(t.$t("summary")))])]},proxy:!0},{key:"default",fn:function(){return[t.importOfferModule.isImportFailure?[t._v(" "+t._s(t.$t("importFailure"))+" ")]:t.importOfferModule.isImportSuccess?[t._v(" "+t._s(t.$t("importSuccess",{imported:t.importOfferModule.importOffersSuccessCount}))+" ")]:[t._v(" "+t._s(t.$t("importPartialSuccess",{imported:t.importOfferModule.importOffersSuccessCount,total:t.importOfferModule.importOffersTotalCount}))+" ")]]},proxy:!0}],null,!1,4056721544)})],1):t._e(),t.importOfferModule.isImportResultsShown&&t.importOfferModule.importReport.length>0?e("AppFormRow",[e("ImportDetails",{staticClass:"import-offer-form__import-details",attrs:{report:t.importOfferModule.importReport},scopedSlots:t._u([{key:"label",fn:function(){return[t._v(t._s(t.$t("resultDetails")))]},proxy:!0}],null,!1,4015426796)})],1):t._e()],1),e("transition",{attrs:{name:"opacity",mode:"out-in"}},[t.importOfferModule.isSyntaxError?e("AppAlert",{staticClass:"import-offer-form__alert import-offer-form__alert--syntax-error",attrs:{type:t.AlertType.DANGER},scopedSlots:t._u([{key:"title",fn:function(){return[t._v(t._s(t.$t("invalidFileSyntax")))]},proxy:!0}],null,!1,1213121311)}):t.importOfferModule.isValidationResultsShown&&t.importOfferModule.isValidationSuccess?e("AppAlert",{staticClass:"import-offer-form__alert import-offer-form__alert--validation-success",attrs:{type:t.AlertType.SUCCESS},scopedSlots:t._u([{key:"title",fn:function(){return[t._v(t._s(t.$t("validationSuccess")))]},proxy:!0}])}):t._e()],1)],1)],1)],1)])},at=[];typeof A=="function"&&A(C);var st=m(C,ot,at,!1,null,"909528b8");const nt=st.exports,lt=d({name:"OfferImport",components:{ImportOfferForm:nt,AppBreadcrumbs:w},computed:{breadcrumbs(){return[_.ORGANISATION_OFFERS,_.OFFER_IMPORT]},formPayload(){return a.payload}},watch:{formPayload(){a.resetValidationResults(),a.resetImportResults()}},destroyed(){a.resetState()},methods:{handleValidate(){a.validateImportFile()},handleImport(){a.importFile()}}});var pt=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"offer-import"},[e("AppBreadcrumbs",{staticClass:"offer-import__breadcrumbs",attrs:{items:t.breadcrumbs}}),e("ImportOfferForm",{staticClass:"offer-import__form",on:{import:t.handleImport,validate:t.handleValidate}})],1)},ut=[],ft=m(lt,pt,ut,!1,null,"738a2cc2");const kt=ft.exports;export{kt 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.