@usecsv/vuejs 1.6.0 → 1.7.0

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,7 +1,7 @@
1
1
  import Vue from 'vue';
2
2
 
3
3
  /*!
4
- * @usecsv/js v0.20.0
4
+ * @usecsv/js v0.21.1
5
5
  * (c) layercode
6
6
  * Released under the MIT License.
7
7
  */
@@ -682,7 +682,7 @@ var insertIframe = function (id, importerDisplay) {
682
682
  return iframe;
683
683
  };
684
684
  var useCsvPlugin = function (_a) {
685
- var importerKey = _a.importerKey, user = _a.user, metadata = _a.metadata, onData = _a.onData, onRecordsInitial = _a.onRecordsInitial, onRecordEdit = _a.onRecordEdit, _b = _a.importerDisplay, importerDisplay = _b === void 0 ? "modal" : _b, onClose = _a.onClose, theme = _a.theme, batchSize = _a.batchSize, sampleFileURL = _a.sampleFileURL, _c = _a.downloadExampleButton, downloadExampleButton = _c === void 0 ? true : _c, dynamicColumns = _a.dynamicColumns, defaultLanguage = _a.defaultLanguage, onError = _a.onError, customText = _a.customText, acceptedFileFormats = _a.acceptedFileFormats;
685
+ var importerKey = _a.importerKey, user = _a.user, metadata = _a.metadata, onData = _a.onData, onRecordsInitial = _a.onRecordsInitial, onRecordEdit = _a.onRecordEdit, _b = _a.importerDisplay, importerDisplay = _b === void 0 ? "modal" : _b, onClose = _a.onClose, theme = _a.theme, batchSize = _a.batchSize, sampleFileURL = _a.sampleFileURL, _c = _a.downloadExampleButton, downloadExampleButton = _c === void 0 ? true : _c, dynamicColumns = _a.dynamicColumns, defaultLanguage = _a.defaultLanguage, onError = _a.onError, customText = _a.customText, acceptedFileFormats = _a.acceptedFileFormats, onFileUpload = _a.onFileUpload;
686
686
  var id = "usecsv-".concat(Math.round(Math.random() * 100000000));
687
687
  return whenDomReady().then(function () {
688
688
  var iframe = insertIframe(id, importerDisplay);
@@ -692,27 +692,7 @@ var useCsvPlugin = function (_a) {
692
692
  };
693
693
  var iframeConnection = connectToChild({
694
694
  iframe: iframe,
695
- methods: __assign(__assign(__assign(__assign(__assign({ closeIframe: closeIframe }, (onData
696
- ? {
697
- onData: function (data) { return onData(data, closeIframe); },
698
- }
699
- : {})), (onRecordsInitial
700
- ? {
701
- onRecordsInitial: onRecordsInitial,
702
- }
703
- : {})), (onRecordEdit
704
- ? {
705
- onRecordEdit: onRecordEdit,
706
- }
707
- : {})), (onClose
708
- ? {
709
- onClose: onClose,
710
- }
711
- : {})), (onError
712
- ? {
713
- onError: onError,
714
- }
715
- : {})),
695
+ methods: __assign(__assign(__assign(__assign(__assign(__assign({ closeIframe: closeIframe }, (onData ? { onData: function (data) { return onData(data, closeIframe); } } : {})), (onRecordsInitial ? { onRecordsInitial: onRecordsInitial } : {})), (onRecordEdit ? { onRecordEdit: onRecordEdit } : {})), (onClose ? { onClose: onClose } : {})), (onError ? { onError: onError } : {})), (onFileUpload ? { onFileUpload: onFileUpload } : {})),
716
696
  });
717
697
  iframeConnection.promise.then(function (child) {
718
698
  var _a;
@@ -758,7 +738,8 @@ var script = /*#__PURE__*/Vue.extend({
758
738
  defaultLanguage: {},
759
739
  onError: {},
760
740
  customText: {},
761
- acceptedFileFormats: {}
741
+ acceptedFileFormats: {},
742
+ onFileUpload: {}
762
743
  },
763
744
  data() {
764
745
  return {
@@ -784,7 +765,8 @@ var script = /*#__PURE__*/Vue.extend({
784
765
  defaultLanguage: this.defaultLanguage,
785
766
  onError: this.onError,
786
767
  customText: this.customText,
787
- acceptedFileFormats: this.acceptedFileFormats
768
+ acceptedFileFormats: this.acceptedFileFormats,
769
+ onFileUpload: this.onFileUpload
788
770
  });
789
771
  },
790
772
  hasScopedSlot() {
@@ -950,14 +932,14 @@ var __vue_staticRenderFns__ = [];
950
932
  /* style */
951
933
  const __vue_inject_styles__ = function (inject) {
952
934
  if (!inject) return;
953
- inject("data-v-31570516_0", {
954
- source: "#usecsv-button[data-v-31570516]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",
935
+ inject("data-v-5f455e9e_0", {
936
+ source: "#usecsv-button[data-v-5f455e9e]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",
955
937
  map: undefined,
956
938
  media: undefined
957
939
  });
958
940
  };
959
941
  /* scoped */
960
- const __vue_scope_id__ = "data-v-31570516";
942
+ const __vue_scope_id__ = "data-v-5f455e9e";
961
943
  /* module identifier */
962
944
  const __vue_module_identifier__ = undefined;
963
945
  /* functional template */
@@ -1,6 +1,6 @@
1
1
  var UseCSVButton=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i,a,s=[],c=!0,d=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(o=i.call(n)).done)&&(s.push(o.value),s.length!==t);c=!0);}catch(e){d=!0,r=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(d)throw r}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e,t)||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.")}
2
2
  /*!
3
- * @usecsv/js v0.20.0
3
+ * @usecsv/js v0.21.1
4
4
  * (c) layercode
5
5
  * Released under the MIT License.
6
- */()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var i=function(){return i=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},i.apply(this,arguments)},a=[],s=[];function c(e,t){if(t=t||{},void 0===e)throw new Error("insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).");var n,o=!0===t.prepend?"prepend":"append",r=void 0!==t.container?t.container:document.querySelector("head"),i=a.indexOf(r);return-1===i&&(i=a.push(r)-1,s[i]={}),void 0!==s[i]&&void 0!==s[i][o]?n=s[i][o]:(n=s[i][o]=function(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}(),"prepend"===o?r.insertBefore(n,r.childNodes[0]):r.appendChild(n)),65279===e.charCodeAt(0)&&(e=e.substr(1,e.length)),n.styleSheet?n.styleSheet.cssText+=e:n.textContent+=e,n}var d,l,u,m,p,f=c;c.insertCss=f,function(e){e.Call="call",e.Reply="reply",e.Syn="syn",e.SynAck="synAck",e.Ack="ack"}(d||(d={})),function(e){e.Fulfilled="fulfilled",e.Rejected="rejected"}(l||(l={})),function(e){e.ConnectionDestroyed="ConnectionDestroyed",e.ConnectionTimeout="ConnectionTimeout",e.NoIframeSrc="NoIframeSrc"}(u||(u={})),function(e){e.DataCloneError="DataCloneError"}(m||(m={})),function(e){e.Message="message"}(p||(p={}));const h={"http:":"80","https:":"443"},v=/^(https?:)?\/\/([^/:]+)?(:(\d+))?/,g=["file:","data:"];const y=({name:e,message:t,stack:n})=>({name:e,message:t,stack:n});let b=0;var C=()=>++b;const E=e=>e?e.split("."):[],S=(e,t,n)=>{const o=E(t);return o.reduce(((e,t,r)=>(void 0===e[t]&&(e[t]={}),r===o.length-1&&(e[t]=n),e[t])),e),e},w=(e,t)=>{const n={};return Object.keys(e).forEach((o=>{const r=e[o],i=((e,t)=>{const n=E(t||"");return n.push(e),(e=>e.join("."))(n)})(o,t);"object"==typeof r&&Object.assign(n,w(r,i)),"function"==typeof r&&(n[i]=r)})),n};var R=(e,t,n,o,r)=>{const{localName:i,local:a,remote:s,originForSending:c,originForReceiving:m}=t;let f=!1;r(`${i}: Connecting call sender`);const h=e=>(...t)=>{let n;r(`${i}: Sending ${e}() call`);try{s.closed&&(n=!0)}catch(e){n=!0}if(n&&o(),f){const t=new Error(`Unable to send ${e}() call due to destroyed connection`);throw t.code=u.ConnectionDestroyed,t}return new Promise(((n,o)=>{const u=C(),f=t=>{if(t.source!==s||t.data.penpal!==d.Reply||t.data.id!==u)return;if("*"!==m&&t.origin!==m)return void r(`${i} received message from origin ${t.origin} which did not match expected origin ${m}`);const c=t.data;r(`${i}: Received ${e}() reply`),a.removeEventListener(p.Message,f);let h=c.returnValue;c.returnValueIsError&&(h=(e=>{const t=new Error;return Object.keys(e).forEach((n=>t[n]=e[n])),t})(h)),(c.resolution===l.Fulfilled?n:o)(h)};a.addEventListener(p.Message,f);const h={penpal:d.Call,id:u,methodName:e,args:t};s.postMessage(h,c)}))},v=n.reduce(((e,t)=>(e[t]=h(t),e)),{});return Object.assign(e,(e=>{const t={};for(const n in e)S(t,n,e[n]);return t})(v)),()=>{f=!0}},$=(e,t,n,o,r)=>{const{destroy:i,onDestroy:a}=o;let s,c;const u={};return o=>{if("*"!==t&&o.origin!==t)return void r(`Parent: Handshake - Received ACK message from origin ${o.origin} which did not match expected origin ${t}`);r("Parent: Handshake - Received ACK");const f={localName:"Parent",local:window,remote:o.source,originForSending:n,originForReceiving:t};s&&s(),s=((e,t,n)=>{const{localName:o,local:r,remote:i,originForSending:a,originForReceiving:s}=e;let c=!1;const u=e=>{if(e.source!==i||e.data.penpal!==d.Call)return;if("*"!==s&&e.origin!==s)return void n(`${o} received message from origin ${e.origin} which did not match expected origin ${s}`);const r=e.data,{methodName:u,args:p,id:f}=r;n(`${o}: Received ${u}() call`);const h=e=>t=>{if(n(`${o}: Sending ${u}() reply`),c)return void n(`${o}: Unable to send ${u}() reply due to destroyed connection`);const r={penpal:d.Reply,id:f,resolution:e,returnValue:t};e===l.Rejected&&t instanceof Error&&(r.returnValue=y(t),r.returnValueIsError=!0);try{i.postMessage(r,a)}catch(e){if(e.name===m.DataCloneError){const t={penpal:d.Reply,id:f,resolution:l.Rejected,returnValue:y(e),returnValueIsError:!0};i.postMessage(t,a)}throw e}};new Promise((e=>e(t[u].apply(t,p)))).then(h(l.Fulfilled),h(l.Rejected))};return r.addEventListener(p.Message,u),()=>{c=!0,r.removeEventListener(p.Message,u)}})(f,e,r),a(s),c&&c.forEach((e=>{delete u[e]})),c=o.data.methodNames;const h=R(u,f,c,i,r);return a(h),u}};var x=e=>{let{iframe:t,methods:n={},childOrigin:o,timeout:r,debug:i=!1}=e;const a=(e=>(...t)=>{e&&console.log("[Penpal]",...t)})(i),s=((e,t)=>{const n=[];let o=!1;return{destroy(r){o||(o=!0,t(`${e}: Destroying connection`),n.forEach((e=>{e(r)})))},onDestroy(e){o?e():n.push(e)}}})("Parent",a),{onDestroy:c,destroy:l}=s;o||((e=>{if(!e.src&&!e.srcdoc){const e=new Error("Iframe must have src or srcdoc property defined.");throw e.code=u.NoIframeSrc,e}})(t),o=(e=>{if(e&&g.find((t=>e.startsWith(t))))return"null";const t=document.location,n=v.exec(e);let o,r,i;return n?(o=n[1]?n[1]:t.protocol,r=n[2],i=n[4]):(o=t.protocol,r=t.hostname,i=t.port),`${o}//${r}${i&&i!==h[o]?`:${i}`:""}`})(t.src));const m="null"===o?"*":o,f=w(n),y=((e,t,n,o)=>r=>{if(!r.source)return;if("*"!==n&&r.origin!==n)return void e(`Parent: Handshake - Received SYN message from origin ${r.origin} which did not match expected origin ${n}`);e("Parent: Handshake - Received SYN, responding with SYN-ACK");const i={penpal:d.SynAck,methodNames:Object.keys(t)};r.source.postMessage(i,o)})(a,f,o,m),b=$(f,o,m,s,a),C=new Promise(((e,n)=>{const o=((e,t)=>{let n;return void 0!==e&&(n=window.setTimeout((()=>{const n=new Error(`Connection timed out after ${e}ms`);n.code=u.ConnectionTimeout,t(n)}),e)),()=>{clearTimeout(n)}})(r,l),i=n=>{if(n.source===t.contentWindow&&n.data)if(n.data.penpal!==d.Syn)if(n.data.penpal!==d.Ack);else{const t=b(n);t&&(o(),e(t))}else y(n)};window.addEventListener(p.Message,i),a("Parent: Awaiting handshake"),((e,t)=>{const{destroy:n,onDestroy:o}=t,r=setInterval((()=>{e.isConnected||(clearInterval(r),n())}),6e4);o((()=>{clearInterval(r)}))})(t,s),c((e=>{window.removeEventListener(p.Message,i),e&&n(e)}))}));return{promise:C,destroy(){l()}}},_=["interactive","complete"],F=function(e,t){return new Promise((function(n){e&&"function"!=typeof e&&(t=e,e=null),t=t||window.document;var o=function(){return n(void(e&&setTimeout(e)))};-1!==_.indexOf(t.readyState)?o():t.addEventListener("DOMContentLoaded",o)}))};F.resume=function(e){return function(t){return F(e).then((function(){return t}))}};var j=function(e){var t=e.importerKey,n=e.user,o=e.metadata,r=e.onData,a=e.onRecordsInitial,s=e.onRecordEdit,c=e.importerDisplay,d=void 0===c?"modal":c,l=e.onClose,u=e.theme,m=e.batchSize,p=e.sampleFileURL,h=e.downloadExampleButton,v=void 0===h||h,g=e.dynamicColumns,y=e.defaultLanguage,b=e.onError,C=e.customText,E=e.acceptedFileFormats,S="usecsv-".concat(Math.round(1e8*Math.random()));return F().then((function(){var e=function(e,t){var n=document.getElementById("usecsv-importer-inline-wrapper");f("\n ".concat("modal"!==t&&n?"":".usecsv_container { position: fixed; top: 0px; bottom: 0; right: 0; left: 0; z-index: 100000; }","\n .usecsv_container iframe {\n width: 100%;\n height: 100%;\n position: absolute;\n border-width: 0;\n }\n .usecsv_container {\n overflow: hidden;\n overscroll-behavior-x: none;\n }\n")),document.body.insertAdjacentHTML("beforeend","<div id=".concat(e,' class="usecsv_container loading"></div>'));var o=document.createElement("iframe");o.setAttribute("src","https://app.usecsv.com/importer");var r=document.getElementById(e);return null==r||r.appendChild(o),"inline"===t&&n&&(null==n||n.appendChild(r)),o}(S,d),c=function(){var e;null===(e=document.getElementById(S))||void 0===e||e.remove()},h=x({iframe:e,methods:i(i(i(i(i({closeIframe:c},r?{onData:function(e){return r(e,c)}}:{}),a?{onRecordsInitial:a}:{}),s?{onRecordEdit:s}:{}),l?{onClose:l}:{}),b?{onError:b}:{})});return h.promise.then((function(e){var r;null===(r=document.getElementById(S))||void 0===r||r.classList.remove("loading"),e.setParams&&e.setParams({importerKey:t,user:n,metadata:o,importerDisplay:d,theme:u,batchSize:m,sampleFileURL:p,downloadExampleButton:v,dynamicColumns:g,defaultLanguage:y,customText:C,acceptedFileFormats:E})})),h}))},I=n.default.extend({name:"usecsv-button",props:{importerKey:{},user:{},metadata:{},onData:{},importerDisplay:{},onRecordsInitial:{},onRecordEdit:{},onClose:{},theme:{},batchSize:{},sampleFileURL:{},downloadExampleButton:{},dynamicColumns:{},defaultLanguage:{},onError:{},customText:{},acceptedFileFormats:{}},data:function(){return{hasSlot:!!this.$slots.default}},methods:{openModal:function(){j({importerKey:this.importerKey,user:this.user,metadata:this.metadata,onData:this.onData,importerDisplay:this.importerDisplay,onRecordsInitial:this.onRecordsInitial,onRecordEdit:this.onRecordEdit,onClose:this.onClose,theme:this.theme,batchSize:this.batchSize,sampleFileURL:this.sampleFileURL,downloadExampleButton:this.downloadExampleButton,dynamicColumns:this.dynamicColumns,defaultLanguage:this.defaultLanguage,onError:this.onError,customText:this.customText,acceptedFileFormats:this.acceptedFileFormats})},hasScopedSlot:function(){return"normalized"===(this.$scopedSlots.default&&this.$scopedSlots.default.name)}}});function L(e,t,n,o,r,i,a,s,c,d){"boolean"!=typeof a&&(c=s,s=a,a=!1);const l="function"==typeof n?n.options:n;let u;if(e&&e.render&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0,r&&(l.functional=!0)),o&&(l._scopeId=o),i?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=u):t&&(u=a?function(e){t.call(this,d(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),u)if(l.functional){const e=l.render;l.render=function(t,n){return u.call(n),e(t,n)}}else{const e=l.beforeCreate;l.beforeCreate=e?[].concat(e,u):[u]}return n}const D="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function A(e){return(e,t)=>function(e,t){const n=D?t.media||"default":e,o=O[n]||(O[n]={ids:new Set,styles:[]});if(!o.ids.has(e)){o.ids.add(e);let n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),o.element||(o.element=document.createElement("style"),o.element.type="text/css",t.media&&o.element.setAttribute("media",t.media),void 0===M&&(M=document.head||document.getElementsByTagName("head")[0]),M.appendChild(o.element)),"styleSheet"in o.element)o.styles.push(n),o.element.styleSheet.cssText=o.styles.filter(Boolean).join("\n");else{const e=o.ids.size-1,t=document.createTextNode(n),r=o.element.childNodes;r[e]&&o.element.removeChild(r[e]),r.length?o.element.insertBefore(t,r[e]):o.element.appendChild(t)}}}(e,t)}let M;const O={};var T=L({render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"usecsv"},[e.hasScopedSlot()?n("div",[e._t("default",null,{openModal:e.openModal})],2):n("div",[n("button",{attrs:{type:"button",id:"usecsv-button"},on:{click:e.openModal}},[e._t("default",(function(){return[e._v(" open usecsv ")]}))],2)])])},staticRenderFns:[]},(function(e){e&&e("data-v-31570516_0",{source:"#usecsv-button[data-v-31570516]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",map:void 0,media:void 0})}),I,"data-v-31570516",false,undefined,!1,A,void 0,void 0),N=function(){var e=T;return e.install=function(t){t.component("usecsv-button",e)},e}(),k=Object.freeze({__proto__:null,default:N});return Object.entries(k).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];"default"!==n&&(N[n]=r)})),N}(Vue);
6
+ */()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var i=function(){return i=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},i.apply(this,arguments)},a=[],s=[];function c(e,t){if(t=t||{},void 0===e)throw new Error("insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).");var n,o=!0===t.prepend?"prepend":"append",r=void 0!==t.container?t.container:document.querySelector("head"),i=a.indexOf(r);return-1===i&&(i=a.push(r)-1,s[i]={}),void 0!==s[i]&&void 0!==s[i][o]?n=s[i][o]:(n=s[i][o]=function(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}(),"prepend"===o?r.insertBefore(n,r.childNodes[0]):r.appendChild(n)),65279===e.charCodeAt(0)&&(e=e.substr(1,e.length)),n.styleSheet?n.styleSheet.cssText+=e:n.textContent+=e,n}var d,l,u,m,p,f=c;c.insertCss=f,function(e){e.Call="call",e.Reply="reply",e.Syn="syn",e.SynAck="synAck",e.Ack="ack"}(d||(d={})),function(e){e.Fulfilled="fulfilled",e.Rejected="rejected"}(l||(l={})),function(e){e.ConnectionDestroyed="ConnectionDestroyed",e.ConnectionTimeout="ConnectionTimeout",e.NoIframeSrc="NoIframeSrc"}(u||(u={})),function(e){e.DataCloneError="DataCloneError"}(m||(m={})),function(e){e.Message="message"}(p||(p={}));const h={"http:":"80","https:":"443"},v=/^(https?:)?\/\/([^/:]+)?(:(\d+))?/,g=["file:","data:"];const y=({name:e,message:t,stack:n})=>({name:e,message:t,stack:n});let b=0;var C=()=>++b;const E=e=>e?e.split("."):[],S=(e,t,n)=>{const o=E(t);return o.reduce(((e,t,r)=>(void 0===e[t]&&(e[t]={}),r===o.length-1&&(e[t]=n),e[t])),e),e},w=(e,t)=>{const n={};return Object.keys(e).forEach((o=>{const r=e[o],i=((e,t)=>{const n=E(t||"");return n.push(e),(e=>e.join("."))(n)})(o,t);"object"==typeof r&&Object.assign(n,w(r,i)),"function"==typeof r&&(n[i]=r)})),n};var R=(e,t,n,o,r)=>{const{localName:i,local:a,remote:s,originForSending:c,originForReceiving:m}=t;let f=!1;r(`${i}: Connecting call sender`);const h=e=>(...t)=>{let n;r(`${i}: Sending ${e}() call`);try{s.closed&&(n=!0)}catch(e){n=!0}if(n&&o(),f){const t=new Error(`Unable to send ${e}() call due to destroyed connection`);throw t.code=u.ConnectionDestroyed,t}return new Promise(((n,o)=>{const u=C(),f=t=>{if(t.source!==s||t.data.penpal!==d.Reply||t.data.id!==u)return;if("*"!==m&&t.origin!==m)return void r(`${i} received message from origin ${t.origin} which did not match expected origin ${m}`);const c=t.data;r(`${i}: Received ${e}() reply`),a.removeEventListener(p.Message,f);let h=c.returnValue;c.returnValueIsError&&(h=(e=>{const t=new Error;return Object.keys(e).forEach((n=>t[n]=e[n])),t})(h)),(c.resolution===l.Fulfilled?n:o)(h)};a.addEventListener(p.Message,f);const h={penpal:d.Call,id:u,methodName:e,args:t};s.postMessage(h,c)}))},v=n.reduce(((e,t)=>(e[t]=h(t),e)),{});return Object.assign(e,(e=>{const t={};for(const n in e)S(t,n,e[n]);return t})(v)),()=>{f=!0}},$=(e,t,n,o,r)=>{const{destroy:i,onDestroy:a}=o;let s,c;const u={};return o=>{if("*"!==t&&o.origin!==t)return void r(`Parent: Handshake - Received ACK message from origin ${o.origin} which did not match expected origin ${t}`);r("Parent: Handshake - Received ACK");const f={localName:"Parent",local:window,remote:o.source,originForSending:n,originForReceiving:t};s&&s(),s=((e,t,n)=>{const{localName:o,local:r,remote:i,originForSending:a,originForReceiving:s}=e;let c=!1;const u=e=>{if(e.source!==i||e.data.penpal!==d.Call)return;if("*"!==s&&e.origin!==s)return void n(`${o} received message from origin ${e.origin} which did not match expected origin ${s}`);const r=e.data,{methodName:u,args:p,id:f}=r;n(`${o}: Received ${u}() call`);const h=e=>t=>{if(n(`${o}: Sending ${u}() reply`),c)return void n(`${o}: Unable to send ${u}() reply due to destroyed connection`);const r={penpal:d.Reply,id:f,resolution:e,returnValue:t};e===l.Rejected&&t instanceof Error&&(r.returnValue=y(t),r.returnValueIsError=!0);try{i.postMessage(r,a)}catch(e){if(e.name===m.DataCloneError){const t={penpal:d.Reply,id:f,resolution:l.Rejected,returnValue:y(e),returnValueIsError:!0};i.postMessage(t,a)}throw e}};new Promise((e=>e(t[u].apply(t,p)))).then(h(l.Fulfilled),h(l.Rejected))};return r.addEventListener(p.Message,u),()=>{c=!0,r.removeEventListener(p.Message,u)}})(f,e,r),a(s),c&&c.forEach((e=>{delete u[e]})),c=o.data.methodNames;const h=R(u,f,c,i,r);return a(h),u}};var x=e=>{let{iframe:t,methods:n={},childOrigin:o,timeout:r,debug:i=!1}=e;const a=(e=>(...t)=>{e&&console.log("[Penpal]",...t)})(i),s=((e,t)=>{const n=[];let o=!1;return{destroy(r){o||(o=!0,t(`${e}: Destroying connection`),n.forEach((e=>{e(r)})))},onDestroy(e){o?e():n.push(e)}}})("Parent",a),{onDestroy:c,destroy:l}=s;o||((e=>{if(!e.src&&!e.srcdoc){const e=new Error("Iframe must have src or srcdoc property defined.");throw e.code=u.NoIframeSrc,e}})(t),o=(e=>{if(e&&g.find((t=>e.startsWith(t))))return"null";const t=document.location,n=v.exec(e);let o,r,i;return n?(o=n[1]?n[1]:t.protocol,r=n[2],i=n[4]):(o=t.protocol,r=t.hostname,i=t.port),`${o}//${r}${i&&i!==h[o]?`:${i}`:""}`})(t.src));const m="null"===o?"*":o,f=w(n),y=((e,t,n,o)=>r=>{if(!r.source)return;if("*"!==n&&r.origin!==n)return void e(`Parent: Handshake - Received SYN message from origin ${r.origin} which did not match expected origin ${n}`);e("Parent: Handshake - Received SYN, responding with SYN-ACK");const i={penpal:d.SynAck,methodNames:Object.keys(t)};r.source.postMessage(i,o)})(a,f,o,m),b=$(f,o,m,s,a),C=new Promise(((e,n)=>{const o=((e,t)=>{let n;return void 0!==e&&(n=window.setTimeout((()=>{const n=new Error(`Connection timed out after ${e}ms`);n.code=u.ConnectionTimeout,t(n)}),e)),()=>{clearTimeout(n)}})(r,l),i=n=>{if(n.source===t.contentWindow&&n.data)if(n.data.penpal!==d.Syn)if(n.data.penpal!==d.Ack);else{const t=b(n);t&&(o(),e(t))}else y(n)};window.addEventListener(p.Message,i),a("Parent: Awaiting handshake"),((e,t)=>{const{destroy:n,onDestroy:o}=t,r=setInterval((()=>{e.isConnected||(clearInterval(r),n())}),6e4);o((()=>{clearInterval(r)}))})(t,s),c((e=>{window.removeEventListener(p.Message,i),e&&n(e)}))}));return{promise:C,destroy(){l()}}},F=["interactive","complete"],_=function(e,t){return new Promise((function(n){e&&"function"!=typeof e&&(t=e,e=null),t=t||window.document;var o=function(){return n(void(e&&setTimeout(e)))};-1!==F.indexOf(t.readyState)?o():t.addEventListener("DOMContentLoaded",o)}))};_.resume=function(e){return function(t){return _(e).then((function(){return t}))}};var j=function(e){var t=e.importerKey,n=e.user,o=e.metadata,r=e.onData,a=e.onRecordsInitial,s=e.onRecordEdit,c=e.importerDisplay,d=void 0===c?"modal":c,l=e.onClose,u=e.theme,m=e.batchSize,p=e.sampleFileURL,h=e.downloadExampleButton,v=void 0===h||h,g=e.dynamicColumns,y=e.defaultLanguage,b=e.onError,C=e.customText,E=e.acceptedFileFormats,S=e.onFileUpload,w="usecsv-".concat(Math.round(1e8*Math.random()));return _().then((function(){var e=function(e,t){var n=document.getElementById("usecsv-importer-inline-wrapper");f("\n ".concat("modal"!==t&&n?"":".usecsv_container { position: fixed; top: 0px; bottom: 0; right: 0; left: 0; z-index: 100000; }","\n .usecsv_container iframe {\n width: 100%;\n height: 100%;\n position: absolute;\n border-width: 0;\n }\n .usecsv_container {\n overflow: hidden;\n overscroll-behavior-x: none;\n }\n")),document.body.insertAdjacentHTML("beforeend","<div id=".concat(e,' class="usecsv_container loading"></div>'));var o=document.createElement("iframe");o.setAttribute("src","https://app.usecsv.com/importer");var r=document.getElementById(e);return null==r||r.appendChild(o),"inline"===t&&n&&(null==n||n.appendChild(r)),o}(w,d),c=function(){var e;null===(e=document.getElementById(w))||void 0===e||e.remove()},h=x({iframe:e,methods:i(i(i(i(i(i({closeIframe:c},r?{onData:function(e){return r(e,c)}}:{}),a?{onRecordsInitial:a}:{}),s?{onRecordEdit:s}:{}),l?{onClose:l}:{}),b?{onError:b}:{}),S?{onFileUpload:S}:{})});return h.promise.then((function(e){var r;null===(r=document.getElementById(w))||void 0===r||r.classList.remove("loading"),e.setParams&&e.setParams({importerKey:t,user:n,metadata:o,importerDisplay:d,theme:u,batchSize:m,sampleFileURL:p,downloadExampleButton:v,dynamicColumns:g,defaultLanguage:y,customText:C,acceptedFileFormats:E})})),h}))},I=n.default.extend({name:"usecsv-button",props:{importerKey:{},user:{},metadata:{},onData:{},importerDisplay:{},onRecordsInitial:{},onRecordEdit:{},onClose:{},theme:{},batchSize:{},sampleFileURL:{},downloadExampleButton:{},dynamicColumns:{},defaultLanguage:{},onError:{},customText:{},acceptedFileFormats:{},onFileUpload:{}},data:function(){return{hasSlot:!!this.$slots.default}},methods:{openModal:function(){j({importerKey:this.importerKey,user:this.user,metadata:this.metadata,onData:this.onData,importerDisplay:this.importerDisplay,onRecordsInitial:this.onRecordsInitial,onRecordEdit:this.onRecordEdit,onClose:this.onClose,theme:this.theme,batchSize:this.batchSize,sampleFileURL:this.sampleFileURL,downloadExampleButton:this.downloadExampleButton,dynamicColumns:this.dynamicColumns,defaultLanguage:this.defaultLanguage,onError:this.onError,customText:this.customText,acceptedFileFormats:this.acceptedFileFormats,onFileUpload:this.onFileUpload})},hasScopedSlot:function(){return"normalized"===(this.$scopedSlots.default&&this.$scopedSlots.default.name)}}});function L(e,t,n,o,r,i,a,s,c,d){"boolean"!=typeof a&&(c=s,s=a,a=!1);const l="function"==typeof n?n.options:n;let u;if(e&&e.render&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0,r&&(l.functional=!0)),o&&(l._scopeId=o),i?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=u):t&&(u=a?function(e){t.call(this,d(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),u)if(l.functional){const e=l.render;l.render=function(t,n){return u.call(n),e(t,n)}}else{const e=l.beforeCreate;l.beforeCreate=e?[].concat(e,u):[u]}return n}const D="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function A(e){return(e,t)=>function(e,t){const n=D?t.media||"default":e,o=O[n]||(O[n]={ids:new Set,styles:[]});if(!o.ids.has(e)){o.ids.add(e);let n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),o.element||(o.element=document.createElement("style"),o.element.type="text/css",t.media&&o.element.setAttribute("media",t.media),void 0===M&&(M=document.head||document.getElementsByTagName("head")[0]),M.appendChild(o.element)),"styleSheet"in o.element)o.styles.push(n),o.element.styleSheet.cssText=o.styles.filter(Boolean).join("\n");else{const e=o.ids.size-1,t=document.createTextNode(n),r=o.element.childNodes;r[e]&&o.element.removeChild(r[e]),r.length?o.element.insertBefore(t,r[e]):o.element.appendChild(t)}}}(e,t)}let M;const O={};var T=L({render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"usecsv"},[e.hasScopedSlot()?n("div",[e._t("default",null,{openModal:e.openModal})],2):n("div",[n("button",{attrs:{type:"button",id:"usecsv-button"},on:{click:e.openModal}},[e._t("default",(function(){return[e._v(" open usecsv ")]}))],2)])])},staticRenderFns:[]},(function(e){e&&e("data-v-5f455e9e_0",{source:"#usecsv-button[data-v-5f455e9e]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",map:void 0,media:void 0})}),I,"data-v-5f455e9e",false,undefined,!1,A,void 0,void 0),N=function(){var e=T;return e.install=function(t){t.component("usecsv-button",e)},e}(),U=Object.freeze({__proto__:null,default:N});return Object.entries(U).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];"default"!==n&&(N[n]=r)})),N}(Vue);
@@ -47,7 +47,7 @@ function _arrayLikeToArray(arr, len) {
47
47
  function _nonIterableRest() {
48
48
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
49
49
  }/*!
50
- * @usecsv/js v0.20.0
50
+ * @usecsv/js v0.21.1
51
51
  * (c) layercode
52
52
  * Released under the MIT License.
53
53
  */
@@ -728,7 +728,7 @@ var insertIframe = function (id, importerDisplay) {
728
728
  return iframe;
729
729
  };
730
730
  var useCsvPlugin = function (_a) {
731
- var importerKey = _a.importerKey, user = _a.user, metadata = _a.metadata, onData = _a.onData, onRecordsInitial = _a.onRecordsInitial, onRecordEdit = _a.onRecordEdit, _b = _a.importerDisplay, importerDisplay = _b === void 0 ? "modal" : _b, onClose = _a.onClose, theme = _a.theme, batchSize = _a.batchSize, sampleFileURL = _a.sampleFileURL, _c = _a.downloadExampleButton, downloadExampleButton = _c === void 0 ? true : _c, dynamicColumns = _a.dynamicColumns, defaultLanguage = _a.defaultLanguage, onError = _a.onError, customText = _a.customText, acceptedFileFormats = _a.acceptedFileFormats;
731
+ var importerKey = _a.importerKey, user = _a.user, metadata = _a.metadata, onData = _a.onData, onRecordsInitial = _a.onRecordsInitial, onRecordEdit = _a.onRecordEdit, _b = _a.importerDisplay, importerDisplay = _b === void 0 ? "modal" : _b, onClose = _a.onClose, theme = _a.theme, batchSize = _a.batchSize, sampleFileURL = _a.sampleFileURL, _c = _a.downloadExampleButton, downloadExampleButton = _c === void 0 ? true : _c, dynamicColumns = _a.dynamicColumns, defaultLanguage = _a.defaultLanguage, onError = _a.onError, customText = _a.customText, acceptedFileFormats = _a.acceptedFileFormats, onFileUpload = _a.onFileUpload;
732
732
  var id = "usecsv-".concat(Math.round(Math.random() * 100000000));
733
733
  return whenDomReady().then(function () {
734
734
  var iframe = insertIframe(id, importerDisplay);
@@ -738,27 +738,7 @@ var useCsvPlugin = function (_a) {
738
738
  };
739
739
  var iframeConnection = connectToChild({
740
740
  iframe: iframe,
741
- methods: __assign(__assign(__assign(__assign(__assign({ closeIframe: closeIframe }, (onData
742
- ? {
743
- onData: function (data) { return onData(data, closeIframe); },
744
- }
745
- : {})), (onRecordsInitial
746
- ? {
747
- onRecordsInitial: onRecordsInitial,
748
- }
749
- : {})), (onRecordEdit
750
- ? {
751
- onRecordEdit: onRecordEdit,
752
- }
753
- : {})), (onClose
754
- ? {
755
- onClose: onClose,
756
- }
757
- : {})), (onError
758
- ? {
759
- onError: onError,
760
- }
761
- : {})),
741
+ methods: __assign(__assign(__assign(__assign(__assign(__assign({ closeIframe: closeIframe }, (onData ? { onData: function (data) { return onData(data, closeIframe); } } : {})), (onRecordsInitial ? { onRecordsInitial: onRecordsInitial } : {})), (onRecordEdit ? { onRecordEdit: onRecordEdit } : {})), (onClose ? { onClose: onClose } : {})), (onError ? { onError: onError } : {})), (onFileUpload ? { onFileUpload: onFileUpload } : {})),
762
742
  });
763
743
  iframeConnection.promise.then(function (child) {
764
744
  var _a;
@@ -803,7 +783,8 @@ var useCsvPlugin = function (_a) {
803
783
  defaultLanguage: {},
804
784
  onError: {},
805
785
  customText: {},
806
- acceptedFileFormats: {}
786
+ acceptedFileFormats: {},
787
+ onFileUpload: {}
807
788
  },
808
789
  data: function data() {
809
790
  return {
@@ -829,7 +810,8 @@ var useCsvPlugin = function (_a) {
829
810
  defaultLanguage: this.defaultLanguage,
830
811
  onError: this.onError,
831
812
  customText: this.customText,
832
- acceptedFileFormats: this.acceptedFileFormats
813
+ acceptedFileFormats: this.acceptedFileFormats,
814
+ onFileUpload: this.onFileUpload
833
815
  });
834
816
  },
835
817
  hasScopedSlot: function hasScopedSlot() {
@@ -959,9 +941,9 @@ var __vue_render__ = function __vue_render__() {
959
941
  var _c = _vm._self._c || _h;
960
942
  return _c('div', {
961
943
  staticClass: "usecsv"
962
- }, [_vm.hasScopedSlot() ? _vm._ssrNode("<div data-v-31570516>", "</div>", [_vm._t("default", null, {
944
+ }, [_vm.hasScopedSlot() ? _vm._ssrNode("<div data-v-5f455e9e>", "</div>", [_vm._t("default", null, {
963
945
  "openModal": _vm.openModal
964
- })], 2) : _vm._ssrNode("<div data-v-31570516>", "</div>", [_vm._ssrNode("<button type=\"button\" id=\"usecsv-button\" data-v-31570516>", "</button>", [_vm._t("default", function () {
946
+ })], 2) : _vm._ssrNode("<div data-v-5f455e9e>", "</div>", [_vm._ssrNode("<button type=\"button\" id=\"usecsv-button\" data-v-5f455e9e>", "</button>", [_vm._t("default", function () {
965
947
  return [_vm._v(" open usecsv ")];
966
948
  })], 2)])]);
967
949
  };
@@ -970,16 +952,16 @@ var __vue_staticRenderFns__ = [];
970
952
  /* style */
971
953
  var __vue_inject_styles__ = function __vue_inject_styles__(inject) {
972
954
  if (!inject) return;
973
- inject("data-v-31570516_0", {
974
- source: "#usecsv-button[data-v-31570516]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",
955
+ inject("data-v-5f455e9e_0", {
956
+ source: "#usecsv-button[data-v-5f455e9e]{background-color:#fff;color:#000;border:2px solid #000;border-radius:6px;padding:10px 15px;text-align:center;font-size:16px;cursor:pointer}",
975
957
  map: undefined,
976
958
  media: undefined
977
959
  });
978
960
  };
979
961
  /* scoped */
980
- var __vue_scope_id__ = "data-v-31570516";
962
+ var __vue_scope_id__ = "data-v-5f455e9e";
981
963
  /* module identifier */
982
- var __vue_module_identifier__ = "data-v-31570516";
964
+ var __vue_module_identifier__ = "data-v-5f455e9e";
983
965
  /* functional template */
984
966
  var __vue_is_functional_template__ = false;
985
967
  /* style inject shadow dom */
@@ -22,5 +22,6 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
22
22
  onError?: import("@usecsv/js/build/types/lib/types").onErrorType | undefined;
23
23
  customText?: import("@usecsv/js/build/types/lib/types").customTextType | undefined;
24
24
  acceptedFileFormats?: import("@usecsv/js/build/types/lib/types").fileFormats[] | undefined;
25
+ onFileUpload?: import("@usecsv/js/build/types/lib/types").onFileUploadType;
25
26
  }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
26
27
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usecsv/vuejs",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "",
5
5
  "main": "dist/UseCSVButton.ssr.js",
6
6
  "browser": "dist/UseCSVButton.esm.js",
@@ -24,7 +24,7 @@
24
24
  "prepublishOnly": "yarn build"
25
25
  },
26
26
  "dependencies": {
27
- "@usecsv/js": "^0.20.0"
27
+ "@usecsv/js": "^0.21.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@babel/core": "^7.21.8",
@@ -29,6 +29,7 @@ export default /*#__PURE__*/ Vue.extend<
29
29
  onError: {},
30
30
  customText: {},
31
31
  acceptedFileFormats: {},
32
+ onFileUpload: {},
32
33
  },
33
34
  data() {
34
35
  return {
@@ -55,6 +56,7 @@ export default /*#__PURE__*/ Vue.extend<
55
56
  onError: this.onError,
56
57
  customText: this.customText,
57
58
  acceptedFileFormats: this.acceptedFileFormats,
59
+ onFileUpload: this.onFileUpload,
58
60
  });
59
61
  },
60
62
  hasScopedSlot(): boolean {