@sumit_yewale/angular 1.1.18
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/bundles/sumit_yewale-angular.umd.js +415 -0
- package/bundles/sumit_yewale-angular.umd.js.map +1 -0
- package/bundles/sumit_yewale-angular.umd.min.js +2 -0
- package/bundles/sumit_yewale-angular.umd.min.js.map +1 -0
- package/esm2015/lib/csvbox-angular.module.js +21 -0
- package/esm2015/lib/csvbox-button.component.js +327 -0
- package/esm2015/lib/interfaces/interface.js +14 -0
- package/esm2015/public-api.js +13 -0
- package/esm2015/sumit_yewale-angular.js +10 -0
- package/esm2015/utlis/insertCSS.js +44 -0
- package/esm5/lib/csvbox-angular.module.js +25 -0
- package/esm5/lib/csvbox-button.component.js +344 -0
- package/esm5/lib/interfaces/interface.js +14 -0
- package/esm5/public-api.js +13 -0
- package/esm5/sumit_yewale-angular.js +10 -0
- package/esm5/utlis/insertCSS.js +27 -0
- package/fesm2015/sumit_yewale-angular.js +418 -0
- package/fesm2015/sumit_yewale-angular.js.map +1 -0
- package/fesm5/sumit_yewale-angular.js +420 -0
- package/fesm5/sumit_yewale-angular.js.map +1 -0
- package/lib/csvbox-angular.module.d.ts +2 -0
- package/lib/csvbox-button.component.d.ts +45 -0
- package/lib/interfaces/interface.d.ts +3 -0
- package/package.json +55 -0
- package/public-api.d.ts +3 -0
- package/sumit_yewale-angular.d.ts +4 -0
- package/sumit_yewale-angular.metadata.json +1 -0
- package/utlis/insertCSS.d.ts +1 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/csvbox-button.component.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
import { Component, ViewChild, Input, SecurityContext } from '@angular/core';
|
|
7
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
8
|
+
import { insertCSS } from '../utlis/insertCSS';
|
|
9
|
+
import { buildImportUrl, generateUuid, buildInitPayload, classifyStructuredMessage } from '@sumit_yewale/adapter-core';
|
|
10
|
+
/** @type {?} */
|
|
11
|
+
const appVersion = '1.1.16';
|
|
12
|
+
export class CSVBoxButtonComponent {
|
|
13
|
+
/**
|
|
14
|
+
* @param {?} sanitizer
|
|
15
|
+
*/
|
|
16
|
+
constructor(sanitizer) {
|
|
17
|
+
this.sanitizer = sanitizer;
|
|
18
|
+
this.isModalShown = false;
|
|
19
|
+
this.licenseKey = null;
|
|
20
|
+
this.uuid = null;
|
|
21
|
+
this.customDomain = null;
|
|
22
|
+
this.dataLocation = null;
|
|
23
|
+
this.language = null;
|
|
24
|
+
this.theme = null;
|
|
25
|
+
this.isIframeLoaded = false;
|
|
26
|
+
this.openModalOnIframeLoad = false;
|
|
27
|
+
this.lazy = false;
|
|
28
|
+
this.iframe = null;
|
|
29
|
+
this.disabled = true;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.uuid = generateUuid();
|
|
36
|
+
/** @type {?} */
|
|
37
|
+
let iframeUrl = buildImportUrl({
|
|
38
|
+
licenseKey: this.licenseKey,
|
|
39
|
+
customDomain: this.customDomain,
|
|
40
|
+
dataLocation: this.dataLocation,
|
|
41
|
+
language: this.language,
|
|
42
|
+
theme: this.theme,
|
|
43
|
+
environment: this.environment
|
|
44
|
+
}, "angular", appVersion);
|
|
45
|
+
this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @param {?} changes
|
|
49
|
+
* @return {?}
|
|
50
|
+
*/
|
|
51
|
+
ngOnChanges(changes) {
|
|
52
|
+
if (changes["user"] && changes['user'].currentValue != changes['user'].previousValue) {
|
|
53
|
+
this.updateUserVariabe(changes['user'].currentValue);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @param {?} data
|
|
58
|
+
* @return {?}
|
|
59
|
+
*/
|
|
60
|
+
updateUserVariabe(data) {
|
|
61
|
+
this.user = data;
|
|
62
|
+
if (this.iframe && this.iframe.contentWindow) {
|
|
63
|
+
this.iframe.contentWindow.postMessage({
|
|
64
|
+
"customer": data
|
|
65
|
+
}, "*");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @return {?}
|
|
70
|
+
*/
|
|
71
|
+
ngAfterContentInit() {
|
|
72
|
+
window.addEventListener("message", (/**
|
|
73
|
+
* @param {?} event
|
|
74
|
+
* @return {?}
|
|
75
|
+
*/
|
|
76
|
+
(event) => {
|
|
77
|
+
/** @type {?} */
|
|
78
|
+
let message = classifyStructuredMessage(event.data, (/** @type {?} */ (this.uuid)));
|
|
79
|
+
if (!message) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (message.type === "data-on-submit") {
|
|
83
|
+
if (this.onSubmit)
|
|
84
|
+
this.onSubmit(message.metadata);
|
|
85
|
+
if (this.isSubmitted)
|
|
86
|
+
this.isSubmitted(message.metadata);
|
|
87
|
+
if (this.submitted)
|
|
88
|
+
this.submitted(message.metadata);
|
|
89
|
+
}
|
|
90
|
+
else if (message.type === "data-push-status") {
|
|
91
|
+
if (!message.success) {
|
|
92
|
+
delete message.metadata["unique_token"];
|
|
93
|
+
}
|
|
94
|
+
if (this.onImport)
|
|
95
|
+
this.onImport(message.success, message.metadata);
|
|
96
|
+
if (this.isImported)
|
|
97
|
+
this.isImported(message.success, message.metadata);
|
|
98
|
+
if (this.imported)
|
|
99
|
+
this.imported(message.success, message.metadata);
|
|
100
|
+
}
|
|
101
|
+
else if (message.type === "csvbox-modal-hidden") {
|
|
102
|
+
this.handleModalClosed();
|
|
103
|
+
}
|
|
104
|
+
else if (message.type === "csvbox-upload-successful") {
|
|
105
|
+
if (this.onImport)
|
|
106
|
+
this.onImport(true);
|
|
107
|
+
if (this.isImported)
|
|
108
|
+
this.isImported(true);
|
|
109
|
+
if (this.imported)
|
|
110
|
+
this.imported(true);
|
|
111
|
+
}
|
|
112
|
+
else if (message.type === "csvbox-upload-failed") {
|
|
113
|
+
if (this.onImport)
|
|
114
|
+
this.onImport(false);
|
|
115
|
+
if (this.isImported)
|
|
116
|
+
this.isImported(false);
|
|
117
|
+
if (this.imported)
|
|
118
|
+
this.imported(false);
|
|
119
|
+
}
|
|
120
|
+
}), false);
|
|
121
|
+
if (this.lazy) {
|
|
122
|
+
this.disabled = false;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.disabled = true;
|
|
126
|
+
this.initImporter();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* @return {?}
|
|
131
|
+
*/
|
|
132
|
+
handleModalClosed() {
|
|
133
|
+
if (this.holder)
|
|
134
|
+
this.holder.style.display = 'none';
|
|
135
|
+
this.isModalShown = false;
|
|
136
|
+
this.isIframeLoaded = false;
|
|
137
|
+
this.openModalOnIframeLoad = false;
|
|
138
|
+
if (this.holder)
|
|
139
|
+
this.holder.remove();
|
|
140
|
+
this.holder = null;
|
|
141
|
+
this.iframe = null;
|
|
142
|
+
if (this.onClose)
|
|
143
|
+
this.onClose();
|
|
144
|
+
if (this.isClosed)
|
|
145
|
+
this.isClosed();
|
|
146
|
+
if (this.closed)
|
|
147
|
+
this.closed();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
initImporter() {
|
|
153
|
+
if (this.loadStarted)
|
|
154
|
+
this.loadStarted();
|
|
155
|
+
this.uuid = generateUuid();
|
|
156
|
+
insertCSS();
|
|
157
|
+
/** @type {?} */
|
|
158
|
+
let iframe = document.createElement("iframe");
|
|
159
|
+
this.iframe = iframe;
|
|
160
|
+
iframe.setAttribute("src", this.safeUrl);
|
|
161
|
+
iframe.frameBorder = "0";
|
|
162
|
+
/** @type {?} */
|
|
163
|
+
let self = this;
|
|
164
|
+
iframe.onload = (/**
|
|
165
|
+
* @return {?}
|
|
166
|
+
*/
|
|
167
|
+
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, (/** @type {?} */ (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
|
+
/**
|
|
190
|
+
* @return {?}
|
|
191
|
+
*/
|
|
192
|
+
openModal() {
|
|
193
|
+
if (!this.iframe) {
|
|
194
|
+
this.openModalOnIframeLoad = true;
|
|
195
|
+
this.initImporter();
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (!this.isModalShown) {
|
|
199
|
+
if (this.isIframeLoaded) {
|
|
200
|
+
this.isModalShown = true;
|
|
201
|
+
if (this.holder)
|
|
202
|
+
this.holder.style.display = 'block';
|
|
203
|
+
if (this.iframe && this.iframe.contentWindow) {
|
|
204
|
+
this.iframe.contentWindow.postMessage('openModal', '*');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
this.openModalOnIframeLoad = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
CSVBoxButtonComponent.decorators = [
|
|
214
|
+
{ type: Component, args: [{
|
|
215
|
+
selector: 'csvbox-button',
|
|
216
|
+
template: `
|
|
217
|
+
<div>
|
|
218
|
+
<button [disabled]="disabled" #initiator (click)="openModal()" [attr.data-csvbox-token]="uuid">
|
|
219
|
+
<ng-content></ng-content>
|
|
220
|
+
</button>
|
|
221
|
+
</div>
|
|
222
|
+
`
|
|
223
|
+
}] }
|
|
224
|
+
];
|
|
225
|
+
/** @nocollapse */
|
|
226
|
+
CSVBoxButtonComponent.ctorParameters = () => [
|
|
227
|
+
{ type: DomSanitizer }
|
|
228
|
+
];
|
|
229
|
+
CSVBoxButtonComponent.propDecorators = {
|
|
230
|
+
initiator: [{ type: ViewChild, args: ['initiator', { static: false },] }],
|
|
231
|
+
onImport: [{ type: Input }],
|
|
232
|
+
onReady: [{ type: Input }],
|
|
233
|
+
onClose: [{ type: Input }],
|
|
234
|
+
onSubmit: [{ type: Input }],
|
|
235
|
+
isImported: [{ type: Input }],
|
|
236
|
+
isReady: [{ type: Input }],
|
|
237
|
+
isClosed: [{ type: Input }],
|
|
238
|
+
isSubmitted: [{ type: Input }],
|
|
239
|
+
importerReady: [{ type: Input }],
|
|
240
|
+
closed: [{ type: Input }],
|
|
241
|
+
submitted: [{ type: Input }],
|
|
242
|
+
imported: [{ type: Input }],
|
|
243
|
+
loadStarted: [{ type: Input }],
|
|
244
|
+
user: [{ type: Input }],
|
|
245
|
+
dynamicColumns: [{ type: Input }],
|
|
246
|
+
licenseKey: [{ type: Input }],
|
|
247
|
+
options: [{ type: Input }],
|
|
248
|
+
uuid: [{ type: Input }],
|
|
249
|
+
customDomain: [{ type: Input }],
|
|
250
|
+
dataLocation: [{ type: Input }],
|
|
251
|
+
language: [{ type: Input }],
|
|
252
|
+
environment: [{ type: Input }],
|
|
253
|
+
theme: [{ type: Input }],
|
|
254
|
+
isIframeLoaded: [{ type: Input }],
|
|
255
|
+
openModalOnIframeLoad: [{ type: Input }],
|
|
256
|
+
lazy: [{ type: Input }],
|
|
257
|
+
disabled: [{ type: Input }]
|
|
258
|
+
};
|
|
259
|
+
if (false) {
|
|
260
|
+
/** @type {?} */
|
|
261
|
+
CSVBoxButtonComponent.prototype.isModalShown;
|
|
262
|
+
/** @type {?} */
|
|
263
|
+
CSVBoxButtonComponent.prototype.initiator;
|
|
264
|
+
/** @type {?} */
|
|
265
|
+
CSVBoxButtonComponent.prototype.onImport;
|
|
266
|
+
/** @type {?} */
|
|
267
|
+
CSVBoxButtonComponent.prototype.onReady;
|
|
268
|
+
/** @type {?} */
|
|
269
|
+
CSVBoxButtonComponent.prototype.onClose;
|
|
270
|
+
/** @type {?} */
|
|
271
|
+
CSVBoxButtonComponent.prototype.onSubmit;
|
|
272
|
+
/** @type {?} */
|
|
273
|
+
CSVBoxButtonComponent.prototype.isImported;
|
|
274
|
+
/** @type {?} */
|
|
275
|
+
CSVBoxButtonComponent.prototype.isReady;
|
|
276
|
+
/** @type {?} */
|
|
277
|
+
CSVBoxButtonComponent.prototype.isClosed;
|
|
278
|
+
/** @type {?} */
|
|
279
|
+
CSVBoxButtonComponent.prototype.isSubmitted;
|
|
280
|
+
/** @type {?} */
|
|
281
|
+
CSVBoxButtonComponent.prototype.importerReady;
|
|
282
|
+
/** @type {?} */
|
|
283
|
+
CSVBoxButtonComponent.prototype.closed;
|
|
284
|
+
/** @type {?} */
|
|
285
|
+
CSVBoxButtonComponent.prototype.submitted;
|
|
286
|
+
/** @type {?} */
|
|
287
|
+
CSVBoxButtonComponent.prototype.imported;
|
|
288
|
+
/** @type {?} */
|
|
289
|
+
CSVBoxButtonComponent.prototype.loadStarted;
|
|
290
|
+
/** @type {?} */
|
|
291
|
+
CSVBoxButtonComponent.prototype.user;
|
|
292
|
+
/** @type {?} */
|
|
293
|
+
CSVBoxButtonComponent.prototype.dynamicColumns;
|
|
294
|
+
/** @type {?} */
|
|
295
|
+
CSVBoxButtonComponent.prototype.licenseKey;
|
|
296
|
+
/** @type {?} */
|
|
297
|
+
CSVBoxButtonComponent.prototype.options;
|
|
298
|
+
/** @type {?} */
|
|
299
|
+
CSVBoxButtonComponent.prototype.uuid;
|
|
300
|
+
/** @type {?} */
|
|
301
|
+
CSVBoxButtonComponent.prototype.customDomain;
|
|
302
|
+
/** @type {?} */
|
|
303
|
+
CSVBoxButtonComponent.prototype.dataLocation;
|
|
304
|
+
/** @type {?} */
|
|
305
|
+
CSVBoxButtonComponent.prototype.language;
|
|
306
|
+
/** @type {?} */
|
|
307
|
+
CSVBoxButtonComponent.prototype.environment;
|
|
308
|
+
/** @type {?} */
|
|
309
|
+
CSVBoxButtonComponent.prototype.theme;
|
|
310
|
+
/** @type {?} */
|
|
311
|
+
CSVBoxButtonComponent.prototype.isIframeLoaded;
|
|
312
|
+
/** @type {?} */
|
|
313
|
+
CSVBoxButtonComponent.prototype.openModalOnIframeLoad;
|
|
314
|
+
/** @type {?} */
|
|
315
|
+
CSVBoxButtonComponent.prototype.lazy;
|
|
316
|
+
/** @type {?} */
|
|
317
|
+
CSVBoxButtonComponent.prototype.safeUrl;
|
|
318
|
+
/** @type {?} */
|
|
319
|
+
CSVBoxButtonComponent.prototype.iframe;
|
|
320
|
+
/** @type {?} */
|
|
321
|
+
CSVBoxButtonComponent.prototype.disabled;
|
|
322
|
+
/** @type {?} */
|
|
323
|
+
CSVBoxButtonComponent.prototype.holder;
|
|
324
|
+
/** @type {?} */
|
|
325
|
+
CSVBoxButtonComponent.prototype.sanitizer;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2Ym94LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VtaXRfeWV3YWxlL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvY3N2Ym94LWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBR0wsZUFBZSxFQUVoQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O01BRWpILFVBQVUsR0FBRyxRQUFRO0FBYTNCLE1BQU0sT0FBTyxxQkFBcUI7Ozs7SUE0Q2hDLFlBQW1CLFNBQXNCO1FBQXRCLGNBQVMsR0FBVCxTQUFTLENBQWE7UUExQ3pDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBcUJaLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWpDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbkMsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFHL0IsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFFNUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBRXZDLFNBQUksR0FBWSxLQUFLLENBQUM7UUFJL0IsV0FBTSxHQUE2QixJQUFJLENBQUM7UUFFL0IsYUFBUSxHQUFZLElBQUksQ0FBQztJQUVVLENBQUM7Ozs7SUFJN0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxFQUFFLENBQUM7O1lBQ3ZCLFNBQVMsR0FBRyxj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SUFFaEMsOENBQWtDOztJQUNsQyx1Q0FBMkI7O0lBQzNCLDBDQUE4Qjs7SUFDOUIseUNBQTZCOztJQUM3Qiw0Q0FBZ0M7O0lBRWhDLHFDQUF1Qjs7SUFDdkIsK0NBQWlDOztJQUNqQywyQ0FBMEM7O0lBQzFDLHdDQUEwQjs7SUFDMUIscUNBQW9DOztJQUNwQyw2Q0FBNEM7O0lBQzVDLDZDQUE0Qzs7SUFDNUMseUNBQXdDOztJQUN4Qyw0Q0FBOEI7O0lBRTlCLHNDQUFxQzs7SUFFckMsK0NBQXlDOztJQUN6QyxzREFBZ0Q7O0lBRWhELHFDQUErQjs7SUFFL0Isd0NBQWE7O0lBRWIsdUNBQXdDOztJQUV4Qyx5Q0FBa0M7O0lBSWxDLHVDQUFZOztJQUZBLDBDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFNlY3VyaXR5Q29udGV4dCxcbiAgQWZ0ZXJDb250ZW50SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpbnNlcnRDU1MgfSBmcm9tICcuLi91dGxpcy9pbnNlcnRDU1MnO1xuaW1wb3J0IHsgYnVpbGRJbXBvcnRVcmwsIGdlbmVyYXRlVXVpZCwgYnVpbGRJbml0UGF5bG9hZCwgY2xhc3NpZnlTdHJ1Y3R1cmVkTWVzc2FnZSB9IGZyb20gJ0BzdW1pdF95ZXdhbGUvYWRhcHRlci1jb3JlJztcblxuY29uc3QgYXBwVmVyc2lvbiA9ICcxLjEuMTYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjc3Zib3gtYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAjaW5pdGlhdG9yIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIFthdHRyLmRhdGEtY3N2Ym94LXRva2VuXT1cInV1aWRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5cbmV4cG9ydCBjbGFzcyBDU1ZCb3hCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgaXNNb2RhbFNob3duID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnaW5pdGlhdG9yJywge3N0YXRpYzogZmFsc2V9KSBpbml0aWF0b3I6IGFueTtcbiAgQElucHV0KCkgb25JbXBvcnQ/OiBGdW5jdGlvbjtcbiAgQElucHV0KCkgb25SZWFkeT86IEZ1bmN0aW9uO1xuICBASW5wdXQoKSBvbkNsb3NlPzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIG9uU3VibWl0PzogRnVuY3Rpb247XG5cbiAgQElucHV0KCkgaXNJbXBvcnRlZD86IEZ1bmN0aW9uO1xuICBASW5wdXQoKSBpc1JlYWR5PzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGlzQ2xvc2VkPzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGlzU3VibWl0dGVkPzogRnVuY3Rpb247XG5cbiAgQElucHV0KCkgaW1wb3J0ZXJSZWFkeT86IEZ1bmN0aW9uO1xuICBASW5wdXQoKSBjbG9zZWQ/OiBGdW5jdGlvbjtcbiAgQElucHV0KCkgc3VibWl0dGVkPzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGltcG9ydGVkPzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGxvYWRTdGFydGVkPzogRnVuY3Rpb247XG5cbiAgQElucHV0KCkgdXNlcj86IG9iamVjdDtcbiAgQElucHV0KCkgZHluYW1pY0NvbHVtbnM/OiBvYmplY3Q7XG4gIEBJbnB1dCgpIGxpY2Vuc2VLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBvcHRpb25zPzogb2JqZWN0O1xuICBASW5wdXQoKSB1dWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY3VzdG9tRG9tYWluOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZGF0YUxvY2F0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbGFuZ3VhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudD86IG9iamVjdDtcblxuICBASW5wdXQoKSB0aGVtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgaXNJZnJhbWVMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb3Blbk1vZGFsT25JZnJhbWVMb2FkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNhZmVVcmw6IGFueTtcblxuICBpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzYW5pdGl6ZXI6RG9tU2FuaXRpemVyKSB7fVxuXG4gIGhvbGRlcjogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXVpZCA9IGdlbmVyYXRlVXVpZCgpO1xuICAgIGxldCBpZnJhbWVVcmwgPSBidWlsZEltcG9ydFVybChcbiAgICAgIHtcbiAgICAgICAgbGljZW5zZUtleTogdGhpcy5saWNlbnNlS2V5LFxuICAgICAgICBjdXN0b21Eb21haW46IHRoaXMuY3VzdG9tRG9tYWluLFxuICAgICAgICBkYXRhTG9jYXRpb246IHRoaXMuZGF0YUxvY2F0aW9uLFxuICAgICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSxcbiAgICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXG4gICAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50XG4gICAgICB9LFxuICAgICAgXCJhbmd1bGFyXCIsXG4gICAgICBhcHBWZXJzaW9uXG4gICAgKTtcbiAgICB0aGlzLnNhZmVVcmwgPSB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuUkVTT1VSQ0VfVVJMLCB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoaWZyYW1lVXJsKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYoY2hhbmdlc1tcInVzZXJcIl0gJiYgY2hhbmdlc1sndXNlciddLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzWyd1c2VyJ10ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy51cGRhdGVVc2VyVmFyaWFiZShjaGFuZ2VzWyd1c2VyJ10uY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVVc2VyVmFyaWFiZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXIgPSBkYXRhO1xuICAgIGlmICh0aGlzLmlmcmFtZSAmJiB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93KSB7XG4gICAgICB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgXCJjdXN0b21lclwiIDogZGF0YVxuICAgICAgfSwgXCIqXCIpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKGV2ZW50KSA9PiB7XG4gICAgICBsZXQgbWVzc2FnZSA9IGNsYXNzaWZ5U3RydWN0dXJlZE1lc3NhZ2UoZXZlbnQuZGF0YSwgdGhpcy51dWlkISk7XG4gICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSBcImRhdGEtb24tc3VibWl0XCIpIHtcbiAgICAgICAgaWYgKHRoaXMub25TdWJtaXQpIHRoaXMub25TdWJtaXQobWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICAgIGlmICh0aGlzLmlzU3VibWl0dGVkKSB0aGlzLmlzU3VibWl0dGVkKG1lc3NhZ2UubWV0YWRhdGEpO1xuICAgICAgICBpZiAodGhpcy5zdWJtaXR0ZWQpIHRoaXMuc3VibWl0dGVkKG1lc3NhZ2UubWV0YWRhdGEpO1xuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiZGF0YS1wdXNoLXN0YXR1c1wiKSB7XG4gICAgICAgIGlmICghbWVzc2FnZS5zdWNjZXNzKSB7XG4gICAgICAgICAgZGVsZXRlIG1lc3NhZ2UubWV0YWRhdGFbXCJ1bmlxdWVfdG9rZW5cIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub25JbXBvcnQpIHRoaXMub25JbXBvcnQobWVzc2FnZS5zdWNjZXNzLCBtZXNzYWdlLm1ldGFkYXRhKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbXBvcnRlZCkgdGhpcy5pc0ltcG9ydGVkKG1lc3NhZ2Uuc3VjY2VzcywgbWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICAgIGlmICh0aGlzLmltcG9ydGVkKSB0aGlzLmltcG9ydGVkKG1lc3NhZ2Uuc3VjY2VzcywgbWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJjc3Zib3gtbW9kYWwtaGlkZGVuXCIpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVNb2RhbENsb3NlZCgpO1xuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY3N2Ym94LXVwbG9hZC1zdWNjZXNzZnVsXCIpIHtcbiAgICAgICAgICBpZiAodGhpcy5vbkltcG9ydCkgdGhpcy5vbkltcG9ydCh0cnVlKTtcbiAgICAgICAgICBpZiAodGhpcy5pc0ltcG9ydGVkKSB0aGlzLmlzSW1wb3J0ZWQodHJ1ZSk7XG4gICAgICAgICAgaWYgKHRoaXMuaW1wb3J0ZWQpIHRoaXMuaW1wb3J0ZWQodHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJjc3Zib3gtdXBsb2FkLWZhaWxlZFwiKSB7XG4gICAgICAgICAgaWYgKHRoaXMub25JbXBvcnQpIHRoaXMub25JbXBvcnQoZmFsc2UpO1xuICAgICAgICAgIGlmICh0aGlzLmlzSW1wb3J0ZWQpIHRoaXMuaXNJbXBvcnRlZChmYWxzZSk7XG4gICAgICAgICAgaWYgKHRoaXMuaW1wb3J0ZWQpIHRoaXMuaW1wb3J0ZWQoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIGZhbHNlKTtcblxuICAgIGlmKHRoaXMubGF6eSkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdEltcG9ydGVyKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTW9kYWxDbG9zZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9sZGVyKSB0aGlzLmhvbGRlci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIHRoaXMuaXNNb2RhbFNob3duID0gZmFsc2U7XG4gICAgdGhpcy5pc0lmcmFtZUxvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMub3Blbk1vZGFsT25JZnJhbWVMb2FkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaG9sZGVyKSB0aGlzLmhvbGRlci5yZW1vdmUoKTtcbiAgICB0aGlzLmhvbGRlciA9IG51bGw7XG4gICAgdGhpcy5pZnJhbWUgPSBudWxsO1xuICAgIGlmICh0aGlzLm9uQ2xvc2UpIHRoaXMub25DbG9zZSgpO1xuICAgIGlmICh0aGlzLmlzQ2xvc2VkKSB0aGlzLmlzQ2xvc2VkKCk7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSB0aGlzLmNsb3NlZCgpO1xuICB9XG5cbiAgaW5pdEltcG9ydGVyKCkge1xuICAgIGlmICh0aGlzLmxvYWRTdGFydGVkKSB0aGlzLmxvYWRTdGFydGVkKCk7XG5cbiAgICB0aGlzLnV1aWQgPSBnZW5lcmF0ZVV1aWQoKTtcblxuICAgIGluc2VydENTUygpO1xuXG4gICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7XG4gICAgdGhpcy5pZnJhbWUgPSBpZnJhbWU7XG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZShcInNyY1wiLCB0aGlzLnNhZmVVcmwpO1xuICAgIGlmcmFtZS5mcmFtZUJvcmRlciA9IFwiMFwiO1xuXG4gICAgbGV0IHNlbGYgPSB0aGlzO1xuICAgIGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoc2VsZi5vblJlYWR5KSBzZWxmLm9uUmVhZHkoKTtcbiAgICAgIGlmIChzZWxmLmlzUmVhZHkpIHNlbGYuaXNSZWFkeSgpO1xuICAgICAgaWYgKHNlbGYuaW1wb3J0ZXJSZWFkeSkgc2VsZi5pbXBvcnRlclJlYWR5KCk7XG5cbiAgICAgIHNlbGYuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIHNlbGYuaXNJZnJhbWVMb2FkZWQgPSB0cnVlO1xuICAgICAgaWYgKHNlbGYuaWZyYW1lICYmIHNlbGYuaWZyYW1lLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgICAgc2VsZi5pZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShidWlsZEluaXRQYXlsb2FkKHNlbGYudXNlciwgc2VsZi5keW5hbWljQ29sdW1ucywgc2VsZi5vcHRpb25zLCBzZWxmLnV1aWQhKSwgXCIqXCIpO1xuICAgICAgfVxuICAgICAgaWYoc2VsZi5vcGVuTW9kYWxPbklmcmFtZUxvYWQpIHtcbiAgICAgICAgc2VsZi5vcGVuTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuaG9sZGVyLmNsYXNzTGlzdC5hZGQoJ2NzdmJveC1ob2xkZXInKTtcbiAgICB0aGlzLmhvbGRlci5zZXRBdHRyaWJ1dGUoJ2lkJywgYGNzdmJveC1lbWJlZC0ke3RoaXMudXVpZH1gKTtcbiAgICB0aGlzLmhvbGRlci5hcHBlbmRDaGlsZChpZnJhbWUpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXG4gICAgICAnYmVmb3JlZW5kJywgdGhpcy5ob2xkZXJcbiAgICApO1xuICB9XG5cbiAgb3Blbk1vZGFsKCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmlmcmFtZSkge1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbE9uSWZyYW1lTG9hZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5pdEltcG9ydGVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYoIXRoaXMuaXNNb2RhbFNob3duKSB7XG4gICAgICBpZih0aGlzLmlzSWZyYW1lTG9hZGVkKSB7XG4gICAgICAgICAgdGhpcy5pc01vZGFsU2hvd24gPSB0cnVlO1xuICAgICAgICAgIGlmKHRoaXMuaG9sZGVyKSB0aGlzLmhvbGRlci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICBpZih0aGlzLmlmcmFtZSAmJiB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93KSB7XG4gICAgICAgICAgICB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCdvcGVuTW9kYWwnLCAnKicpO1xuICAgICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vcGVuTW9kYWxPbklmcmFtZUxvYWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/interfaces/interface.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @record
|
|
8
|
+
*/
|
|
9
|
+
export function CSVBoxMethods() { }
|
|
10
|
+
if (false) {
|
|
11
|
+
/** @type {?|undefined} */
|
|
12
|
+
CSVBoxMethods.prototype.onData;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bWl0X3lld2FsZS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2ludGVyZmFjZXMvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsbUNBRUM7OztJQURDLCtCQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ1NWQm94TWV0aG9kcyB7XG4gIG9uRGF0YT86IChyZXN1bHQ6Ym9vbGVhbiwgZGF0YTphbnkpID0+IHZvaWQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: public-api.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
/*
|
|
7
|
+
* Public API Surface of angular-adapter
|
|
8
|
+
*/
|
|
9
|
+
// export * from './lib/angular-adapter.service';
|
|
10
|
+
export { CSVBoxButtonComponent } from './lib/csvbox-button.component';
|
|
11
|
+
export { CSVBoxAngularModule } from './lib/csvbox-angular.module';
|
|
12
|
+
export {} from './lib/interfaces/interface';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW1pdF95ZXdhbGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0Esc0NBQWMsK0JBQStCLENBQUM7QUFDOUMsb0NBQWMsNkJBQTZCLENBQUM7QUFDNUMsZUFBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5ndWxhci1hZGFwdGVyXG4gKi9cblxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci1hZGFwdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3N2Ym94LWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3N2Ym94LWFuZ3VsYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: sumit_yewale-angular.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generated bundle index. Do not edit.
|
|
8
|
+
*/
|
|
9
|
+
export { CSVBoxButtonComponent, CSVBoxAngularModule } from './public-api';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtaXRfeWV3YWxlLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VtaXRfeWV3YWxlL2FuZ3VsYXIvIiwic291cmNlcyI6WyJzdW1pdF95ZXdhbGUtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLDJEQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: utlis/insertCSS.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
/** @type {?} */
|
|
7
|
+
let styleElement;
|
|
8
|
+
/** @type {?} */
|
|
9
|
+
const GLOBAL_CSS = `
|
|
10
|
+
.csvbox-holder {
|
|
11
|
+
z-index: 2147483647;
|
|
12
|
+
position: fixed;
|
|
13
|
+
top: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
left: 0;
|
|
16
|
+
right: 0;
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
.csvbox-holder iframe {
|
|
20
|
+
height: 100%;
|
|
21
|
+
width: 100%;
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0px;
|
|
24
|
+
left: 0px;
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
/** @type {?} */
|
|
28
|
+
export const insertCSS = (/**
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
() => {
|
|
32
|
+
if (styleElement) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
styleElement = document.createElement('style');
|
|
36
|
+
styleElement.setAttribute('type', 'text/css');
|
|
37
|
+
/** @type {?} */
|
|
38
|
+
const head = document.querySelector('head');
|
|
39
|
+
if (head) {
|
|
40
|
+
head.appendChild(styleElement);
|
|
41
|
+
}
|
|
42
|
+
styleElement.textContent = GLOBAL_CSS;
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0Q1NTLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bWl0X3lld2FsZS9hbmd1bGFyLyIsInNvdXJjZXMiOlsidXRsaXMvaW5zZXJ0Q1NTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFJLFlBQThCOztNQUU1QixVQUFVLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJsQjs7QUFFRCxNQUFNLE9BQU8sU0FBUzs7O0FBQUcsR0FBUyxFQUFFO0lBQ2xDLElBQUksWUFBWSxFQUFFO1FBQ2hCLE9BQU07S0FDUDtJQUVELFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFBOztVQUN2QyxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDM0MsSUFBSSxJQUFJLEVBQUU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ2hDO0lBRUQsWUFBWSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUE7QUFDdkMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudFxuXG5jb25zdCBHTE9CQUxfQ1NTID0gYFxuLmNzdmJveC1ob2xkZXIge1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jc3Zib3gtaG9sZGVyIGlmcmFtZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbn1cbmBcblxuZXhwb3J0IGNvbnN0IGluc2VydENTUyA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJylcbiAgY29uc3QgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKTtcbiAgaWYgKGhlYWQpIHtcbiAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSBHTE9CQUxfQ1NTXG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/csvbox-angular.module.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
6
|
+
import { NgModule } from '@angular/core';
|
|
7
|
+
import { CSVBoxButtonComponent } from './csvbox-button.component';
|
|
8
|
+
var CSVBoxAngularModule = /** @class */ (function () {
|
|
9
|
+
function CSVBoxAngularModule() {
|
|
10
|
+
}
|
|
11
|
+
CSVBoxAngularModule.decorators = [
|
|
12
|
+
{ type: NgModule, args: [{
|
|
13
|
+
declarations: [
|
|
14
|
+
CSVBoxButtonComponent
|
|
15
|
+
],
|
|
16
|
+
imports: [],
|
|
17
|
+
exports: [
|
|
18
|
+
CSVBoxButtonComponent
|
|
19
|
+
]
|
|
20
|
+
},] }
|
|
21
|
+
];
|
|
22
|
+
return CSVBoxAngularModule;
|
|
23
|
+
}());
|
|
24
|
+
export { CSVBoxAngularModule };
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2Ym94LWFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bWl0X3lld2FsZS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2NzdmJveC1hbmd1bGFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJbEU7SUFBQTtJQVVtQyxDQUFDOztnQkFWbkMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO2lCQUNGOztJQUNrQywwQkFBQztDQUFBLEFBVnBDLElBVW9DO1NBQXZCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDU1ZCb3hCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NzdmJveC1idXR0b24uY29tcG9uZW50JztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENTVkJveEJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDU1ZCb3hCdXR0b25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDU1ZCb3hBbmd1bGFyTW9kdWxlIHsgfVxuIl19
|