PageSourceSearch

https://www.fakturaonline.sk/vite/assets/KsefSubmissionTracker-CLobj1oe.js

js fakturaonline.sk collected 2026-10-06 20:21:34 UTC 16,942 bytes, 31 lines download raw bytes

1import{c as _}from"./actioncable.esm-BMIXSJNp.js";import{ap as u,cO as h,cP as v,cQ as m,cR as k,cS as p}from"./Button-B39sursQ.js";import"./_sentry-release-injection-file-DrfB2mix.js";import"./_commonjsHelpers-Bvr1vG5-.js";import"./index-yq28UAnt.js";import"./cs-BHj9zxo3.js";import"./preload-helper-CEASu22N.js";import"./uk-DukXYPB_.js";import"./posthog-BDG9UDsH.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";import"./js.cookie-fXY10Zsf.js";const b={name:"KsefSubmissionTracker",props:{invoiceId:{type:[String,Number],required:!1,default:null},invoiceData:{type:Object,default:null},compact:{type:Boolean,default:!1}},data(){return{invoice:null,retrying:!1,submitting:!1,cancelling:!1,cableSubscription:null,cableConsumer:null,now:Date.now(),progressTimer:null,showTechDetails:!1,validationErrors:[]}},computed:{currentInvoiceId(){var s;return this.invoiceId||((s=this.invoice)==null?void 0:s.id)},isInProgress(){var s;return((s=this.invoice)==null?void 0:s.ksefInProgress)||!1},isConfirmed(){var s;return((s=this.invoice)==null?void 0:s.ksefState)==="ksef_confirmed"},isFailed(){var s;return((s=this.invoice)==null?void 0:s.ksefState)==="ksef_failed"},isOffline24(){var s;return((s=this.invoice)==null?void 0:s.ksefState)==="offline24_pending"},isCancellable(){var s;return["pending_ksef","offline24_pending","pending_ksef_retry"].includes((s=this.invoice)==null?void 0:s.ksefState)},ksefNumber(){var s;return(s=this.invoice)==null?void 0:s.ksefReferenceNumber},submissionData(){var s,e;return((s=this.invoice)==null?void 0:s.submission)||((e=this.invoice)==null?void 0:e.ksefSubmission)||null},errorMessage(){var s,e;return((s=this.invoice)==null?void 0:s.errorMessage)||((e=this.submissionData)==null?void 0:e.errorMessage)||this.$t("ksef.errors.unknownError")},errorCode(){var s,e;return((s=this.invoice)==null?void 0:s.errorCode)||((e=this.submissionData)==null?void 0:e.errorCode)},exceptionDetails(){var s;return((s=this.submissionData)==null?void 0:s.exceptionDetails)||[]},retryable(){var e,t;return((e=this.invoice)==null?void 0:e.retryable)??((t=this.submissionData)==null?void 0:t.retryable)??!1},hasUpo(){var s;return((s=this.submissionData)==null?void 0:s.hasUpo)||!1},progressPercentage(){var t;if(!((t=this.invoice)!=null&&t.ksefSubmittedAt))return 0;const s=this.now-new Date(this.invoice.ksefSubmittedAt).getTime();return Math.min(Math.round(s/9e4*100),95)},progressStatus(){return this.progressPercentage>=95?"warning":null},friendlyErrorHint(){const e=`ksef.detail.error_code_hints.${String(this.errorCode||"")}`;if(this.$te(e))return this.$t(e);const t="ksef.detail.error_code_hints.default";return this.$te(t)?this.$t(t):null},parsedExceptionDetails(){return this.exceptionDetails.map(s=>this.parseExceptionDetail(s))},parsedFriendlyDetails(){return this.parsedExceptionDetails.filter(s=>s.friendly)},technicalRawDetails(){return this.parsedExceptionDetails.filter(s=>s.raw).map(s=>s.raw)}},methods:{parseExceptionDetail(s){let e=s.match(/The element '(\w+)' in namespace[\s\S]*?has incomplete content/);if(e)return this.buildFriendlyError(e[1],"required",s);let t=null;if(e=s.match(/:(\w+)' element is invalid/),e&&([,t]=e),t||(e=s.match(/Element '\{[^}]+\}(\w+)':/),e&&([,t]=e)),t){const a=this.extractConstraint(s);if(a)return this.buildFriendlyError(t,a,s)}const i=/\bhttp:\/\/crd\.gov\.pl/i.test(s)||/^The .* element is invalid/i.test(s);return{friendly:i?null:s,raw:i?s:null}},extractConstraint(s){if(/greater than the MaxLength value/i.test(s))return"maxLength";if(/less than the MinLength value/i.test(s))return"minLength";if(/greater than the MaxInclusive value/i.test(s))return"maxInclusive";if(/less than the MinInclusive value/i.test(s))return"minInclusive";if(/greater than the FractionDigits value/i.test(s))return"fractionDigits";if(/greater than the TotalDigits value/i.test(s))return"totalDigits";const e=s.match(/\[facet '([a-zA-Z]+)'\]/);if(e)return e[1];const t=s.match(/The (\w+) constraint failed/);return t?t[1]:null},buildFriendlyError(s,e,t){const i=`ksef.detail.xsd_fields.${s}`;if(!this.$te(i))return{friendly:null,raw:t};const a=this.$t(i),r=`ksef.detail.xsd_constraints.${e}`,o=this.$te(r)?this.$t(r):e;return{friendly:`${a}: ${o}`,raw:t}},async loadInitialData(){var s;if(this.invoiceData){this.invoice=this.invoiceData;return}try{const e=await this.$apollo.query({query:p,variables:{invoiceId:this.currentInvoiceId},fetchPolicy:"network-only"});(s=e.data)!=null&&s.invoiceKsefStatus&&(this.invoice=e.data.invoiceKsefStatus)}catch(e){console.error("Failed to load KSeF status:",e)}},handleStatusUpdate(s){var e;s.invoice&&(this.invoice={...this.invoice,...s.invoice}),((e=s.invoice)==null?void 0:e.ksefState)==="ksef_confirmed"&&this.showSuccessMessage()},async submitToKsef(){var s,e;try{this.submitting=!0,this.validationErrors=[];const i=(e=(s=(await this.$apollo.mutate({mutation:k,variables:{invoiceId:this.currentInvoiceId}})).data)==null?void 0:s.submitInvoiceToKsef)==null?void 0:e.errors;if(i&&i.length){this.validationErrors=i;return}this.$notify({type:"success",title:this.$t("ksef.messages.submission_started")})}
1catch{this.$notify({type:"error",title:this.$t("ksef.messages.submission_failed")})}finally{this.submitting=!1}},copyRefNumber(){this.ksefNumber&&navigator.clipboard.writeText(this.ksefNumber).then(()=>{this.$notify({type:"success",title:this.$t("ksef.detail.reference_copied"),duration:1500})})},formatDateTime(s){return s?new Date(s).toLocaleString("pl-PL",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""},subscribeToActionCable(){this.cableConsumer=_("/cable"),this.cableSubscription=this.cableConsumer.subscriptions.create("EventChannel",{connected:()=>{console.log("Connected to KSeF updates")},disconnected:()=>{console.log("Disconnected from KSeF updates")},received:s=>{if(s.invoice_id===parseInt(this.currentInvoiceId,10))switch(s.event){case"ksef_status_changed":this.handleStatusUpdate(s);break;case"ksef_confirmed":this.handleStatusUpdate(s);break;case"ksef_failed":this.handleStatusUpdate(s);break;case"ksef_offline24":this.handleStatusUpdate(s);break;case"ksef_offline24_recovered":this.handleStatusUpdate(s),this.showRecoveryMessage();break;default:console.log("Unknown KSeF event:",s.event)}}})},showSuccessMessage(){this.$store.dispatch("flashMessages/addMessage",{key:"ksef.messages.success",kind:"success",params:{ksefNumber:this.ksefNumber}})},showRecoveryMessage(){this.$store.dispatch("flashMessages/addMessage",{key:"ksef.offline24.recovered",kind:"success"})},async cancelSubmission(){var s;this.cancelling=!0;try{const e=await this.$apollo.mutate({mutation:m,variables:{invoiceId:this.currentInvoiceId}});if(((s=e.data.cancelKsefSubmission.errors)==null?void 0:s.length)>0)throw new Error(e.data.cancelKsefSubmission.errors.join(", "));e.data.cancelKsefSubmission.ksefStatus&&(this.invoice={...this.invoice,...e.data.cancelKsefSubmission.ksefStatus}),this.$notify({type:"success",title:this.$t("ksef.messages.cancel_success")})}catch{this.$notify({type:"error",title:this.$t("ksef.messages.cancel_failed")})}finally{this.cancelling=!1}},async retrySubmission(){var s;this.retrying=!0;try{const e=await this.$apollo.mutate({mutation:v,variables:{invoiceId:this.currentInvoiceId}});if(((s=e.data.retryKsefSubmission.errors)==null?void 0:s.length)>0)throw new Error(e.data.retryKsefSubmission.errors.join(", "));e.data.retryKsefSubmission.ksefStatus&&(this.invoice={...this.invoice,...e.data.retryKsefSubmission.ksefStatus})}catch{this.$store.dispatch("flashMessages/addMessage",{key:"ksef.messages.retry_failed",kind:"error"})}finally{this.retrying=!1}},async downloadUpo(){var s,e;try{const t=await this.$apollo.query({query:h,variables:{invoiceId:this.currentInvoiceId},fetchPolicy:"network-only"});if(!((s=t.data)!=null&&s.ksefUpo))throw new Error(this.$t("ksef.upo.not_available"));const{upoXml:i,ksefNumber:a}=t.data.ksefUpo,r=atob(i),o=new Uint8Array(r.length);for(let l=0;l<r.length;l+=1)o[l]=r.charCodeAt(l);const f=new Blob([o],{type:"application/xml"}),c=window.URL.createObjectURL(f),n=document.createElement("a");n.href=c;const d=((e=this.invoice)==null?void 0:e.invoiceNumber)||this.ksefNumber||"invoice";n.download=`UPO_${d.replace(/\//g,"_")}_${a}.xml`,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(c)}catch{this.$store.dispatch("flashMessages/addMessage",{key:"ksef.upo.download_failed",kind:"error"})}}},watch:{invoiceData:{handler(s){s&&(this.invoice=s)},deep:!0},"invoice.id":function(){this.showTechDetails=!1}},async mounted(){await this.loadInitialData(),this.subscribeToActionCable(),this.progressTimer=setInterval(()=>{this.now=Date.now()},1e3)},beforeDestroy(){this.cableSubscription&&this.cableSubscription.unsubscribe(),this.cableConsumer&&this.cableConsumer.disconnect(),clearInterval(this.progressTimer)}};var g=function(){var e=this,t=e._self._c;return t("div",[!e.invoice||!e.invoice.ksefState&&e.invoice.canSubmitToKsef?t("div",{staticClass:"ksef-not-submitted"},[t("div",{staticClass:"ksef-not-submitted__header"},[t("i",{staticClass:"el-icon-upload2 ksef-not-submitted__icon"}),e._v(" "),t("span",{staticClass:"ksef-not-submitted__title"},[e._v(e._s(e.$t("ksef.detail.not_submitted_title")))])]),e._v(" "),t("div",{staticClass:"ksef-not-submitted__body"},[t("p",{staticClass:"ksef-not-submitted__description"},[e._v(`
2        `+e._s(e.$t("ksef.detail.not_submitted_message"))+`
3      `)]),e._v(" "),t("Button",{attrs:{loading:e.submitting,icon:"icon icon-send",type:"primary",size:"small","full-width":"","data-analytics-id":"ksef.detail.submit_button"},on:{click:e.submitToKsef}},[e._v(`
4        `+e._s(e.$t("ksef.detail.submit_button"))+`
5      `)]),e._v(" "),e.validationErrors.length?t("div",{staticClass:"ksef-validation-errors"},[t("span",{staticClass:"ksef-validation-errors__title"},[e._v(`
6          `+e._s(e.$t("ksef.detail.validation_errors_title"))+`
7        `)]),e._v(" "),t("ul",{staticClass:"ksef-validation-errors__list"},e._l(e.validationErrors,function(i,a){return t("li",{key:a,staticClass:"ksef-validation-errors__item"},[e._v(`
8            `+e._s(i)+`
9          `)])}
9),0)]):e._e()],1)]):e.isInProgress?t("div",{staticClass:"ksef-in-progress"},[t("div",{staticClass:"ksef-in-progress__header"},[t("i",{staticClass:"el-icon-loading ksef-in-progress__icon"}),e._v(" "),t("span",{staticClass:"ksef-in-progress__title"},[e._v(e._s(e.$t("ksef.detail.in_progress_title")))])]),e._v(" "),t("div",{staticClass:"ksef-in-progress__body"},[t("p",{staticClass:"ksef-in-progress__description"},[e._v(`
10        `+e._s(e.$t("ksef.detail.in_progress_message"))+`
11      `)]),e._v(" "),t("Progress",{attrs:{percentage:e.progressPercentage,status:e.progressStatus}}),e._v(" "),e.isCancellable?t("Button",{staticClass:"mt-12",attrs:{loading:e.cancelling,icon:"icon icon-close",type:"warning",size:"small",plain:"","full-width":"","data-analytics-id":"ksef.detail.cancel_button"},on:{click:e.cancelSubmission}},[e._v(`
12        `+e._s(e.$t("ksef.detail.cancel_button"))+`
13      `)]):e._e()],1)]):e.isConfirmed?t("div",{staticClass:"ksef-confirmed"},[t("div",{staticClass:"ksef-confirmed__header"},[t("i",{staticClass:"el-icon-success ksef-confirmed__icon"}),e._v(" "),t("span",{staticClass:"ksef-confirmed__title"},[e._v(e._s(e.$t("ksef.detail.confirmed_title")))])]),e._v(" "),t("div",{staticClass:"ksef-ref"},[t("span",{staticClass:"ksef-ref__label"},[e._v(e._s(e.$t("ksef.detail.reference_number")))]),e._v(" "),t("div",{staticClass:"ksef-ref__value-row"},[t("span",{staticClass:"ksef-ref__value"},[e._v(e._s(e.ksefNumber))]),e._v(" "),t("button",{staticClass:"ksef-ref__copy-btn",attrs:{title:e.$t("ksef.detail.copy_reference")},on:{click:e.copyRefNumber}},[t("i",{staticClass:"icon icon-duplicate"})])])]),e._v(" "),t("div",{staticClass:"ksef-timestamps"},[e.invoice.ksefSubmittedAt?t("div",{staticClass:"ksef-detail-row"},[t("span",{staticClass:"label"},[e._v(e._s(e.$t("ksef.detail.submitted_at")))]),e._v(" "),t("span",{staticClass:"value"},[e._v(e._s(e.formatDateTime(e.invoice.ksefSubmittedAt)))])]):e._e(),e._v(" "),e.invoice.ksefConfirmedAt?t("div",{staticClass:"ksef-detail-row"},[t("span",{staticClass:"label"},[e._v(e._s(e.$t("ksef.detail.confirmed_at")))]),e._v(" "),t("span",{staticClass:"value"},[e._v(e._s(e.formatDateTime(e.invoice.ksefConfirmedAt)))])]):e._e()]),e._v(" "),t("Button",{staticClass:"mt-12",attrs:{icon:"icon icon-download",type:"success",size:"small",plain:"","full-width":"","data-analytics-id":"ksef.detail.download_upo"},on:{click:e.downloadUpo}},[e._v(`
14      `+e._s(e.$t("ksef.detail.download_upo"))+`
15    `)])],1):e.isFailed?t("div",{staticClass:"ksef-failed"},[t("div",{staticClass:"ksef-failed__header"},[t("i",{staticClass:"el-icon-error ksef-failed__icon"}),e._v(" "),t("span",{staticClass:"ksef-failed__title"},[e._v(e._s(e.$t("ksef.detail.failed_title")))])]),e._v(" "),t("div",{staticClass:"ksef-error-details"},[e.friendlyErrorHint?t("div",{staticClass:"ksef-error-details__hint"},[e._v(`
16        `+e._s(e.friendlyErrorHint)+`
17      `)]):e._e(),e._v(" "),e.parsedFriendlyDetails.length?t("ul",{staticClass:"ksef-error-details__parsed-list"},e._l(e.parsedFriendlyDetails,function(i,a){return t("li",{key:a,staticClass:"ksef-error-details__parsed-item"},[e._v(`
18          `+e._s(i.friendly)+`
19        `)])}),0):e._e(),e._v(" "),t("button",{staticClass:"ksef-error-details__tech-toggle",attrs:{type:"button"},on:{click:function(i){e.showTechDetails=!e.showTechDetails}}},[e._v(`
20        `+e._s(e.showTechDetails?e.$t("ksef.detail.tech_details_hide"):e.$t("ksef.detail.tech_details_show"))+`
21      `)]),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.showTechDetails,expression:"showTechDetails"}],staticClass:"ksef-error-details__tech"},[e.errorCode?t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.error_code")))]),e._v(" "),t("code",{staticClass:"ksef-error-details__code"},[e._v(e._s(e.errorCode))])]):e._e(),e._v(" "),t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.error_description")))]),e._v(" "),t("span",{staticClass:"ksef-error-details__value"}
21,[e._v(e._s(e.errorMessage))])]),e._v(" "),e.technicalRawDetails.length?t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.error_details")))]),e._v(" "),t("ul",{staticClass:"ksef-error-details__exception-list"},e._l(e.technicalRawDetails,function(i,a){return t("li",{key:a,staticClass:"ksef-error-details__exception-item"},[e._v(`
22              `+e._s(i)+`
23            `)])}),0)]):e._e()]),e._v(" "),e.submissionData&&e.submissionData.sessionReferenceNumber?t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.session_ref")))]),e._v(" "),t("code",{staticClass:"ksef-error-details__code"},[e._v(e._s(e.submissionData.sessionReferenceNumber))])]):e._e(),e._v(" "),e.submissionData&&e.submissionData.submittedAt?t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.submitted_at")))]),e._v(" "),t("span",{staticClass:"ksef-error-details__value"},[e._v(e._s(e.formatDateTime(e.submissionData.submittedAt)))])]):e._e(),e._v(" "),e.submissionData&&e.submissionData.retryCount!=null?t("div",{staticClass:"ksef-error-details__row"},[t("span",{staticClass:"ksef-error-details__label"},[e._v(e._s(e.$t("ksef.detail.retry_count")))]),e._v(" "),t("span",{staticClass:"ksef-error-details__value"},[e._v(e._s(e.submissionData.retryCount))])]):e._e()]),e._v(" "),e.retryable?t("Button",{staticClass:"mt-12",attrs:{loading:e.retrying,icon:"icon icon-reload",type:"danger",size:"small",plain:"","full-width":"","data-analytics-id":"ksef.detail.retry_button"},on:{click:e.retrySubmission}},[e._v(`
24      `+e._s(e.$t("ksef.detail.retry_button"))+`
25    `)]):e._e()],1):e.isOffline24?t("div",{staticClass:"ksef-offline24"},[t("div",{staticClass:"ksef-offline24__header"},[t("i",{staticClass:"el-icon-warning ksef-offline24__icon"}),e._v(" "),t("span",{staticClass:"ksef-offline24__title"},[e._v(e._s(e.$t("ksef.offline24.title")))])]),e._v(" "),t("div",{staticClass:"ksef-offline24__body"},[t("p",{staticClass:"ksef-offline24__description"},[e._v(`
26        `+e._s(e.$t("ksef.offline24.description"))+`
27      `)]),e._v(" "),t("p",{staticClass:"ksef-offline24__retry"},[e._v(`
28        `+e._s(e.$t("ksef.offline24.auto_retry"))+`
29      `)]),e._v(" "),t("Button",{staticClass:"mt-12",attrs:{loading:e.cancelling,icon:"icon icon-close",type:"warning",size:"small",plain:"","full-width":"","data-analytics-id":"ksef.detail.cancel_button"},on:{click:e.cancelSubmission}},[e._v(`
30        `+e._s(e.$t("ksef.detail.cancel_button"))+`
31      `)])],1)]):e._e()])},y=[],C=u(b,g,y,!1,null,"ecaf8e1c");const N=C.exports;export{N 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.