@usecsv/vuejs 1.5.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.19.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;
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;
@@ -732,6 +712,7 @@ var useCsvPlugin = function (_a) {
732
712
  dynamicColumns: dynamicColumns,
733
713
  defaultLanguage: defaultLanguage,
734
714
  customText: customText,
715
+ acceptedFileFormats: acceptedFileFormats,
735
716
  });
736
717
  });
737
718
  return iframeConnection;
@@ -756,7 +737,9 @@ var script = /*#__PURE__*/Vue.extend({
756
737
  dynamicColumns: {},
757
738
  defaultLanguage: {},
758
739
  onError: {},
759
- customText: {}
740
+ customText: {},
741
+ acceptedFileFormats: {},
742
+ onFileUpload: {}
760
743
  },
761
744
  data() {
762
745
  return {
@@ -781,7 +764,9 @@ var script = /*#__PURE__*/Vue.extend({
781
764
  dynamicColumns: this.dynamicColumns,
782
765
  defaultLanguage: this.defaultLanguage,
783
766
  onError: this.onError,
784
- customText: this.customText
767
+ customText: this.customText,
768
+ acceptedFileFormats: this.acceptedFileFormats,
769
+ onFileUpload: this.onFileUpload
785
770
  });
786
771
  },
787
772
  hasScopedSlot() {
@@ -947,14 +932,14 @@ var __vue_staticRenderFns__ = [];
947
932
  /* style */
948
933
  const __vue_inject_styles__ = function (inject) {
949
934
  if (!inject) return;
950
- inject("data-v-6554ef6e_0", {
951
- source: "#usecsv-button[data-v-6554ef6e]{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}",
952
937
  map: undefined,
953
938
  media: undefined
954
939
  });
955
940
  };
956
941
  /* scoped */
957
- const __vue_scope_id__ = "data-v-6554ef6e";
942
+ const __vue_scope_id__ = "data-v-5f455e9e";
958
943
  /* module identifier */
959
944
  const __vue_module_identifier__ = undefined;
960
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.19.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"],j=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)}))};j.resume=function(e){return function(t){return j(e).then((function(){return t}))}};var I=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="usecsv-".concat(Math.round(1e8*Math.random()));return j().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}(E,d),c=function(){var e;null===(e=document.getElementById(E))||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(E))||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})})),h}))},L=n.default.extend({name:"usecsv-button",props:{importerKey:{},user:{},metadata:{},onData:{},importerDisplay:{},onRecordsInitial:{},onRecordEdit:{},onClose:{},theme:{},batchSize:{},sampleFileURL:{},downloadExampleButton:{},dynamicColumns:{},defaultLanguage:{},onError:{},customText:{}},data:function(){return{hasSlot:!!this.$slots.default}},methods:{openModal:function(){I({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})},hasScopedSlot:function(){return"normalized"===(this.$scopedSlots.default&&this.$scopedSlots.default.name)}}});function D(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 A="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function M(e){return(e,t)=>function(e,t){const n=A?t.media||"default":e,o=T[n]||(T[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===O&&(O=document.head||document.getElementsByTagName("head")[0]),O.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 O;const T={};var N=D({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-6554ef6e_0",{source:"#usecsv-button[data-v-6554ef6e]{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})}),L,"data-v-6554ef6e",false,undefined,!1,M,void 0,void 0),k=function(){var e=N;return e.install=function(t){t.component("usecsv-button",e)},e}(),F=Object.freeze({__proto__:null,default:k});return Object.entries(F).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];"default"!==n&&(k[n]=r)})),k}(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.19.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;
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;
@@ -778,6 +758,7 @@ var useCsvPlugin = function (_a) {
778
758
  dynamicColumns: dynamicColumns,
779
759
  defaultLanguage: defaultLanguage,
780
760
  customText: customText,
761
+ acceptedFileFormats: acceptedFileFormats,
781
762
  });
782
763
  });
783
764
  return iframeConnection;
@@ -801,7 +782,9 @@ var useCsvPlugin = function (_a) {
801
782
  dynamicColumns: {},
802
783
  defaultLanguage: {},
803
784
  onError: {},
804
- customText: {}
785
+ customText: {},
786
+ acceptedFileFormats: {},
787
+ onFileUpload: {}
805
788
  },
806
789
  data: function data() {
807
790
  return {
@@ -826,7 +809,9 @@ var useCsvPlugin = function (_a) {
826
809
  dynamicColumns: this.dynamicColumns,
827
810
  defaultLanguage: this.defaultLanguage,
828
811
  onError: this.onError,
829
- customText: this.customText
812
+ customText: this.customText,
813
+ acceptedFileFormats: this.acceptedFileFormats,
814
+ onFileUpload: this.onFileUpload
830
815
  });
831
816
  },
832
817
  hasScopedSlot: function hasScopedSlot() {
@@ -956,9 +941,9 @@ var __vue_render__ = function __vue_render__() {
956
941
  var _c = _vm._self._c || _h;
957
942
  return _c('div', {
958
943
  staticClass: "usecsv"
959
- }, [_vm.hasScopedSlot() ? _vm._ssrNode("<div data-v-6554ef6e>", "</div>", [_vm._t("default", null, {
944
+ }, [_vm.hasScopedSlot() ? _vm._ssrNode("<div data-v-5f455e9e>", "</div>", [_vm._t("default", null, {
960
945
  "openModal": _vm.openModal
961
- })], 2) : _vm._ssrNode("<div data-v-6554ef6e>", "</div>", [_vm._ssrNode("<button type=\"button\" id=\"usecsv-button\" data-v-6554ef6e>", "</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 () {
962
947
  return [_vm._v(" open usecsv ")];
963
948
  })], 2)])]);
964
949
  };
@@ -967,16 +952,16 @@ var __vue_staticRenderFns__ = [];
967
952
  /* style */
968
953
  var __vue_inject_styles__ = function __vue_inject_styles__(inject) {
969
954
  if (!inject) return;
970
- inject("data-v-6554ef6e_0", {
971
- source: "#usecsv-button[data-v-6554ef6e]{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}",
972
957
  map: undefined,
973
958
  media: undefined
974
959
  });
975
960
  };
976
961
  /* scoped */
977
- var __vue_scope_id__ = "data-v-6554ef6e";
962
+ var __vue_scope_id__ = "data-v-5f455e9e";
978
963
  /* module identifier */
979
- var __vue_module_identifier__ = "data-v-6554ef6e";
964
+ var __vue_module_identifier__ = "data-v-5f455e9e";
980
965
  /* functional template */
981
966
  var __vue_is_functional_template__ = false;
982
967
  /* style inject shadow dom */
@@ -21,5 +21,7 @@ declare const _default: import("vue/types/vue").ExtendedVue<Vue<Record<string, a
21
21
  defaultLanguage?: import("@usecsv/js/build/types/lib/types").Language | undefined;
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
+ acceptedFileFormats?: import("@usecsv/js/build/types/lib/types").fileFormats[] | undefined;
25
+ onFileUpload?: import("@usecsv/js/build/types/lib/types").onFileUploadType;
24
26
  }, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin>;
25
27
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usecsv/vuejs",
3
- "version": "1.5.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.19.0"
27
+ "@usecsv/js": "^0.21.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@babel/core": "^7.21.8",
@@ -55,7 +55,7 @@
55
55
  "rollup-plugin-terser": "^7.0.2",
56
56
  "rollup-plugin-typescript2": "^0.34.1",
57
57
  "rollup-plugin-vue": "^5.1.9",
58
- "semantic-release": "^22.0.5",
58
+ "semantic-release": "^22.0.6",
59
59
  "ttypescript": "^1.5.15",
60
60
  "typescript": "<4.8",
61
61
  "vue": "^2.6.14",
@@ -28,6 +28,8 @@ export default /*#__PURE__*/ Vue.extend<
28
28
  defaultLanguage: {},
29
29
  onError: {},
30
30
  customText: {},
31
+ acceptedFileFormats: {},
32
+ onFileUpload: {},
31
33
  },
32
34
  data() {
33
35
  return {
@@ -53,6 +55,8 @@ export default /*#__PURE__*/ Vue.extend<
53
55
  defaultLanguage: this.defaultLanguage,
54
56
  onError: this.onError,
55
57
  customText: this.customText,
58
+ acceptedFileFormats: this.acceptedFileFormats,
59
+ onFileUpload: this.onFileUpload,
56
60
  });
57
61
  },
58
62
  hasScopedSlot(): boolean {