{"version":3,"names":["window","$","Formio","OriginalProvider","UrlStorageProvider","formio","maxUploadChunkSizeBytes","this","originalProvider","prototype","deleteFile","fileInfo","options","downloadFile","file","uploadFile","name","dir","progressCallback","uploadUrl","fileKey","groupPermissions","groupId","abortCallback","self","uploadRequest","form","Promise","resolve","reject","token","getToken","chunkedFileUpload","crypto","randomUUID","query","baseUrl","encodeURIComponent","projectUrl","project","_id","headers","undefined","uploadProgress","abortUpload","then","response","result","storage","url","size","type","data","catch","e","Error","responseJSON","message","private","formId","loadForm","status","title","formIoUrlStorageProvider","initialize","setBaseUrl","location","origin","Providers","providers","urlStorageProviderInitializer","jQuery"],"sources":["../../Assets/Scripts/formio-url-storage-provider.js"],"sourcesContent":["((window, $, Formio) => {\r\n let OriginalProvider;\r\n function UrlStorageProvider(formio, maxUploadChunkSizeBytes) {\r\n this.formio = formio;\r\n this.originalProvider = new OriginalProvider(formio);\r\n this.maxUploadChunkSizeBytes = maxUploadChunkSizeBytes;\r\n }\r\n\r\n UrlStorageProvider.prototype.deleteFile = function _deleteFile(fileInfo, options) {\r\n return this.originalProvider.deleteFile(fileInfo, options);\r\n };\r\n\r\n UrlStorageProvider.prototype.downloadFile = function _downloadFile(file, options) {\r\n return this.originalProvider.downloadFile(file, options);\r\n };\r\n\r\n UrlStorageProvider.prototype.uploadFile = function _uploadFile(\r\n file,\r\n name,\r\n dir,\r\n progressCallback,\r\n uploadUrl,\r\n options,\r\n fileKey,\r\n groupPermissions,\r\n groupId,\r\n abortCallback) {\r\n const self = this;\r\n function uploadRequest(form) {\r\n return new Promise((resolve, reject) => {\r\n const token = self.formio.getToken();\r\n $.chunkedFileUpload(\r\n file,\r\n uploadUrl,\r\n {\r\n name,\r\n dir,\r\n },\r\n self.maxUploadChunkSizeBytes,\r\n crypto.randomUUID(),\r\n {\r\n fileKey: fileKey,\r\n query: {\r\n baseUrl: encodeURIComponent(self.formio.projectUrl),\r\n project: form?.project || '',\r\n // We must use _id to create compatible request. See original source code:\r\n // https://github.com/formio/formio.js/blob/3c1c2443bf2278a21c65527adda24637bfa1537f/src/providers/storage/url.js#L89.\r\n // eslint-disable-next-line no-underscore-dangle\r\n form: form?._id || '',\r\n },\r\n headers: token ? { 'x-jwt-token': token } : undefined,\r\n uploadProgress: progressCallback,\r\n abortUpload: abortCallback,\r\n })\r\n .then((response) => {\r\n const result = {\r\n storage: self.name,\r\n name: name,\r\n url: response.url,\r\n size: file.size,\r\n type: file.type,\r\n data: {\r\n baseUrl: self.formio.projectUrl,\r\n project: form?.project || '',\r\n // We must use _id to create compatible result. See original source code:\r\n // https://github.com/formio/formio.js/blob/3c1c2443bf2278a21c65527adda24637bfa1537f/src/providers/storage/url.js#L99.\r\n // eslint-disable-next-line no-underscore-dangle\r\n form: form?._id || '',\r\n ...response,\r\n },\r\n };\r\n\r\n resolve(result);\r\n })\r\n .catch((e) => {\r\n reject(new Error(`Unable to upload file - ${e.responseJSON.message}`));\r\n });\r\n });\r\n }\r\n\r\n if (!this.maxUploadChunkSizeBytes) {\r\n return new Promise((resolve, reject) => {\r\n this.originalProvider.uploadFile(\r\n file,\r\n name,\r\n dir,\r\n progressCallback,\r\n uploadUrl,\r\n options,\r\n fileKey,\r\n groupPermissions,\r\n groupId,\r\n abortCallback)\r\n .then((response) => {\r\n if (response.data.status === 'error') {\r\n reject(response.data.message);\r\n }\r\n else {\r\n const result = {\r\n storage: self.name,\r\n name: response.name,\r\n url: response.data.url,\r\n size: file.size,\r\n type: file.type,\r\n ...response,\r\n };\r\n result.url = response.data.url;\r\n resolve(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (file.private && this.formio.formId) {\r\n return this.formio.loadForm().then(uploadRequest);\r\n }\r\n\r\n return uploadRequest();\r\n };\r\n\r\n UrlStorageProvider.prototype.title = 'Url';\r\n UrlStorageProvider.prototype.name = 'url';\r\n UrlStorageProvider.title = 'Url';\r\n\r\n function initialize(maxUploadChunkSizeBytes) {\r\n if (OriginalProvider) {\r\n // Already initialized.\r\n return;\r\n }\r\n\r\n Formio.setBaseUrl(window.location.origin);\r\n\r\n OriginalProvider = Formio.Providers.providers.storage.url;\r\n\r\n const urlStorageProviderInitializer = function url(formio) {\r\n return new UrlStorageProvider(formio, maxUploadChunkSizeBytes);\r\n };\r\n\r\n urlStorageProviderInitializer.title = UrlStorageProvider.title;\r\n\r\n Formio.Providers.providers.storage.url = urlStorageProviderInitializer;\r\n }\r\n\r\n window.formIoUrlStorageProvider = {\r\n initialize,\r\n };\r\n})(window, jQuery, window.Formio);\r\n"],"mappings":"aAAA,EAAEA,EAAQC,EAAGC,KACT,IAAIC,EACJ,SAASC,EAAmBC,EAAQC,GAChCC,KAAKF,OAASA,EACdE,KAAKC,iBAAmB,IAAIL,EAAiBE,GAC7CE,KAAKD,wBAA0BA,CACnC,CAEAF,EAAmBK,UAAUC,WAAa,SAAqBC,EAAUC,GACrE,OAAOL,KAAKC,iBAAiBE,WAAWC,EAAUC,EACtD,EAEAR,EAAmBK,UAAUI,aAAe,SAAuBC,EAAMF,GACrE,OAAOL,KAAKC,iBAAiBK,aAAaC,EAAMF,EACpD,EAEAR,EAAmBK,UAAUM,WAAa,SACtCD,EACAE,EACAC,EACAC,EACAC,EACAP,EACAQ,EACAC,EACAC,EACAC,GACA,MAAMC,EAAOjB,KACb,SAASkB,EAAcC,GACnB,OAAO,IAAIC,SAAQ,CAACC,EAASC,KACzB,MAAMC,EAAQN,EAAKnB,OAAO0B,WAC1B9B,EAAE+B,kBACElB,EACAK,EACA,CACIH,OACAC,OAEJO,EAAKlB,wBACL2B,OAAOC,aACP,CACId,QAASA,EACTe,MAAO,CACHC,QAASC,mBAAmBb,EAAKnB,OAAOiC,YACxCC,QAASb,GAAMa,SAAW,GAI1Bb,KAAMA,GAAMc,KAAO,IAEvBC,QAASX,EAAQ,CAAE,cAAeA,QAAUY,EAC5CC,eAAgBzB,EAChB0B,YAAarB,IAEhBsB,MAAMC,IACH,MAAMC,EAAS,CACXC,QAASxB,EAAKR,KACdA,KAAMA,EACNiC,IAAKH,EAASG,IACdC,KAAMpC,EAAKoC,KACXC,KAAMrC,EAAKqC,KACXC,KAAM,CACFhB,QAASZ,EAAKnB,OAAOiC,WACrBC,QAASb,GAAMa,SAAW,GAI1Bb,KAAMA,GAAMc,KAAO,MAChBM,IAIXlB,EAAQmB,EAAO,IAElBM,OAAOC,IACJzB,EAAO,IAAI0B,MAAM,2BAA2BD,EAAEE,aAAaC,WAAW,GACxE,GAEd,CAEA,OAAKlD,KAAKD,wBAiCNQ,EAAK4C,SAAWnD,KAAKF,OAAOsD,OACrBpD,KAAKF,OAAOuD,WAAWf,KAAKpB,GAGhCA,IApCI,IAAIE,SAAQ,CAACC,EAASC,KACzBtB,KAAKC,iBAAiBO,WAClBD,EACAE,EACAC,EACAC,EACAC,EACAP,EACAQ,EACAC,EACAC,EACAC,GACCsB,MAAMC,IACH,GAA6B,UAAzBA,EAASM,KAAKS,OACdhC,EAAOiB,EAASM,KAAKK,aAEpB,CACD,MAAMV,EAAS,CACXC,QAASxB,EAAKR,KACdA,KAAM8B,EAAS9B,KACfiC,IAAKH,EAASM,KAAKH,IACnBC,KAAMpC,EAAKoC,KACXC,KAAMrC,EAAKqC,QACRL,GAEPC,EAAOE,IAAMH,EAASM,KAAKH,IAC3BrB,EAAQmB,EACZ,IACF,GASlB,EAEA3C,EAAmBK,UAAUqD,MAAQ,MACrC1D,EAAmBK,UAAUO,KAAO,MACpCZ,EAAmB0D,MAAQ,MAqB3B9D,EAAO+D,yBAA2B,CAC9BC,WApBJ,SAAoB1D,GAChB,GAAIH,EAEA,OAGJD,EAAO+D,WAAWjE,EAAOkE,SAASC,QAElChE,EAAmBD,EAAOkE,UAAUC,UAAUrB,QAAQC,IAEtD,MAAMqB,EAAgC,SAAajE,GAC/C,OAAO,IAAID,EAAmBC,EAAQC,EAC1C,EAEAgE,EAA8BR,MAAQ1D,EAAmB0D,MAEzD5D,EAAOkE,UAAUC,UAAUrB,QAAQC,IAAMqB,CAC7C,EAKH,EAlJD,CAkJGtE,OAAQuE,OAAQvE,OAAOE","ignoreList":[]}