UNPKG

@csvbox/angular

Version:
2 lines 6.6 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("@csvbox/angular",["exports","@angular/core","@angular/platform-browser"],e):e(((t=t||self).csvbox=t.csvbox||{},t.csvbox.angular={}),t.ng.core,t.ng.platformBrowser)}(this,(function(t,e,o){"use strict";var n,a=function(){function t(t){this.sanitizer=t,this.isModalShown=!1,this.uuid=null,this.customDomain=null,this.dataLocation=null,this.language=null,this.isIframeLoaded=!1,this.openModalOnIframeLoad=!1,this.lazy=!1,this.iframe=null,this.disabled=!0}return t.prototype.ngOnInit=function(){this.uuid=this.generateUuid();var t=this.customDomain?this.customDomain:"app.csvbox.io";this.dataLocation&&(t=this.dataLocation+"-"+t);var o="https://"+t+"/embed/"+this.licenseKey;(o+="?library-version=1.1.16",o+="&framework=angular",this.dataLocation&&(o+="&preventRedirect"),this.language&&(o+="&language"+this.language),this.environment)&&(o+="&env="+JSON.stringify(this.environment).replace(/['"]/g,(function(t){return"\\"+t})));this.safeUrl=this.sanitizer.sanitize(e.SecurityContext.RESOURCE_URL,this.sanitizer.bypassSecurityTrustResourceUrl(o))},t.prototype.generateUuid=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},t.prototype.ngOnChanges=function(t){t.user&&t.user.currentValue!=t.user.previousValue&&this.updateUserVariabe(t.user.currentValue)},t.prototype.updateUserVariabe=function(t){this.user=t,this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage({customer:t},"*")},t.prototype.ngAfterContentInit=function(){var t=this;window.addEventListener("message",(function(e){if(e&&"object"==typeof e.data&&(e.data&&e.data.data&&e.data.data.unique_token==t.uuid))if(e.data.type&&"data-on-submit"==e.data.type)(d=e.data.data).column_mappings=e.data.column_mapping,delete d.unique_token,t.onSubmit&&t.onSubmit(d),t.isSubmitted&&t.isSubmitted(d),t.submitted&&t.submitted(d);else if(e.data.type&&"data-push-status"==e.data.type){if("success"==e.data.data.import_status)if(e.data.row_data){var o=e.data.row_data,n=e.data.headers,a=[],i=e.data.dynamicColumnsIndexes,s=e.data.virtualColumnsIndexes||[];o.forEach((function(t){var e={},o={},d={};t.data&&t.data.forEach((function(t,a){null==t&&(t=""),i.includes(a)?o[n[a]]=t:s.includes(a)?d[n[a]]=t:e[n[a]]=t})),t&&t.unmapped_data&&(e._unmapped_data=t.unmapped_data),o&&Object.keys(o).length>0&&(e._dynamic_data=o),d&&Object.keys(d).length>0&&(e._virtual_data=d),a.push(e)})),(d=e.data.data).rows=a,d.column_mappings=e.data.column_mapping,d.raw_columns=e.data.raw_columns,d.ignored_columns=e.data.ignored_column_row,delete d.unique_token,t.onImport&&t.onImport(!0,d),t.isImported&&t.isImported(!0,d),t.imported&&t.imported(!0,d)}else{var d;delete(d=e.data.data).unique_token,t.onImport&&t.onImport(!0,d),t.isImported&&t.isImported(!0,d),t.imported&&t.imported(!0,d)}else delete(d=e.data.data).unique_token,t.onImport&&t.onImport(!1,d),t.isImported&&t.isImported(!1,d),t.imported&&t.imported(!1,d)}else e.data.type&&"csvbox-modal-hidden"==e.data.type?(t.holder&&(t.holder.style.display="none"),t.isModalShown=!1,t.onClose&&t.onClose(),t.isClosed&&t.isClosed(),t.closed&&t.closed()):e.data.type&&"csvbox-upload-successful"==e.data.type?(t.onImport&&t.onImport(!0),t.isImported&&t.isImported(!0),t.imported&&t.imported(!0)):e.data.type&&"csvbox-upload-failed"==e.data.type&&(t.onImport&&t.onImport(!1),t.isImported&&t.isImported(!1),t.imported&&t.imported(!1))}),!1),this.lazy?this.disabled=!1:(this.disabled=!0,this.initImporter())},t.prototype.initImporter=function(){this.loadStarted&&this.loadStarted(),function(){if(!n){(n=document.createElement("style")).setAttribute("type","text/css");var t=document.querySelector("head");t&&t.appendChild(n),n.textContent="\n.csvbox-holder {\n z-index: 2147483647;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: none;\n}\n.csvbox-holder iframe {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n"}}();var t=document.createElement("iframe");this.iframe=t,t.setAttribute("src",this.safeUrl),t.frameBorder="0";var e=this;t.onload=function(){e.onReady&&e.onReady(),e.isReady&&e.isReady(),e.importerReady&&e.importerReady(),e.disabled=!1,e.isIframeLoaded=!0,e.iframe&&e.iframe.contentWindow&&e.iframe.contentWindow.postMessage({customer:e.user?e.user:null,columns:e.dynamicColumns?e.dynamicColumns:null,options:e.options?e.options:null,unique_token:e.uuid},"*"),e.openModalOnIframeLoad&&e.openModal()},this.holder=document.createElement("div"),this.holder.classList.add("csvbox-holder"),this.holder.setAttribute("id","csvbox-embed-"+this.uuid),this.holder.appendChild(t),document.body.insertAdjacentElement("beforeend",this.holder)},t.prototype.openModal=function(){if(this.lazy&&!this.iframe)return this.openModalOnIframeLoad=!0,void this.initImporter();this.isModalShown||(this.isIframeLoaded?(this.isModalShown=!0,this.holder&&(this.holder.style.display="block"),this.iframe&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage("openModal","*")):this.openModalOnIframeLoad=!0)},t.decorators=[{type:e.Component,args:[{selector:"csvbox-button",template:'\n <div>\n <button [disabled]="disabled" #initiator (click)="openModal()" [attr.data-csvbox-token]="uuid">\n <ng-content></ng-content>\n </button>\n </div>\n '}]}],t.ctorParameters=function(){return[{type:o.DomSanitizer}]},t.propDecorators={initiator:[{type:e.ViewChild,args:["initiator",{static:!1}]}],onImport:[{type:e.Input}],onReady:[{type:e.Input}],onClose:[{type:e.Input}],onSubmit:[{type:e.Input}],isImported:[{type:e.Input}],isReady:[{type:e.Input}],isClosed:[{type:e.Input}],isSubmitted:[{type:e.Input}],importerReady:[{type:e.Input}],closed:[{type:e.Input}],submitted:[{type:e.Input}],imported:[{type:e.Input}],loadStarted:[{type:e.Input}],user:[{type:e.Input}],dynamicColumns:[{type:e.Input}],licenseKey:[{type:e.Input}],options:[{type:e.Input}],uuid:[{type:e.Input}],customDomain:[{type:e.Input}],dataLocation:[{type:e.Input}],language:[{type:e.Input}],environment:[{type:e.Input}],isIframeLoaded:[{type:e.Input}],openModalOnIframeLoad:[{type:e.Input}],lazy:[{type:e.Input}],disabled:[{type:e.Input}]},t}();var i=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[a],imports:[],exports:[a]}]}],t}();t.CSVBoxAngularModule=i,t.CSVBoxButtonComponent=a,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=csvbox-angular.umd.min.js.map