@sd-angular/core 1.3.50 → 1.3.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@sd-angular/core/api"),require("uuid"),require("object-hash"),require("export-to-csv"),require("exceljs"),require("@sd-angular/core/notify"),require("@sd-angular/core/utility"),require("@sd-angular/core/common")):"function"==typeof define&&define.amd?define("@sd-angular/core/export",["exports","@angular/core","@sd-angular/core/api","uuid","object-hash","export-to-csv","exceljs","@sd-angular/core/notify","@sd-angular/core/utility","@sd-angular/core/common"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.export={}),e.ng.core,e["sd-angular"].core.api,e.uuid,e["object-hash"],e.exportToCsv,e.exceljs,e["sd-angular"].core.notify,e["sd-angular"].core.utility,e["sd-angular"].core.common)}(this,(function(e,t,r,n,i,o,l,a,s,c){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=u(i),d={generateTemplate:"/excel/generateTemplate",uploadTemplate:"/excel/uploadTemplate",generateUploadTemplate:"/excel/generateUploadTemplate",export:"/excel/export",downloadByTemplate:"/excel/downloadByTemplate",filesInFolder:"/excel/filesInFolder",removeFile:"/excel/remove",sdExport:"/excel/sd-export",sdExportByTemplate:"/excel/sd-export-by-template",sdMergePDF:"/excel/sd-merge-pdf",sdGenerateTemplate:"/excel/sd-generate-template"};function p(e,t,r,n){return new(r||(r=Promise))((function(i,o){function l(e){try{s(n.next(e))}catch(e){o(e)}}function a(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(l,a)}s((n=n.apply(e,t||[])).next())}))}function h(e,t){var r,n,i,o,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return l.label++,{value:o[1],done:!1};case 5:l.label++,n=o[1],o=[0];continue;case 7:o=l.ops.pop(),l.trys.pop();continue;default:if(!(i=l.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){l=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){l.label=o[1];break}if(6===o[0]&&l.label<i[1]){l.label=i[1],i=o;break}if(i&&l.label<i[2]){l.label=i[2],l.ops.push(o);break}i[2]&&l.ops.pop(),l.trys.pop();continue}o=t.call(e,l)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)l.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return l}var v,g,b,w,x,S,C;Object.create;function F(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}var T=function(){function e(e,t,r,i){var a=this;this.apiService=e,this.utilityService=t,this.notifyService=r,this.firebaseConfiguration=i,v.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{bold:!0,size:11,color:{argb:"000000"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"FAFAFA"}}}),g.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{bold:!0,size:11,color:{argb:"FFFFFF"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"143180"}}}),b.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{italic:!0,size:11,color:{argb:"FFFFFF"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"FF1744"}}}),w.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{wrapText:!0},font:{italic:!0,size:9,color:{argb:"000000"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"CFD8DC"}}}),x.set(this,{alignment:{vertical:"middle",wrapText:!0}}),S.set(this,(function(e,t){var r=f.default({folder:a.folder,userFolder:a.userFolder});return t?(r=f.default({folder:a.folder,group:t}),"dir1="+a.folder+"&dir2=G-"+r+"&dir3="+(e||"")):"dir1="+a.folder+"&dir2=U-"+r+"&dir3="+(e||"")})),this.generateTemplate=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i;return h(this,(function(o){switch(o.label){case 0:return t=d.sdGenerateTemplate,r=""+this.functionUrl+t,[4,this.apiService.post(r,e,null,{responseType:"arraybuffer"})];case 1:return n=o.sent(),i=new Blob([n],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"}),F(this,C).call(this,i,e.fileName||"Template"),[2]}}))}))},this.uploadTemplate=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s,c,u=this;return h(this,(function(f){switch(f.label){case 0:return t=e.key,r=e.group,n=e.validator,i=d.uploadTemplate,o=""+this.functionUrl+i+"?"+F(this,S).call(this,t,r),[4,this.utilityService.upload({extensions:["xlsx"],maxSizeInMb:.1,validator:n})];case 1:return(l=f.sent())?[4,this.apiService.upload(o,l).catch((function(e){throw u.notifyService.notify.warning(null==e?void 0:e.message),e}))]:[3,3];case 2:return a=f.sent(),s=a.filePath,c=a.fileName,[2,{filePath:s,fileName:c}];case 3:return[2,null]}}))}))},this.generateUploadTemplate=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s;return h(this,(function(c){switch(c.label){case 0:return t=e.key,r=e.template,n=e.group,i=d.generateUploadTemplate,o=""+this.functionUrl+i+"?"+F(this,S).call(this,t,n),[4,this.apiService.post(o,r)];case 1:return l=c.sent(),a=l.filePath,s=l.fileName,[2,{filePath:a,fileName:s}]}}))}))},this.removeFile=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o;return h(this,(function(l){switch(l.label){case 0:return t=e.key,r=e.group,n=e.fileName,i=d.removeFile,o=""+this.functionUrl+i+"?"+F(this,S).call(this,t,r)+"&name="+n,[4,this.apiService.post(o)];case 1:return l.sent(),[2]}}))}))},this.filesInFolder=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o,l;return h(this,(function(a){switch(a.label){case 0:return r=e.key,n=e.group,i=d.filesInFolder,o=""+this.functionUrl+i+"?"+F(this,S).call(this,r,n),[4,this.apiService.get(o)];case 1:return l=a.sent(),[2,(null===(t=l.files)||void 0===t?void 0:t.map((function(e){return{filePath:e.publicUrl,fileName:e.name}})))||[]]}}))}))},this.download=function(e,t){var r=document.createElement("a");r.download=(t||n.v4())+".xlsx",r.href=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)},this.exportByTemplate=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s;return h(this,(function(c){switch(c.label){case 0:return t=e.filePath,r=e.columns,n=e.items,i=e.fileName,o=d.sdExportByTemplate,l=""+this.functionUrl+o,[4,this.apiService.post(l,{filePath:t,columns:r,items:n,fileName:i},null,{responseType:"arraybuffer"})];case 1:return a=c.sent(),s=new Blob([a],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"}),F(this,C).call(this,s,i),[2]}}))}))},this.exportCSV=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,l,a,s,c,u;return h(this,(function(f){t=e.columns,r=e.items,n=e.fileName,i={};try{for(l=y(t),a=l.next();!a.done;a=l.next())s=a.value,i[s.field]=s.title}catch(e){c={error:e}}finally{try{a&&!a.done&&(u=l.return)&&u.call(l)}finally{if(c)throw c.error}}return new o.ExportToCsv({filename:(n||"CSV")+"_"+Date.toFormat(new Date,"yyyy-MM-dd-HH-mm-ss"),fieldSeparator:",",quoteStrings:'"',decimalSeparator:".",showLabels:!0,showTitle:!1,title:n||"CSV",useBom:!0}).generateCsv(function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(m(arguments[t]));return e}([i],r)),[2]}))}))},this.export=function(e){return p(a,void 0,void 0,(function(){var t,r,n,i,o,a,s,c,u,f,d,p,S,T,j,E,k,U,P,I,A,M,N=this;return h(this,(function(h){switch(h.label){case 0:t=e.columns,r=e.items,n=e.fileName,i=e.sheets,o=!1;try{for(a=y(t.entries()),s=a.next();!s.done;s=a.next()){if(c=m(s.value,2),u=c[0],!(f=c[1]).field)throw new Error("Column "+(u+1)+": Field is required");if(!f.title)throw new Error("Column "+(u+1)+": Title is required");f.description&&(o=!0)}}catch(e){P={error:e}}finally{try{s&&!s.done&&(I=a.return)&&I.call(a)}finally{if(P)throw P.error}}if(d=new l.Workbook,p=d.addWorksheet("data"),t.forEach((function(e,t){var r=120;e.width&&e.width.endsWith("px")&&(r=+e.width.replace("px","")),p.getColumn(t+1).width=r/7||20,p.getCell(1,t+1).style=F(N,v),e.required?p.getCell(2,t+1).style=F(N,b):p.getCell(2,t+1).style=F(N,g),p.getCell(1,t+1).value=e.field,p.getCell(2,t+1).value=e.title,o&&(p.getCell(3,t+1).style=F(N,w),p.getCell(3,t+1).value=e.description||"")})),null==i?void 0:i.length){S=function(e){if(e.name&&Array.isArray(e.items)&&Array.isArray(e.fields)){var t=d.addWorksheet(e.name);e.fields.forEach((function(e,r){t.getColumn(r+1).width=30,t.getCell(1,r+1).style=F(N,g),t.getCell(1,r+1).value=e})),e.items.forEach((function(r,n){e.fields.forEach((function(e,i){t.getCell(2+n,1+i).value=r[e],t.getCell(2+n,1+i).style=F(N,x)}))}))}};try{for(T=y(i),j=T.next();!j.done;j=T.next())E=j.value,S(E)}catch(e){A={error:e}}finally{try{j&&!j.done&&(M=T.return)&&M.call(T)}finally{if(A)throw A.error}}}return k=o?4:3,r.forEach((function(e,r){t.forEach((function(t,n){p.getCell(k+r,1+n).value=e[t.field],p.getCell(k+r,1+n).style=F(N,x)}))})),[4,d.xlsx.writeBuffer()];case 1:return U=h.sent(),F(this,C).call(this,new Blob([U],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),n),[2]}}))}))},this.mergePDF=function(e){return p(a,void 0,void 0,(function(){var t,r,i,o;return h(this,(function(l){switch(l.label){case 0:return t=d.sdMergePDF,r=""+this.functionUrl+t,[4,this.apiService.post(r,{urls:e},null,{responseType:"arraybuffer"})];case 1:return i=l.sent(),o=new Blob([i],{type:"application/pdf"}),F(this,C).call(this,o,""+n.v4()),[2]}}))}))},this.loadExportedItems=function(e){return p(a,void 0,void 0,(function(){return h(this,(function(e){return[2]}))}))},C.set(this,(function(e,t){void 0===t&&(t="Export");try{var r=window.URL.createObjectURL(e),n=document.createElement("a");t=(t=t.replace(/.xlsx/i,"")).replace(/.pdf/i,""),void 0!==n.download&&(n.setAttribute("href",r),n.setAttribute("download",t+"_"+(new Date).toFormat("yyyy_MM_dd_HH_mm")),n.style.visibility="hidden",document.body.appendChild(n),n.click(),document.body.removeChild(n))}catch(e){console.error("BlobToSaveAs error",e)}}))}return Object.defineProperty(e.prototype,"functionUrl",{get:function(){var e;return null===(e=this.firebaseConfiguration)||void 0===e?void 0:e.functionUrl},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"folder",{get:function(){var e=this.firebaseConfiguration;return e.project+"-"+e.env},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"userFolder",{get:function(){var e=this.firebaseConfiguration.folder;if(e)return"string"==typeof e?e:e()},enumerable:!1,configurable:!0}),e}();v=new WeakMap,g=new WeakMap,b=new WeakMap,w=new WeakMap,x=new WeakMap,S=new WeakMap,C=new WeakMap,T.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new T(t.ɵɵinject(r.SdApiService),t.ɵɵinject(s.SdUtilityService),t.ɵɵinject(a.SdNotifyService),t.ɵɵinject(c.FIREBASE_CONFIG,8))},token:T,providedIn:"root"}),T.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],T.ctorParameters=function(){return[{type:r.SdApiService},{type:s.SdUtilityService},{type:a.SdNotifyService},{type:void 0,decorators:[{type:t.Inject,args:[c.FIREBASE_CONFIG]},{type:t.Optional}]}]},e.API=d,e.SdExportService=T,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@sd-angular/core/api"),require("uuid"),require("object-hash"),require("export-to-csv"),require("exceljs"),require("@sd-angular/core/notify"),require("@sd-angular/core/utility"),require("@sd-angular/core/common")):"function"==typeof define&&define.amd?define("@sd-angular/core/export",["exports","@angular/core","@sd-angular/core/api","uuid","object-hash","export-to-csv","exceljs","@sd-angular/core/notify","@sd-angular/core/utility","@sd-angular/core/common"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.export={}),e.ng.core,e["sd-angular"].core.api,e.uuid,e["object-hash"],e.exportToCsv,e.exceljs,e["sd-angular"].core.notify,e["sd-angular"].core.utility,e["sd-angular"].core.common)}(this,(function(e,t,r,n,i,o,l,a,s,c){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=u(i),d={generateTemplate:"/excel/generateTemplate",uploadTemplate:"/excel/uploadTemplate",generateUploadTemplate:"/excel/generateUploadTemplate",export:"/excel/export",downloadByTemplate:"/excel/downloadByTemplate",filesInFolder:"/excel/filesInFolder",removeFile:"/excel/remove",sdExport:"/excel/sd-export",sdExportByTemplate:"/excel/sd-export-by-template",sdMergePDF:"/excel/sd-merge-pdf",sdGenerateTemplate:"/excel/sd-generate-template"};function h(e,t,r,n){return new(r||(r=Promise))((function(i,o){function l(e){try{s(n.next(e))}catch(e){o(e)}}function a(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(l,a)}s((n=n.apply(e,t||[])).next())}))}function p(e,t){var r,n,i,o,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return l.label++,{value:o[1],done:!1};case 5:l.label++,n=o[1],o=[0];continue;case 7:o=l.ops.pop(),l.trys.pop();continue;default:if(!(i=l.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){l=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){l.label=o[1];break}if(6===o[0]&&l.label<i[1]){l.label=i[1],i=o;break}if(i&&l.label<i[2]){l.label=i[2],l.ops.push(o);break}i[2]&&l.ops.pop(),l.trys.pop();continue}o=t.call(e,l)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)l.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return l}var v,g,b,w,x,C,S;Object.create;function F(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}var T=function(){function e(e,t,r,i){var a=this;this.apiService=e,this.utilityService=t,this.notifyService=r,this.firebaseConfiguration=i,v.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{bold:!0,size:11,color:{argb:"000000"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"FAFAFA"}}}),g.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{bold:!0,size:11,color:{argb:"FFFFFF"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"143180"}}}),b.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{vertical:"middle",horizontal:"center",wrapText:!0},font:{italic:!0,size:11,color:{argb:"FFFFFF"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"FF1744"}}}),w.set(this,{border:{bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},alignment:{wrapText:!0},font:{italic:!0,size:9,color:{argb:"000000"}},fill:{type:"pattern",pattern:"solid",fgColor:{argb:"CFD8DC"}}}),x.set(this,{alignment:{vertical:"middle",wrapText:!0}}),C.set(this,(function(e,t){var r=f.default({folder:a.folder,userFolder:a.userFolder});return t?(r=f.default({folder:a.folder,group:t}),"dir1="+a.folder+"&dir2=G-"+r+"&dir3="+(e||"")):"dir1="+a.folder+"&dir2=U-"+r+"&dir3="+(e||"")})),this.generateTemplate=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i;return p(this,(function(o){switch(o.label){case 0:return t=d.sdGenerateTemplate,r=""+this.functionUrl+t,[4,this.apiService.post(r,e,null,{responseType:"arraybuffer"})];case 1:return n=o.sent(),i=new Blob([n],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"}),F(this,S).call(this,i,e.fileName||"Template"),[2]}}))}))},this.uploadTemplate=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s,c,u=this;return p(this,(function(f){switch(f.label){case 0:return t=e.key,r=e.group,n=e.validator,i=d.uploadTemplate,o=""+this.functionUrl+i+"?"+F(this,C).call(this,t,r),[4,this.utilityService.upload({extensions:["xlsx"],maxSizeInMb:.1,validator:n})];case 1:return(l=f.sent())?[4,this.apiService.upload(o,l).catch((function(e){throw u.notifyService.notify.warning(null==e?void 0:e.message),e}))]:[3,3];case 2:return a=f.sent(),s=a.filePath,c=a.fileName,[2,{filePath:s,fileName:c}];case 3:return[2,null]}}))}))},this.generateUploadTemplate=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s;return p(this,(function(c){switch(c.label){case 0:return t=e.key,r=e.template,n=e.group,i=d.generateUploadTemplate,o=""+this.functionUrl+i+"?"+F(this,C).call(this,t,n),[4,this.apiService.post(o,r)];case 1:return l=c.sent(),a=l.filePath,s=l.fileName,[2,{filePath:a,fileName:s}]}}))}))},this.removeFile=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o;return p(this,(function(l){switch(l.label){case 0:return t=e.key,r=e.group,n=e.fileName,i=d.removeFile,o=""+this.functionUrl+i+"?"+F(this,C).call(this,t,r)+"&name="+n,[4,this.apiService.post(o)];case 1:return l.sent(),[2]}}))}))},this.filesInFolder=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,l;return p(this,(function(a){switch(a.label){case 0:return r=e.key,n=e.group,i=d.filesInFolder,o=""+this.functionUrl+i+"?"+F(this,C).call(this,r,n),[4,this.apiService.get(o)];case 1:return l=a.sent(),[2,(null===(t=l.files)||void 0===t?void 0:t.map((function(e){return{filePath:e.publicUrl,fileName:e.name}})))||[]]}}))}))},this.download=function(e,t){var r=document.createElement("a");r.download=(t||n.v4())+".xlsx",r.href=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)},this.exportByTemplate=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,l,a,s;return p(this,(function(c){switch(c.label){case 0:return t=e.filePath,r=e.columns,n=e.items,i=e.fileName,o=d.sdExportByTemplate,l=""+this.functionUrl+o,[4,this.apiService.post(l,{filePath:t,columns:r,items:n,fileName:i},null,{responseType:"arraybuffer"})];case 1:return a=c.sent(),s=new Blob([a],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"}),F(this,S).call(this,s,i),[2]}}))}))},this.exportCSV=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,l,a,s,c,u;return p(this,(function(f){t=e.columns,r=e.items,n=e.fileName,i={};try{for(l=y(t),a=l.next();!a.done;a=l.next())s=a.value,i[s.field]=s.title}catch(e){c={error:e}}finally{try{a&&!a.done&&(u=l.return)&&u.call(l)}finally{if(c)throw c.error}}return new o.ExportToCsv({filename:(n||"CSV")+"_"+Date.toFormat(new Date,"yyyy-MM-dd-HH-mm-ss"),fieldSeparator:",",quoteStrings:'"',decimalSeparator:".",showLabels:!0,showTitle:!1,title:n||"CSV",useBom:!0}).generateCsv(function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(m(arguments[t]));return e}([i],r)),[2]}))}))},this.export=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,a,s,c,u,f,d,h,C,T,j,k,E,P,U,B,I,N,A=this;return p(this,(function(p){switch(p.label){case 0:t=e.columns,r=e.items,n=e.fileName,i=e.sheets,o=!1;try{for(a=y(t.entries()),s=a.next();!s.done;s=a.next()){if(c=m(s.value,2),u=c[0],!(f=c[1]).field)throw new Error("Column "+(u+1)+": Field is required");if(!f.title)throw new Error("Column "+(u+1)+": Title is required");f.description&&(o=!0)}}catch(e){U={error:e}}finally{try{s&&!s.done&&(B=a.return)&&B.call(a)}finally{if(U)throw U.error}}if(d=new l.Workbook,h=d.addWorksheet("data"),t.forEach((function(e,t){var r=120;e.width&&e.width.endsWith("px")&&(r=+e.width.replace("px","")),h.getColumn(t+1).width=r/7||20,h.getCell(1,t+1).style=F(A,v),e.required?h.getCell(2,t+1).style=F(A,b):h.getCell(2,t+1).style=F(A,g),h.getCell(1,t+1).value=e.field,h.getCell(2,t+1).value=e.title,o&&(h.getCell(3,t+1).style=F(A,w),h.getCell(3,t+1).value=e.description||"")})),null==i?void 0:i.length){C=function(e){if(e.name&&Array.isArray(e.items)&&Array.isArray(e.fields)){var t=d.addWorksheet(e.name);e.fields.forEach((function(e,r){t.getColumn(r+1).width=30,t.getCell(1,r+1).style=F(A,g),t.getCell(1,r+1).value=e})),e.items.forEach((function(r,n){e.fields.forEach((function(e,i){t.getCell(2+n,1+i).value=r[e],t.getCell(2+n,1+i).style=F(A,x)}))}))}};try{for(T=y(i),j=T.next();!j.done;j=T.next())k=j.value,C(k)}catch(e){I={error:e}}finally{try{j&&!j.done&&(N=T.return)&&N.call(T)}finally{if(I)throw I.error}}}return E=o?4:3,r.forEach((function(e,r){t.forEach((function(t,n){h.getCell(E+r,1+n).value=e[t.field],h.getCell(E+r,1+n).style=F(A,x)}))})),[4,d.xlsx.writeBuffer()];case 1:return P=p.sent(),F(this,S).call(this,new Blob([P],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),n),[2]}}))}))},this.exportCustom=function(e){return h(a,void 0,void 0,(function(){var t,r,n,i,o,a,s,c,u,f,d,h,v,g,b,w,x,C,T,j,k,E,P,U,B,I,N,A;return p(this,(function(p){switch(p.label){case 0:if(t=e.fileName,!(null==(r=e.sheets)?void 0:r.length))return this.notifyService.notify.warning("Phải có ít nhất 1 sheet"),[2];n=new l.Workbook;try{for(i=y(r.entries()),o=i.next();!o.done;o=i.next()){a=m(o.value,2),s=a[0],c=a[1],u=c.name,f=c.columns,d=c.cells,h=n.addWorksheet(u||"Sheet "+(s+1));try{for(B=void 0,v=y(f||[]),g=v.next();!g.done;g=v.next())T=g.value,h.getColumn(T.index).style=T.style,h.getColumn(T.index).width=T.width}catch(e){B={error:e}}finally{try{g&&!g.done&&(I=v.return)&&I.call(v)}finally{if(B)throw B.error}}try{for(N=void 0,b=y(d),w=b.next();!w.done;w=b.next())x=w.value,C=x.row,T=x.column,j=x.value,k=x.style,h.getCell(C,T).style=k||h.getColumn(T).style,h.getCell(C,T).value=j,h.mergeCells()}catch(e){N={error:e}}finally{try{w&&!w.done&&(A=b.return)&&A.call(b)}finally{if(N)throw N.error}}}}catch(e){P={error:e}}finally{try{o&&!o.done&&(U=i.return)&&U.call(i)}finally{if(P)throw P.error}}return[4,n.xlsx.writeBuffer()];case 1:return E=p.sent(),F(this,S).call(this,new Blob([E],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),t),[2]}}))}))},this.mergePDF=function(e){return h(a,void 0,void 0,(function(){var t,r,i,o;return p(this,(function(l){switch(l.label){case 0:return t=d.sdMergePDF,r=""+this.functionUrl+t,[4,this.apiService.post(r,{urls:e},null,{responseType:"arraybuffer"})];case 1:return i=l.sent(),o=new Blob([i],{type:"application/pdf"}),F(this,S).call(this,o,""+n.v4()),[2]}}))}))},this.loadExportedItems=function(e){return h(a,void 0,void 0,(function(){return p(this,(function(e){return[2]}))}))},S.set(this,(function(e,t){void 0===t&&(t="Export");try{var r=window.URL.createObjectURL(e),n=document.createElement("a");t=(t=t.replace(/.xlsx/i,"")).replace(/.pdf/i,""),void 0!==n.download&&(n.setAttribute("href",r),n.setAttribute("download",t+"_"+(new Date).toFormat("yyyy_MM_dd_HH_mm")),n.style.visibility="hidden",document.body.appendChild(n),n.click(),document.body.removeChild(n))}catch(e){console.error("BlobToSaveAs error",e)}}))}return Object.defineProperty(e.prototype,"functionUrl",{get:function(){var e;return null===(e=this.firebaseConfiguration)||void 0===e?void 0:e.functionUrl},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"folder",{get:function(){var e=this.firebaseConfiguration;return e.project+"-"+e.env},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"userFolder",{get:function(){var e=this.firebaseConfiguration.folder;if(e)return"string"==typeof e?e:e()},enumerable:!1,configurable:!0}),e}();v=new WeakMap,g=new WeakMap,b=new WeakMap,w=new WeakMap,x=new WeakMap,C=new WeakMap,S=new WeakMap,T.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new T(t.ɵɵinject(r.SdApiService),t.ɵɵinject(s.SdUtilityService),t.ɵɵinject(a.SdNotifyService),t.ɵɵinject(c.FIREBASE_CONFIG,8))},token:T,providedIn:"root"}),T.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],T.ctorParameters=function(){return[{type:r.SdApiService},{type:s.SdUtilityService},{type:a.SdNotifyService},{type:void 0,decorators:[{type:t.Inject,args:[c.FIREBASE_CONFIG]},{type:t.Optional}]}]},e.API=d,e.SdExportService=T,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=sd-angular-core-export.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../projects/sd-core/export/src/lib/export.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/export/src/lib/export.service.ts"],"names":["API","generateTemplate","uploadTemplate","generateUploadTemplate","export","downloadByTemplate","filesInFolder","removeFile","sdExport","sdExportByTemplate","sdMergePDF","sdGenerateTemplate","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__values","o","s","m","i","__read","r","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","SdExportService","apiService","utilityService","notifyService","firebaseConfiguration","_this","_fieldStyle","set","border","bottom","style","left","right","alignment","vertical","horizontal","wrapText","font","bold","size","color","argb","fill","type","pattern","fgColor","_titleStyle","_requiredStyle","italic","_descriptionStyle","_cellStyle","_directory","key","group","hashedFolder","hash","folder","userFolder","template","url","functionUrl","post","responseType","buffer","_b","blob","Blob","_blobToSaveAs","fileName","args","validator","upload","extensions","maxSizeInMb","file","_c","catch","err","notify","warning","message","filePath","res","_a","files","map","publicUrl","name","download","link","document","createElement","uuid.v4","href","appendChild","click","removeChild","exportByTemplate","columns","items","exportCSV","option","headerCSV","columns_1","columns_1_1","column","field","title","ExportToCsv","filename","Date","toFormat","fieldSeparator","quoteStrings","decimalSeparator","showLabels","showTitle","useBom","generateCsv","arguments","concat","__spread","sheets","hasDescription","entries","_d","idx","Error","description","workbook","Workbook","firstSheet","addWorksheet","forEach","index","width","endsWith","replace","getColumn","getCell","required","sheet","Array","isArray","fields","newSheet_1","item","idx1","idx2","sheets_1","sheets_1_1","fromRow","xlsx","writeBuffer","_g","mergePDF","urls","loadExportedItems","window","URL","createObjectURL","undefined","setAttribute","visibility","console","defineProperty","prototype","project","env","Injectable","providedIn","SdApiService","SdUtilityService","SdNotifyService","Inject","FIREBASE_CONFIG","Optional"],"mappings":"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","sourcesContent":["export interface SdExportTemplate {\r\n fileName?: string;\r\n columns: SdExportTempateColumn[];\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface SdExportTempateColumn {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n color?: string;\r\n width?: string;\r\n description?: string;\r\n fontColor?: string;\r\n fill?: string;\r\n}\r\n\r\nexport interface SdExportFile {\r\n fileName?: string;\r\n filePath?: string;\r\n}\r\n\r\nexport interface SdExportColumn {\r\n field: string;\r\n title: string;\r\n description?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface IExportOption {\r\n columns: SdExportTempateColumn[];\r\n items: any[];\r\n fileName?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface IBigExportRequest {\r\n filePath?: string;\r\n destination?: string;\r\n latestRow: number;\r\n columns: {\r\n field: string,\r\n title: string,\r\n description?: string,\r\n width?: string,\r\n }[];\r\n items: any[];\r\n}\r\n\r\nexport interface IBigExportResponse {\r\n filePath: string;\r\n destination: string;\r\n latestRow: number;\r\n}\r\n\r\nexport type GroupPermission = 'view' | 'add' | 'delete';\r\n\r\nexport const API = {\r\n generateTemplate: '/excel/generateTemplate',\r\n uploadTemplate: '/excel/uploadTemplate',\r\n generateUploadTemplate: '/excel/generateUploadTemplate',\r\n export: '/excel/export',\r\n downloadByTemplate: '/excel/downloadByTemplate',\r\n filesInFolder: '/excel/filesInFolder',\r\n removeFile: '/excel/remove',\r\n sdExport: '/excel/sd-export',\r\n sdExportByTemplate: '/excel/sd-export-by-template',\r\n sdMergePDF: '/excel/sd-merge-pdf',\r\n sdGenerateTemplate: '/excel/sd-generate-template',\r\n};\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\nimport { ExportToCsv } from 'export-to-csv';\r\nimport { Workbook, Style } from 'exceljs';\r\nimport { SdExportTemplate, IExportOption, API, SdExportFile } from './export.model';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdExportService {\r\n private get functionUrl() {\r\n return this.firebaseConfiguration?.functionUrl;\r\n }\r\n\r\n private get folder() {\r\n const { project, env } = this.firebaseConfiguration;\r\n return `${project}-${env}`;\r\n }\r\n\r\n private get userFolder() {\r\n const { folder } = this.firebaseConfiguration;\r\n if (!folder) {\r\n return;\r\n }\r\n if (typeof (folder) === 'string') {\r\n return folder;\r\n }\r\n return folder();\r\n }\r\n\r\n #fieldStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FAFAFA'\r\n }\r\n }\r\n }\r\n\r\n #titleStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: '143180'\r\n }\r\n }\r\n }\r\n\r\n #requiredStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FF1744'\r\n }\r\n }\r\n }\r\n\r\n #descriptionStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 9,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'CFD8DC'\r\n }\r\n }\r\n }\r\n\r\n #cellStyle: Partial<Style> = {\r\n alignment: {\r\n vertical: 'middle',\r\n wrapText: true\r\n }\r\n }\r\n\r\n constructor(\r\n private apiService: SdApiService,\r\n private utilityService: SdUtilityService,\r\n private notifyService: SdNotifyService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n\r\n #directory = (key: string, group: string) => {\r\n let hashedFolder = hash({\r\n folder: this.folder,\r\n userFolder: this.userFolder\r\n });\r\n if (!group) {\r\n return `dir1=${this.folder}&dir2=U-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n hashedFolder = hash({\r\n folder: this.folder,\r\n group\r\n });\r\n return `dir1=${this.folder}&dir2=G-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n\r\n // generateTemplate = async (template: SdExportTemplate) => {\r\n // const { sdGenerateTemplate } = API;\r\n // const url = `${this.functionUrl}${sdGenerateTemplate}`;\r\n // const buffer = await this.apiService.post(url, template, null, {\r\n // responseType: 'arraybuffer'\r\n // });\r\n // const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n // this.#blobToSaveAs(blob, template.fileName || 'Template');\r\n // }\r\n\r\n generateTemplate = async (template: SdExportTemplate) => {\r\n const { sdGenerateTemplate } = API;\r\n const url = `${this.functionUrl}${sdGenerateTemplate}`;\r\n const buffer = await this.apiService.post(url, template, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n this.#blobToSaveAs(blob, template.fileName || 'Template');\r\n }\r\n\r\n uploadTemplate = async (args: {\r\n key: string;\r\n group?: string;\r\n validator?: (fileName: string) => string\r\n }): Promise<SdExportFile> => {\r\n const { key, group, validator } = args;\r\n const { uploadTemplate } = API;\r\n const url = `${this.functionUrl}${uploadTemplate}?${this.#directory(key, group)}`;\r\n const file = await this.utilityService.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 0.1,\r\n validator\r\n });\r\n if (file) {\r\n const { filePath, fileName } = await this.apiService.upload(url, file).catch((err: Error) => {\r\n this.notifyService.notify.warning(err?.message);\r\n throw err;\r\n });\r\n return {\r\n filePath,\r\n fileName,\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n generateUploadTemplate = async (args: {\r\n key: string;\r\n template: SdExportTemplate;\r\n group?: string;\r\n }) => {\r\n const { key, template, group } = args;\r\n const { generateUploadTemplate } = API;\r\n const url = `${this.functionUrl}${generateUploadTemplate}?${this.#directory(key, group)}`;\r\n const { filePath, fileName } = await this.apiService.post(url, template);\r\n return { filePath, fileName };\r\n }\r\n\r\n removeFile = async (args: {\r\n key: string;\r\n group?: string;\r\n fileName?: string;\r\n }) => {\r\n const { key, group, fileName } = args;\r\n const { removeFile } = API;\r\n const url = `${this.functionUrl}${removeFile}?${this.#directory(key, group)}&name=${fileName}`;\r\n await this.apiService.post(url);\r\n }\r\n\r\n filesInFolder = async (args: {\r\n key: string;\r\n group?: string;\r\n }): Promise<SdExportFile[]> => {\r\n interface FilesInFolderRes {\r\n directory: string;\r\n files: {\r\n publicUrl: string, fullPath: string, name: string\r\n }[];\r\n }\r\n const { key, group } = args;\r\n const { filesInFolder } = API;\r\n const url = `${this.functionUrl}${filesInFolder}?${this.#directory(key, group)}`;\r\n const res = await this.apiService.get<FilesInFolderRes>(url);\r\n return res.files?.map(e => ({\r\n filePath: e.publicUrl,\r\n fileName: e.name\r\n })) || [];\r\n }\r\n\r\n download = (filePath: string, fileName?: string) => {\r\n const link: any = document.createElement('a');\r\n link.download = `${fileName || uuid.v4()}.xlsx`;\r\n link.href = filePath;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n exportByTemplate = async (args: {\r\n filePath: string,\r\n columns: any[],\r\n items: any[],\r\n fileName?: string\r\n }) => {\r\n const { filePath, columns, items, fileName } = args;\r\n const { sdExportByTemplate } = API;\r\n const url = `${this.functionUrl}${sdExportByTemplate}`;\r\n const buffer = await this.apiService.post(url, {\r\n filePath,\r\n columns,\r\n items,\r\n fileName\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n this.#blobToSaveAs(blob, fileName);\r\n }\r\n\r\n\r\n exportCSV = async (option: IExportOption) => {\r\n const { columns, items, fileName } = option;\r\n const headerCSV = {};\r\n for (const column of columns) {\r\n headerCSV[column.field] = column.title;\r\n }\r\n const csvExporter = new ExportToCsv({\r\n filename: `${fileName || 'CSV'}_${Date.toFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss')}`,\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalSeparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n title: fileName || 'CSV',\r\n useBom: true,\r\n });\r\n csvExporter.generateCsv([headerCSV, ...items]);\r\n }\r\n\r\n export = async (option: IExportOption) => {\r\n const { columns, items, fileName, sheets } = option;\r\n let hasDescription = false;\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n if (column.description) {\r\n hasDescription = true;\r\n }\r\n }\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('data'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n firstSheet.getCell(1, index + 1).style = this.#fieldStyle\r\n if (column.required) {\r\n firstSheet.getCell(2, index + 1).style = this.#requiredStyle;\r\n } else {\r\n firstSheet.getCell(2, index + 1).style = this.#titleStyle;\r\n }\r\n firstSheet.getCell(1, index + 1).value = column.field;\r\n firstSheet.getCell(2, index + 1).value = column.title;\r\n if (hasDescription) {\r\n firstSheet.getCell(3, index + 1).style = this.#descriptionStyle;\r\n firstSheet.getCell(3, index + 1).value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n const fromRow = hasDescription ? 4 : 3;\r\n items.forEach((e, idx1) => {\r\n columns.forEach((column, idx2) => {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = e[column.field];\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n const file = await workbook.xlsx.writeBuffer();\r\n this.#blobToSaveAs(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n mergePDF = async (urls: string[]) => {\r\n const { sdMergePDF } = API;\r\n const url = `${this.functionUrl}${sdMergePDF}`;\r\n const buffer = await this.apiService.post(url, {\r\n urls\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/pdf' });\r\n this.#blobToSaveAs(blob, `${uuid.v4()}`);\r\n }\r\n\r\n loadExportedItems = async (items: (pageSize: number, pageNumber: number) => { total: number, }) => {\r\n\r\n }\r\n\r\n #blobToSaveAs = (blob: Blob, fileName: string = 'Export') => {\r\n try {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n fileName = fileName.replace(/.xlsx/i, '');\r\n fileName = fileName.replace(/.pdf/i, '');\r\n if (link.download !== undefined) { // feature detection\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', `${fileName}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n } catch (e) {\r\n console.error('BlobToSaveAs error', e);\r\n }\r\n }\r\n}\r\n\r\nexport interface IExportInfo {\r\n data: any[];\r\n sheetName?: string;\r\n fileName?: string;\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../projects/sd-core/export/src/lib/export.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/export/src/lib/export.service.ts"],"names":["API","generateTemplate","uploadTemplate","generateUploadTemplate","export","downloadByTemplate","filesInFolder","removeFile","sdExport","sdExportByTemplate","sdMergePDF","sdGenerateTemplate","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__values","o","s","m","i","__read","r","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","SdExportService","apiService","utilityService","notifyService","firebaseConfiguration","_this","_fieldStyle","set","border","bottom","style","left","right","alignment","vertical","horizontal","wrapText","font","bold","size","color","argb","fill","type","pattern","fgColor","_titleStyle","_requiredStyle","italic","_descriptionStyle","_cellStyle","_directory","key","group","hashedFolder","hash","folder","userFolder","template","url","functionUrl","post","responseType","buffer","_b","blob","Blob","_blobToSaveAs","fileName","args","validator","upload","extensions","maxSizeInMb","file","_c","catch","err","notify","warning","message","filePath","res","_a","files","map","publicUrl","name","download","link","document","createElement","uuid.v4","href","appendChild","click","removeChild","exportByTemplate","columns","items","exportCSV","option","headerCSV","columns_1","columns_1_1","column","field","title","ExportToCsv","filename","Date","toFormat","fieldSeparator","quoteStrings","decimalSeparator","showLabels","showTitle","useBom","generateCsv","arguments","concat","__spread","sheets","hasDescription","entries","_d","idx","Error","description","workbook","Workbook","firstSheet","addWorksheet","forEach","index","width","endsWith","replace","getColumn","getCell","required","sheet","Array","isArray","fields","newSheet_1","item","idx1","idx2","sheets_1","sheets_1_1","fromRow","xlsx","writeBuffer","_g","exportCustom","cells","worksheet","e_5","_e","_f","e_6","cells_1","cells_1_1","cell","row","mergeCells","_k","mergePDF","urls","loadExportedItems","window","URL","createObjectURL","undefined","setAttribute","visibility","console","defineProperty","prototype","project","env","Injectable","providedIn","SdApiService","SdUtilityService","SdNotifyService","Inject","FIREBASE_CONFIG","Optional"],"mappings":"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","sourcesContent":["import { CellValue, Style } from 'exceljs';\r\nexport interface SdExportTemplate {\r\n fileName?: string;\r\n columns: SdExportTempateColumn[];\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface SdExportTempateColumn {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n color?: string;\r\n width?: string;\r\n description?: string;\r\n fontColor?: string;\r\n fill?: string;\r\n}\r\n\r\nexport interface SdExportFile {\r\n fileName?: string;\r\n filePath?: string;\r\n}\r\n\r\nexport interface SdExportColumn {\r\n field: string;\r\n title: string;\r\n description?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface IExportOption {\r\n columns: SdExportTempateColumn[];\r\n items: any[];\r\n fileName?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface IBigExportRequest {\r\n filePath?: string;\r\n destination?: string;\r\n latestRow: number;\r\n columns: {\r\n field: string,\r\n title: string,\r\n description?: string,\r\n width?: string,\r\n }[];\r\n items: any[];\r\n}\r\n\r\nexport interface IBigExportResponse {\r\n filePath: string;\r\n destination: string;\r\n latestRow: number;\r\n}\r\n\r\nexport interface SdExportCustomOption {\r\n fileName?: string;\r\n sheets: {\r\n name?: string;\r\n columns?: {\r\n index: number;\r\n width?: number;\r\n style?: Style;\r\n }[];\r\n cells: {\r\n row: number;\r\n column: number;\r\n value?: CellValue;\r\n style?: Style;\r\n }[];\r\n mergeCells: {\r\n top: number;\r\n left: number;\r\n bottom: number;\r\n right: number;\r\n }[];\r\n }[]\r\n}\r\n\r\nexport type GroupPermission = 'view' | 'add' | 'delete';\r\n\r\nexport const API = {\r\n generateTemplate: '/excel/generateTemplate',\r\n uploadTemplate: '/excel/uploadTemplate',\r\n generateUploadTemplate: '/excel/generateUploadTemplate',\r\n export: '/excel/export',\r\n downloadByTemplate: '/excel/downloadByTemplate',\r\n filesInFolder: '/excel/filesInFolder',\r\n removeFile: '/excel/remove',\r\n sdExport: '/excel/sd-export',\r\n sdExportByTemplate: '/excel/sd-export-by-template',\r\n sdMergePDF: '/excel/sd-merge-pdf',\r\n sdGenerateTemplate: '/excel/sd-generate-template',\r\n};\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\nimport { ExportToCsv } from 'export-to-csv';\r\nimport { Workbook, Style } from 'exceljs';\r\nimport { SdExportTemplate, IExportOption, API, SdExportFile, SdExportCustomOption } from './export.model';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdExportService {\r\n private get functionUrl() {\r\n return this.firebaseConfiguration?.functionUrl;\r\n }\r\n\r\n private get folder() {\r\n const { project, env } = this.firebaseConfiguration;\r\n return `${project}-${env}`;\r\n }\r\n\r\n private get userFolder() {\r\n const { folder } = this.firebaseConfiguration;\r\n if (!folder) {\r\n return;\r\n }\r\n if (typeof (folder) === 'string') {\r\n return folder;\r\n }\r\n return folder();\r\n }\r\n\r\n #fieldStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FAFAFA'\r\n }\r\n }\r\n }\r\n\r\n #titleStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: '143180'\r\n }\r\n }\r\n }\r\n\r\n #requiredStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FF1744'\r\n }\r\n }\r\n }\r\n\r\n #descriptionStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 9,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'CFD8DC'\r\n }\r\n }\r\n }\r\n\r\n #cellStyle: Partial<Style> = {\r\n alignment: {\r\n vertical: 'middle',\r\n wrapText: true\r\n }\r\n }\r\n\r\n constructor(\r\n private apiService: SdApiService,\r\n private utilityService: SdUtilityService,\r\n private notifyService: SdNotifyService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n\r\n #directory = (key: string, group: string) => {\r\n let hashedFolder = hash({\r\n folder: this.folder,\r\n userFolder: this.userFolder\r\n });\r\n if (!group) {\r\n return `dir1=${this.folder}&dir2=U-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n hashedFolder = hash({\r\n folder: this.folder,\r\n group\r\n });\r\n return `dir1=${this.folder}&dir2=G-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n\r\n // generateTemplate = async (template: SdExportTemplate) => {\r\n // const { sdGenerateTemplate } = API;\r\n // const url = `${this.functionUrl}${sdGenerateTemplate}`;\r\n // const buffer = await this.apiService.post(url, template, null, {\r\n // responseType: 'arraybuffer'\r\n // });\r\n // const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n // this.#blobToSaveAs(blob, template.fileName || 'Template');\r\n // }\r\n\r\n generateTemplate = async (template: SdExportTemplate) => {\r\n const { sdGenerateTemplate } = API;\r\n const url = `${this.functionUrl}${sdGenerateTemplate}`;\r\n const buffer = await this.apiService.post(url, template, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n this.#blobToSaveAs(blob, template.fileName || 'Template');\r\n }\r\n\r\n uploadTemplate = async (args: {\r\n key: string;\r\n group?: string;\r\n validator?: (fileName: string) => string\r\n }): Promise<SdExportFile> => {\r\n const { key, group, validator } = args;\r\n const { uploadTemplate } = API;\r\n const url = `${this.functionUrl}${uploadTemplate}?${this.#directory(key, group)}`;\r\n const file = await this.utilityService.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 0.1,\r\n validator\r\n });\r\n if (file) {\r\n const { filePath, fileName } = await this.apiService.upload(url, file).catch((err: Error) => {\r\n this.notifyService.notify.warning(err?.message);\r\n throw err;\r\n });\r\n return {\r\n filePath,\r\n fileName,\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n generateUploadTemplate = async (args: {\r\n key: string;\r\n template: SdExportTemplate;\r\n group?: string;\r\n }) => {\r\n const { key, template, group } = args;\r\n const { generateUploadTemplate } = API;\r\n const url = `${this.functionUrl}${generateUploadTemplate}?${this.#directory(key, group)}`;\r\n const { filePath, fileName } = await this.apiService.post(url, template);\r\n return { filePath, fileName };\r\n }\r\n\r\n removeFile = async (args: {\r\n key: string;\r\n group?: string;\r\n fileName?: string;\r\n }) => {\r\n const { key, group, fileName } = args;\r\n const { removeFile } = API;\r\n const url = `${this.functionUrl}${removeFile}?${this.#directory(key, group)}&name=${fileName}`;\r\n await this.apiService.post(url);\r\n }\r\n\r\n filesInFolder = async (args: {\r\n key: string;\r\n group?: string;\r\n }): Promise<SdExportFile[]> => {\r\n interface FilesInFolderRes {\r\n directory: string;\r\n files: {\r\n publicUrl: string, fullPath: string, name: string\r\n }[];\r\n }\r\n const { key, group } = args;\r\n const { filesInFolder } = API;\r\n const url = `${this.functionUrl}${filesInFolder}?${this.#directory(key, group)}`;\r\n const res = await this.apiService.get<FilesInFolderRes>(url);\r\n return res.files?.map(e => ({\r\n filePath: e.publicUrl,\r\n fileName: e.name\r\n })) || [];\r\n }\r\n\r\n download = (filePath: string, fileName?: string) => {\r\n const link: any = document.createElement('a');\r\n link.download = `${fileName || uuid.v4()}.xlsx`;\r\n link.href = filePath;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n exportByTemplate = async (args: {\r\n filePath: string,\r\n columns: any[],\r\n items: any[],\r\n fileName?: string\r\n }) => {\r\n const { filePath, columns, items, fileName } = args;\r\n const { sdExportByTemplate } = API;\r\n const url = `${this.functionUrl}${sdExportByTemplate}`;\r\n const buffer = await this.apiService.post(url, {\r\n filePath,\r\n columns,\r\n items,\r\n fileName\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n this.#blobToSaveAs(blob, fileName);\r\n }\r\n\r\n\r\n exportCSV = async (option: IExportOption) => {\r\n const { columns, items, fileName } = option;\r\n const headerCSV = {};\r\n for (const column of columns) {\r\n headerCSV[column.field] = column.title;\r\n }\r\n const csvExporter = new ExportToCsv({\r\n filename: `${fileName || 'CSV'}_${Date.toFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss')}`,\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalSeparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n title: fileName || 'CSV',\r\n useBom: true,\r\n });\r\n csvExporter.generateCsv([headerCSV, ...items]);\r\n }\r\n\r\n export = async (option: IExportOption) => {\r\n const { columns, items, fileName, sheets } = option;\r\n let hasDescription = false;\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n if (column.description) {\r\n hasDescription = true;\r\n }\r\n }\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('data'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n firstSheet.getCell(1, index + 1).style = this.#fieldStyle\r\n if (column.required) {\r\n firstSheet.getCell(2, index + 1).style = this.#requiredStyle;\r\n } else {\r\n firstSheet.getCell(2, index + 1).style = this.#titleStyle;\r\n }\r\n firstSheet.getCell(1, index + 1).value = column.field;\r\n firstSheet.getCell(2, index + 1).value = column.title;\r\n if (hasDescription) {\r\n firstSheet.getCell(3, index + 1).style = this.#descriptionStyle;\r\n firstSheet.getCell(3, index + 1).value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n const fromRow = hasDescription ? 4 : 3;\r\n items.forEach((e, idx1) => {\r\n columns.forEach((column, idx2) => {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = e[column.field];\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n const file = await workbook.xlsx.writeBuffer();\r\n this.#blobToSaveAs(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n exportCustom = async (option: SdExportCustomOption) => {\r\n const { fileName, sheets } = option;\r\n if (!sheets?.length) {\r\n this.notifyService.notify.warning('Phải có ít nhất 1 sheet');\r\n return;\r\n }\r\n const workbook = new Workbook();\r\n for (const [idx, sheet] of sheets.entries()) {\r\n const { name, columns, cells } = sheet\r\n const worksheet = workbook.addWorksheet(name || `Sheet ${idx + 1}`);\r\n for (const column of (columns || [])) {\r\n worksheet.getColumn(column.index).style = column.style;\r\n worksheet.getColumn(column.index).width = column.width;\r\n }\r\n for (const cell of cells) {\r\n const { row, column, value, style } = cell;\r\n worksheet.getCell(row, column).style = style || worksheet.getColumn(column).style;\r\n worksheet.getCell(row, column).value = value;\r\n worksheet.mergeCells()\r\n }\r\n }\r\n const file = await workbook.xlsx.writeBuffer();\r\n this.#blobToSaveAs(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n mergePDF = async (urls: string[]) => {\r\n const { sdMergePDF } = API;\r\n const url = `${this.functionUrl}${sdMergePDF}`;\r\n const buffer = await this.apiService.post(url, {\r\n urls\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/pdf' });\r\n this.#blobToSaveAs(blob, `${uuid.v4()}`);\r\n }\r\n\r\n loadExportedItems = async (items: (pageSize: number, pageNumber: number) => { total: number, }) => {\r\n\r\n }\r\n\r\n #blobToSaveAs = (blob: Blob, fileName: string = 'Export') => {\r\n try {\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n fileName = fileName.replace(/.xlsx/i, '');\r\n fileName = fileName.replace(/.pdf/i, '');\r\n if (link.download !== undefined) { // feature detection\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', `${fileName}_${new Date().toFormat('yyyy_MM_dd_HH_mm')}`);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n } catch (e) {\r\n console.error('BlobToSaveAs error', e);\r\n }\r\n }\r\n}\r\n\r\nexport interface IExportInfo {\r\n data: any[];\r\n sheetName?: string;\r\n fileName?: string;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"SdButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":14,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdButton"}],"exports":[{"__symbolic":"reference","name":"SdButton"}]}]}],"members":{}},"SdButton":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"sd-button","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"host":{"[attr.disabled]":"isDisabled ? true : null","$quoted$":["[attr.disabled]"]},"template":"<button *ngIf=\"type === 'fill'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-fill\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'light'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-light\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'outline'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-outline\"\r\n [class.c-square]=\"icon && !title\" [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\"\r\n [color]=\"color\" [disabled]=\"isDisabled\" matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-stroked-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'link'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-link\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<ng-template #buttonContent>\r\n <ng-container *ngIf=\"title\">\r\n <ng-container *ngIf=\"!iconSuffix\">\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\"\r\n class=\"d-inline-block\"></mat-spinner>\r\n <mat-icon *ngIf=\"!loading && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <span class=\"d-inline\" [ngClass]=\"{'ml-8': icon && !iconSuffix, 'mr-8': icon && iconSuffix}\">{{title}}</span>\r\n <mat-icon *ngIf=\"iconSuffix && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"!title\">\r\n <mat-icon [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n</ng-template>","styles":[".text-black400{color:#757575}:host[disabled=true]{pointer-events:none}:host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;min-width:auto;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important;width:40px!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]}]}],"members":{"button":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["button"]}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"iconSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"fontSet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":50,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":52,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"SdButtonModule":"./src/lib/button.module","SdButton":"./src/lib/button.component"},"importAs":"@sd-angular/core/button"}
1
+ {"__symbolic":"module","version":4,"metadata":{"SdButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":14,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdButton"}],"exports":[{"__symbolic":"reference","name":"SdButton"}]}]}],"members":{}},"SdButton":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"sd-button","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"host":{"[attr.disabled]":"isDisabled ? true : null","$quoted$":["[attr.disabled]"]},"template":"<button *ngIf=\"type === 'fill'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-fill\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'light'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-light\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-flat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'outline'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-outline\"\r\n [class.c-square]=\"icon && !title\" [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\"\r\n [color]=\"color\" [disabled]=\"isDisabled\" matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-stroked-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<button *ngIf=\"type === 'link'\" [ngStyle]=\"{'width':width}\" class=\"c-button c-link\" [class.c-square]=\"icon && !title\"\r\n [ngClass]=\"{'c-sm': size === 'sm', 'c-lg': size === 'lg'}\" type=\"button\" [color]=\"color\" [disabled]=\"isDisabled\"\r\n matTooltipPosition=\"above\" [matTooltip]=\"tooltip\" mat-button #button>\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n</button>\r\n<ng-template #buttonContent>\r\n <ng-container *ngIf=\"title\">\r\n <ng-container *ngIf=\"!iconSuffix\">\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\"\r\n class=\"d-inline-block\"></mat-spinner>\r\n <mat-icon *ngIf=\"!loading && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <span class=\"d-inline\" [ngClass]=\"{'ml-8': icon && !iconSuffix, 'mr-8': icon && iconSuffix}\">{{title}}</span>\r\n <mat-icon *ngIf=\"iconSuffix && icon\" [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"!title\">\r\n <mat-icon [fontSet]=\"fontSet\">{{icon}}</mat-icon>\r\n </ng-container>\r\n</ng-template>","styles":[".text-black400{color:#757575}:host[disabled=true]{pointer-events:none}:host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;min-width:auto;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important;width:40px!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-spinner.mat-progress-spinner circle,:host ::ng-deep button.c-button.c-fill .mat-spinner.mat-spinner circle{stroke:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]}]}],"members":{"button":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["button"]}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"iconSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"fontSet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":50,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":52,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"SdButtonModule":"./src/lib/button.module","SdButton":"./src/lib/button.component"},"importAs":"@sd-angular/core/button"}
@@ -58,7 +58,7 @@ SdButton.decorators = [
58
58
  host: {
59
59
  '[attr.disabled]': 'isDisabled ? true : null'
60
60
  },
61
- styles: [".text-black400{color:#757575}:host[disabled=true]{pointer-events:none}:host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;min-width:auto;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important;width:40px!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]
61
+ styles: [".text-black400{color:#757575}:host[disabled=true]{pointer-events:none}:host ::ng-deep button.c-button{font-size:16px;height:40px;line-height:20px;min-width:auto;padding:2px 16px!important}:host ::ng-deep button.c-button .mat-button-wrapper{align-items:center;display:flex;justify-content:center}:host ::ng-deep button.c-button.mat-button-disabled{background-color:#e9e9e9!important;color:#a6a6a6!important}:host ::ng-deep button.c-button.c-square{min-width:auto!important;padding:0!important;width:40px!important}:host ::ng-deep button.c-button.c-sm{font-size:14px!important;font-weight:400;height:32px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-sm mat-icon{font-size:16px!important;height:16px!important;width:16px!important}:host ::ng-deep button.c-button.c-sm.c-square{width:32px!important}:host ::ng-deep button.c-button.c-lg{font-size:16px!important;height:48px;line-height:20px!important;padding:2px 16px!important}:host ::ng-deep button.c-button.c-lg.c-square{width:48px!important}:host ::ng-deep button.c-button:focus{outline:none}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-primary{background-color:#2962ff;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-success{background-color:#4caf50;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-warning{background-color:#ff9600;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-danger{background-color:#f82c13;color:#fff}:host ::ng-deep button.c-button.c-fill.mat-flat-button.mat-secondary{background-color:#212121;color:#fff}:host ::ng-deep button.c-button.c-fill .mat-spinner.mat-progress-spinner circle,:host ::ng-deep button.c-button.c-fill .mat-spinner.mat-spinner circle{stroke:#fff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-info,:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-primary{background-color:#e7e9ff;color:#2962ff}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-success{background-color:#dbefdc;color:#4caf50}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-warning{background-color:#ffeacc;color:#ff9600}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-danger{background-color:#fed5d0;color:#f82c13}:host ::ng-deep button.c-button.c-light.mat-flat-button.mat-secondary{background-color:#e9e9e9;color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button{border-color:#d3d3d3}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-info,:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-secondary{color:#212121}:host ::ng-deep button.c-button.c-outline.mat-stroked-button.mat-button-disabled{background:transparent!important}:host ::ng-deep button.c-button.c-link.mat-button.mat-info,:host ::ng-deep button.c-button.c-link.mat-button.mat-primary{color:#2962ff}:host ::ng-deep button.c-button.c-link.mat-button.mat-success{color:#4caf50}:host ::ng-deep button.c-button.c-link.mat-button.mat-warning{color:#ff9600}:host ::ng-deep button.c-button.c-link.mat-button.mat-danger{color:#f82c13}:host ::ng-deep button.c-button.c-link.mat-button.mat-secondary{color:#212121}"]
62
62
  },] }
63
63
  ];
64
64
  SdButton.ctorParameters = () => [
@@ -11,4 +11,4 @@ export const API = {
11
11
  sdMergePDF: '/excel/sd-merge-pdf',
12
12
  sdGenerateTemplate: '/excel/sd-generate-template',
13
13
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9leHBvcnQvIiwic291cmNlcyI6WyJzcmMvbGliL2V4cG9ydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRUEsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHO0lBQ2pCLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLHNCQUFzQixFQUFFLCtCQUErQjtJQUN2RCxNQUFNLEVBQUUsZUFBZTtJQUN2QixrQkFBa0IsRUFBRSwyQkFBMkI7SUFDL0MsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxVQUFVLEVBQUUsZUFBZTtJQUMzQixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLGtCQUFrQixFQUFFLDhCQUE4QjtJQUNsRCxVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGtCQUFrQixFQUFFLDZCQUE2QjtDQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZEV4cG9ydFRlbXBsYXRlIHtcclxuICBmaWxlTmFtZT86IHN0cmluZztcclxuICBjb2x1bW5zOiBTZEV4cG9ydFRlbXBhdGVDb2x1bW5bXTtcclxuICBzaGVldHM/OiB7XHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBpdGVtczogYW55W10sXHJcbiAgICBmaWVsZHM6IHN0cmluZ1tdXHJcbiAgfVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkRXhwb3J0VGVtcGF0ZUNvbHVtbiB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBjb2xvcj86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBmb250Q29sb3I/OiBzdHJpbmc7XHJcbiAgZmlsbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZEV4cG9ydEZpbGUge1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkRXhwb3J0Q29sdW1uIHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydE9wdGlvbiB7XHJcbiAgY29sdW1uczogU2RFeHBvcnRUZW1wYXRlQ29sdW1uW107XHJcbiAgaXRlbXM6IGFueVtdO1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIHNoZWV0cz86IHtcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGl0ZW1zOiBhbnlbXSxcclxuICAgIGZpZWxkczogc3RyaW5nW11cclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJpZ0V4cG9ydFJlcXVlc3Qge1xyXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xyXG4gIGRlc3RpbmF0aW9uPzogc3RyaW5nO1xyXG4gIGxhdGVzdFJvdzogbnVtYmVyO1xyXG4gIGNvbHVtbnM6IHtcclxuICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXHJcbiAgICB3aWR0aD86IHN0cmluZyxcclxuICB9W107XHJcbiAgaXRlbXM6IGFueVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCaWdFeHBvcnRSZXNwb25zZSB7XHJcbiAgZmlsZVBhdGg6IHN0cmluZztcclxuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xyXG4gIGxhdGVzdFJvdzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHcm91cFBlcm1pc3Npb24gPSAndmlldycgfCAnYWRkJyB8ICdkZWxldGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSSA9IHtcclxuICBnZW5lcmF0ZVRlbXBsYXRlOiAnL2V4Y2VsL2dlbmVyYXRlVGVtcGxhdGUnLFxyXG4gIHVwbG9hZFRlbXBsYXRlOiAnL2V4Y2VsL3VwbG9hZFRlbXBsYXRlJyxcclxuICBnZW5lcmF0ZVVwbG9hZFRlbXBsYXRlOiAnL2V4Y2VsL2dlbmVyYXRlVXBsb2FkVGVtcGxhdGUnLFxyXG4gIGV4cG9ydDogJy9leGNlbC9leHBvcnQnLFxyXG4gIGRvd25sb2FkQnlUZW1wbGF0ZTogJy9leGNlbC9kb3dubG9hZEJ5VGVtcGxhdGUnLFxyXG4gIGZpbGVzSW5Gb2xkZXI6ICcvZXhjZWwvZmlsZXNJbkZvbGRlcicsXHJcbiAgcmVtb3ZlRmlsZTogJy9leGNlbC9yZW1vdmUnLFxyXG4gIHNkRXhwb3J0OiAnL2V4Y2VsL3NkLWV4cG9ydCcsXHJcbiAgc2RFeHBvcnRCeVRlbXBsYXRlOiAnL2V4Y2VsL3NkLWV4cG9ydC1ieS10ZW1wbGF0ZScsXHJcbiAgc2RNZXJnZVBERjogJy9leGNlbC9zZC1tZXJnZS1wZGYnLFxyXG4gIHNkR2VuZXJhdGVUZW1wbGF0ZTogJy9leGNlbC9zZC1nZW5lcmF0ZS10ZW1wbGF0ZScsXHJcbn07XHJcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9leHBvcnQvIiwic291cmNlcyI6WyJzcmMvbGliL2V4cG9ydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRkEsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHO0lBQ2pCLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLHNCQUFzQixFQUFFLCtCQUErQjtJQUN2RCxNQUFNLEVBQUUsZUFBZTtJQUN2QixrQkFBa0IsRUFBRSwyQkFBMkI7SUFDL0MsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxVQUFVLEVBQUUsZUFBZTtJQUMzQixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLGtCQUFrQixFQUFFLDhCQUE4QjtJQUNsRCxVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGtCQUFrQixFQUFFLDZCQUE2QjtDQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VsbFZhbHVlLCBTdHlsZSB9IGZyb20gJ2V4Y2VsanMnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFNkRXhwb3J0VGVtcGxhdGUge1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIGNvbHVtbnM6IFNkRXhwb3J0VGVtcGF0ZUNvbHVtbltdO1xyXG4gIHNoZWV0cz86IHtcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGl0ZW1zOiBhbnlbXSxcclxuICAgIGZpZWxkczogc3RyaW5nW11cclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RFeHBvcnRUZW1wYXRlQ29sdW1uIHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIGZvbnRDb2xvcj86IHN0cmluZztcclxuICBmaWxsPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkRXhwb3J0RmlsZSB7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgZmlsZVBhdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RFeHBvcnRDb2x1bW4ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRXhwb3J0T3B0aW9uIHtcclxuICBjb2x1bW5zOiBTZEV4cG9ydFRlbXBhdGVDb2x1bW5bXTtcclxuICBpdGVtczogYW55W107XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgc2hlZXRzPzoge1xyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgaXRlbXM6IGFueVtdLFxyXG4gICAgZmllbGRzOiBzdHJpbmdbXVxyXG4gIH1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmlnRXhwb3J0UmVxdWVzdCB7XHJcbiAgZmlsZVBhdGg/OiBzdHJpbmc7XHJcbiAgZGVzdGluYXRpb24/OiBzdHJpbmc7XHJcbiAgbGF0ZXN0Um93OiBudW1iZXI7XHJcbiAgY29sdW1uczoge1xyXG4gICAgZmllbGQ6IHN0cmluZyxcclxuICAgIHRpdGxlOiBzdHJpbmcsXHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcclxuICAgIHdpZHRoPzogc3RyaW5nLFxyXG4gIH1bXTtcclxuICBpdGVtczogYW55W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJpZ0V4cG9ydFJlc3BvbnNlIHtcclxuICBmaWxlUGF0aDogc3RyaW5nO1xyXG4gIGRlc3RpbmF0aW9uOiBzdHJpbmc7XHJcbiAgbGF0ZXN0Um93OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RFeHBvcnRDdXN0b21PcHRpb24ge1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIHNoZWV0czoge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGNvbHVtbnM/OiB7XHJcbiAgICAgIGluZGV4OiBudW1iZXI7XHJcbiAgICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgICBzdHlsZT86IFN0eWxlO1xyXG4gICAgfVtdO1xyXG4gICAgY2VsbHM6IHtcclxuICAgICAgcm93OiBudW1iZXI7XHJcbiAgICAgIGNvbHVtbjogbnVtYmVyO1xyXG4gICAgICB2YWx1ZT86IENlbGxWYWx1ZTtcclxuICAgICAgc3R5bGU/OiBTdHlsZTtcclxuICAgIH1bXTtcclxuICAgIG1lcmdlQ2VsbHM6IHtcclxuICAgICAgdG9wOiBudW1iZXI7XHJcbiAgICAgIGxlZnQ6IG51bWJlcjtcclxuICAgICAgYm90dG9tOiBudW1iZXI7XHJcbiAgICAgIHJpZ2h0OiBudW1iZXI7XHJcbiAgICB9W107XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdyb3VwUGVybWlzc2lvbiA9ICd2aWV3JyB8ICdhZGQnIHwgJ2RlbGV0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQVBJID0ge1xyXG4gIGdlbmVyYXRlVGVtcGxhdGU6ICcvZXhjZWwvZ2VuZXJhdGVUZW1wbGF0ZScsXHJcbiAgdXBsb2FkVGVtcGxhdGU6ICcvZXhjZWwvdXBsb2FkVGVtcGxhdGUnLFxyXG4gIGdlbmVyYXRlVXBsb2FkVGVtcGxhdGU6ICcvZXhjZWwvZ2VuZXJhdGVVcGxvYWRUZW1wbGF0ZScsXHJcbiAgZXhwb3J0OiAnL2V4Y2VsL2V4cG9ydCcsXHJcbiAgZG93bmxvYWRCeVRlbXBsYXRlOiAnL2V4Y2VsL2Rvd25sb2FkQnlUZW1wbGF0ZScsXHJcbiAgZmlsZXNJbkZvbGRlcjogJy9leGNlbC9maWxlc0luRm9sZGVyJyxcclxuICByZW1vdmVGaWxlOiAnL2V4Y2VsL3JlbW92ZScsXHJcbiAgc2RFeHBvcnQ6ICcvZXhjZWwvc2QtZXhwb3J0JyxcclxuICBzZEV4cG9ydEJ5VGVtcGxhdGU6ICcvZXhjZWwvc2QtZXhwb3J0LWJ5LXRlbXBsYXRlJyxcclxuICBzZE1lcmdlUERGOiAnL2V4Y2VsL3NkLW1lcmdlLXBkZicsXHJcbiAgc2RHZW5lcmF0ZVRlbXBsYXRlOiAnL2V4Y2VsL3NkLWdlbmVyYXRlLXRlbXBsYXRlJyxcclxufTtcclxuIl19