csvbox-react-test 1.1.1 → 1.1.12

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.
@@ -0,0 +1,40 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ declare module '@csvbox/react' {
3
+ interface CSVBoxImporterProps {
4
+ lazy?: boolean;
5
+ loadStarted?:() => void;
6
+ user: any;
7
+ dynamicColumns?: any;
8
+ options?: any;
9
+ onReady?:() => void;
10
+ onImport:(type:boolean, metadata?:any) => void;
11
+ onSubmit?:(metadata:any) => void;
12
+ onClose?:() => void;
13
+ licenseKey: string;
14
+ dataLocation?: string;
15
+ customDomain?: string;
16
+ language?: string;
17
+ environment?: any;
18
+ render?:(launch:any, isLoading:boolean) => void
19
+ }
20
+
21
+ export class CSVBoxButton extends React.Component<PropsWithChildren<CSVBoxImporterProps>>{
22
+ constructor(props: CSVBoxImporterProps);
23
+
24
+ holder: React.RefObject<HTMLDivElement>;
25
+ isModalShown: boolean;
26
+ shouldOpenModalOnReady: boolean;
27
+ uuid: string;
28
+ iframe: HTMLIFrameElement | null;
29
+
30
+ openModal(): void;
31
+
32
+ generateUuid(): string;
33
+
34
+ componentDidMount(): void;
35
+
36
+ initImporter(): void;
37
+
38
+ enableInitator(): void;
39
+ }
40
+ }
package/README.md CHANGED
@@ -1,48 +1,48 @@
1
- # @csvbox/react
2
-
3
- > React adapter for csvbox.io
4
-
5
- [![NPM](https://img.shields.io/npm/v/@csvbox/react.svg)](https://www.npmjs.com/package/@csvbox/react) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
6
-
7
- ## Shell
8
-
9
- ```bash
10
- npm install @csvbox/react
11
- ```
12
-
13
- ## Import
14
- ```js
15
- import { CSVBoxButton } from '@csvbox/react'
16
- ```
17
-
18
- ## Usage
19
-
20
- ```jsx
21
- <CSVBoxButton
22
- licenseKey="Sheet license key"
23
- user={{
24
- user_id: "default123"
25
- }}
26
- onImport={(result, data) => {
27
- if(result){
28
- console.log("success");
29
- console.log(data.row_success + " rows uploaded");
30
- //custom code
31
- }else{
32
- console.log("fail");
33
- //custom code
34
- }
35
- }}
36
- >
37
- Import
38
- </CSVBoxButton>
39
- ```
40
-
41
- ## Readme
42
-
43
- For usage see the guide here - https://help.csvbox.io/getting-started#2-install-code
44
-
45
-
46
- ## License
47
-
48
- MIT © [csvbox-io](https://github.com/csvbox-io)
1
+ # @csvbox/react
2
+
3
+ > React adapter for csvbox.io
4
+
5
+ [![NPM](https://img.shields.io/npm/v/@csvbox/react.svg)](https://www.npmjs.com/package/@csvbox/react) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
6
+
7
+ ## Shell
8
+
9
+ ```bash
10
+ npm install @csvbox/react
11
+ ```
12
+
13
+ ## Import
14
+ ```js
15
+ import { CSVBoxButton } from '@csvbox/react'
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ```jsx
21
+ <CSVBoxButton
22
+ licenseKey="Sheet license key"
23
+ user={{
24
+ user_id: "default123"
25
+ }}
26
+ onImport={(result, data) => {
27
+ if(result){
28
+ console.log("success");
29
+ console.log(data.row_success + " rows uploaded");
30
+ //custom code
31
+ }else{
32
+ console.log("fail");
33
+ //custom code
34
+ }
35
+ }}
36
+ >
37
+ Import
38
+ </CSVBoxButton>
39
+ ```
40
+
41
+ ## Readme
42
+
43
+ For usage see the guide here - https://help.csvbox.io/getting-started#2-install-code
44
+
45
+
46
+ ## License
47
+
48
+ MIT © [csvbox-io](https://github.com/csvbox-io)
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ function _assertThisInitialized(self) {
27
27
  return self;
28
28
  }
29
29
 
30
- var version = "1.1.1";
30
+ var version = "1.1.12";
31
31
 
32
32
  var CSVBoxButton = /*#__PURE__*/function (_Component) {
33
33
  _inheritsLoose(CSVBoxButton, _Component);
@@ -37,28 +37,71 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
37
37
 
38
38
  _this = _Component.call(this, props) || this;
39
39
  _this.holder = React__default.createRef();
40
- _this.iframe = React__default.createRef();
41
40
  _this.openModal = _this.openModal.bind(_assertThisInitialized(_this));
42
41
  _this.isModalShown = false;
42
+ _this.shouldOpenModalOnReady = false;
43
43
  _this.uuid = _this.generateUuid();
44
44
  _this.state = {
45
- disabled: true
45
+ isLoading: true
46
46
  };
47
+ _this.iframe = null;
47
48
  return _this;
48
49
  }
49
50
 
50
51
  var _proto = CSVBoxButton.prototype;
51
52
 
52
53
  _proto.componentDidMount = function componentDidMount() {
54
+ var lazy = this.props.lazy;
55
+
56
+ if (!lazy && !this.iframe) {
57
+ this.initImporter();
58
+ } else if (lazy) {
59
+ this.enableInitator();
60
+ }
61
+ };
62
+
63
+ _proto.initImporter = function initImporter() {
53
64
  var _this2 = this;
54
65
 
55
- var onImport = this.props.onImport;
66
+ var loadStarted = this.props.loadStarted;
67
+ loadStarted === null || loadStarted === void 0 ? void 0 : loadStarted();
56
68
  var user = this.props.user;
57
69
  var dynamicColumns = this.props.dynamicColumns;
58
70
  var options = this.props.options;
59
71
  var onReady = this.props.onReady;
72
+ var onImport = this.props.onImport;
60
73
  var onSubmit = this.props.onSubmit;
61
74
  var onClose = this.props.onClose;
75
+ var licenseKey = this.props.licenseKey;
76
+ var dataLocation = this.props.dataLocation;
77
+ var customDomain = this.props.customDomain;
78
+ var language = this.props.language;
79
+ var environment = this.props.environment;
80
+ var domain = customDomain ? customDomain : "app.csvbox.io";
81
+
82
+ if (dataLocation) {
83
+ domain = dataLocation + "-" + domain;
84
+ }
85
+
86
+ var iframeUrl = "https://" + domain + "/embed/" + licenseKey;
87
+ iframeUrl += "?library-version=" + version;
88
+ iframeUrl += "&framework=react";
89
+
90
+ if (dataLocation) {
91
+ iframeUrl += "&preventRedirect";
92
+ }
93
+
94
+ if (language) {
95
+ iframeUrl += "&language=" + language;
96
+ }
97
+
98
+ if (environment) {
99
+ var env = JSON.stringify(environment).replace(/['"]/g, function (match) {
100
+ return '\\' + match;
101
+ });
102
+ iframeUrl += "&env=" + env;
103
+ }
104
+
62
105
  window.addEventListener("message", function (event) {
63
106
  if (event.data === "mainModalHidden") {
64
107
  if (_this2.holder && _this2.holder.current) {
@@ -86,7 +129,7 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
86
129
  delete metadata["unique_token"];
87
130
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(metadata);
88
131
  } else if (event.data.type && event.data.type == "data-push-status") {
89
- if (event.data.data.import_status = "success") {
132
+ if (event.data.data.import_status == "success") {
90
133
  if (event.data && event.data.row_data) {
91
134
  var primary_row_data = event.data.row_data;
92
135
  var headers = event.data.headers;
@@ -95,10 +138,12 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
95
138
  var virtual_columns_indexes = event.data.virtualColumnsIndexes || [];
96
139
  var dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;
97
140
  primary_row_data.forEach(function (row_data) {
141
+ var _row_data$data;
142
+
98
143
  var x = {};
99
144
  var dynamic_columns = {};
100
145
  var virtual_data = {};
101
- row_data.data.forEach(function (col, i) {
146
+ (_row_data$data = row_data.data) === null || _row_data$data === void 0 ? void 0 : _row_data$data.forEach(function (col, i) {
102
147
  if (col == undefined) {
103
148
  col = "";
104
149
  }
@@ -132,6 +177,9 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
132
177
  });
133
178
  var _metadata = event.data.data;
134
179
  _metadata["rows"] = rows;
180
+ _metadata["column_mappings"] = event.data.column_mapping;
181
+ _metadata["raw_columns"] = event.data.raw_columns;
182
+ _metadata["ignored_columns"] = event.data.ignored_column_row;
135
183
  delete _metadata["unique_token"];
136
184
  onImport(true, _metadata);
137
185
  } else {
@@ -160,11 +208,20 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
160
208
  }
161
209
  }
162
210
  }, false);
163
- var iframe = this.iframe.current;
164
211
  var self = this;
212
+ var iframe = document.createElement("iframe");
213
+ this.iframe = iframe;
214
+ iframe.setAttribute("src", iframeUrl);
215
+ iframe.frameBorder = 0;
216
+ iframe.classList.add('csvbox-iframe');
217
+ iframe.style.height = "100%";
218
+ iframe.style.width = "100%";
219
+ iframe.style.position = "absolute";
220
+ iframe.style.top = "0px";
221
+ iframe.style.left = "0px";
222
+ window.addEventListener("message", this.onMessageEvent, false);
165
223
 
166
224
  iframe.onload = function () {
167
- onReady === null || onReady === void 0 ? void 0 : onReady();
168
225
  self.enableInitator();
169
226
  iframe.contentWindow.postMessage({
170
227
  "customer": user ? user : null,
@@ -172,14 +229,36 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
172
229
  "options": options ? options : null,
173
230
  "unique_token": self.uuid
174
231
  }, "*");
232
+ onReady === null || onReady === void 0 ? void 0 : onReady();
233
+
234
+ if (self.shouldOpenModalOnReady) {
235
+ self.openModal();
236
+ self.shouldOpenModalOnReady = false;
237
+ }
175
238
  };
239
+
240
+ this.holder.current.appendChild(iframe);
176
241
  };
177
242
 
178
243
  _proto.openModal = function openModal() {
244
+ var lazy = this.props.lazy;
245
+
246
+ if (lazy) {
247
+ if (!this.iframe) {
248
+ this.shouldOpenModalOnReady = true;
249
+ this.initImporter();
250
+ return;
251
+ }
252
+ }
253
+
179
254
  if (!this.isModalShown) {
180
- this.isModalShown = true;
181
- this.iframe.current.contentWindow.postMessage('openModal', '*');
182
- this.holder.current.style.display = 'block';
255
+ if (!this.state.isLoading) {
256
+ this.isModalShown = true;
257
+ this.iframe.contentWindow.postMessage('openModal', '*');
258
+ this.holder.current.style.display = 'block';
259
+ } else {
260
+ this.shouldOpenModalOnReady = true;
261
+ }
183
262
  }
184
263
  };
185
264
 
@@ -189,28 +268,11 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
189
268
 
190
269
  _proto.enableInitator = function enableInitator() {
191
270
  this.setState({
192
- disabled: !this.state.disabled
271
+ isLoading: false
193
272
  });
194
273
  };
195
274
 
196
275
  _proto.render = function render() {
197
- var licenseKey = this.props.licenseKey;
198
- var dataLocation = this.props.dataLocation;
199
- var customDomain = this.props.customDomain;
200
- var domain = customDomain ? customDomain : "app.csvbox.io";
201
-
202
- if (dataLocation) {
203
- domain = dataLocation + "-" + domain;
204
- }
205
-
206
- var iframeUrl = "https://" + domain + "/embed/" + licenseKey;
207
- iframeUrl += "?library-version=" + version;
208
- iframeUrl += "&framework=react";
209
-
210
- if (dataLocation) {
211
- iframeUrl += "&preventRedirect";
212
- }
213
-
214
276
  var holderStyle = {
215
277
  display: "none",
216
278
  zIndex: 2147483647,
@@ -220,41 +282,22 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
220
282
  left: 0,
221
283
  right: 0
222
284
  };
223
- var iframeStyle = {
224
- height: "100%",
225
- width: "100%",
226
- position: "absolute",
227
- top: "0px",
228
- left: "0px"
229
- };
230
285
 
231
286
  if (this.props.render) {
232
- return /*#__PURE__*/React__default.createElement("div", null, this.props.render(this.openModal, !this.state.disabled), /*#__PURE__*/React__default.createElement("div", {
287
+ return /*#__PURE__*/React__default.createElement("div", null, this.props.render(this.openModal, this.state.isLoading), /*#__PURE__*/React__default.createElement("div", {
233
288
  ref: this.holder,
234
289
  style: holderStyle
235
- }, /*#__PURE__*/React__default.createElement("iframe", {
236
- ref: this.iframe,
237
- style: iframeStyle,
238
- "data-csvbox-token": this.uuid,
239
- src: iframeUrl,
240
- frameBorder: "0"
241
- })));
290
+ }));
242
291
  } else {
243
292
  return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("button", {
244
- disabled: this.state.disabled,
293
+ disabled: this.state.isLoading,
245
294
  onClick: this.openModal,
246
295
  "data-csvbox-initator": true,
247
296
  "data-csvbox-token": this.uuid
248
297
  }, this.props.children), /*#__PURE__*/React__default.createElement("div", {
249
298
  ref: this.holder,
250
299
  style: holderStyle
251
- }, /*#__PURE__*/React__default.createElement("iframe", {
252
- ref: this.iframe,
253
- style: iframeStyle,
254
- "data-csvbox-token": this.uuid,
255
- src: iframeUrl,
256
- frameBorder: "0"
257
- })));
300
+ }));
258
301
  }
259
302
  };
260
303
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.js"],"sourcesContent":["import React, { Component } from 'react';\n// import styles from './styles.module.css'\n\nimport { version } from '../package.json';\n\nexport class CSVBoxButton extends Component {\n\n constructor(props) {\n super(props)\n this.holder = React.createRef();\n this.iframe = React.createRef();\n this.openModal = this.openModal.bind(this)\n this.isModalShown = false;\n this.uuid = this.generateUuid();\n this.state = {\n disabled: true\n };\n }\n\n componentDidMount() {\n\n const { onImport } = this.props;\n const { user } = this.props;\n const { dynamicColumns } = this.props;\n const { options } = this.props;\n const { onReady } = this.props;\n const { onSubmit } = this.props;\n const { onClose } = this.props;\n\n window.addEventListener(\"message\", (event) => {\n\n // console.log(\"message\", event);\n\n if (event.data === \"mainModalHidden\") {\n if (this.holder && this.holder.current) {\n this.holder.current.style.display = 'none';\n };\n this.isModalShown = false;\n onClose?.();\n }\n if(event.data === \"uploadSuccessful\") {\n onImport(true);\n }\n if(event.data === \"uploadFailed\") {\n onImport(false);\n }\n if(typeof event.data == \"object\") {\n\n if(event?.data?.data?.unique_token == this.uuid) {\n\n if(event.data.type && event.data.type == \"data-on-submit\") {\n let metadata = event.data.data;\n metadata[\"column_mappings\"] = event.data.column_mapping;\n delete metadata[\"unique_token\"];\n onSubmit?.(metadata);\n }\n else if(event.data.type && event.data.type == \"data-push-status\") {\n if(event.data.data.import_status = \"success\"){\n if(event.data && event.data.row_data) {\n let primary_row_data = event.data.row_data;\n let headers = event.data.headers;\n let rows = [];\n let dynamic_columns_indexes = event.data.dynamicColumnsIndexes;\n let virtual_columns_indexes = event.data.virtualColumnsIndexes || [];\n\n let dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;\n primary_row_data.forEach((row_data) => {\n let x = {};\n let dynamic_columns = {};\n let virtual_data = {};\n row_data.data.forEach((col, i)=>{\n if(col == undefined){ col = \"\" }\n if(!!dropdown_display_labels_mappings[i] && !!dropdown_display_labels_mappings[i][col]) {\n col = dropdown_display_labels_mappings[i][col];\n }\n if(dynamic_columns_indexes.includes(i)) {\n dynamic_columns[headers[i]] = col;\n }\n else if(virtual_columns_indexes.includes(i)) {\n virtual_data[headers[i]] = col;\n }\n else{\n x[headers[i]] = col;\n }\n });\n if(row_data.unmapped_data) {\n x[\"_unmapped_data\"] = row_data.unmapped_data;\n }\n if(dynamic_columns && Object.keys(dynamic_columns).length > 0) {\n x[\"_dynamic_data\"] = dynamic_columns;\n }\n if(virtual_data && Object.keys(virtual_data).length > 0) {\n x[\"_virtual_data\"] = virtual_data;\n }\n rows.push(x);\n });\n let metadata = event.data.data;\n metadata[\"rows\"] = rows;\n delete metadata[\"unique_token\"];\n onImport(true, metadata);\n }else{\n let metadata = event.data.data;\n delete metadata[\"unique_token\"];\n onImport(true, metadata);\n }\n }else {\n onImport(false, event.data.data);\n }\n } else if(event.data.type && event.data.type == \"csvbox-modal-hidden\") {\n if (this.holder && this.holder.current) {\n this.holder.current.style.display = 'none';\n };\n this.isModalShown = false;\n onClose?.();\n } else if(event.data.type && event.data.type == \"csvbox-upload-successful\") {\n this.onImport?.(true);\n } else if(event.data.type && event.data.type == \"csvbox-upload-failed\") {\n this.onImport?.(false);\n }\n }\n\n\n }\n }, false);\n let iframe = this.iframe.current;\n\n let self = this;\n\n iframe.onload = function () {\n\n onReady?.();\n\n self.enableInitator();\n\n iframe.contentWindow.postMessage({\n \"customer\" : user ? user : null,\n \"columns\" : dynamicColumns ? dynamicColumns : null,\n \"options\" : options ? options : null,\n \"unique_token\": self.uuid\n }, \"*\");\n\n }\n }\n openModal() {\n if(!this.isModalShown) {\n this.isModalShown = true;\n this.iframe.current.contentWindow.postMessage('openModal', '*');\n this.holder.current.style.display = 'block';\n }\n }\n\n generateUuid() {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n }\n\n enableInitator() {\n this.setState({\n disabled: !this.state.disabled\n })\n }\n\n render() {\n\n const { licenseKey } = this.props;\n const { dataLocation } = this.props;\n const { customDomain } = this.props;\n\n let domain = customDomain ? customDomain : \"app.csvbox.io\";\n\n if(dataLocation) {\n domain = `${dataLocation}-${domain}`;\n }\n\n let iframeUrl = `https://${domain}/embed/${licenseKey}`;\n\n iframeUrl += `?library-version=${version}`;\n iframeUrl += \"&framework=react\";\n\n if(dataLocation) {\n iframeUrl += \"&preventRedirect\";\n }\n\n const holderStyle = {\n display: \"none\",\n zIndex: 2147483647,\n position: \"fixed\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n const iframeStyle = {\n height: \"100%\",\n width: \"100%\",\n position: \"absolute\",\n top: \"0px\",\n left: \"0px\"\n };\n\n if(this.props.render) {\n return (\n <div>\n {this.props.render(this.openModal, !this.state.disabled)}\n <div ref={this.holder} style={holderStyle}>\n <iframe ref={this.iframe} style={iframeStyle} data-csvbox-token={this.uuid} src={iframeUrl} frameBorder=\"0\" ></iframe>\n </div>\n </div>\n )\n }else{\n return (\n <div>\n <button disabled={this.state.disabled} onClick={this.openModal} data-csvbox-initator data-csvbox-token={this.uuid}>{this.props.children}</button>\n <div ref={this.holder} style={holderStyle}>\n <iframe ref={this.iframe} style={iframeStyle} data-csvbox-token={this.uuid} src={iframeUrl} frameBorder=\"0\" ></iframe>\n </div>\n </div>\n )\n }\n\n\n }\n}\n\nexport default CSVBoxButton;\n"],"names":["CSVBoxButton","props","holder","React","createRef","iframe","openModal","bind","isModalShown","uuid","generateUuid","state","disabled","componentDidMount","onImport","user","dynamicColumns","options","onReady","onSubmit","onClose","window","addEventListener","event","data","current","style","display","unique_token","type","metadata","column_mapping","import_status","row_data","primary_row_data","headers","rows","dynamic_columns_indexes","dynamicColumnsIndexes","virtual_columns_indexes","virtualColumnsIndexes","dropdown_display_labels_mappings","forEach","x","dynamic_columns","virtual_data","col","i","undefined","includes","unmapped_data","Object","keys","length","push","self","onload","enableInitator","contentWindow","postMessage","Math","random","toString","substring","setState","render","licenseKey","dataLocation","customDomain","domain","iframeUrl","version","holderStyle","zIndex","position","top","bottom","left","right","iframeStyle","height","width","children","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.js"],"sourcesContent":["import React, { Component } from 'react';\r\n// import styles from './styles.module.css'\r\nimport { version } from '../package.json';\r\n\r\nexport class CSVBoxButton extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.holder = React.createRef();\r\n this.openModal = this.openModal.bind(this)\r\n this.isModalShown = false;\r\n this.shouldOpenModalOnReady = false;\r\n this.uuid = this.generateUuid();\r\n this.state = {\r\n isLoading: true\r\n };\r\n this.iframe = null;\r\n }\r\n\r\n componentDidMount() {\r\n const { lazy } = this.props;\r\n if(!lazy && !this.iframe) {\r\n this.initImporter();\r\n }else if(lazy) {\r\n this.enableInitator();\r\n }\r\n }\r\n\r\n initImporter() {\r\n\r\n const { loadStarted } = this.props;\r\n\r\n loadStarted?.();\r\n\r\n const { user } = this.props;\r\n const { dynamicColumns } = this.props;\r\n const { options } = this.props;\r\n const { onReady } = this.props;\r\n const { onImport } = this.props;\r\n const { onSubmit } = this.props;\r\n const { onClose } = this.props;\r\n const { licenseKey } = this.props;\r\n const { dataLocation } = this.props;\r\n const { customDomain } = this.props;\r\n const { language } = this.props;\r\n const { environment } = this.props;\r\n\r\n let domain = customDomain ? customDomain : \"app.csvbox.io\";\r\n\r\n if(dataLocation) {\r\n domain = `${dataLocation}-${domain}`;\r\n }\r\n\r\n let iframeUrl = `https://${domain}/embed/${licenseKey}`;\r\n\r\n iframeUrl += `?library-version=${version}`;\r\n iframeUrl += \"&framework=react\";\r\n\r\n if(dataLocation) {\r\n iframeUrl += \"&preventRedirect\";\r\n }\r\n\r\n if(language) {\r\n iframeUrl += \"&language=\" + language;\r\n }\r\n\r\n if(environment) {\r\n let env = JSON.stringify(environment).replace(/['\"]/g, function(match) {\r\n return '\\\\' + match;\r\n });\r\n iframeUrl += `&env=${env}`;\r\n }\r\n\r\n window.addEventListener(\"message\", (event) => {\r\n\r\n if (event.data === \"mainModalHidden\") {\r\n if (this.holder && this.holder.current) {\r\n this.holder.current.style.display = 'none';\r\n };\r\n this.isModalShown = false;\r\n onClose?.();\r\n }\r\n if(event.data === \"uploadSuccessful\") {\r\n onImport(true);\r\n }\r\n if(event.data === \"uploadFailed\") {\r\n onImport(false);\r\n }\r\n if(typeof event.data == \"object\") {\r\n\r\n if(event?.data?.data?.unique_token == this.uuid) {\r\n\r\n if(event.data.type && event.data.type == \"data-on-submit\") {\r\n let metadata = event.data.data;\r\n metadata[\"column_mappings\"] = event.data.column_mapping;\r\n delete metadata[\"unique_token\"];\r\n onSubmit?.(metadata);\r\n }\r\n else if(event.data.type && event.data.type == \"data-push-status\") {\r\n if(event.data.data.import_status == \"success\") {\r\n if(event.data && event.data.row_data) {\r\n let primary_row_data = event.data.row_data;\r\n let headers = event.data.headers;\r\n let rows = [];\r\n let dynamic_columns_indexes = event.data.dynamicColumnsIndexes;\r\n let virtual_columns_indexes = event.data.virtualColumnsIndexes || [];\r\n\r\n let dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;\r\n primary_row_data.forEach((row_data) => {\r\n let x = {};\r\n let dynamic_columns = {};\r\n let virtual_data = {};\r\n row_data.data?.forEach((col, i) => {\r\n if(col == undefined){ col = \"\" }\r\n if(!!dropdown_display_labels_mappings[i] && !!dropdown_display_labels_mappings[i][col]) {\r\n col = dropdown_display_labels_mappings[i][col];\r\n }\r\n if(dynamic_columns_indexes.includes(i)) {\r\n dynamic_columns[headers[i]] = col;\r\n }\r\n else if(virtual_columns_indexes.includes(i)) {\r\n virtual_data[headers[i]] = col;\r\n }\r\n else{\r\n x[headers[i]] = col;\r\n }\r\n });\r\n if(row_data.unmapped_data) {\r\n x[\"_unmapped_data\"] = row_data.unmapped_data;\r\n }\r\n if(dynamic_columns && Object.keys(dynamic_columns).length > 0) {\r\n x[\"_dynamic_data\"] = dynamic_columns;\r\n }\r\n if(virtual_data && Object.keys(virtual_data).length > 0) {\r\n x[\"_virtual_data\"] = virtual_data;\r\n }\r\n rows.push(x);\r\n });\r\n let metadata = event.data.data;\r\n metadata[\"rows\"] = rows;\r\n metadata[\"column_mappings\"] = event.data.column_mapping;\r\n metadata[\"raw_columns\"] = event.data.raw_columns;\r\n metadata[\"ignored_columns\"] = event.data.ignored_column_row;\r\n delete metadata[\"unique_token\"];\r\n onImport(true, metadata);\r\n }else{\r\n let metadata = event.data.data;\r\n delete metadata[\"unique_token\"];\r\n onImport(true, metadata);\r\n }\r\n }else {\r\n onImport(false, event.data.data);\r\n }\r\n } else if(event.data.type && event.data.type == \"csvbox-modal-hidden\") {\r\n if (this.holder && this.holder.current) {\r\n this.holder.current.style.display = 'none';\r\n };\r\n this.isModalShown = false;\r\n onClose?.();\r\n } else if(event.data.type && event.data.type == \"csvbox-upload-successful\") {\r\n this.onImport?.(true);\r\n } else if(event.data.type && event.data.type == \"csvbox-upload-failed\") {\r\n this.onImport?.(false);\r\n }\r\n }\r\n }\r\n }, false);\r\n\r\n let self = this;\r\n\r\n let iframe = document.createElement(\"iframe\");\r\n this.iframe = iframe;\r\n iframe.setAttribute(\"src\", iframeUrl);\r\n iframe.frameBorder = 0;\r\n iframe.classList.add('csvbox-iframe');\r\n\r\n iframe.style.height = \"100%\";\r\n iframe.style.width = \"100%\";\r\n iframe.style.position = \"absolute\";\r\n iframe.style.top = \"0px\";\r\n iframe.style.left = \"0px\";\r\n\r\n window.addEventListener(\"message\", this.onMessageEvent, false);\r\n\r\n iframe.onload = function () {\r\n self.enableInitator();\r\n iframe.contentWindow.postMessage({\r\n \"customer\" : user ? user : null,\r\n \"columns\" : dynamicColumns ? dynamicColumns : null,\r\n \"options\" : options ? options : null,\r\n \"unique_token\": self.uuid\r\n }, \"*\");\r\n onReady?.();\r\n if(self.shouldOpenModalOnReady) {\r\n self.openModal();\r\n self.shouldOpenModalOnReady = false;\r\n }\r\n }\r\n this.holder.current.appendChild(iframe);\r\n }\r\n\r\n openModal() {\r\n\r\n const { lazy } = this.props;\r\n\r\n if(lazy) {\r\n if(!this.iframe) {\r\n this.shouldOpenModalOnReady = true;\r\n this.initImporter();\r\n return;\r\n }\r\n }\r\n\r\n if(!this.isModalShown) {\r\n if(!this.state.isLoading) {\r\n this.isModalShown = true;\r\n this.iframe.contentWindow.postMessage('openModal', '*');\r\n this.holder.current.style.display = 'block';\r\n } else {\r\n this.shouldOpenModalOnReady = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n generateUuid() {\r\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\r\n }\r\n\r\n enableInitator() {\r\n this.setState({\r\n isLoading: false\r\n })\r\n }\r\n\r\n render() {\r\n\r\n const holderStyle = {\r\n display: \"none\",\r\n zIndex: 2147483647,\r\n position: \"fixed\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n };\r\n\r\n if(this.props.render) {\r\n return (\r\n <div>\r\n {this.props.render(this.openModal, this.state.isLoading)}\r\n <div ref={this.holder} style={holderStyle}></div>\r\n </div>\r\n )\r\n }else{\r\n return (\r\n <div>\r\n <button disabled={this.state.isLoading} onClick={this.openModal} data-csvbox-initator data-csvbox-token={this.uuid}>{this.props.children}</button>\r\n <div ref={this.holder} style={holderStyle}></div>\r\n </div>\r\n )\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nexport default CSVBoxButton;\r\n"],"names":["CSVBoxButton","props","holder","React","createRef","openModal","bind","isModalShown","shouldOpenModalOnReady","uuid","generateUuid","state","isLoading","iframe","componentDidMount","lazy","initImporter","enableInitator","loadStarted","user","dynamicColumns","options","onReady","onImport","onSubmit","onClose","licenseKey","dataLocation","customDomain","language","environment","domain","iframeUrl","version","env","JSON","stringify","replace","match","window","addEventListener","event","data","current","style","display","unique_token","type","metadata","column_mapping","import_status","row_data","primary_row_data","headers","rows","dynamic_columns_indexes","dynamicColumnsIndexes","virtual_columns_indexes","virtualColumnsIndexes","dropdown_display_labels_mappings","forEach","x","dynamic_columns","virtual_data","col","i","undefined","includes","unmapped_data","Object","keys","length","push","raw_columns","ignored_column_row","self","document","createElement","setAttribute","frameBorder","classList","add","height","width","position","top","left","onMessageEvent","onload","contentWindow","postMessage","appendChild","Math","random","toString","substring","setState","render","holderStyle","zIndex","bottom","right","children","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,YAAb;AAAA;;AAEE,wBAAYC,KAAZ,EAAmB;AAAA;;AACjB,kCAAMA,KAAN;AACA,UAAKC,MAAL,GAAcC,cAAK,CAACC,SAAN,EAAd;AACA,UAAKC,SAAL,GAAiB,MAAKA,SAAL,CAAeC,IAAf,+BAAjB;AACA,UAAKC,YAAL,GAAoB,KAApB;AACA,UAAKC,sBAAL,GAA8B,KAA9B;AACA,UAAKC,IAAL,GAAY,MAAKC,YAAL,EAAZ;AACA,UAAKC,KAAL,GAAa;AACXC,MAAAA,SAAS,EAAE;AADA,KAAb;AAGA,UAAKC,MAAL,GAAc,IAAd;AAViB;AAWlB;;AAbH;;AAAA,SAeEC,iBAfF,GAeE,6BAAoB;AAClB,QAAQC,IAAR,GAAiB,KAAKd,KAAtB,CAAQc,IAAR;;AACA,QAAG,CAACA,IAAD,IAAS,CAAC,KAAKF,MAAlB,EAA0B;AACxB,WAAKG,YAAL;AACD,KAFD,MAEM,IAAGD,IAAH,EAAS;AACb,WAAKE,cAAL;AACD;AACF,GAtBH;;AAAA,SAwBED,YAxBF,GAwBE,wBAAe;AAAA;;AAEb,QAAQE,WAAR,GAAwB,KAAKjB,KAA7B,CAAQiB,WAAR;AAEAA,IAAAA,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW;AAEX,QAAQC,IAAR,GAAiB,KAAKlB,KAAtB,CAAQkB,IAAR;AACA,QAAQC,cAAR,GAA2B,KAAKnB,KAAhC,CAAQmB,cAAR;AACA,QAAQC,OAAR,GAAoB,KAAKpB,KAAzB,CAAQoB,OAAR;AACA,QAAQC,OAAR,GAAoB,KAAKrB,KAAzB,CAAQqB,OAAR;AACA,QAAQC,QAAR,GAAqB,KAAKtB,KAA1B,CAAQsB,QAAR;AACA,QAAQC,QAAR,GAAqB,KAAKvB,KAA1B,CAAQuB,QAAR;AACA,QAAQC,OAAR,GAAoB,KAAKxB,KAAzB,CAAQwB,OAAR;AACA,QAAQC,UAAR,GAAuB,KAAKzB,KAA5B,CAAQyB,UAAR;AACA,QAAQC,YAAR,GAAyB,KAAK1B,KAA9B,CAAQ0B,YAAR;AACA,QAAQC,YAAR,GAAyB,KAAK3B,KAA9B,CAAQ2B,YAAR;AACA,QAAQC,QAAR,GAAqB,KAAK5B,KAA1B,CAAQ4B,QAAR;AACA,QAAQC,WAAR,GAAwB,KAAK7B,KAA7B,CAAQ6B,WAAR;AAEA,QAAIC,MAAM,GAAGH,YAAY,GAAGA,YAAH,GAAkB,eAA3C;;AAEA,QAAGD,YAAH,EAAiB;AACfI,MAAAA,MAAM,GAAMJ,YAAN,SAAsBI,MAA5B;AACD;;AAED,QAAIC,SAAS,gBAAcD,MAAd,eAA8BL,UAA3C;AAEAM,IAAAA,SAAS,0BAAwBC,OAAjC;AACAD,IAAAA,SAAS,IAAI,kBAAb;;AAEA,QAAGL,YAAH,EAAiB;AACfK,MAAAA,SAAS,IAAI,kBAAb;AACD;;AAED,QAAGH,QAAH,EAAa;AACXG,MAAAA,SAAS,IAAI,eAAeH,QAA5B;AACD;;AAED,QAAGC,WAAH,EAAgB;AACd,UAAII,GAAG,GAAGC,IAAI,CAACC,SAAL,CAAeN,WAAf,EAA4BO,OAA5B,CAAoC,OAApC,EAA6C,UAASC,KAAT,EAAgB;AACrE,eAAO,OAAOA,KAAd;AACD,OAFS,CAAV;AAGAN,MAAAA,SAAS,cAAYE,GAArB;AACD;;AAEDK,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,UAACC,KAAD,EAAW;AAE5C,UAAIA,KAAK,CAACC,IAAN,KAAe,iBAAnB,EAAsC;AACpC,YAAI,MAAI,CAACxC,MAAL,IAAe,MAAI,CAACA,MAAL,CAAYyC,OAA/B,EAAwC;AACtC,UAAA,MAAI,CAACzC,MAAL,CAAYyC,OAAZ,CAAoBC,KAApB,CAA0BC,OAA1B,GAAoC,MAApC;AACD;AACD,QAAA,MAAI,CAACtC,YAAL,GAAoB,KAApB;AACAkB,QAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO;AACR;;AACD,UAAGgB,KAAK,CAACC,IAAN,KAAe,kBAAlB,EAAsC;AACpCnB,QAAAA,QAAQ,CAAC,IAAD,CAAR;AACD;;AACD,UAAGkB,KAAK,CAACC,IAAN,KAAe,cAAlB,EAAkC;AAChCnB,QAAAA,QAAQ,CAAC,KAAD,CAAR;AACD;;AACD,UAAG,OAAOkB,KAAK,CAACC,IAAb,IAAqB,QAAxB,EAAkC;AAAA;;AAEhC,YAAG,CAAAD,KAAK,SAAL,IAAAA,KAAK,WAAL,2BAAAA,KAAK,CAAEC,IAAP,gFAAaA,IAAb,sEAAmBI,YAAnB,KAAmC,MAAI,CAACrC,IAA3C,EAAiD;AAE/C,cAAGgC,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmBN,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmB,gBAAzC,EAA2D;AACzD,gBAAIC,QAAQ,GAAGP,KAAK,CAACC,IAAN,CAAWA,IAA1B;AACAM,YAAAA,QAAQ,CAAC,iBAAD,CAAR,GAA8BP,KAAK,CAACC,IAAN,CAAWO,cAAzC;AACA,mBAAOD,QAAQ,CAAC,cAAD,CAAf;AACAxB,YAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGwB,QAAH,CAAR;AACD,WALD,MAMK,IAAGP,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmBN,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmB,kBAAzC,EAA6D;AAChE,gBAAGN,KAAK,CAACC,IAAN,CAAWA,IAAX,CAAgBQ,aAAhB,IAAiC,SAApC,EAA+C;AAC7C,kBAAGT,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACC,IAAN,CAAWS,QAA5B,EAAsC;AACpC,oBAAIC,gBAAgB,GAAGX,KAAK,CAACC,IAAN,CAAWS,QAAlC;AACA,oBAAIE,OAAO,GAAGZ,KAAK,CAACC,IAAN,CAAWW,OAAzB;AACA,oBAAIC,IAAI,GAAG,EAAX;AACA,oBAAIC,uBAAuB,GAAGd,KAAK,CAACC,IAAN,CAAWc,qBAAzC;AACA,oBAAIC,uBAAuB,GAAGhB,KAAK,CAACC,IAAN,CAAWgB,qBAAX,IAAoC,EAAlE;AAEA,oBAAIC,gCAAgC,GAAGlB,KAAK,CAACC,IAAN,CAAWiB,gCAAlD;AACAP,gBAAAA,gBAAgB,CAACQ,OAAjB,CAAyB,UAACT,QAAD,EAAc;AAAA;;AACnC,sBAAIU,CAAC,GAAG,EAAR;AACA,sBAAIC,eAAe,GAAG,EAAtB;AACA,sBAAIC,YAAY,GAAG,EAAnB;AACA,oCAAAZ,QAAQ,CAACT,IAAT,kEAAekB,OAAf,CAAuB,UAACI,GAAD,EAAMC,CAAN,EAAY;AAC/B,wBAAGD,GAAG,IAAIE,SAAV,EAAoB;AAAEF,sBAAAA,GAAG,GAAG,EAAN;AAAU;;AAChC,wBAAG,CAAC,CAACL,gCAAgC,CAACM,CAAD,CAAlC,IAAyC,CAAC,CAACN,gCAAgC,CAACM,CAAD,CAAhC,CAAoCD,GAApC,CAA9C,EAAwF;AACpFA,sBAAAA,GAAG,GAAGL,gCAAgC,CAACM,CAAD,CAAhC,CAAoCD,GAApC,CAAN;AACH;;AACD,wBAAGT,uBAAuB,CAACY,QAAxB,CAAiCF,CAAjC,CAAH,EAAwC;AACtCH,sBAAAA,eAAe,CAACT,OAAO,CAACY,CAAD,CAAR,CAAf,GAA8BD,GAA9B;AACD,qBAFD,MAGK,IAAGP,uBAAuB,CAACU,QAAxB,CAAiCF,CAAjC,CAAH,EAAwC;AAC3CF,sBAAAA,YAAY,CAACV,OAAO,CAACY,CAAD,CAAR,CAAZ,GAA2BD,GAA3B;AACD,qBAFI,MAGD;AACAH,sBAAAA,CAAC,CAACR,OAAO,CAACY,CAAD,CAAR,CAAD,GAAgBD,GAAhB;AACH;AACJ,mBAdD;;AAeA,sBAAGb,QAAQ,CAACiB,aAAZ,EAA2B;AACzBP,oBAAAA,CAAC,CAAC,gBAAD,CAAD,GAAsBV,QAAQ,CAACiB,aAA/B;AACD;;AACD,sBAAGN,eAAe,IAAIO,MAAM,CAACC,IAAP,CAAYR,eAAZ,EAA6BS,MAA7B,GAAsC,CAA5D,EAA+D;AAC7DV,oBAAAA,CAAC,CAAC,eAAD,CAAD,GAAqBC,eAArB;AACD;;AACD,sBAAGC,YAAY,IAAIM,MAAM,CAACC,IAAP,CAAYP,YAAZ,EAA0BQ,MAA1B,GAAmC,CAAtD,EAAyD;AACvDV,oBAAAA,CAAC,CAAC,eAAD,CAAD,GAAqBE,YAArB;AACD;;AACDT,kBAAAA,IAAI,CAACkB,IAAL,CAAUX,CAAV;AACH,iBA7BD;AA8BA,oBAAIb,SAAQ,GAAGP,KAAK,CAACC,IAAN,CAAWA,IAA1B;AACAM,gBAAAA,SAAQ,CAAC,MAAD,CAAR,GAAmBM,IAAnB;AACAN,gBAAAA,SAAQ,CAAC,iBAAD,CAAR,GAA8BP,KAAK,CAACC,IAAN,CAAWO,cAAzC;AACAD,gBAAAA,SAAQ,CAAC,aAAD,CAAR,GAA0BP,KAAK,CAACC,IAAN,CAAW+B,WAArC;AACAzB,gBAAAA,SAAQ,CAAC,iBAAD,CAAR,GAA8BP,KAAK,CAACC,IAAN,CAAWgC,kBAAzC;AACA,uBAAO1B,SAAQ,CAAC,cAAD,CAAf;AACAzB,gBAAAA,QAAQ,CAAC,IAAD,EAAOyB,SAAP,CAAR;AACD,eA7CD,MA6CK;AACH,oBAAIA,UAAQ,GAAGP,KAAK,CAACC,IAAN,CAAWA,IAA1B;AACA,uBAAOM,UAAQ,CAAC,cAAD,CAAf;AACAzB,gBAAAA,QAAQ,CAAC,IAAD,EAAOyB,UAAP,CAAR;AACD;AACF,aAnDD,MAmDM;AACJzB,cAAAA,QAAQ,CAAC,KAAD,EAAQkB,KAAK,CAACC,IAAN,CAAWA,IAAnB,CAAR;AACD;AACF,WAvDI,MAuDE,IAAGD,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmBN,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmB,qBAAzC,EAAgE;AACrE,gBAAI,MAAI,CAAC7C,MAAL,IAAe,MAAI,CAACA,MAAL,CAAYyC,OAA/B,EAAwC;AACtC,cAAA,MAAI,CAACzC,MAAL,CAAYyC,OAAZ,CAAoBC,KAApB,CAA0BC,OAA1B,GAAoC,MAApC;AACD;AACD,YAAA,MAAI,CAACtC,YAAL,GAAoB,KAApB;AACAkB,YAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO;AACR,WANM,MAMA,IAAGgB,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmBN,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmB,0BAAzC,EAAqE;AAAA;;AAC1E,+BAAA,MAAI,CAACxB,QAAL,yEAAA,MAAI,EAAY,IAAZ,CAAJ;AACD,WAFM,MAEA,IAAGkB,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmBN,KAAK,CAACC,IAAN,CAAWK,IAAX,IAAmB,sBAAzC,EAAiE;AAAA;;AACtE,gCAAA,MAAI,CAACxB,QAAL,2EAAA,MAAI,EAAY,KAAZ,CAAJ;AACD;AACF;AACF;AACF,KA7FD,EA6FG,KA7FH;AA+FA,QAAIoD,IAAI,GAAG,IAAX;AAEA,QAAI9D,MAAM,GAAG+D,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAb;AACA,SAAKhE,MAAL,GAAcA,MAAd;AACAA,IAAAA,MAAM,CAACiE,YAAP,CAAoB,KAApB,EAA2B9C,SAA3B;AACAnB,IAAAA,MAAM,CAACkE,WAAP,GAAqB,CAArB;AACAlE,IAAAA,MAAM,CAACmE,SAAP,CAAiBC,GAAjB,CAAqB,eAArB;AAEApE,IAAAA,MAAM,CAAC+B,KAAP,CAAasC,MAAb,GAAsB,MAAtB;AACArE,IAAAA,MAAM,CAAC+B,KAAP,CAAauC,KAAb,GAAqB,MAArB;AACAtE,IAAAA,MAAM,CAAC+B,KAAP,CAAawC,QAAb,GAAwB,UAAxB;AACAvE,IAAAA,MAAM,CAAC+B,KAAP,CAAayC,GAAb,GAAmB,KAAnB;AACAxE,IAAAA,MAAM,CAAC+B,KAAP,CAAa0C,IAAb,GAAoB,KAApB;AAEA/C,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC,KAAK+C,cAAxC,EAAwD,KAAxD;;AAEA1E,IAAAA,MAAM,CAAC2E,MAAP,GAAgB,YAAY;AAC1Bb,MAAAA,IAAI,CAAC1D,cAAL;AACAJ,MAAAA,MAAM,CAAC4E,aAAP,CAAqBC,WAArB,CAAiC;AAC/B,oBAAavE,IAAI,GAAGA,IAAH,GAAU,IADI;AAE/B,mBAAYC,cAAc,GAAGA,cAAH,GAAoB,IAFf;AAG/B,mBAAYC,OAAO,GAAGA,OAAH,GAAa,IAHD;AAI/B,wBAAgBsD,IAAI,CAAClE;AAJU,OAAjC,EAKG,GALH;AAMAa,MAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO;;AACP,UAAGqD,IAAI,CAACnE,sBAAR,EAAgC;AAC9BmE,QAAAA,IAAI,CAACtE,SAAL;AACAsE,QAAAA,IAAI,CAACnE,sBAAL,GAA8B,KAA9B;AACD;AACF,KAbD;;AAcA,SAAKN,MAAL,CAAYyC,OAAZ,CAAoBgD,WAApB,CAAgC9E,MAAhC;AACD,GAnMH;;AAAA,SAqMER,SArMF,GAqME,qBAAY;AAEV,QAAQU,IAAR,GAAiB,KAAKd,KAAtB,CAAQc,IAAR;;AAEA,QAAGA,IAAH,EAAS;AACP,UAAG,CAAC,KAAKF,MAAT,EAAiB;AACb,aAAKL,sBAAL,GAA8B,IAA9B;AACA,aAAKQ,YAAL;AACA;AACH;AACF;;AAED,QAAG,CAAC,KAAKT,YAAT,EAAuB;AACrB,UAAG,CAAC,KAAKI,KAAL,CAAWC,SAAf,EAA0B;AACxB,aAAKL,YAAL,GAAoB,IAApB;AACA,aAAKM,MAAL,CAAY4E,aAAZ,CAA0BC,WAA1B,CAAsC,WAAtC,EAAmD,GAAnD;AACA,aAAKxF,MAAL,CAAYyC,OAAZ,CAAoBC,KAApB,CAA0BC,OAA1B,GAAoC,OAApC;AACD,OAJD,MAIO;AACL,aAAKrC,sBAAL,GAA8B,IAA9B;AACD;AACF;AAEF,GA3NH;;AAAA,SA6NEE,YA7NF,GA6NE,wBAAe;AACb,WAAOkF,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC,EAAwC,EAAxC,IAA8CH,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC,EAAwC,EAAxC,CAArD;AACD,GA/NH;;AAAA,SAiOE9E,cAjOF,GAiOE,0BAAiB;AACf,SAAK+E,QAAL,CAAc;AACZpF,MAAAA,SAAS,EAAE;AADC,KAAd;AAGD,GArOH;;AAAA,SAuOEqF,MAvOF,GAuOE,kBAAS;AAEP,QAAMC,WAAW,GAAG;AAClBrD,MAAAA,OAAO,EAAE,MADS;AAElBsD,MAAAA,MAAM,EAAE,UAFU;AAGlBf,MAAAA,QAAQ,EAAE,OAHQ;AAIlBC,MAAAA,GAAG,EAAE,CAJa;AAKlBe,MAAAA,MAAM,EAAE,CALU;AAMlBd,MAAAA,IAAI,EAAE,CANY;AAOlBe,MAAAA,KAAK,EAAE;AAPW,KAApB;;AAUA,QAAG,KAAKpG,KAAL,CAAWgG,MAAd,EAAsB;AACpB,0BACE9F,0CACG,KAAKF,KAAL,CAAWgG,MAAX,CAAkB,KAAK5F,SAAvB,EAAkC,KAAKM,KAAL,CAAWC,SAA7C,CADH,eAEET;AAAK,QAAA,GAAG,EAAE,KAAKD,MAAf;AAAuB,QAAA,KAAK,EAAEgG;AAA9B,QAFF,CADF;AAMD,KAPD,MAOK;AACH,0BACE/F,uDACEA;AAAQ,QAAA,QAAQ,EAAE,KAAKQ,KAAL,CAAWC,SAA7B;AAAwC,QAAA,OAAO,EAAE,KAAKP,SAAtD;AAAiE,oCAAjE;AAAsF,6BAAmB,KAAKI;AAA9G,SAAqH,KAAKR,KAAL,CAAWqG,QAAhI,CADF,eAEEnG;AAAK,QAAA,GAAG,EAAE,KAAKD,MAAf;AAAuB,QAAA,KAAK,EAAEgG;AAA9B,QAFF,CADF;AAMD;AAGF,GApQH;;AAAA;AAAA,EAAkCK,eAAlC;;;;;"}
@@ -24,7 +24,7 @@ function _assertThisInitialized(self) {
24
24
  return self;
25
25
  }
26
26
 
27
- var version = "1.1.1";
27
+ var version = "1.1.12";
28
28
 
29
29
  var CSVBoxButton = /*#__PURE__*/function (_Component) {
30
30
  _inheritsLoose(CSVBoxButton, _Component);
@@ -34,28 +34,71 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
34
34
 
35
35
  _this = _Component.call(this, props) || this;
36
36
  _this.holder = React.createRef();
37
- _this.iframe = React.createRef();
38
37
  _this.openModal = _this.openModal.bind(_assertThisInitialized(_this));
39
38
  _this.isModalShown = false;
39
+ _this.shouldOpenModalOnReady = false;
40
40
  _this.uuid = _this.generateUuid();
41
41
  _this.state = {
42
- disabled: true
42
+ isLoading: true
43
43
  };
44
+ _this.iframe = null;
44
45
  return _this;
45
46
  }
46
47
 
47
48
  var _proto = CSVBoxButton.prototype;
48
49
 
49
50
  _proto.componentDidMount = function componentDidMount() {
51
+ var lazy = this.props.lazy;
52
+
53
+ if (!lazy && !this.iframe) {
54
+ this.initImporter();
55
+ } else if (lazy) {
56
+ this.enableInitator();
57
+ }
58
+ };
59
+
60
+ _proto.initImporter = function initImporter() {
50
61
  var _this2 = this;
51
62
 
52
- var onImport = this.props.onImport;
63
+ var loadStarted = this.props.loadStarted;
64
+ loadStarted === null || loadStarted === void 0 ? void 0 : loadStarted();
53
65
  var user = this.props.user;
54
66
  var dynamicColumns = this.props.dynamicColumns;
55
67
  var options = this.props.options;
56
68
  var onReady = this.props.onReady;
69
+ var onImport = this.props.onImport;
57
70
  var onSubmit = this.props.onSubmit;
58
71
  var onClose = this.props.onClose;
72
+ var licenseKey = this.props.licenseKey;
73
+ var dataLocation = this.props.dataLocation;
74
+ var customDomain = this.props.customDomain;
75
+ var language = this.props.language;
76
+ var environment = this.props.environment;
77
+ var domain = customDomain ? customDomain : "app.csvbox.io";
78
+
79
+ if (dataLocation) {
80
+ domain = dataLocation + "-" + domain;
81
+ }
82
+
83
+ var iframeUrl = "https://" + domain + "/embed/" + licenseKey;
84
+ iframeUrl += "?library-version=" + version;
85
+ iframeUrl += "&framework=react";
86
+
87
+ if (dataLocation) {
88
+ iframeUrl += "&preventRedirect";
89
+ }
90
+
91
+ if (language) {
92
+ iframeUrl += "&language=" + language;
93
+ }
94
+
95
+ if (environment) {
96
+ var env = JSON.stringify(environment).replace(/['"]/g, function (match) {
97
+ return '\\' + match;
98
+ });
99
+ iframeUrl += "&env=" + env;
100
+ }
101
+
59
102
  window.addEventListener("message", function (event) {
60
103
  if (event.data === "mainModalHidden") {
61
104
  if (_this2.holder && _this2.holder.current) {
@@ -83,7 +126,7 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
83
126
  delete metadata["unique_token"];
84
127
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(metadata);
85
128
  } else if (event.data.type && event.data.type == "data-push-status") {
86
- if (event.data.data.import_status = "success") {
129
+ if (event.data.data.import_status == "success") {
87
130
  if (event.data && event.data.row_data) {
88
131
  var primary_row_data = event.data.row_data;
89
132
  var headers = event.data.headers;
@@ -92,10 +135,12 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
92
135
  var virtual_columns_indexes = event.data.virtualColumnsIndexes || [];
93
136
  var dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;
94
137
  primary_row_data.forEach(function (row_data) {
138
+ var _row_data$data;
139
+
95
140
  var x = {};
96
141
  var dynamic_columns = {};
97
142
  var virtual_data = {};
98
- row_data.data.forEach(function (col, i) {
143
+ (_row_data$data = row_data.data) === null || _row_data$data === void 0 ? void 0 : _row_data$data.forEach(function (col, i) {
99
144
  if (col == undefined) {
100
145
  col = "";
101
146
  }
@@ -129,6 +174,9 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
129
174
  });
130
175
  var _metadata = event.data.data;
131
176
  _metadata["rows"] = rows;
177
+ _metadata["column_mappings"] = event.data.column_mapping;
178
+ _metadata["raw_columns"] = event.data.raw_columns;
179
+ _metadata["ignored_columns"] = event.data.ignored_column_row;
132
180
  delete _metadata["unique_token"];
133
181
  onImport(true, _metadata);
134
182
  } else {
@@ -157,11 +205,20 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
157
205
  }
158
206
  }
159
207
  }, false);
160
- var iframe = this.iframe.current;
161
208
  var self = this;
209
+ var iframe = document.createElement("iframe");
210
+ this.iframe = iframe;
211
+ iframe.setAttribute("src", iframeUrl);
212
+ iframe.frameBorder = 0;
213
+ iframe.classList.add('csvbox-iframe');
214
+ iframe.style.height = "100%";
215
+ iframe.style.width = "100%";
216
+ iframe.style.position = "absolute";
217
+ iframe.style.top = "0px";
218
+ iframe.style.left = "0px";
219
+ window.addEventListener("message", this.onMessageEvent, false);
162
220
 
163
221
  iframe.onload = function () {
164
- onReady === null || onReady === void 0 ? void 0 : onReady();
165
222
  self.enableInitator();
166
223
  iframe.contentWindow.postMessage({
167
224
  "customer": user ? user : null,
@@ -169,14 +226,36 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
169
226
  "options": options ? options : null,
170
227
  "unique_token": self.uuid
171
228
  }, "*");
229
+ onReady === null || onReady === void 0 ? void 0 : onReady();
230
+
231
+ if (self.shouldOpenModalOnReady) {
232
+ self.openModal();
233
+ self.shouldOpenModalOnReady = false;
234
+ }
172
235
  };
236
+
237
+ this.holder.current.appendChild(iframe);
173
238
  };
174
239
 
175
240
  _proto.openModal = function openModal() {
241
+ var lazy = this.props.lazy;
242
+
243
+ if (lazy) {
244
+ if (!this.iframe) {
245
+ this.shouldOpenModalOnReady = true;
246
+ this.initImporter();
247
+ return;
248
+ }
249
+ }
250
+
176
251
  if (!this.isModalShown) {
177
- this.isModalShown = true;
178
- this.iframe.current.contentWindow.postMessage('openModal', '*');
179
- this.holder.current.style.display = 'block';
252
+ if (!this.state.isLoading) {
253
+ this.isModalShown = true;
254
+ this.iframe.contentWindow.postMessage('openModal', '*');
255
+ this.holder.current.style.display = 'block';
256
+ } else {
257
+ this.shouldOpenModalOnReady = true;
258
+ }
180
259
  }
181
260
  };
182
261
 
@@ -186,28 +265,11 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
186
265
 
187
266
  _proto.enableInitator = function enableInitator() {
188
267
  this.setState({
189
- disabled: !this.state.disabled
268
+ isLoading: false
190
269
  });
191
270
  };
192
271
 
193
272
  _proto.render = function render() {
194
- var licenseKey = this.props.licenseKey;
195
- var dataLocation = this.props.dataLocation;
196
- var customDomain = this.props.customDomain;
197
- var domain = customDomain ? customDomain : "app.csvbox.io";
198
-
199
- if (dataLocation) {
200
- domain = dataLocation + "-" + domain;
201
- }
202
-
203
- var iframeUrl = "https://" + domain + "/embed/" + licenseKey;
204
- iframeUrl += "?library-version=" + version;
205
- iframeUrl += "&framework=react";
206
-
207
- if (dataLocation) {
208
- iframeUrl += "&preventRedirect";
209
- }
210
-
211
273
  var holderStyle = {
212
274
  display: "none",
213
275
  zIndex: 2147483647,
@@ -217,41 +279,22 @@ var CSVBoxButton = /*#__PURE__*/function (_Component) {
217
279
  left: 0,
218
280
  right: 0
219
281
  };
220
- var iframeStyle = {
221
- height: "100%",
222
- width: "100%",
223
- position: "absolute",
224
- top: "0px",
225
- left: "0px"
226
- };
227
282
 
228
283
  if (this.props.render) {
229
- return /*#__PURE__*/React.createElement("div", null, this.props.render(this.openModal, !this.state.disabled), /*#__PURE__*/React.createElement("div", {
284
+ return /*#__PURE__*/React.createElement("div", null, this.props.render(this.openModal, this.state.isLoading), /*#__PURE__*/React.createElement("div", {
230
285
  ref: this.holder,
231
286
  style: holderStyle
232
- }, /*#__PURE__*/React.createElement("iframe", {
233
- ref: this.iframe,
234
- style: iframeStyle,
235
- "data-csvbox-token": this.uuid,
236
- src: iframeUrl,
237
- frameBorder: "0"
238
- })));
287
+ }));
239
288
  } else {
240
289
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
241
- disabled: this.state.disabled,
290
+ disabled: this.state.isLoading,
242
291
  onClick: this.openModal,
243
292
  "data-csvbox-initator": true,
244
293
  "data-csvbox-token": this.uuid
245
294
  }, this.props.children), /*#__PURE__*/React.createElement("div", {
246
295
  ref: this.holder,
247
296
  style: holderStyle
248
- }, /*#__PURE__*/React.createElement("iframe", {
249
- ref: this.iframe,
250
- style: iframeStyle,
251
- "data-csvbox-token": this.uuid,
252
- src: iframeUrl,
253
- frameBorder: "0"
254
- })));
297
+ }));
255
298
  }
256
299
  };
257
300
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/index.js"],"sourcesContent":["import React, { Component } from 'react';\n// import styles from './styles.module.css'\n\nimport { version } from '../package.json';\n\nexport class CSVBoxButton extends Component {\n\n constructor(props) {\n super(props)\n this.holder = React.createRef();\n this.iframe = React.createRef();\n this.openModal = this.openModal.bind(this)\n this.isModalShown = false;\n this.uuid = this.generateUuid();\n this.state = {\n disabled: true\n };\n }\n\n componentDidMount() {\n\n const { onImport } = this.props;\n const { user } = this.props;\n const { dynamicColumns } = this.props;\n const { options } = this.props;\n const { onReady } = this.props;\n const { onSubmit } = this.props;\n const { onClose } = this.props;\n\n window.addEventListener(\"message\", (event) => {\n\n // console.log(\"message\", event);\n\n if (event.data === \"mainModalHidden\") {\n if (this.holder && this.holder.current) {\n this.holder.current.style.display = 'none';\n };\n this.isModalShown = false;\n onClose?.();\n }\n if(event.data === \"uploadSuccessful\") {\n onImport(true);\n }\n if(event.data === \"uploadFailed\") {\n onImport(false);\n }\n if(typeof event.data == \"object\") {\n\n if(event?.data?.data?.unique_token == this.uuid) {\n\n if(event.data.type && event.data.type == \"data-on-submit\") {\n let metadata = event.data.data;\n metadata[\"column_mappings\"] = event.data.column_mapping;\n delete metadata[\"unique_token\"];\n onSubmit?.(metadata);\n }\n else if(event.data.type && event.data.type == \"data-push-status\") {\n if(event.data.data.import_status = \"success\"){\n if(event.data && event.data.row_data) {\n let primary_row_data = event.data.row_data;\n let headers = event.data.headers;\n let rows = [];\n let dynamic_columns_indexes = event.data.dynamicColumnsIndexes;\n let virtual_columns_indexes = event.data.virtualColumnsIndexes || [];\n\n let dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;\n primary_row_data.forEach((row_data) => {\n let x = {};\n let dynamic_columns = {};\n let virtual_data = {};\n row_data.data.forEach((col, i)=>{\n if(col == undefined){ col = \"\" }\n if(!!dropdown_display_labels_mappings[i] && !!dropdown_display_labels_mappings[i][col]) {\n col = dropdown_display_labels_mappings[i][col];\n }\n if(dynamic_columns_indexes.includes(i)) {\n dynamic_columns[headers[i]] = col;\n }\n else if(virtual_columns_indexes.includes(i)) {\n virtual_data[headers[i]] = col;\n }\n else{\n x[headers[i]] = col;\n }\n });\n if(row_data.unmapped_data) {\n x[\"_unmapped_data\"] = row_data.unmapped_data;\n }\n if(dynamic_columns && Object.keys(dynamic_columns).length > 0) {\n x[\"_dynamic_data\"] = dynamic_columns;\n }\n if(virtual_data && Object.keys(virtual_data).length > 0) {\n x[\"_virtual_data\"] = virtual_data;\n }\n rows.push(x);\n });\n let metadata = event.data.data;\n metadata[\"rows\"] = rows;\n delete metadata[\"unique_token\"];\n onImport(true, metadata);\n }else{\n let metadata = event.data.data;\n delete metadata[\"unique_token\"];\n onImport(true, metadata);\n }\n }else {\n onImport(false, event.data.data);\n }\n } else if(event.data.type && event.data.type == \"csvbox-modal-hidden\") {\n if (this.holder && this.holder.current) {\n this.holder.current.style.display = 'none';\n };\n this.isModalShown = false;\n onClose?.();\n } else if(event.data.type && event.data.type == \"csvbox-upload-successful\") {\n this.onImport?.(true);\n } else if(event.data.type && event.data.type == \"csvbox-upload-failed\") {\n this.onImport?.(false);\n }\n }\n\n\n }\n }, false);\n let iframe = this.iframe.current;\n\n let self = this;\n\n iframe.onload = function () {\n\n onReady?.();\n\n self.enableInitator();\n\n iframe.contentWindow.postMessage({\n \"customer\" : user ? user : null,\n \"columns\" : dynamicColumns ? dynamicColumns : null,\n \"options\" : options ? options : null,\n \"unique_token\": self.uuid\n }, \"*\");\n\n }\n }\n openModal() {\n if(!this.isModalShown) {\n this.isModalShown = true;\n this.iframe.current.contentWindow.postMessage('openModal', '*');\n this.holder.current.style.display = 'block';\n }\n }\n\n generateUuid() {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n }\n\n enableInitator() {\n this.setState({\n disabled: !this.state.disabled\n })\n }\n\n render() {\n\n const { licenseKey } = this.props;\n const { dataLocation } = this.props;\n const { customDomain } = this.props;\n\n let domain = customDomain ? customDomain : \"app.csvbox.io\";\n\n if(dataLocation) {\n domain = `${dataLocation}-${domain}`;\n }\n\n let iframeUrl = `https://${domain}/embed/${licenseKey}`;\n\n iframeUrl += `?library-version=${version}`;\n iframeUrl += \"&framework=react\";\n\n if(dataLocation) {\n iframeUrl += \"&preventRedirect\";\n }\n\n const holderStyle = {\n display: \"none\",\n zIndex: 2147483647,\n position: \"fixed\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n const iframeStyle = {\n height: \"100%\",\n width: \"100%\",\n position: \"absolute\",\n top: \"0px\",\n left: \"0px\"\n };\n\n if(this.props.render) {\n return (\n <div>\n {this.props.render(this.openModal, !this.state.disabled)}\n <div ref={this.holder} style={holderStyle}>\n <iframe ref={this.iframe} style={iframeStyle} data-csvbox-token={this.uuid} src={iframeUrl} frameBorder=\"0\" ></iframe>\n </div>\n </div>\n )\n }else{\n return (\n <div>\n <button disabled={this.state.disabled} onClick={this.openModal} data-csvbox-initator data-csvbox-token={this.uuid}>{this.props.children}</button>\n <div ref={this.holder} style={holderStyle}>\n <iframe ref={this.iframe} style={iframeStyle} data-csvbox-token={this.uuid} src={iframeUrl} frameBorder=\"0\" ></iframe>\n </div>\n </div>\n )\n }\n\n\n }\n}\n\nexport default CSVBoxButton;\n"],"names":["CSVBoxButton","props","holder","React","createRef","iframe","openModal","bind","isModalShown","uuid","generateUuid","state","disabled","componentDidMount","onImport","user","dynamicColumns","options","onReady","onSubmit","onClose","window","addEventListener","event","data","current","style","display","unique_token","type","metadata","column_mapping","import_status","row_data","primary_row_data","headers","rows","dynamic_columns_indexes","dynamicColumnsIndexes","virtual_columns_indexes","virtualColumnsIndexes","dropdown_display_labels_mappings","forEach","x","dynamic_columns","virtual_data","col","i","undefined","includes","unmapped_data","Object","keys","length","push","self","onload","enableInitator","contentWindow","postMessage","Math","random","toString","substring","setState","render","licenseKey","dataLocation","customDomain","domain","iframeUrl","version","holderStyle","zIndex","position","top","bottom","left","right","iframeStyle","height","width","children","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/index.js"],"sourcesContent":["import React, { Component } from 'react';\r\n// import styles from './styles.module.css'\r\nimport { version } from '../package.json';\r\n\r\nexport class CSVBoxButton extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.holder = React.createRef();\r\n this.openModal = this.openModal.bind(this)\r\n this.isModalShown = false;\r\n this.shouldOpenModalOnReady = false;\r\n this.uuid = this.generateUuid();\r\n this.state = {\r\n isLoading: true\r\n };\r\n this.iframe = null;\r\n }\r\n\r\n componentDidMount() {\r\n const { lazy } = this.props;\r\n if(!lazy && !this.iframe) {\r\n this.initImporter();\r\n }else if(lazy) {\r\n this.enableInitator();\r\n }\r\n }\r\n\r\n initImporter() {\r\n\r\n const { loadStarted } = this.props;\r\n\r\n loadStarted?.();\r\n\r\n const { user } = this.props;\r\n const { dynamicColumns } = this.props;\r\n const { options } = this.props;\r\n const { onReady } = this.props;\r\n const { onImport } = this.props;\r\n const { onSubmit } = this.props;\r\n const { onClose } = this.props;\r\n const { licenseKey } = this.props;\r\n const { dataLocation } = this.props;\r\n const { customDomain } = this.props;\r\n const { language } = this.props;\r\n const { environment } = this.props;\r\n\r\n let domain = customDomain ? customDomain : \"app.csvbox.io\";\r\n\r\n if(dataLocation) {\r\n domain = `${dataLocation}-${domain}`;\r\n }\r\n\r\n let iframeUrl = `https://${domain}/embed/${licenseKey}`;\r\n\r\n iframeUrl += `?library-version=${version}`;\r\n iframeUrl += \"&framework=react\";\r\n\r\n if(dataLocation) {\r\n iframeUrl += \"&preventRedirect\";\r\n }\r\n\r\n if(language) {\r\n iframeUrl += \"&language=\" + language;\r\n }\r\n\r\n if(environment) {\r\n let env = JSON.stringify(environment).replace(/['\"]/g, function(match) {\r\n return '\\\\' + match;\r\n });\r\n iframeUrl += `&env=${env}`;\r\n }\r\n\r\n window.addEventListener(\"message\", (event) => {\r\n\r\n if (event.data === \"mainModalHidden\") {\r\n if (this.holder && this.holder.current) {\r\n this.holder.current.style.display = 'none';\r\n };\r\n this.isModalShown = false;\r\n onClose?.();\r\n }\r\n if(event.data === \"uploadSuccessful\") {\r\n onImport(true);\r\n }\r\n if(event.data === \"uploadFailed\") {\r\n onImport(false);\r\n }\r\n if(typeof event.data == \"object\") {\r\n\r\n if(event?.data?.data?.unique_token == this.uuid) {\r\n\r\n if(event.data.type && event.data.type == \"data-on-submit\") {\r\n let metadata = event.data.data;\r\n metadata[\"column_mappings\"] = event.data.column_mapping;\r\n delete metadata[\"unique_token\"];\r\n onSubmit?.(metadata);\r\n }\r\n else if(event.data.type && event.data.type == \"data-push-status\") {\r\n if(event.data.data.import_status == \"success\") {\r\n if(event.data && event.data.row_data) {\r\n let primary_row_data = event.data.row_data;\r\n let headers = event.data.headers;\r\n let rows = [];\r\n let dynamic_columns_indexes = event.data.dynamicColumnsIndexes;\r\n let virtual_columns_indexes = event.data.virtualColumnsIndexes || [];\r\n\r\n let dropdown_display_labels_mappings = event.data.dropdown_display_labels_mappings;\r\n primary_row_data.forEach((row_data) => {\r\n let x = {};\r\n let dynamic_columns = {};\r\n let virtual_data = {};\r\n row_data.data?.forEach((col, i) => {\r\n if(col == undefined){ col = \"\" }\r\n if(!!dropdown_display_labels_mappings[i] && !!dropdown_display_labels_mappings[i][col]) {\r\n col = dropdown_display_labels_mappings[i][col];\r\n }\r\n if(dynamic_columns_indexes.includes(i)) {\r\n dynamic_columns[headers[i]] = col;\r\n }\r\n else if(virtual_columns_indexes.includes(i)) {\r\n virtual_data[headers[i]] = col;\r\n }\r\n else{\r\n x[headers[i]] = col;\r\n }\r\n });\r\n if(row_data.unmapped_data) {\r\n x[\"_unmapped_data\"] = row_data.unmapped_data;\r\n }\r\n if(dynamic_columns && Object.keys(dynamic_columns).length > 0) {\r\n x[\"_dynamic_data\"] = dynamic_columns;\r\n }\r\n if(virtual_data && Object.keys(virtual_data).length > 0) {\r\n x[\"_virtual_data\"] = virtual_data;\r\n }\r\n rows.push(x);\r\n });\r\n let metadata = event.data.data;\r\n metadata[\"rows\"] = rows;\r\n metadata[\"column_mappings\"] = event.data.column_mapping;\r\n metadata[\"raw_columns\"] = event.data.raw_columns;\r\n metadata[\"ignored_columns\"] = event.data.ignored_column_row;\r\n delete metadata[\"unique_token\"];\r\n onImport(true, metadata);\r\n }else{\r\n let metadata = event.data.data;\r\n delete metadata[\"unique_token\"];\r\n onImport(true, metadata);\r\n }\r\n }else {\r\n onImport(false, event.data.data);\r\n }\r\n } else if(event.data.type && event.data.type == \"csvbox-modal-hidden\") {\r\n if (this.holder && this.holder.current) {\r\n this.holder.current.style.display = 'none';\r\n };\r\n this.isModalShown = false;\r\n onClose?.();\r\n } else if(event.data.type && event.data.type == \"csvbox-upload-successful\") {\r\n this.onImport?.(true);\r\n } else if(event.data.type && event.data.type == \"csvbox-upload-failed\") {\r\n this.onImport?.(false);\r\n }\r\n }\r\n }\r\n }, false);\r\n\r\n let self = this;\r\n\r\n let iframe = document.createElement(\"iframe\");\r\n this.iframe = iframe;\r\n iframe.setAttribute(\"src\", iframeUrl);\r\n iframe.frameBorder = 0;\r\n iframe.classList.add('csvbox-iframe');\r\n\r\n iframe.style.height = \"100%\";\r\n iframe.style.width = \"100%\";\r\n iframe.style.position = \"absolute\";\r\n iframe.style.top = \"0px\";\r\n iframe.style.left = \"0px\";\r\n\r\n window.addEventListener(\"message\", this.onMessageEvent, false);\r\n\r\n iframe.onload = function () {\r\n self.enableInitator();\r\n iframe.contentWindow.postMessage({\r\n \"customer\" : user ? user : null,\r\n \"columns\" : dynamicColumns ? dynamicColumns : null,\r\n \"options\" : options ? options : null,\r\n \"unique_token\": self.uuid\r\n }, \"*\");\r\n onReady?.();\r\n if(self.shouldOpenModalOnReady) {\r\n self.openModal();\r\n self.shouldOpenModalOnReady = false;\r\n }\r\n }\r\n this.holder.current.appendChild(iframe);\r\n }\r\n\r\n openModal() {\r\n\r\n const { lazy } = this.props;\r\n\r\n if(lazy) {\r\n if(!this.iframe) {\r\n this.shouldOpenModalOnReady = true;\r\n this.initImporter();\r\n return;\r\n }\r\n }\r\n\r\n if(!this.isModalShown) {\r\n if(!this.state.isLoading) {\r\n this.isModalShown = true;\r\n this.iframe.contentWindow.postMessage('openModal', '*');\r\n this.holder.current.style.display = 'block';\r\n } else {\r\n this.shouldOpenModalOnReady = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n generateUuid() {\r\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\r\n }\r\n\r\n enableInitator() {\r\n this.setState({\r\n isLoading: false\r\n })\r\n }\r\n\r\n render() {\r\n\r\n const holderStyle = {\r\n display: \"none\",\r\n zIndex: 2147483647,\r\n position: \"fixed\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n };\r\n\r\n if(this.props.render) {\r\n return (\r\n <div>\r\n {this.props.render(this.openModal, this.state.isLoading)}\r\n <div ref={this.holder} style={holderStyle}></div>\r\n </div>\r\n )\r\n }else{\r\n return (\r\n <div>\r\n <button disabled={this.state.isLoading} onClick={this.openModal} data-csvbox-initator data-csvbox-token={this.uuid}>{this.props.children}</button>\r\n <div ref={this.holder} style={holderStyle}></div>\r\n </div>\r\n )\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nexport default CSVBoxButton;\r\n"],"names":["CSVBoxButton","props","holder","React","createRef","openModal","bind","isModalShown","shouldOpenModalOnReady","uuid","generateUuid","state","isLoading","iframe","componentDidMount","lazy","initImporter","enableInitator","loadStarted","user","dynamicColumns","options","onReady","onImport","onSubmit","onClose","licenseKey","dataLocation","customDomain","language","environment","domain","iframeUrl","version","env","JSON","stringify","replace","match","window","addEventListener","event","data","current","style","display","unique_token","type","metadata","column_mapping","import_status","row_data","primary_row_data","headers","rows","dynamic_columns_indexes","dynamicColumnsIndexes","virtual_columns_indexes","virtualColumnsIndexes","dropdown_display_labels_mappings","forEach","x","dynamic_columns","virtual_data","col","i","undefined","includes","unmapped_data","Object","keys","length","push","raw_columns","ignored_column_row","self","document","createElement","setAttribute","frameBorder","classList","add","height","width","position","top","left","onMessageEvent","onload","contentWindow","postMessage","appendChild","Math","random","toString","substring","setState","render","holderStyle","zIndex","bottom","right","children","Component"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "csvbox-react-test",
3
- "version": "1.1.1",
3
+ "version": "1.1.12",
4
4
  "description": "React adapter for csvbox.io",
5
+ "types": "@types/csvbox__react.d.ts",
5
6
  "author": "csvbox-io",
6
7
  "license": "MIT",
7
8
  "repository": {
@@ -27,8 +28,8 @@
27
28
  "deploy": "gh-pages -d example/build"
28
29
  },
29
30
  "peerDependencies": {
30
- "react": "^16.13.1 || ^17.0.2 || ^ 18.0.0",
31
- "react-dom": "^16.13.1 || ^17.0.2 || ^18.0.0"
31
+ "react": "^16.13.1 || ^17.0.2 || ^18.0.0 || ^19.0.0",
32
+ "react-dom": "^16.13.1 || ^17.0.2 || ^18.0.0 || ^19.0.0"
32
33
  },
33
34
  "devDependencies": {
34
35
  "babel-eslint": "^10.0.3",
@@ -52,7 +53,8 @@
52
53
  "react-scripts": "^3.4.1"
53
54
  },
54
55
  "files": [
55
- "dist"
56
+ "dist",
57
+ "@types/csvbox__react.d.ts"
56
58
  ],
57
59
  "keywords": [
58
60
  "csv",