@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 +93 -0
- package/esm2020/lib/angular-adapter.component.mjs +253 -0
- package/esm2020/lib/interface.mjs +2 -0
- package/esm2020/lib/utils/insertCSS.mjs +32 -0
- package/esm2020/public-api.mjs +6 -0
- package/esm2020/sumit_yewale-angular2.mjs +5 -0
- package/fesm2015/sumit_yewale-angular2.mjs +296 -0
- package/fesm2015/sumit_yewale-angular2.mjs.map +1 -0
- package/fesm2020/sumit_yewale-angular2.mjs +295 -0
- package/fesm2020/sumit_yewale-angular2.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/angular-adapter.component.d.ts +57 -0
- package/lib/interface.d.ts +3 -0
- package/lib/utils/insertCSS.d.ts +1 -0
- package/package.json +62 -0
- package/public-api.d.ts +2 -0
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
|
+
[](https://www.npmjs.com/package/@csvbox/angular2) [](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,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 @@
|
|
|
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
|
+
}
|
package/public-api.d.ts
ADDED