UNPKG

@csvbox/vuejs3

Version:

Vue adapter (Vue Version 3) for csvbox.io

1 lines 6.98 kB
var VueAdapterV3=function(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var o,a,r=[],i=!0,d=!1;try{for(n=n.call(t);!(i=(o=n.next()).done)&&(r.push(o.value),!e||r.length!==e);i=!0);}catch(t){d=!0,a=t}finally{try{i||null==n.return||n.return()}finally{if(d)throw a}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n<e;n++)o[n]=t[n];return o}var a=require("./../package.json"),r=t.defineComponent({name:"CSVBoxButton",props:{licenseKey:{type:String,required:!0},onImport:{type:Function,default:function(){}},onReady:{type:Function,default:function(){}},onSubmit:{type:Function,default:function(){}},onClose:{type:Function,default:function(){}},user:{type:Object,default:function(){return{user_id:"default123"}}},dynamicColumns:{type:Array,default:function(){return null}},options:{type:Object,default:function(){return{user_id:"default123"}}},dataLocation:{type:String,required:!1},customDomain:{type:String,required:!1},language:{type:String,required:!1},lazy:{type:Boolean,required:!1,default:!1},loadStarted:{type:Function,default:function(){}},environment:{type:Object,default:function(){return null}}},computed:{iframeSrc:function(){var t=this.customDomain?this.customDomain:"app.csvbox.io";this.dataLocation&&(t="".concat(this.dataLocation,"-").concat(t));var e="https://".concat(t,"/embed/").concat(this.licenseKey);if(e+="?library-version=".concat(a.version),e+="&framework=vue3",this.dataLocation&&(e+="&preventRedirect"),this.language&&(e+="&language="+this.language),this.environment){var n=JSON.stringify(this.environment).replace(/['"]/g,(function(t){return"\\"+t}));e+="&env=".concat(n)}return e}},data:function(){return{isModalShown:!1,disableImportButton:!0,uuid:Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),iframe:null,isIframeLoaded:!1,openModalOnIframeLoad:!1}},methods:{openModal:function(){if(this.lazy&&!this.iframe)return this.openModalOnIframeLoad=!0,void this.initImporter();this.isModalShown||(this.isIframeLoaded?(this.isModalShown=!0,this.$refs.holder.style.display="block",this.iframe.contentWindow.postMessage("openModal","*")):this.openModalOnIframeLoad=!0)},onMessageEvent:function(t){var n,o;if("object"==e(t.data)&&(null==t||null===(n=t.data)||void 0===n||null===(o=n.data)||void 0===o?void 0:o.unique_token)==this.uuid)if(t.data.type&&"data-on-submit"==t.data.type){var a,r=t.data.data;r.column_mappings=t.data.column_mapping,delete r.unique_token,null===(a=this.onSubmit)||void 0===a||a.call(this,r)}else if(t.data.type&&"data-push-status"==t.data.type)if("success"==t.data.data.import_status)if(t&&t.data&&t.data.row_data){var i=t.data.row_data,d=t.data.headers,u=[],s=t.data.dynamicColumnsIndexes,l=t.data.virtualColumnsIndexes||[],c=t.data.dropdown_display_labels_mappings;i.forEach((function(t){var e={},n={},o={};t.data.forEach((function(t,a){null==t&&(t=""),c[a]&&c[a][t]&&(t=c[a][t]),s.includes(a)?n[d[a]]=t:l.includes(a)?o[d[a]]=t:e[d[a]]=t})),null!=t&&t.unmapped_data&&(e._unmapped_data=t.unmapped_data),n&&Object.keys(n).length>0&&(e._dynamic_data=n),o&&Object.keys(o).length>0&&(e._virtual_data=o),u.push(e)}));var p=t.data.data;p.rows=u,p.column_mappings=t.data.column_mapping,p.raw_columns=t.data.raw_columns,p.ignored_columns=t.data.ignored_column_row,delete p.unique_token,this.onImport(!0,p)}else{var f=t.data.data;delete f.unique_token,this.onImport(!0,f)}else console.log("onImport",!1,t.data.data),this.onImport(!1,t.data.data);else t.data.type&&"csvbox-modal-hidden"==t.data.type?(this.$refs.holder.style.display="none",this.isModalShown=!1,this.onClose()):t.data.type&&"csvbox-upload-successful"==t.data.type?this.onImport(!0):t.data.type&&"csvbox-upload-failed"==t.data.type&&this.onImport(!1)},randomString:function(){for(var t="",e="abcdefghijklmnopqrstuvwxyz0123456789",n=e.length,o=0;o<20;o++)t+=e.charAt(Math.floor(Math.random()*n));return t},initImporter:function(){this.loadStarted();var e=document.createElement("iframe");this.iframe=e,e.setAttribute("src",this.iframeSrc),e.frameBorder=0,e.classList.add("csvbox-iframe"),window.addEventListener("message",this.onMessageEvent,!1);var n=this;e.onload=function(){n.isIframeLoaded=!0,e.contentWindow.postMessage({customer:n.user?t.isProxy(n.user)?t.toRaw(n.user):n.user:null,columns:n.dynamicColumns?t.isProxy(n.dynamicColumns)?t.toRaw(n.dynamicColumns):n.dynamicColumns:null,options:n.options?t.isProxy(n.options)?t.toRaw(n.options):n.options:null,unique_token:n.uuid},"*"),n.disableImportButton=!1,n.onReady(),n.openModalOnIframeLoad&&n.openModal()},this.$refs.holder.appendChild(e)}},mounted:function(){this.lazy?this.disableImportButton=!1:this.initImporter()},beforeDestroy:function(){window.removeEventListener("message",this.onMessageEvent)}}),i=["disabled"],d={ref:"holder",class:"holder-style"};function u(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}}u("\n.holder-style[data-v-234811f2] {\r\n display: none;\r\n z-index: 2147483647;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\n}\r\n");u("\n.csvbox-iframe {\r\n height: 100%;\r\n width: 100%;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\n}\r\n"),r.render=function(e,n,o,a,r,u){return t.openBlock(),t.createElementBlock("div",null,[t.createElementVNode("button",{disabled:e.disableImportButton,onClick:n[0]||(n[0]=t.withModifiers((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["prevent"]))},[t.renderSlot(e.$slots,"default")],8,i),t.createElementVNode("div",d,null,512)])},r.__scopeId="data-v-234811f2";var s=function(){var t=r;return t.install=function(e){e.component("CSVBoxButton",t)},t}(),l=Object.freeze({__proto__:null,default:s});return Object.entries(l).forEach((function(t){var e=n(t,2),o=e[0],a=e[1];"default"!==o&&(s[o]=a)})),s}(Vue);