@sumit_yewale/angular2 1.0.4

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.
package/README.md ADDED
@@ -0,0 +1,93 @@
1
+ # @csvbox/angular2
2
+
3
+ > Standalone Angular component for csvbox.io supporting Angular version 14 and above
4
+
5
+ ## ✅ Only for Angular version 14 and above
6
+ ## ⚠️ For Angular version 13 or less, please use [@csvbox/angular](https://www.npmjs.com/package/@csvbox/angular) package
7
+
8
+ [![NPM](https://img.shields.io/npm/v/@csvbox/angular2.svg)](https://www.npmjs.com/package/@csvbox/angular2) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
9
+
10
+ ## Compatibility
11
+
12
+ | Angular Version | Package |
13
+ | ------ | ------ |
14
+ |8 to 13|[@csvbox/angular](https://www.npmjs.com/package/@csvbox/angular)|
15
+ |14 and above|@csvbox/angular2 (this package)|
16
+
17
+ ## Shell
18
+
19
+ ```bash
20
+ npm install @csvbox/angular2
21
+ ```
22
+
23
+ ## Import
24
+ Add `CSVBoxButtonComponent` to your module imports
25
+ ```ts
26
+ import { CSVBoxButtonComponent } from "@csvbox/angular2";
27
+
28
+ @NgModule({
29
+ ...
30
+ imports: [
31
+ ...
32
+ CSVBoxButtonComponent
33
+ ]
34
+ })
35
+ ```
36
+
37
+ ## Usage
38
+
39
+ ```html
40
+ <csvbox-button [licenseKey]="licenseKey" [isImported]="isImported.bind(this)" [user]="user">Import</csvbox-button>
41
+ ```
42
+
43
+ ## Example
44
+
45
+ ```ts
46
+
47
+ @Component({
48
+ selector: 'app-root',
49
+ template: `
50
+ <csvbox-button
51
+ [licenseKey]="licenseKey"
52
+ [user]="user"
53
+ [isImported]="isImported.bind(this)">
54
+ Import
55
+ </csvbox-button>
56
+ `
57
+ })
58
+
59
+ export class AppComponent {
60
+
61
+ title = 'example';
62
+ licenseKey = 'YOUR_LICENSE_KEY_HERE';
63
+ user = { user_id: 'default123' };
64
+
65
+ isImported(result: boolean, data: any) {
66
+ if(result) {
67
+ console.log("Sheet uploaded successfully");
68
+ console.log(data.row_success + " rows uploaded");
69
+ }else{
70
+ console.log("There was some problem uploading the sheet");
71
+ }
72
+ }
73
+
74
+ }
75
+ ```
76
+
77
+ ## Events
78
+
79
+ | Event | Description |
80
+ | :---------- | :-------------------------------------------------------------------------|
81
+ | `isReady` | Triggers when the importer is initialized and ready for use by the users. |
82
+ | `isClosed` | Triggers when the importer is closed. |
83
+ | `isSubmitted` | Triggers when the user hits the 'Submit' button to upload the validated file. **data** object is available in this event. It contains metadata related to the import.|
84
+ | `isImported` | Triggers when the data is pushed to the destination.<br>Two objects are available in this event:<br>1. result (boolean): It is true when the import is successful and false when the import fails.<br>2. data (object): Contains metadata related to the import.|
85
+
86
+ ## Readme
87
+
88
+ For usage see the guide here - https://help.csvbox.io/getting-started#2-install-code
89
+
90
+
91
+ ## License
92
+
93
+ MIT © [csvbox-io](https://github.com/csvbox-io)
@@ -0,0 +1,253 @@
1
+ import { Component, Input, SecurityContext } from '@angular/core';
2
+ import { insertCSS } from './utils/insertCSS';
3
+ import { buildImportUrl, generateUuid, buildInitPayload, classifyStructuredMessage } from '@sumit_yewale/adapter-core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ const appVersion = '1.1.16';
7
+ export class CSVBoxButtonComponent {
8
+ constructor(sanitizer) {
9
+ this.sanitizer = sanitizer;
10
+ this.isModalShown = false;
11
+ this.user = null;
12
+ this.dynamicColumns = null;
13
+ this.licenseKey = null;
14
+ this.options = null;
15
+ this.uuid = '';
16
+ this.customDomain = null;
17
+ this.dataLocation = null;
18
+ this.language = null;
19
+ this.environment = null;
20
+ this.theme = null;
21
+ this.isIframeLoaded = false;
22
+ this.openModalOnIframeLoad = false;
23
+ this.lazy = false;
24
+ this.safeUrl = null;
25
+ this.iframe = null;
26
+ this.disabled = true;
27
+ this.holder = null;
28
+ }
29
+ ngOnInit() {
30
+ this.uuid = generateUuid();
31
+ const iframeUrl = buildImportUrl({
32
+ licenseKey: this.licenseKey,
33
+ customDomain: this.customDomain,
34
+ dataLocation: this.dataLocation,
35
+ language: this.language,
36
+ theme: this.theme,
37
+ environment: this.environment
38
+ }, "angular", appVersion);
39
+ this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));
40
+ }
41
+ ngOnChanges(changes) {
42
+ if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {
43
+ this.updateUserVariable(changes['user'].currentValue);
44
+ }
45
+ }
46
+ updateUserVariable(data) {
47
+ this.user = data;
48
+ if (this.iframe && this.iframe.contentWindow) {
49
+ this.iframe.contentWindow.postMessage({
50
+ "customer": data
51
+ }, "*");
52
+ }
53
+ }
54
+ ngAfterContentInit() {
55
+ window.addEventListener("message", (event) => {
56
+ const message = classifyStructuredMessage(event.data, this.uuid);
57
+ if (!message) {
58
+ return;
59
+ }
60
+ if (message.type === "data-on-submit") {
61
+ if (this.onSubmit)
62
+ this.onSubmit(message.metadata);
63
+ if (this.isSubmitted)
64
+ this.isSubmitted(message.metadata);
65
+ if (this.submitted)
66
+ this.submitted();
67
+ }
68
+ else if (message.type === "data-push-status") {
69
+ if (!message.success) {
70
+ delete message.metadata["unique_token"];
71
+ }
72
+ if (this.onImport)
73
+ this.onImport(message.success, message.metadata);
74
+ if (this.isImported)
75
+ this.isImported(message.success, message.metadata);
76
+ if (this.imported)
77
+ this.imported(message.success, message.metadata);
78
+ }
79
+ else if (message.type === "csvbox-modal-hidden") {
80
+ this.handleModalClosed();
81
+ }
82
+ else if (message.type === "csvbox-upload-successful") {
83
+ if (this.onImport)
84
+ this.onImport(true);
85
+ if (this.isImported)
86
+ this.isImported(true);
87
+ if (this.imported)
88
+ this.imported(true);
89
+ }
90
+ else if (message.type === "csvbox-upload-failed") {
91
+ if (this.onImport)
92
+ this.onImport(false);
93
+ if (this.isImported)
94
+ this.isImported(false);
95
+ if (this.imported)
96
+ this.imported(false);
97
+ }
98
+ }, false);
99
+ if (this.lazy) {
100
+ this.disabled = false;
101
+ }
102
+ else {
103
+ this.disabled = true;
104
+ this.initImporter();
105
+ }
106
+ }
107
+ handleModalClosed() {
108
+ if (this.holder)
109
+ this.holder.style.display = 'none';
110
+ this.isModalShown = false;
111
+ this.isIframeLoaded = false;
112
+ this.openModalOnIframeLoad = false;
113
+ if (this.holder)
114
+ this.holder.remove();
115
+ this.holder = null;
116
+ this.iframe = null;
117
+ if (this.onClose)
118
+ this.onClose();
119
+ if (this.isClosed)
120
+ this.isClosed();
121
+ if (this.closed)
122
+ this.closed();
123
+ }
124
+ initImporter() {
125
+ if (this.loadStarted)
126
+ this.loadStarted();
127
+ this.uuid = generateUuid();
128
+ insertCSS();
129
+ const iframe = document.createElement("iframe");
130
+ this.iframe = iframe;
131
+ iframe.setAttribute("src", this.safeUrl?.toString() || '');
132
+ iframe.frameBorder = "0";
133
+ const self = this;
134
+ iframe.onload = function () {
135
+ if (self.onReady)
136
+ self.onReady();
137
+ if (self.isReady)
138
+ self.isReady();
139
+ if (self.importerReady)
140
+ self.importerReady();
141
+ self.disabled = false;
142
+ self.isIframeLoaded = true;
143
+ if (self.iframe && self.iframe.contentWindow) {
144
+ self.iframe.contentWindow.postMessage(buildInitPayload(self.user, self.dynamicColumns, self.options, self.uuid), "*");
145
+ }
146
+ if (self.openModalOnIframeLoad) {
147
+ self.openModal();
148
+ }
149
+ };
150
+ this.holder = document.createElement('div');
151
+ this.holder.classList.add('csvbox-holder');
152
+ this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);
153
+ this.holder.appendChild(iframe);
154
+ document.body.insertAdjacentElement('beforeend', this.holder);
155
+ }
156
+ openModal() {
157
+ if (!this.iframe) {
158
+ this.openModalOnIframeLoad = true;
159
+ this.initImporter();
160
+ return;
161
+ }
162
+ if (!this.isModalShown) {
163
+ if (this.isIframeLoaded) {
164
+ this.isModalShown = true;
165
+ if (this.holder)
166
+ this.holder.style.display = 'block';
167
+ if (this.iframe && this.iframe.contentWindow) {
168
+ this.iframe.contentWindow.postMessage('openModal', '*');
169
+ }
170
+ }
171
+ else {
172
+ this.openModalOnIframeLoad = true;
173
+ }
174
+ }
175
+ }
176
+ }
177
+ CSVBoxButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
178
+ CSVBoxButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CSVBoxButtonComponent, isStandalone: true, selector: "csvbox-button", inputs: { onImport: "onImport", onReady: "onReady", onClose: "onClose", onSubmit: "onSubmit", isImported: "isImported", isReady: "isReady", isClosed: "isClosed", isSubmitted: "isSubmitted", importerReady: "importerReady", closed: "closed", submitted: "submitted", imported: "imported", loadStarted: "loadStarted", user: "user", dynamicColumns: "dynamicColumns", licenseKey: "licenseKey", options: "options", uuid: "uuid", customDomain: "customDomain", dataLocation: "dataLocation", language: "language", environment: "environment", theme: "theme", isIframeLoaded: "isIframeLoaded", openModalOnIframeLoad: "openModalOnIframeLoad", lazy: "lazy", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: `
179
+ <div>
180
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
181
+ <ng-content></ng-content>
182
+ </button>
183
+ </div>
184
+ `, isInline: true });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, decorators: [{
186
+ type: Component,
187
+ args: [{
188
+ selector: 'csvbox-button',
189
+ standalone: true,
190
+ template: `
191
+ <div>
192
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
193
+ <ng-content></ng-content>
194
+ </button>
195
+ </div>
196
+ `
197
+ }]
198
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { onImport: [{
199
+ type: Input
200
+ }], onReady: [{
201
+ type: Input
202
+ }], onClose: [{
203
+ type: Input
204
+ }], onSubmit: [{
205
+ type: Input
206
+ }], isImported: [{
207
+ type: Input
208
+ }], isReady: [{
209
+ type: Input
210
+ }], isClosed: [{
211
+ type: Input
212
+ }], isSubmitted: [{
213
+ type: Input
214
+ }], importerReady: [{
215
+ type: Input
216
+ }], closed: [{
217
+ type: Input
218
+ }], submitted: [{
219
+ type: Input
220
+ }], imported: [{
221
+ type: Input
222
+ }], loadStarted: [{
223
+ type: Input
224
+ }], user: [{
225
+ type: Input
226
+ }], dynamicColumns: [{
227
+ type: Input
228
+ }], licenseKey: [{
229
+ type: Input
230
+ }], options: [{
231
+ type: Input
232
+ }], uuid: [{
233
+ type: Input
234
+ }], customDomain: [{
235
+ type: Input
236
+ }], dataLocation: [{
237
+ type: Input
238
+ }], language: [{
239
+ type: Input
240
+ }], environment: [{
241
+ type: Input
242
+ }], theme: [{
243
+ type: Input
244
+ }], isIframeLoaded: [{
245
+ type: Input
246
+ }], openModalOnIframeLoad: [{
247
+ type: Input
248
+ }], lazy: [{
249
+ type: Input
250
+ }], disabled: [{
251
+ type: Input
252
+ }] } });
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hZGFwdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYWRhcHRlci9zcmMvbGliL2FuZ3VsYXItYWRhcHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBR0wsZUFBZSxFQUVoQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRXZILE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQWM1QixNQUFNLE9BQU8scUJBQXFCO0lBMkNoQyxZQUFtQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBekMxQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQWtCWixTQUFJLEdBQWtDLElBQUksQ0FBQztRQUMzQyxtQkFBYyxHQUFrQyxJQUFJLENBQUM7UUFDckQsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsWUFBTyxHQUFrQyxJQUFJLENBQUM7UUFDOUMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQ25DLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLGdCQUFXLEdBQWtDLElBQUksQ0FBQztRQUVsRCxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUU1QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFFdkMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUUvQixZQUFPLEdBQW1CLElBQUksQ0FBQztRQUUvQixXQUFNLEdBQTZCLElBQUksQ0FBQztRQUUv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c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBTZWN1cml0eUNvbnRleHQsXG4gIEFmdGVyQ29udGVudEluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaW5zZXJ0Q1NTIH0gZnJvbSAnLi91dGlscy9pbnNlcnRDU1MnO1xuaW1wb3J0IHsgYnVpbGRJbXBvcnRVcmwsIGdlbmVyYXRlVXVpZCwgYnVpbGRJbml0UGF5bG9hZCwgY2xhc3NpZnlTdHJ1Y3R1cmVkTWVzc2FnZSB9IGZyb20gJ0BzdW1pdF95ZXdhbGUvYWRhcHRlci1jb3JlJztcblxuY29uc3QgYXBwVmVyc2lvbiA9ICcxLjEuMTYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjc3Zib3gtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIiBbYXR0ci5kYXRhLWNzdmJveC10b2tlbl09XCJ1dWlkXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgXG59KVxuXG5leHBvcnQgY2xhc3MgQ1NWQm94QnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuXG4gIGlzTW9kYWxTaG93biA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG9uSW1wb3J0PzogKHN1Y2Nlc3M6IGJvb2xlYW4sIG1ldGFkYXRhPzogYW55KSA9PiB2b2lkO1xuICBASW5wdXQoKSBvblJlYWR5PzogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIG9uU3VibWl0PzogKG1ldGFkYXRhOiBhbnkpID0+IHZvaWQ7XG5cbiAgQElucHV0KCkgaXNJbXBvcnRlZD86IChzdWNjZXNzOiBib29sZWFuLCBtZXRhZGF0YT86IGFueSkgPT4gdm9pZDtcbiAgQElucHV0KCkgaXNSZWFkeT86ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGlzQ2xvc2VkPzogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgaXNTdWJtaXR0ZWQ/OiAobWV0YWRhdGE6IGFueSkgPT4gdm9pZDtcblxuICBASW5wdXQoKSBpbXBvcnRlclJlYWR5PzogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgY2xvc2VkPzogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgc3VibWl0dGVkPzogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgaW1wb3J0ZWQ/OiAoc3VjY2VzczogYm9vbGVhbiwgbWV0YWRhdGE/OiBhbnkpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGxvYWRTdGFydGVkPzogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoKSB1c2VyOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGR5bmFtaWNDb2x1bW5zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGxpY2Vuc2VLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBvcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHV1aWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjdXN0b21Eb21haW46IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBkYXRhTG9jYXRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBsYW5ndWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVudmlyb25tZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgdGhlbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIGlzSWZyYW1lTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5Nb2RhbE9uSWZyYW1lTG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxhenk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzYWZlVXJsOiBTYWZlVXJsIHwgbnVsbCA9IG51bGw7XG5cbiAgaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgaG9sZGVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXVpZCA9IGdlbmVyYXRlVXVpZCgpO1xuICAgIGNvbnN0IGlmcmFtZVVybCA9IGJ1aWxkSW1wb3J0VXJsKFxuICAgICAge1xuICAgICAgICBsaWNlbnNlS2V5OiB0aGlzLmxpY2Vuc2VLZXksXG4gICAgICAgIGN1c3RvbURvbWFpbjogdGhpcy5jdXN0b21Eb21haW4sXG4gICAgICAgIGRhdGFMb2NhdGlvbjogdGhpcy5kYXRhTG9jYXRpb24sXG4gICAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmd1YWdlLFxuICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRcbiAgICAgIH0sXG4gICAgICBcImFuZ3VsYXJcIixcbiAgICAgIGFwcFZlcnNpb25cbiAgICApO1xuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5SRVNPVVJDRV9VUkwsIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChpZnJhbWVVcmwpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndXNlciddICYmIGNoYW5nZXNbJ3VzZXInXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3VzZXInXS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnVwZGF0ZVVzZXJWYXJpYWJsZShjaGFuZ2VzWyd1c2VyJ10uY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVVc2VyVmFyaWFibGUoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIHRoaXMudXNlciA9IGRhdGE7XG4gICAgaWYgKHRoaXMuaWZyYW1lICYmIHRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgIHRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe1xuICAgICAgICBcImN1c3RvbWVyXCI6IGRhdGFcbiAgICAgIH0sIFwiKlwiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gY2xhc3NpZnlTdHJ1Y3R1cmVkTWVzc2FnZShldmVudC5kYXRhLCB0aGlzLnV1aWQpO1xuICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJkYXRhLW9uLXN1Ym1pdFwiKSB7XG4gICAgICAgIGlmICh0aGlzLm9uU3VibWl0KSB0aGlzLm9uU3VibWl0KG1lc3NhZ2UubWV0YWRhdGEpO1xuICAgICAgICBpZiAodGhpcy5pc1N1Ym1pdHRlZCkgdGhpcy5pc1N1Ym1pdHRlZChtZXNzYWdlLm1ldGFkYXRhKTtcbiAgICAgICAgaWYgKHRoaXMuc3VibWl0dGVkKSB0aGlzLnN1Ym1pdHRlZCgpO1xuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiZGF0YS1wdXNoLXN0YXR1c1wiKSB7XG4gICAgICAgIGlmICghbWVzc2FnZS5zdWNjZXNzKSB7XG4gICAgICAgICAgZGVsZXRlIG1lc3NhZ2UubWV0YWRhdGFbXCJ1bmlxdWVfdG9rZW5cIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub25JbXBvcnQpIHRoaXMub25JbXBvcnQobWVzc2FnZS5zdWNjZXNzLCBtZXNzYWdlLm1ldGFkYXRhKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbXBvcnRlZCkgdGhpcy5pc0ltcG9ydGVkKG1lc3NhZ2Uuc3VjY2VzcywgbWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICAgIGlmICh0aGlzLmltcG9ydGVkKSB0aGlzLmltcG9ydGVkKG1lc3NhZ2Uuc3VjY2VzcywgbWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJjc3Zib3gtbW9kYWwtaGlkZGVuXCIpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVNb2RhbENsb3NlZCgpO1xuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY3N2Ym94LXVwbG9hZC1zdWNjZXNzZnVsXCIpIHtcbiAgICAgICAgaWYgKHRoaXMub25JbXBvcnQpIHRoaXMub25JbXBvcnQodHJ1ZSk7XG4gICAgICAgIGlmICh0aGlzLmlzSW1wb3J0ZWQpIHRoaXMuaXNJbXBvcnRlZCh0cnVlKTtcbiAgICAgICAgaWYgKHRoaXMuaW1wb3J0ZWQpIHRoaXMuaW1wb3J0ZWQodHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJjc3Zib3gtdXBsb2FkLWZhaWxlZFwiKSB7XG4gICAgICAgIGlmICh0aGlzLm9uSW1wb3J0KSB0aGlzLm9uSW1wb3J0KGZhbHNlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbXBvcnRlZCkgdGhpcy5pc0ltcG9ydGVkKGZhbHNlKTtcbiAgICAgICAgaWYgKHRoaXMuaW1wb3J0ZWQpIHRoaXMuaW1wb3J0ZWQoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIGZhbHNlKTtcblxuICAgIGlmICh0aGlzLmxhenkpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLmluaXRJbXBvcnRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vZGFsQ2xvc2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvbGRlcikgdGhpcy5ob2xkZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGlzLmlzTW9kYWxTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuaXNJZnJhbWVMb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5Nb2RhbE9uSWZyYW1lTG9hZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmhvbGRlcikgdGhpcy5ob2xkZXIucmVtb3ZlKCk7XG4gICAgdGhpcy5ob2xkZXIgPSBudWxsO1xuICAgIHRoaXMuaWZyYW1lID0gbnVsbDtcbiAgICBpZiAodGhpcy5vbkNsb3NlKSB0aGlzLm9uQ2xvc2UoKTtcbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkgdGhpcy5pc0Nsb3NlZCgpO1xuICAgIGlmICh0aGlzLmNsb3NlZCkgdGhpcy5jbG9zZWQoKTtcbiAgfVxuXG4gIGluaXRJbXBvcnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkU3RhcnRlZCkgdGhpcy5sb2FkU3RhcnRlZCgpO1xuXG4gICAgdGhpcy51dWlkID0gZ2VuZXJhdGVVdWlkKCk7XG5cbiAgICBpbnNlcnRDU1MoKTtcblxuICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7XG4gICAgdGhpcy5pZnJhbWUgPSBpZnJhbWU7XG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZShcInNyY1wiLCB0aGlzLnNhZmVVcmw/LnRvU3RyaW5nKCkgfHwgJycpO1xuICAgIGlmcmFtZS5mcmFtZUJvcmRlciA9IFwiMFwiO1xuXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChzZWxmLm9uUmVhZHkpIHNlbGYub25SZWFkeSgpO1xuICAgICAgaWYgKHNlbGYuaXNSZWFkeSkgc2VsZi5pc1JlYWR5KCk7XG4gICAgICBpZiAoc2VsZi5pbXBvcnRlclJlYWR5KSBzZWxmLmltcG9ydGVyUmVhZHkoKTtcblxuICAgICAgc2VsZi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgc2VsZi5pc0lmcmFtZUxvYWRlZCA9IHRydWU7XG4gICAgICBpZiAoc2VsZi5pZnJhbWUgJiYgc2VsZi5pZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgICBzZWxmLmlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKGJ1aWxkSW5pdFBheWxvYWQoc2VsZi51c2VyLCBzZWxmLmR5bmFtaWNDb2x1bW5zLCBzZWxmLm9wdGlvbnMsIHNlbGYudXVpZCksIFwiKlwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWxmLm9wZW5Nb2RhbE9uSWZyYW1lTG9hZCkge1xuICAgICAgICBzZWxmLm9wZW5Nb2RhbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5ob2xkZXIuY2xhc3NMaXN0LmFkZCgnY3N2Ym94LWhvbGRlcicpO1xuICAgIHRoaXMuaG9sZGVyLnNldEF0dHJpYnV0ZSgnaWQnLCBgY3N2Ym94LWVtYmVkLSR7dGhpcy51dWlkfWApO1xuICAgIHRoaXMuaG9sZGVyLmFwcGVuZENoaWxkKGlmcmFtZSk7XG5cbiAgICBkb2N1bWVudC5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudChcbiAgICAgICdiZWZvcmVlbmQnLCB0aGlzLmhvbGRlclxuICAgICk7XG4gIH1cblxuICBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlmcmFtZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWxPbklmcmFtZUxvYWQgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0SW1wb3J0ZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzTW9kYWxTaG93bikge1xuICAgICAgaWYgKHRoaXMuaXNJZnJhbWVMb2FkZWQpIHtcbiAgICAgICAgdGhpcy5pc01vZGFsU2hvd24gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5ob2xkZXIpIHRoaXMuaG9sZGVyLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgICBpZiAodGhpcy5pZnJhbWUgJiYgdGhpcy5pZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgICAgIHRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJ29wZW5Nb2RhbCcsICcqJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsT25JZnJhbWVMb2FkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hZGFwdGVyL3NyYy9saWIvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENTVkJveE1ldGhvZHMge1xuICBvbkRhdGE/OiAocmVzdWx0OmJvb2xlYW4sIGRhdGE6YW55KSA9PiB2b2lkO1xufVxuIl19
@@ -0,0 +1,32 @@
1
+ let styleElement;
2
+ const GLOBAL_CSS = `
3
+ .csvbox-holder {
4
+ z-index: 2147483647;
5
+ position: fixed;
6
+ top: 0;
7
+ bottom: 0;
8
+ left: 0;
9
+ right: 0;
10
+ display: none;
11
+ }
12
+ .csvbox-holder iframe {
13
+ height: 100%;
14
+ width: 100%;
15
+ position: absolute;
16
+ top: 0px;
17
+ left: 0px;
18
+ }
19
+ `;
20
+ export const insertCSS = () => {
21
+ if (styleElement) {
22
+ return;
23
+ }
24
+ styleElement = document.createElement('style');
25
+ styleElement.setAttribute('type', 'text/css');
26
+ const head = document.querySelector('head');
27
+ if (head) {
28
+ head.appendChild(styleElement);
29
+ }
30
+ styleElement.textContent = GLOBAL_CSS;
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0Q1NTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hZGFwdGVyL3NyYy9saWIvdXRpbHMvaW5zZXJ0Q1NTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksWUFBOEIsQ0FBQTtBQUVsQyxNQUFNLFVBQVUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQmxCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBUyxFQUFFO0lBQ2xDLElBQUksWUFBWSxFQUFFO1FBQ2hCLE9BQU07S0FDUDtJQUVELFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzdDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsSUFBSSxJQUFJLEVBQUU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ2hDO0lBRUQsWUFBWSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUE7QUFDdkMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudFxuXG5jb25zdCBHTE9CQUxfQ1NTID0gYFxuLmNzdmJveC1ob2xkZXIge1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jc3Zib3gtaG9sZGVyIGlmcmFtZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbn1cbmBcblxuZXhwb3J0IGNvbnN0IGluc2VydENTUyA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJylcbiAgY29uc3QgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKTtcbiAgaWYgKGhlYWQpIHtcbiAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSBHTE9CQUxfQ1NTXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of angular-adapter
3
+ */
4
+ export * from './lib/angular-adapter.component';
5
+ export * from './lib/interface';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYWRhcHRlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUdILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5ndWxhci1hZGFwdGVyXG4gKi9cblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLWFkYXB0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtaXRfeWV3YWxlLWFuZ3VsYXIyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hZGFwdGVyL3NyYy9zdW1pdF95ZXdhbGUtYW5ndWxhcjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,296 @@
1
+ import * as i0 from '@angular/core';
2
+ import { SecurityContext, Component, Input } from '@angular/core';
3
+ import { generateUuid, buildImportUrl, classifyStructuredMessage, buildInitPayload } from '@sumit_yewale/adapter-core';
4
+ import * as i1 from '@angular/platform-browser';
5
+
6
+ let styleElement;
7
+ const GLOBAL_CSS = `
8
+ .csvbox-holder {
9
+ z-index: 2147483647;
10
+ position: fixed;
11
+ top: 0;
12
+ bottom: 0;
13
+ left: 0;
14
+ right: 0;
15
+ display: none;
16
+ }
17
+ .csvbox-holder iframe {
18
+ height: 100%;
19
+ width: 100%;
20
+ position: absolute;
21
+ top: 0px;
22
+ left: 0px;
23
+ }
24
+ `;
25
+ const insertCSS = () => {
26
+ if (styleElement) {
27
+ return;
28
+ }
29
+ styleElement = document.createElement('style');
30
+ styleElement.setAttribute('type', 'text/css');
31
+ const head = document.querySelector('head');
32
+ if (head) {
33
+ head.appendChild(styleElement);
34
+ }
35
+ styleElement.textContent = GLOBAL_CSS;
36
+ };
37
+
38
+ const appVersion = '1.1.16';
39
+ class CSVBoxButtonComponent {
40
+ constructor(sanitizer) {
41
+ this.sanitizer = sanitizer;
42
+ this.isModalShown = false;
43
+ this.user = null;
44
+ this.dynamicColumns = null;
45
+ this.licenseKey = null;
46
+ this.options = null;
47
+ this.uuid = '';
48
+ this.customDomain = null;
49
+ this.dataLocation = null;
50
+ this.language = null;
51
+ this.environment = null;
52
+ this.theme = null;
53
+ this.isIframeLoaded = false;
54
+ this.openModalOnIframeLoad = false;
55
+ this.lazy = false;
56
+ this.safeUrl = null;
57
+ this.iframe = null;
58
+ this.disabled = true;
59
+ this.holder = null;
60
+ }
61
+ ngOnInit() {
62
+ this.uuid = generateUuid();
63
+ const iframeUrl = buildImportUrl({
64
+ licenseKey: this.licenseKey,
65
+ customDomain: this.customDomain,
66
+ dataLocation: this.dataLocation,
67
+ language: this.language,
68
+ theme: this.theme,
69
+ environment: this.environment
70
+ }, "angular", appVersion);
71
+ this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));
72
+ }
73
+ ngOnChanges(changes) {
74
+ if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {
75
+ this.updateUserVariable(changes['user'].currentValue);
76
+ }
77
+ }
78
+ updateUserVariable(data) {
79
+ this.user = data;
80
+ if (this.iframe && this.iframe.contentWindow) {
81
+ this.iframe.contentWindow.postMessage({
82
+ "customer": data
83
+ }, "*");
84
+ }
85
+ }
86
+ ngAfterContentInit() {
87
+ window.addEventListener("message", (event) => {
88
+ const message = classifyStructuredMessage(event.data, this.uuid);
89
+ if (!message) {
90
+ return;
91
+ }
92
+ if (message.type === "data-on-submit") {
93
+ if (this.onSubmit)
94
+ this.onSubmit(message.metadata);
95
+ if (this.isSubmitted)
96
+ this.isSubmitted(message.metadata);
97
+ if (this.submitted)
98
+ this.submitted();
99
+ }
100
+ else if (message.type === "data-push-status") {
101
+ if (!message.success) {
102
+ delete message.metadata["unique_token"];
103
+ }
104
+ if (this.onImport)
105
+ this.onImport(message.success, message.metadata);
106
+ if (this.isImported)
107
+ this.isImported(message.success, message.metadata);
108
+ if (this.imported)
109
+ this.imported(message.success, message.metadata);
110
+ }
111
+ else if (message.type === "csvbox-modal-hidden") {
112
+ this.handleModalClosed();
113
+ }
114
+ else if (message.type === "csvbox-upload-successful") {
115
+ if (this.onImport)
116
+ this.onImport(true);
117
+ if (this.isImported)
118
+ this.isImported(true);
119
+ if (this.imported)
120
+ this.imported(true);
121
+ }
122
+ else if (message.type === "csvbox-upload-failed") {
123
+ if (this.onImport)
124
+ this.onImport(false);
125
+ if (this.isImported)
126
+ this.isImported(false);
127
+ if (this.imported)
128
+ this.imported(false);
129
+ }
130
+ }, false);
131
+ if (this.lazy) {
132
+ this.disabled = false;
133
+ }
134
+ else {
135
+ this.disabled = true;
136
+ this.initImporter();
137
+ }
138
+ }
139
+ handleModalClosed() {
140
+ if (this.holder)
141
+ this.holder.style.display = 'none';
142
+ this.isModalShown = false;
143
+ this.isIframeLoaded = false;
144
+ this.openModalOnIframeLoad = false;
145
+ if (this.holder)
146
+ this.holder.remove();
147
+ this.holder = null;
148
+ this.iframe = null;
149
+ if (this.onClose)
150
+ this.onClose();
151
+ if (this.isClosed)
152
+ this.isClosed();
153
+ if (this.closed)
154
+ this.closed();
155
+ }
156
+ initImporter() {
157
+ var _a;
158
+ if (this.loadStarted)
159
+ this.loadStarted();
160
+ this.uuid = generateUuid();
161
+ insertCSS();
162
+ const iframe = document.createElement("iframe");
163
+ this.iframe = iframe;
164
+ iframe.setAttribute("src", ((_a = this.safeUrl) === null || _a === void 0 ? void 0 : _a.toString()) || '');
165
+ iframe.frameBorder = "0";
166
+ const self = this;
167
+ iframe.onload = function () {
168
+ if (self.onReady)
169
+ self.onReady();
170
+ if (self.isReady)
171
+ self.isReady();
172
+ if (self.importerReady)
173
+ self.importerReady();
174
+ self.disabled = false;
175
+ self.isIframeLoaded = true;
176
+ if (self.iframe && self.iframe.contentWindow) {
177
+ self.iframe.contentWindow.postMessage(buildInitPayload(self.user, self.dynamicColumns, self.options, self.uuid), "*");
178
+ }
179
+ if (self.openModalOnIframeLoad) {
180
+ self.openModal();
181
+ }
182
+ };
183
+ this.holder = document.createElement('div');
184
+ this.holder.classList.add('csvbox-holder');
185
+ this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);
186
+ this.holder.appendChild(iframe);
187
+ document.body.insertAdjacentElement('beforeend', this.holder);
188
+ }
189
+ openModal() {
190
+ if (!this.iframe) {
191
+ this.openModalOnIframeLoad = true;
192
+ this.initImporter();
193
+ return;
194
+ }
195
+ if (!this.isModalShown) {
196
+ if (this.isIframeLoaded) {
197
+ this.isModalShown = true;
198
+ if (this.holder)
199
+ this.holder.style.display = 'block';
200
+ if (this.iframe && this.iframe.contentWindow) {
201
+ this.iframe.contentWindow.postMessage('openModal', '*');
202
+ }
203
+ }
204
+ else {
205
+ this.openModalOnIframeLoad = true;
206
+ }
207
+ }
208
+ }
209
+ }
210
+ CSVBoxButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
211
+ CSVBoxButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CSVBoxButtonComponent, isStandalone: true, selector: "csvbox-button", inputs: { onImport: "onImport", onReady: "onReady", onClose: "onClose", onSubmit: "onSubmit", isImported: "isImported", isReady: "isReady", isClosed: "isClosed", isSubmitted: "isSubmitted", importerReady: "importerReady", closed: "closed", submitted: "submitted", imported: "imported", loadStarted: "loadStarted", user: "user", dynamicColumns: "dynamicColumns", licenseKey: "licenseKey", options: "options", uuid: "uuid", customDomain: "customDomain", dataLocation: "dataLocation", language: "language", environment: "environment", theme: "theme", isIframeLoaded: "isIframeLoaded", openModalOnIframeLoad: "openModalOnIframeLoad", lazy: "lazy", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: `
212
+ <div>
213
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
214
+ <ng-content></ng-content>
215
+ </button>
216
+ </div>
217
+ `, isInline: true });
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, decorators: [{
219
+ type: Component,
220
+ args: [{
221
+ selector: 'csvbox-button',
222
+ standalone: true,
223
+ template: `
224
+ <div>
225
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
226
+ <ng-content></ng-content>
227
+ </button>
228
+ </div>
229
+ `
230
+ }]
231
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { onImport: [{
232
+ type: Input
233
+ }], onReady: [{
234
+ type: Input
235
+ }], onClose: [{
236
+ type: Input
237
+ }], onSubmit: [{
238
+ type: Input
239
+ }], isImported: [{
240
+ type: Input
241
+ }], isReady: [{
242
+ type: Input
243
+ }], isClosed: [{
244
+ type: Input
245
+ }], isSubmitted: [{
246
+ type: Input
247
+ }], importerReady: [{
248
+ type: Input
249
+ }], closed: [{
250
+ type: Input
251
+ }], submitted: [{
252
+ type: Input
253
+ }], imported: [{
254
+ type: Input
255
+ }], loadStarted: [{
256
+ type: Input
257
+ }], user: [{
258
+ type: Input
259
+ }], dynamicColumns: [{
260
+ type: Input
261
+ }], licenseKey: [{
262
+ type: Input
263
+ }], options: [{
264
+ type: Input
265
+ }], uuid: [{
266
+ type: Input
267
+ }], customDomain: [{
268
+ type: Input
269
+ }], dataLocation: [{
270
+ type: Input
271
+ }], language: [{
272
+ type: Input
273
+ }], environment: [{
274
+ type: Input
275
+ }], theme: [{
276
+ type: Input
277
+ }], isIframeLoaded: [{
278
+ type: Input
279
+ }], openModalOnIframeLoad: [{
280
+ type: Input
281
+ }], lazy: [{
282
+ type: Input
283
+ }], disabled: [{
284
+ type: Input
285
+ }] } });
286
+
287
+ /*
288
+ * Public API Surface of angular-adapter
289
+ */
290
+
291
+ /**
292
+ * Generated bundle index. Do not edit.
293
+ */
294
+
295
+ export { CSVBoxButtonComponent };
296
+ //# sourceMappingURL=sumit_yewale-angular2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sumit_yewale-angular2.mjs","sources":["../../../projects/angular-adapter/src/lib/utils/insertCSS.ts","../../../projects/angular-adapter/src/lib/angular-adapter.component.ts","../../../projects/angular-adapter/src/public-api.ts","../../../projects/angular-adapter/src/sumit_yewale-angular2.ts"],"sourcesContent":["let styleElement: HTMLStyleElement\n\nconst GLOBAL_CSS = `\n.csvbox-holder {\n z-index: 2147483647;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: none;\n}\n.csvbox-holder iframe {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n`\n\nexport const insertCSS = (): void => {\n if (styleElement) {\n return\n }\n\n styleElement = document.createElement('style')\n styleElement.setAttribute('type', 'text/css')\n const head = document.querySelector('head');\n if (head) {\n head.appendChild(styleElement);\n }\n\n styleElement.textContent = GLOBAL_CSS\n}\n","import {\n Component,\n OnInit,\n Input,\n OnChanges,\n SimpleChanges,\n SecurityContext,\n AfterContentInit\n} from '@angular/core';\n\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { insertCSS } from './utils/insertCSS';\nimport { buildImportUrl, generateUuid, buildInitPayload, classifyStructuredMessage } from '@sumit_yewale/adapter-core';\n\nconst appVersion = '1.1.16';\n\n@Component({\n selector: 'csvbox-button',\n standalone: true,\n template: `\n <div>\n <button [disabled]=\"disabled\" (click)=\"openModal()\" [attr.data-csvbox-token]=\"uuid\">\n <ng-content></ng-content>\n </button>\n </div>\n `\n})\n\nexport class CSVBoxButtonComponent implements OnInit, OnChanges, AfterContentInit {\n\n isModalShown = false;\n\n @Input() onImport?: (success: boolean, metadata?: any) => void;\n @Input() onReady?: () => void;\n @Input() onClose?: () => void;\n @Input() onSubmit?: (metadata: any) => void;\n\n @Input() isImported?: (success: boolean, metadata?: any) => void;\n @Input() isReady?: () => void;\n @Input() isClosed?: () => void;\n @Input() isSubmitted?: (metadata: any) => void;\n\n @Input() importerReady?: () => void;\n @Input() closed?: () => void;\n @Input() submitted?: () => void;\n @Input() imported?: (success: boolean, metadata?: any) => void;\n @Input() loadStarted?: () => void;\n\n @Input() user: { [key: string]: any } | null = null;\n @Input() dynamicColumns: { [key: string]: any } | null = null;\n @Input() licenseKey: string | null = null;\n @Input() options: { [key: string]: any } | null = null;\n @Input() uuid: string = '';\n @Input() customDomain: string | null = null;\n @Input() dataLocation: string | null = null;\n @Input() language: string | null = null;\n @Input() environment: { [key: string]: any } | null = null;\n\n @Input() theme: string | null = null;\n\n @Input() isIframeLoaded: boolean = false;\n @Input() openModalOnIframeLoad: boolean = false;\n\n @Input() lazy: boolean = false;\n\n safeUrl: SafeUrl | null = null;\n\n iframe: HTMLIFrameElement | null = null;\n\n @Input() disabled: boolean = true;\n\n constructor(public sanitizer: DomSanitizer) {}\n\n holder: HTMLDivElement | null = null;\n\n ngOnInit(): void {\n this.uuid = generateUuid();\n const iframeUrl = buildImportUrl(\n {\n licenseKey: this.licenseKey,\n customDomain: this.customDomain,\n dataLocation: this.dataLocation,\n language: this.language,\n theme: this.theme,\n environment: this.environment\n },\n \"angular\",\n appVersion\n );\n this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {\n this.updateUserVariable(changes['user'].currentValue);\n }\n }\n\n updateUserVariable(data: { [key: string]: any }): void {\n this.user = data;\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.postMessage({\n \"customer\": data\n }, \"*\");\n }\n }\n\n ngAfterContentInit(): void {\n window.addEventListener(\"message\", (event: MessageEvent) => {\n const message = classifyStructuredMessage(event.data, this.uuid);\n if (!message) {\n return;\n }\n\n if (message.type === \"data-on-submit\") {\n if (this.onSubmit) this.onSubmit(message.metadata);\n if (this.isSubmitted) this.isSubmitted(message.metadata);\n if (this.submitted) this.submitted();\n } else if (message.type === \"data-push-status\") {\n if (!message.success) {\n delete message.metadata[\"unique_token\"];\n }\n if (this.onImport) this.onImport(message.success, message.metadata);\n if (this.isImported) this.isImported(message.success, message.metadata);\n if (this.imported) this.imported(message.success, message.metadata);\n } else if (message.type === \"csvbox-modal-hidden\") {\n this.handleModalClosed();\n } else if (message.type === \"csvbox-upload-successful\") {\n if (this.onImport) this.onImport(true);\n if (this.isImported) this.isImported(true);\n if (this.imported) this.imported(true);\n } else if (message.type === \"csvbox-upload-failed\") {\n if (this.onImport) this.onImport(false);\n if (this.isImported) this.isImported(false);\n if (this.imported) this.imported(false);\n }\n }, false);\n\n if (this.lazy) {\n this.disabled = false;\n } else {\n this.disabled = true;\n this.initImporter();\n }\n }\n\n handleModalClosed(): void {\n if (this.holder) this.holder.style.display = 'none';\n this.isModalShown = false;\n this.isIframeLoaded = false;\n this.openModalOnIframeLoad = false;\n if (this.holder) this.holder.remove();\n this.holder = null;\n this.iframe = null;\n if (this.onClose) this.onClose();\n if (this.isClosed) this.isClosed();\n if (this.closed) this.closed();\n }\n\n initImporter(): void {\n if (this.loadStarted) this.loadStarted();\n\n this.uuid = generateUuid();\n\n insertCSS();\n\n const iframe = document.createElement(\"iframe\");\n this.iframe = iframe;\n iframe.setAttribute(\"src\", this.safeUrl?.toString() || '');\n iframe.frameBorder = \"0\";\n\n const self = this;\n iframe.onload = function () {\n if (self.onReady) self.onReady();\n if (self.isReady) self.isReady();\n if (self.importerReady) self.importerReady();\n\n self.disabled = false;\n self.isIframeLoaded = true;\n if (self.iframe && self.iframe.contentWindow) {\n self.iframe.contentWindow.postMessage(buildInitPayload(self.user, self.dynamicColumns, self.options, self.uuid), \"*\");\n }\n if (self.openModalOnIframeLoad) {\n self.openModal();\n }\n }\n\n this.holder = document.createElement('div');\n this.holder.classList.add('csvbox-holder');\n this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);\n this.holder.appendChild(iframe);\n\n document.body.insertAdjacentElement(\n 'beforeend', this.holder\n );\n }\n\n openModal(): void {\n if (!this.iframe) {\n this.openModalOnIframeLoad = true;\n this.initImporter();\n return;\n }\n if (!this.isModalShown) {\n if (this.isIframeLoaded) {\n this.isModalShown = true;\n if (this.holder) this.holder.style.display = 'block';\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.postMessage('openModal', '*');\n }\n } else {\n this.openModalOnIframeLoad = true;\n }\n }\n }\n}\n","/*\n * Public API Surface of angular-adapter\n */\n\n\nexport * from './lib/angular-adapter.component';\nexport * from './lib/interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import * as i0 from '@angular/core';
2
+ import { SecurityContext, Component, Input } from '@angular/core';
3
+ import { generateUuid, buildImportUrl, classifyStructuredMessage, buildInitPayload } from '@sumit_yewale/adapter-core';
4
+ import * as i1 from '@angular/platform-browser';
5
+
6
+ let styleElement;
7
+ const GLOBAL_CSS = `
8
+ .csvbox-holder {
9
+ z-index: 2147483647;
10
+ position: fixed;
11
+ top: 0;
12
+ bottom: 0;
13
+ left: 0;
14
+ right: 0;
15
+ display: none;
16
+ }
17
+ .csvbox-holder iframe {
18
+ height: 100%;
19
+ width: 100%;
20
+ position: absolute;
21
+ top: 0px;
22
+ left: 0px;
23
+ }
24
+ `;
25
+ const insertCSS = () => {
26
+ if (styleElement) {
27
+ return;
28
+ }
29
+ styleElement = document.createElement('style');
30
+ styleElement.setAttribute('type', 'text/css');
31
+ const head = document.querySelector('head');
32
+ if (head) {
33
+ head.appendChild(styleElement);
34
+ }
35
+ styleElement.textContent = GLOBAL_CSS;
36
+ };
37
+
38
+ const appVersion = '1.1.16';
39
+ class CSVBoxButtonComponent {
40
+ constructor(sanitizer) {
41
+ this.sanitizer = sanitizer;
42
+ this.isModalShown = false;
43
+ this.user = null;
44
+ this.dynamicColumns = null;
45
+ this.licenseKey = null;
46
+ this.options = null;
47
+ this.uuid = '';
48
+ this.customDomain = null;
49
+ this.dataLocation = null;
50
+ this.language = null;
51
+ this.environment = null;
52
+ this.theme = null;
53
+ this.isIframeLoaded = false;
54
+ this.openModalOnIframeLoad = false;
55
+ this.lazy = false;
56
+ this.safeUrl = null;
57
+ this.iframe = null;
58
+ this.disabled = true;
59
+ this.holder = null;
60
+ }
61
+ ngOnInit() {
62
+ this.uuid = generateUuid();
63
+ const iframeUrl = buildImportUrl({
64
+ licenseKey: this.licenseKey,
65
+ customDomain: this.customDomain,
66
+ dataLocation: this.dataLocation,
67
+ language: this.language,
68
+ theme: this.theme,
69
+ environment: this.environment
70
+ }, "angular", appVersion);
71
+ this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));
72
+ }
73
+ ngOnChanges(changes) {
74
+ if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {
75
+ this.updateUserVariable(changes['user'].currentValue);
76
+ }
77
+ }
78
+ updateUserVariable(data) {
79
+ this.user = data;
80
+ if (this.iframe && this.iframe.contentWindow) {
81
+ this.iframe.contentWindow.postMessage({
82
+ "customer": data
83
+ }, "*");
84
+ }
85
+ }
86
+ ngAfterContentInit() {
87
+ window.addEventListener("message", (event) => {
88
+ const message = classifyStructuredMessage(event.data, this.uuid);
89
+ if (!message) {
90
+ return;
91
+ }
92
+ if (message.type === "data-on-submit") {
93
+ if (this.onSubmit)
94
+ this.onSubmit(message.metadata);
95
+ if (this.isSubmitted)
96
+ this.isSubmitted(message.metadata);
97
+ if (this.submitted)
98
+ this.submitted();
99
+ }
100
+ else if (message.type === "data-push-status") {
101
+ if (!message.success) {
102
+ delete message.metadata["unique_token"];
103
+ }
104
+ if (this.onImport)
105
+ this.onImport(message.success, message.metadata);
106
+ if (this.isImported)
107
+ this.isImported(message.success, message.metadata);
108
+ if (this.imported)
109
+ this.imported(message.success, message.metadata);
110
+ }
111
+ else if (message.type === "csvbox-modal-hidden") {
112
+ this.handleModalClosed();
113
+ }
114
+ else if (message.type === "csvbox-upload-successful") {
115
+ if (this.onImport)
116
+ this.onImport(true);
117
+ if (this.isImported)
118
+ this.isImported(true);
119
+ if (this.imported)
120
+ this.imported(true);
121
+ }
122
+ else if (message.type === "csvbox-upload-failed") {
123
+ if (this.onImport)
124
+ this.onImport(false);
125
+ if (this.isImported)
126
+ this.isImported(false);
127
+ if (this.imported)
128
+ this.imported(false);
129
+ }
130
+ }, false);
131
+ if (this.lazy) {
132
+ this.disabled = false;
133
+ }
134
+ else {
135
+ this.disabled = true;
136
+ this.initImporter();
137
+ }
138
+ }
139
+ handleModalClosed() {
140
+ if (this.holder)
141
+ this.holder.style.display = 'none';
142
+ this.isModalShown = false;
143
+ this.isIframeLoaded = false;
144
+ this.openModalOnIframeLoad = false;
145
+ if (this.holder)
146
+ this.holder.remove();
147
+ this.holder = null;
148
+ this.iframe = null;
149
+ if (this.onClose)
150
+ this.onClose();
151
+ if (this.isClosed)
152
+ this.isClosed();
153
+ if (this.closed)
154
+ this.closed();
155
+ }
156
+ initImporter() {
157
+ if (this.loadStarted)
158
+ this.loadStarted();
159
+ this.uuid = generateUuid();
160
+ insertCSS();
161
+ const iframe = document.createElement("iframe");
162
+ this.iframe = iframe;
163
+ iframe.setAttribute("src", this.safeUrl?.toString() || '');
164
+ iframe.frameBorder = "0";
165
+ const self = this;
166
+ iframe.onload = function () {
167
+ if (self.onReady)
168
+ self.onReady();
169
+ if (self.isReady)
170
+ self.isReady();
171
+ if (self.importerReady)
172
+ self.importerReady();
173
+ self.disabled = false;
174
+ self.isIframeLoaded = true;
175
+ if (self.iframe && self.iframe.contentWindow) {
176
+ self.iframe.contentWindow.postMessage(buildInitPayload(self.user, self.dynamicColumns, self.options, self.uuid), "*");
177
+ }
178
+ if (self.openModalOnIframeLoad) {
179
+ self.openModal();
180
+ }
181
+ };
182
+ this.holder = document.createElement('div');
183
+ this.holder.classList.add('csvbox-holder');
184
+ this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);
185
+ this.holder.appendChild(iframe);
186
+ document.body.insertAdjacentElement('beforeend', this.holder);
187
+ }
188
+ openModal() {
189
+ if (!this.iframe) {
190
+ this.openModalOnIframeLoad = true;
191
+ this.initImporter();
192
+ return;
193
+ }
194
+ if (!this.isModalShown) {
195
+ if (this.isIframeLoaded) {
196
+ this.isModalShown = true;
197
+ if (this.holder)
198
+ this.holder.style.display = 'block';
199
+ if (this.iframe && this.iframe.contentWindow) {
200
+ this.iframe.contentWindow.postMessage('openModal', '*');
201
+ }
202
+ }
203
+ else {
204
+ this.openModalOnIframeLoad = true;
205
+ }
206
+ }
207
+ }
208
+ }
209
+ CSVBoxButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
210
+ CSVBoxButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CSVBoxButtonComponent, isStandalone: true, selector: "csvbox-button", inputs: { onImport: "onImport", onReady: "onReady", onClose: "onClose", onSubmit: "onSubmit", isImported: "isImported", isReady: "isReady", isClosed: "isClosed", isSubmitted: "isSubmitted", importerReady: "importerReady", closed: "closed", submitted: "submitted", imported: "imported", loadStarted: "loadStarted", user: "user", dynamicColumns: "dynamicColumns", licenseKey: "licenseKey", options: "options", uuid: "uuid", customDomain: "customDomain", dataLocation: "dataLocation", language: "language", environment: "environment", theme: "theme", isIframeLoaded: "isIframeLoaded", openModalOnIframeLoad: "openModalOnIframeLoad", lazy: "lazy", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: `
211
+ <div>
212
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
213
+ <ng-content></ng-content>
214
+ </button>
215
+ </div>
216
+ `, isInline: true });
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CSVBoxButtonComponent, decorators: [{
218
+ type: Component,
219
+ args: [{
220
+ selector: 'csvbox-button',
221
+ standalone: true,
222
+ template: `
223
+ <div>
224
+ <button [disabled]="disabled" (click)="openModal()" [attr.data-csvbox-token]="uuid">
225
+ <ng-content></ng-content>
226
+ </button>
227
+ </div>
228
+ `
229
+ }]
230
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { onImport: [{
231
+ type: Input
232
+ }], onReady: [{
233
+ type: Input
234
+ }], onClose: [{
235
+ type: Input
236
+ }], onSubmit: [{
237
+ type: Input
238
+ }], isImported: [{
239
+ type: Input
240
+ }], isReady: [{
241
+ type: Input
242
+ }], isClosed: [{
243
+ type: Input
244
+ }], isSubmitted: [{
245
+ type: Input
246
+ }], importerReady: [{
247
+ type: Input
248
+ }], closed: [{
249
+ type: Input
250
+ }], submitted: [{
251
+ type: Input
252
+ }], imported: [{
253
+ type: Input
254
+ }], loadStarted: [{
255
+ type: Input
256
+ }], user: [{
257
+ type: Input
258
+ }], dynamicColumns: [{
259
+ type: Input
260
+ }], licenseKey: [{
261
+ type: Input
262
+ }], options: [{
263
+ type: Input
264
+ }], uuid: [{
265
+ type: Input
266
+ }], customDomain: [{
267
+ type: Input
268
+ }], dataLocation: [{
269
+ type: Input
270
+ }], language: [{
271
+ type: Input
272
+ }], environment: [{
273
+ type: Input
274
+ }], theme: [{
275
+ type: Input
276
+ }], isIframeLoaded: [{
277
+ type: Input
278
+ }], openModalOnIframeLoad: [{
279
+ type: Input
280
+ }], lazy: [{
281
+ type: Input
282
+ }], disabled: [{
283
+ type: Input
284
+ }] } });
285
+
286
+ /*
287
+ * Public API Surface of angular-adapter
288
+ */
289
+
290
+ /**
291
+ * Generated bundle index. Do not edit.
292
+ */
293
+
294
+ export { CSVBoxButtonComponent };
295
+ //# sourceMappingURL=sumit_yewale-angular2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sumit_yewale-angular2.mjs","sources":["../../../projects/angular-adapter/src/lib/utils/insertCSS.ts","../../../projects/angular-adapter/src/lib/angular-adapter.component.ts","../../../projects/angular-adapter/src/public-api.ts","../../../projects/angular-adapter/src/sumit_yewale-angular2.ts"],"sourcesContent":["let styleElement: HTMLStyleElement\n\nconst GLOBAL_CSS = `\n.csvbox-holder {\n z-index: 2147483647;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: none;\n}\n.csvbox-holder iframe {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0px;\n left: 0px;\n}\n`\n\nexport const insertCSS = (): void => {\n if (styleElement) {\n return\n }\n\n styleElement = document.createElement('style')\n styleElement.setAttribute('type', 'text/css')\n const head = document.querySelector('head');\n if (head) {\n head.appendChild(styleElement);\n }\n\n styleElement.textContent = GLOBAL_CSS\n}\n","import {\n Component,\n OnInit,\n Input,\n OnChanges,\n SimpleChanges,\n SecurityContext,\n AfterContentInit\n} from '@angular/core';\n\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { insertCSS } from './utils/insertCSS';\nimport { buildImportUrl, generateUuid, buildInitPayload, classifyStructuredMessage } from '@sumit_yewale/adapter-core';\n\nconst appVersion = '1.1.16';\n\n@Component({\n selector: 'csvbox-button',\n standalone: true,\n template: `\n <div>\n <button [disabled]=\"disabled\" (click)=\"openModal()\" [attr.data-csvbox-token]=\"uuid\">\n <ng-content></ng-content>\n </button>\n </div>\n `\n})\n\nexport class CSVBoxButtonComponent implements OnInit, OnChanges, AfterContentInit {\n\n isModalShown = false;\n\n @Input() onImport?: (success: boolean, metadata?: any) => void;\n @Input() onReady?: () => void;\n @Input() onClose?: () => void;\n @Input() onSubmit?: (metadata: any) => void;\n\n @Input() isImported?: (success: boolean, metadata?: any) => void;\n @Input() isReady?: () => void;\n @Input() isClosed?: () => void;\n @Input() isSubmitted?: (metadata: any) => void;\n\n @Input() importerReady?: () => void;\n @Input() closed?: () => void;\n @Input() submitted?: () => void;\n @Input() imported?: (success: boolean, metadata?: any) => void;\n @Input() loadStarted?: () => void;\n\n @Input() user: { [key: string]: any } | null = null;\n @Input() dynamicColumns: { [key: string]: any } | null = null;\n @Input() licenseKey: string | null = null;\n @Input() options: { [key: string]: any } | null = null;\n @Input() uuid: string = '';\n @Input() customDomain: string | null = null;\n @Input() dataLocation: string | null = null;\n @Input() language: string | null = null;\n @Input() environment: { [key: string]: any } | null = null;\n\n @Input() theme: string | null = null;\n\n @Input() isIframeLoaded: boolean = false;\n @Input() openModalOnIframeLoad: boolean = false;\n\n @Input() lazy: boolean = false;\n\n safeUrl: SafeUrl | null = null;\n\n iframe: HTMLIFrameElement | null = null;\n\n @Input() disabled: boolean = true;\n\n constructor(public sanitizer: DomSanitizer) {}\n\n holder: HTMLDivElement | null = null;\n\n ngOnInit(): void {\n this.uuid = generateUuid();\n const iframeUrl = buildImportUrl(\n {\n licenseKey: this.licenseKey,\n customDomain: this.customDomain,\n dataLocation: this.dataLocation,\n language: this.language,\n theme: this.theme,\n environment: this.environment\n },\n \"angular\",\n appVersion\n );\n this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {\n this.updateUserVariable(changes['user'].currentValue);\n }\n }\n\n updateUserVariable(data: { [key: string]: any }): void {\n this.user = data;\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.postMessage({\n \"customer\": data\n }, \"*\");\n }\n }\n\n ngAfterContentInit(): void {\n window.addEventListener(\"message\", (event: MessageEvent) => {\n const message = classifyStructuredMessage(event.data, this.uuid);\n if (!message) {\n return;\n }\n\n if (message.type === \"data-on-submit\") {\n if (this.onSubmit) this.onSubmit(message.metadata);\n if (this.isSubmitted) this.isSubmitted(message.metadata);\n if (this.submitted) this.submitted();\n } else if (message.type === \"data-push-status\") {\n if (!message.success) {\n delete message.metadata[\"unique_token\"];\n }\n if (this.onImport) this.onImport(message.success, message.metadata);\n if (this.isImported) this.isImported(message.success, message.metadata);\n if (this.imported) this.imported(message.success, message.metadata);\n } else if (message.type === \"csvbox-modal-hidden\") {\n this.handleModalClosed();\n } else if (message.type === \"csvbox-upload-successful\") {\n if (this.onImport) this.onImport(true);\n if (this.isImported) this.isImported(true);\n if (this.imported) this.imported(true);\n } else if (message.type === \"csvbox-upload-failed\") {\n if (this.onImport) this.onImport(false);\n if (this.isImported) this.isImported(false);\n if (this.imported) this.imported(false);\n }\n }, false);\n\n if (this.lazy) {\n this.disabled = false;\n } else {\n this.disabled = true;\n this.initImporter();\n }\n }\n\n handleModalClosed(): void {\n if (this.holder) this.holder.style.display = 'none';\n this.isModalShown = false;\n this.isIframeLoaded = false;\n this.openModalOnIframeLoad = false;\n if (this.holder) this.holder.remove();\n this.holder = null;\n this.iframe = null;\n if (this.onClose) this.onClose();\n if (this.isClosed) this.isClosed();\n if (this.closed) this.closed();\n }\n\n initImporter(): void {\n if (this.loadStarted) this.loadStarted();\n\n this.uuid = generateUuid();\n\n insertCSS();\n\n const iframe = document.createElement(\"iframe\");\n this.iframe = iframe;\n iframe.setAttribute(\"src\", this.safeUrl?.toString() || '');\n iframe.frameBorder = \"0\";\n\n const self = this;\n iframe.onload = function () {\n if (self.onReady) self.onReady();\n if (self.isReady) self.isReady();\n if (self.importerReady) self.importerReady();\n\n self.disabled = false;\n self.isIframeLoaded = true;\n if (self.iframe && self.iframe.contentWindow) {\n self.iframe.contentWindow.postMessage(buildInitPayload(self.user, self.dynamicColumns, self.options, self.uuid), \"*\");\n }\n if (self.openModalOnIframeLoad) {\n self.openModal();\n }\n }\n\n this.holder = document.createElement('div');\n this.holder.classList.add('csvbox-holder');\n this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);\n this.holder.appendChild(iframe);\n\n document.body.insertAdjacentElement(\n 'beforeend', this.holder\n );\n }\n\n openModal(): void {\n if (!this.iframe) {\n this.openModalOnIframeLoad = true;\n this.initImporter();\n return;\n }\n if (!this.isModalShown) {\n if (this.isIframeLoaded) {\n this.isModalShown = true;\n if (this.holder) this.holder.style.display = 'block';\n if (this.iframe && this.iframe.contentWindow) {\n this.iframe.contentWindow.postMessage('openModal', '*');\n }\n } else {\n this.openModalOnIframeLoad = true;\n }\n }\n }\n}\n","/*\n * Public API Surface of angular-adapter\n */\n\n\nexport * from './lib/angular-adapter.component';\nexport * from './lib/interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@sumit_yewale/angular2" />
5
+ export * from './public-api';
@@ -0,0 +1,57 @@
1
+ import { OnInit, OnChanges, SimpleChanges, AfterContentInit } from '@angular/core';
2
+ import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CSVBoxButtonComponent implements OnInit, OnChanges, AfterContentInit {
5
+ sanitizer: DomSanitizer;
6
+ isModalShown: boolean;
7
+ onImport?: (success: boolean, metadata?: any) => void;
8
+ onReady?: () => void;
9
+ onClose?: () => void;
10
+ onSubmit?: (metadata: any) => void;
11
+ isImported?: (success: boolean, metadata?: any) => void;
12
+ isReady?: () => void;
13
+ isClosed?: () => void;
14
+ isSubmitted?: (metadata: any) => void;
15
+ importerReady?: () => void;
16
+ closed?: () => void;
17
+ submitted?: () => void;
18
+ imported?: (success: boolean, metadata?: any) => void;
19
+ loadStarted?: () => void;
20
+ user: {
21
+ [key: string]: any;
22
+ } | null;
23
+ dynamicColumns: {
24
+ [key: string]: any;
25
+ } | null;
26
+ licenseKey: string | null;
27
+ options: {
28
+ [key: string]: any;
29
+ } | null;
30
+ uuid: string;
31
+ customDomain: string | null;
32
+ dataLocation: string | null;
33
+ language: string | null;
34
+ environment: {
35
+ [key: string]: any;
36
+ } | null;
37
+ theme: string | null;
38
+ isIframeLoaded: boolean;
39
+ openModalOnIframeLoad: boolean;
40
+ lazy: boolean;
41
+ safeUrl: SafeUrl | null;
42
+ iframe: HTMLIFrameElement | null;
43
+ disabled: boolean;
44
+ constructor(sanitizer: DomSanitizer);
45
+ holder: HTMLDivElement | null;
46
+ ngOnInit(): void;
47
+ ngOnChanges(changes: SimpleChanges): void;
48
+ updateUserVariable(data: {
49
+ [key: string]: any;
50
+ }): void;
51
+ ngAfterContentInit(): void;
52
+ handleModalClosed(): void;
53
+ initImporter(): void;
54
+ openModal(): void;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<CSVBoxButtonComponent, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<CSVBoxButtonComponent, "csvbox-button", never, { "onImport": "onImport"; "onReady": "onReady"; "onClose": "onClose"; "onSubmit": "onSubmit"; "isImported": "isImported"; "isReady": "isReady"; "isClosed": "isClosed"; "isSubmitted": "isSubmitted"; "importerReady": "importerReady"; "closed": "closed"; "submitted": "submitted"; "imported": "imported"; "loadStarted": "loadStarted"; "user": "user"; "dynamicColumns": "dynamicColumns"; "licenseKey": "licenseKey"; "options": "options"; "uuid": "uuid"; "customDomain": "customDomain"; "dataLocation": "dataLocation"; "language": "language"; "environment": "environment"; "theme": "theme"; "isIframeLoaded": "isIframeLoaded"; "openModalOnIframeLoad": "openModalOnIframeLoad"; "lazy": "lazy"; "disabled": "disabled"; }, {}, never, ["*"], true>;
57
+ }
@@ -0,0 +1,3 @@
1
+ export interface CSVBoxMethods {
2
+ onData?: (result: boolean, data: any) => void;
3
+ }
@@ -0,0 +1 @@
1
+ export declare const insertCSS: () => void;
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@sumit_yewale/angular2",
3
+ "version": "1.0.4",
4
+ "description": "Standalone Angular component for csvbox.io supporting Angular version 14 till 20",
5
+ "author": "csvbox-io",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/csvbox-io/angular-adapter-2.git"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "peerDependencies": {
15
+ "@angular/core": ">=14.0.0 <21.0.0",
16
+ "@angular/common": ">=14.0.0 <21.0.0"
17
+ },
18
+ "dependencies": {
19
+ "tslib": "^2.3.0",
20
+ "@sumit_yewale/adapter-core": "^0.0.1"
21
+ },
22
+ "keywords": [
23
+ "csv",
24
+ "importer",
25
+ "uploader",
26
+ "csvbox",
27
+ "parser",
28
+ "csv-parse",
29
+ "excel",
30
+ "xls",
31
+ "csv import",
32
+ "csv upload",
33
+ "spreadsheet import",
34
+ "angular csv",
35
+ "csv parse",
36
+ "csv to json"
37
+ ],
38
+ "bugs": {
39
+ "url": "https://github.com/csvbox-io/angular-adapter-2/issues"
40
+ },
41
+ "homepage": "https://github.com/csvbox-io/angular-adapter-2#readme",
42
+ "module": "fesm2015/sumit_yewale-angular2.mjs",
43
+ "es2020": "fesm2020/sumit_yewale-angular2.mjs",
44
+ "esm2020": "esm2020/sumit_yewale-angular2.mjs",
45
+ "fesm2020": "fesm2020/sumit_yewale-angular2.mjs",
46
+ "fesm2015": "fesm2015/sumit_yewale-angular2.mjs",
47
+ "typings": "index.d.ts",
48
+ "exports": {
49
+ "./package.json": {
50
+ "default": "./package.json"
51
+ },
52
+ ".": {
53
+ "types": "./index.d.ts",
54
+ "esm2020": "./esm2020/sumit_yewale-angular2.mjs",
55
+ "es2020": "./fesm2020/sumit_yewale-angular2.mjs",
56
+ "es2015": "./fesm2015/sumit_yewale-angular2.mjs",
57
+ "node": "./fesm2015/sumit_yewale-angular2.mjs",
58
+ "default": "./fesm2020/sumit_yewale-angular2.mjs"
59
+ }
60
+ },
61
+ "sideEffects": false
62
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/angular-adapter.component';
2
+ export * from './lib/interface';