@rangertechnologies/ngnxt 2.0.37 → 2.0.39
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 +2 -2
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +33 -33
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +94 -82
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +76 -76
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +53 -53
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +34 -34
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +34 -34
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +110 -159
- package/esm2022/lib/components/file-view/file-view.component.mjs +42 -0
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +136 -136
- package/esm2022/lib/components/search-box/search-box.component.mjs +106 -84
- package/esm2022/lib/interfaces/actionMeta.mjs +2 -2
- package/esm2022/lib/interfaces/apimeta.mjs +2 -2
- package/esm2022/lib/interfaces/dependencyMeta.mjs +2 -2
- package/esm2022/lib/model/bookletWrapper.mjs +9 -9
- package/esm2022/lib/model/changeWrapper.mjs +8 -8
- package/esm2022/lib/model/errorWrapper.mjs +6 -6
- package/esm2022/lib/model/tableWrapper.mjs +16 -16
- package/esm2022/lib/nxt-app.component.mjs +22 -22
- package/esm2022/lib/nxt-app.module.mjs +276 -268
- package/esm2022/lib/nxt-app.service.mjs +14 -14
- package/esm2022/lib/pages/booklet/booklet.component.mjs +171 -159
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +102 -85
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2066 -2066
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +70 -0
- package/esm2022/lib/sample.mjs +432 -432
- package/esm2022/lib/services/change.service.mjs +38 -33
- package/esm2022/lib/services/data.service.mjs +40 -40
- package/esm2022/lib/services/salesforce.service.mjs +46 -46
- package/esm2022/lib/services/shared.service.mjs +86 -0
- package/esm2022/lib/services/storage.service.mjs +41 -41
- package/esm2022/lib/wrapper.mjs +161 -161
- package/esm2022/public-api.mjs +11 -10
- package/esm2022/rangertechnologies-ngnxt.mjs +4 -4
- package/fesm2022/rangertechnologies-ngnxt.mjs +4105 -3899
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +14 -14
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +29 -26
- package/lib/components/custom-input/custom-input.component.d.ts +26 -26
- package/lib/components/custom-table/custom-table.component.d.ts +20 -20
- package/lib/components/custom-text-area/custom-text-area.component.d.ts +14 -14
- package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +14 -14
- package/lib/components/file-upload/file-upload.component.d.ts +24 -23
- package/lib/components/file-view/file-view.component.d.ts +14 -0
- package/lib/components/pick-location/pick-location.component.d.ts +35 -35
- package/lib/components/search-box/search-box.component.d.ts +40 -34
- package/lib/interfaces/actionMeta.d.ts +5 -5
- package/lib/interfaces/apimeta.d.ts +5 -5
- package/lib/interfaces/dependencyMeta.d.ts +5 -5
- package/lib/model/bookletWrapper.d.ts +5 -5
- package/lib/model/changeWrapper.d.ts +7 -7
- package/lib/model/errorWrapper.d.ts +5 -5
- package/lib/model/tableWrapper.d.ts +15 -15
- package/lib/nxt-app.component.d.ts +8 -8
- package/lib/nxt-app.module.d.ts +30 -28
- package/lib/nxt-app.service.d.ts +6 -6
- package/lib/pages/booklet/booklet.component.d.ts +45 -43
- package/lib/pages/questionbook/questionbook.component.d.ts +27 -26
- package/lib/pages/questionnaire/questionnaire.component.d.ts +206 -206
- package/lib/pages/summary-page/summary-page.component.d.ts +18 -0
- package/lib/sample.d.ts +10 -10
- package/lib/services/change.service.d.ts +16 -13
- package/lib/services/data.service.d.ts +9 -9
- package/lib/services/salesforce.service.d.ts +11 -11
- package/lib/services/shared.service.d.ts +11 -0
- package/lib/services/storage.service.d.ts +12 -12
- package/lib/wrapper.d.ts +161 -161
- package/package.json +1 -1
- package/public-api.d.ts +7 -6
- package/rangertechnologies-ngnxt-2.0.39.tgz +0 -0
- package/rangertechnologies-ngnxt-2.0.37.tgz +0 -0
|
@@ -1,159 +1,110 @@
|
|
|
1
|
-
import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
reader
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return 'assets/icons/document/img-file-MOV.png';
|
|
111
|
-
}
|
|
112
|
-
else if (ext === 'mp3') {
|
|
113
|
-
return 'assets/icons/document/img-file-MP3.png';
|
|
114
|
-
}
|
|
115
|
-
else if (ext === 'mp4') {
|
|
116
|
-
return 'assets/icons/document/img-file-MP4.png';
|
|
117
|
-
}
|
|
118
|
-
else if (ext === 'mpeg') {
|
|
119
|
-
return 'assets/icons/document/img-file-MPEG.png';
|
|
120
|
-
}
|
|
121
|
-
else if (ext === 'mpg') {
|
|
122
|
-
return 'assets/icons/document/img-file-MPG.png';
|
|
123
|
-
}
|
|
124
|
-
else if (ext === 'png') {
|
|
125
|
-
return 'assets/icons/document/img-file-PNG.png';
|
|
126
|
-
}
|
|
127
|
-
else if (ext === 'ppt') {
|
|
128
|
-
return 'assets/icons/document/img-file-PPT.png';
|
|
129
|
-
}
|
|
130
|
-
else if (ext === 'txt') {
|
|
131
|
-
return 'projects/nxt-app/src/assets/icons/document/img-file-TXT.png';
|
|
132
|
-
}
|
|
133
|
-
else if (ext === 'xls') {
|
|
134
|
-
return 'assets/icons/document/img-file-XLS.png';
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
return 'assets/images/ic_document.svg';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
141
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FileUploadComponent, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", isDeleteFileButtonVisible: "isDeleteFileButtonVisible", isShowNoFileIcon: "isShowNoFileIcon" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <label class=\"she-label\">Attachment</label>\r\n </div>\r\n <div class=\"col-lg-3 document-cnt m-t-10 m-b-10 hover-pointer\"\r\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\r\n <div class=\"row\"> <!-- (click)=\"viewFile(eachFile)\" -->\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.name)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\">\r\n {{eachFile?.name}}\r\n </div>\r\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"assets/images/bin.svg\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\r\n <img src=\"../../../assets/images/ic_no_attachments.svg\" style=\"height: 140px;\">\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\r\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <button class=\"she-btn-primary-bordered\" style=\"width:275px;\" (click)=\"onFileUpload($event)\"\r\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\r\n >Choose\r\n files</button>\r\n\r\n <input id='fileUpload' type=\"file\" id=\"fileUpload\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\r\n (change) = uploadMultipleFiles($event)\r\n />\r\n </label>\r\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\r\n formControl?.documents?.errors?.required\">\r\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\r\n </span> -->\r\n</div>\r\n", styles: [".nav.nav-tabs+.tab-content{background:transparent}.row_cnt_folder{background:#fff;padding:50px 30px}.row-recent-file{border-top:1px solid #EBEBEB;padding:20px 0;cursor:pointer}p{margin-bottom:0}.floating_button{position:fixed;right:20px;bottom:20px;z-index:10;cursor:pointer}.floating_button img{height:60px}.form-cnt{background:#ffffff;padding:40px;border:1px solid #e8e8e8;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.section-header{padding:15px;background:#F8F8F8;color:#898989;border:1px solid #e8e8e8;border-top-left-radius:5px;border-top-right-radius:5px}.document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px;margin-top:10px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px;overflow:hidden}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#ffffff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
142
|
-
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
144
|
-
type: Component,
|
|
145
|
-
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\r\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\r\n <label class=\"she-label\">Attachment</label>\r\n </div>\r\n <div class=\"col-lg-3 document-cnt m-t-10 m-b-10 hover-pointer\"\r\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\r\n <div class=\"row\"> <!-- (click)=\"viewFile(eachFile)\" -->\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(eachFile?.name)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\">\r\n {{eachFile?.name}}\r\n </div>\r\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <img src=\"assets/images/bin.svg\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\r\n <img src=\"../../../assets/images/ic_no_attachments.svg\" style=\"height: 140px;\">\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\r\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible\">\r\n <button class=\"she-btn-primary-bordered\" style=\"width:275px;\" (click)=\"onFileUpload($event)\"\r\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\r\n >Choose\r\n files</button>\r\n\r\n <input id='fileUpload' type=\"file\" id=\"fileUpload\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\r\n (change) = uploadMultipleFiles($event)\r\n />\r\n </label>\r\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\r\n formControl?.documents?.errors?.required\">\r\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\r\n </span> -->\r\n</div>\r\n", styles: [".nav.nav-tabs+.tab-content{background:transparent}.row_cnt_folder{background:#fff;padding:50px 30px}.row-recent-file{border-top:1px solid #EBEBEB;padding:20px 0;cursor:pointer}p{margin-bottom:0}.floating_button{position:fixed;right:20px;bottom:20px;z-index:10;cursor:pointer}.floating_button img{height:60px}.form-cnt{background:#ffffff;padding:40px;border:1px solid #e8e8e8;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.section-header{padding:15px;background:#F8F8F8;color:#898989;border:1px solid #e8e8e8;border-top-left-radius:5px;border-top-right-radius:5px}.document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px;margin-top:10px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px;overflow:hidden}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#ffffff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}\n"] }]
|
|
146
|
-
}], ctorParameters: function () { return []; }, propDecorators: { selectedFileData: [{
|
|
147
|
-
type: Output
|
|
148
|
-
}], deletedFileData: [{
|
|
149
|
-
type: Output
|
|
150
|
-
}], allFiles: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], limitFileUploading: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], isDeleteFileButtonVisible: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], isShowNoFileIcon: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7OztBQU1qSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3BCLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFDN0MsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsUUFBUSxDQUFDO0lBQ1Qsa0JBQWtCLENBQUM7SUFDbkIseUJBQXlCLENBQUM7SUFDMUIsZ0JBQWdCLENBQUM7SUFFbkIscUJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBQ3JDLG1CQUFtQixDQUFDO0lBQ3BCLHdCQUF3QixDQUFDO0lBQ2hDLGdCQUNJLENBQUM7SUFFTCxRQUFRLEtBQUssQ0FBQztJQUVkLFlBQVksQ0FBQyxLQUFVO1FBQ3JCLE1BQU0sbUJBQW1CLEdBQWdCLFFBQVEsQ0FBQyxjQUFjLENBQzlELFlBQVksQ0FDRSxDQUFDO1FBQ2pCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsYUFBNEI7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7UUFDaEUsSUFBSSxhQUFhLENB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QUU7WUFDeEIsT0FBTyx3Q0FBd0MsQ0FBQztTQUNqRDthQUFNLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUN4QixPQUFPLHdDQUF3QyxDQUFDO1NBQ2pEO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ3hCLE9BQU8sNkRBQTZELENBQUM7U0FDdEU7YUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDeEIsT0FBTyx3Q0FBd0MsQ0FBQztTQUNqRDthQUFNO1lBQ0wsT0FBTywrQkFBK0IsQ0FBQztTQUN4QztJQUNILENBQUM7d0dBcElVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLDZVQ05oQywyZ0VBdUNBOzs0RkRqQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjswRUFLakIsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LE91dHB1dCxFdmVudEVtaXR0ZXIsIElucHV0ICxFbGVtZW50UmVmLCBPbkNoYW5nZXMsU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZpbGUtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgYWxsRmlsZXM7XHJcbiAgQElucHV0KCkgbGltaXRGaWxlVXBsb2FkaW5nO1xyXG4gIEBJbnB1dCgpIGlzRGVsZXRlRmlsZUJ1dHRvblZpc2libGU7XHJcbiAgQElucHV0KCkgaXNTaG93Tm9GaWxlSWNvbjtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmlsZU5hbWVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgY29weU9mSW5wdXRBbGxGaWxlcztcclxuICBwdWJsaWMgY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkgeyB9XHJcblxyXG4gIG9uRmlsZVVwbG9hZChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaWxlVXBsb2FkZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnZmlsZVVwbG9hZCdcclxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBmaWxlVXBsb2FkZXJFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zb2xlLmxvZygnc2ltcGxlIGNoYW5nZXMnLCBzaW1wbGVDaGFuZ2VzKTtcclxuICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IHNpbXBsZUNoYW5nZXMuYWxsRmlsZXM/LmN1cnJlbnRWYWx1ZTtcclxuICAgIGlmIChzaW1wbGVDaGFuZ2VzLmxpbWl0RmlsZVVwbG9hZGluZykge1xyXG4gICAgICB0aGlzLmNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdCA9IHNpbXBsZUNoYW5nZXMubGltaXRGaWxlVXBsb2FkaW5nPy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgdXBsb2FkTXVsdGlwbGVGaWxlcyhldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnRmlsZSB1cGxvYWRlciBpbml0aWF0ZWQnKTtcclxuICAgIGNvbnN0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XHJcbiAgICBjb25zdCBzZWxlY3RlZEZpbGVEYXRhID0gW107XHJcbiAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgaWYgKHVwbG9hZGVkRmlsZXMubGVuZ3RoICsgaW5wdXRGaWxlcy5sZW5ndGggPD0gdGhpcy5jb3B5T2ZGaWxlVXBsb2FkaW5nTGltaXQpIHtcclxuICAgICAgZm9yIChjb25zdCBlYWNoVXBsb2FkZWRGaWxlIG9mIHVwbG9hZGVkRmlsZXMpIHtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IGZpbGUubmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICBzZWxlY3RlZEZpbGVEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgIGlkOiBudWxsLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpbnB1dEZpbGVzLnB1c2goe1xyXG4gICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgIGlkOiBudWxsLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdZb3UgY2FuIHVwbG9hZCBtYXggNSBmaWxlcycpO1xyXG4gICAgICAvL3RoaXMudG9hc3RyLndhcm5pbmcoVE9BU1RFUl9NRVNTQUdFUy5NQVhfRklWRV9GSUxFUywgVE9BU1RFUl9NRVNTQUdFUy5XQVJOSU5HX1RJVExFKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID0gaW5wdXRGaWxlcztcclxuICAgIGNvbnNvbGUubG9nKCd1cGxvYWRlZEZpbGVzJyxpbnB1dEZpbGVzKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KGlucHV0RmlsZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCkge1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxlTmFtZSA9IHRoaXMuc2VsZWN0ZWRGaWxlTmFtZUFycmF5LnNwbGljZShjdXJyZW50RmlsZUluZGV4LCAxKTtcclxuICAgICAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcy5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2VtaXQnLCBkZWxldGVkRmlsZVswXSk7XHJcbiAgICAgICAgdGhpcy5kZWxldGVkRmlsZURhdGEuZW1pdChkZWxldGVkRmlsZVswXSk7XHJcbiAgfVxyXG5cclxuICAvLyB2aWV3RmlsZShjdXJyZW50RmlsZSkge1xyXG4gIC8vICAgLy8gRGlzcGxheSBmaWxlIGhlcmVcclxuICAvLyAgIGlmIChjdXJyZW50RmlsZSAmJiBjdXJyZW50RmlsZS5kb2MpIHtcclxuICAvLyAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnZpZXdGaWxlKGN1cnJlbnRGaWxlLmRvYy5zcGxpdCgnLycpLnBvcCgpKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAvLyAgICAgICBpZiAoYXBpUmVzcG9uc2UgJiYgYXBpUmVzcG9uc2Uuc2FzX3VybCkge1xyXG4gIC8vICAgICAgICAgd2luZG93Lm9wZW4oYXBpUmVzcG9uc2Uuc2FzX3VybCwgJ19ibGFuaycpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSwgKGFwaUVycm9yKSA9PiB7XHJcbiAgLy8gICAgICAgdGhpcy50b2FzdHIud2FybmluZygnRXJyb3Igd2hpbGUgdmlld2luZyBmaWxlJywgJ1dhcm5pbmcnKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcclxuICAgIGNvbnN0IGV4dCA9IGRvY05hbWUuc3BsaXQoJy4nKS5wb3AoLTEpO1xyXG4gICAgcmV0dXJuIHRoaXMuZG9jSWNvbihleHQpO1xyXG4gIH1cclxuXHJcbiBkb2NJY29uKGV4dCkge1xyXG4gICAgaWYgKGV4dCA9PT0gJ3BkZicpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtUERGLnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3hsc3gnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLVhMU1gucG5nJztcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAnZG9jeCcpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtRE9DWC5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdhdmknKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLUFWSS5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdkb2MnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLURPQy5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdnaWYnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLUdJRi5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdqcGcnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLUpQRy5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdtb3YnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLU1PVi5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdtcDMnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLU1QMy5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdtcDQnKSB7XHJcbiAgICAgIHJldHVybiAnYXNzZXRzL2ljb25zL2RvY3VtZW50L2ltZy1maWxlLU1QNC5wbmcnO1xyXG4gICAgfSBlbHNlIGlmIChleHQgPT09ICdtcGVnJykge1xyXG4gICAgICByZXR1cm4gJ2Fzc2V0cy9pY29ucy9kb2N1bWVudC9pbWctZmlsZS1NUEVHLnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ21wZycpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtTVBHLnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BuZycpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtUE5HLnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtUFBULnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3R4dCcpIHtcclxuICAgICAgcmV0dXJuICdwcm9qZWN0cy9ueHQtYXBwL3NyYy9hc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtVFhULnBuZyc7XHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3hscycpIHtcclxuICAgICAgcmV0dXJuICdhc3NldHMvaWNvbnMvZG9jdW1lbnQvaW1nLWZpbGUtWExTLnBuZyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvaWNfZG9jdW1lbnQuc3ZnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luOiAwO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsXCI+QXR0YWNobWVudDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50LWNudCBtLXQtMTAgbS1iLTEwIGhvdmVyLXBvaW50ZXJcIlxyXG4gICAgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGNvcHlPZklucHV0QWxsRmlsZXM7IGxldCBjdXJyZW50RmlsZUluZGV4ID0gaW5kZXhcIj5cclxuICAgICA8ZGl2IGNsYXNzPVwicm93XCI+IDwhLS0gKGNsaWNrKT1cInZpZXdGaWxlKGVhY2hGaWxlKVwiICAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZWFjaEZpbGU/Lm5hbWUpXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEwcHg7aGVpZ2h0OiA0MHB4O1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCI+XHJcbiAgICAgICAge3tlYWNoRmlsZT8ubmFtZX19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRfZGVsZXRlXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2Jpbi5zdmdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG0tYi0zMCB0ZXh0LWNlbnRlclwiICpuZ0lmPVwiY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID09PSAwICYmIGlzU2hvd05vRmlsZUljb25cIj5cclxuICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbC1sZy02XCIgc3R5bGU9XCJwYWRkaW5nOjA7bWFyZ2luLXRvcDogMTBweDtcIj5cclxuICA8bGFiZWwgY2xhc3M9XCJjdXN0b20tZmlsZVwiICpuZ0lmPVwiaXNEZWxldGVGaWxlQnV0dG9uVmlzaWJsZVwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInNoZS1idG4tcHJpbWFyeS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6Mjc1cHg7XCIgKGNsaWNrKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1kaXNhYmxlZCc6IGNvcHlPZklucHV0QWxsRmlsZXM/Lmxlbmd0aCA+PSBjb3B5T2ZGaWxlVXBsb2FkaW5nTGltaXQgfVwiIFtkaXNhYmxlZF09XCJjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPj0gY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0XCJcclxuICAgID5DaG9vc2VcclxuICAgICAgZmlsZXM8L2J1dHRvbj5cclxuXHJcbiAgICA8aW5wdXQgaWQ9J2ZpbGVVcGxvYWQnIHR5cGU9XCJmaWxlXCIgaWQ9XCJmaWxlVXBsb2FkXCIgbmFtZT1cImZpbGVVcGxvYWRcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgYWNjZXB0PVwiKlwiIHN0eWxlPVwiZGlzcGxheTpub25lO1wiXHJcbiAgICAoY2hhbmdlKSA9IHVwbG9hZE11bHRpcGxlRmlsZXMoJGV2ZW50KVxyXG4gICAgLz5cclxuICA8L2xhYmVsPlxyXG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJlcnJvci1tc2dcIiAqbmdJZj1cIihmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy50b3VjaGVkIHx8ICAgICAgICBmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy5kaXJ0eSkgJiZcclxuICBmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy5lcnJvcnM/LnJlcXVpcmVkXCI+XHJcbiAgICB7e0xNX1BPTElDWV9WQUxJREFUSU9OX01FU1NBR0UuUkVRVUlSRUR9fVxyXG4gIDwvc3Bhbj4gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
1
|
+
import { Component, Output, EventEmitter, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/shared.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class FileUploadComponent {
|
|
6
|
+
SharedService;
|
|
7
|
+
selectedFileData = new EventEmitter();
|
|
8
|
+
deletedFileData = new EventEmitter();
|
|
9
|
+
allFiles;
|
|
10
|
+
limitFileUploading;
|
|
11
|
+
isDeleteFileButtonVisible;
|
|
12
|
+
isShowNoFileIcon;
|
|
13
|
+
selectedFileNameArray = [];
|
|
14
|
+
copyOfInputAllFiles;
|
|
15
|
+
copyOfFileUploadingLimit;
|
|
16
|
+
constructor(SharedService) {
|
|
17
|
+
this.SharedService = SharedService;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() { }
|
|
20
|
+
onFileUpload(event) {
|
|
21
|
+
const fileUploaderElement = document.getElementById('fileUpload');
|
|
22
|
+
fileUploaderElement.click();
|
|
23
|
+
}
|
|
24
|
+
ngOnChanges(simpleChanges) {
|
|
25
|
+
console.log('simple changes', simpleChanges);
|
|
26
|
+
this.copyOfInputAllFiles = simpleChanges.allFiles?.currentValue;
|
|
27
|
+
if (simpleChanges.limitFileUploading) {
|
|
28
|
+
this.copyOfFileUploadingLimit = simpleChanges.limitFileUploading?.currentValue;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
uploadMultipleFiles(event) {
|
|
32
|
+
console.log('File uploader initiated');
|
|
33
|
+
const inputFiles = this.copyOfInputAllFiles ? this.copyOfInputAllFiles : [];
|
|
34
|
+
const selectedFileData = [];
|
|
35
|
+
const uploadedFiles = event.target.files;
|
|
36
|
+
if (uploadedFiles.length + inputFiles.length <= this.copyOfFileUploadingLimit) {
|
|
37
|
+
for (const eachUploadedFile of uploadedFiles) {
|
|
38
|
+
const reader = new FileReader();
|
|
39
|
+
const file = eachUploadedFile;
|
|
40
|
+
const format = file.name.split('.')[1];
|
|
41
|
+
reader.readAsDataURL(file);
|
|
42
|
+
reader.onload = () => {
|
|
43
|
+
selectedFileData.push({
|
|
44
|
+
doc: reader.result,
|
|
45
|
+
name: file.name,
|
|
46
|
+
type: file.type,
|
|
47
|
+
format,
|
|
48
|
+
id: null,
|
|
49
|
+
});
|
|
50
|
+
inputFiles.push({
|
|
51
|
+
doc: reader.result,
|
|
52
|
+
name: file.name,
|
|
53
|
+
type: file.type,
|
|
54
|
+
format,
|
|
55
|
+
id: null,
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.warn('You can upload max 5 files');
|
|
62
|
+
//this.toastr.warning(TOASTER_MESSAGES.MAX_FIVE_FILES, TOASTER_MESSAGES.WARNING_TITLE);
|
|
63
|
+
}
|
|
64
|
+
event.target.value = '';
|
|
65
|
+
this.copyOfInputAllFiles = inputFiles;
|
|
66
|
+
console.log('uploadedFiles', inputFiles);
|
|
67
|
+
this.selectedFileData.emit(inputFiles);
|
|
68
|
+
}
|
|
69
|
+
deleteFile(currentFileIndex) {
|
|
70
|
+
const deletedFileName = this.selectedFileNameArray.splice(currentFileIndex, 1);
|
|
71
|
+
const deletedFile = this.copyOfInputAllFiles.splice(currentFileIndex, 1);
|
|
72
|
+
console.log('emit', deletedFile[0]);
|
|
73
|
+
this.deletedFileData.emit(deletedFile[0]);
|
|
74
|
+
}
|
|
75
|
+
// viewFile(currentFile) {
|
|
76
|
+
// // Display file here
|
|
77
|
+
// if (currentFile && currentFile.doc) {
|
|
78
|
+
// this.sharedService.viewFile(currentFile.doc.split('/').pop()).subscribe((apiResponse: any) => {
|
|
79
|
+
// if (apiResponse && apiResponse.sas_url) {
|
|
80
|
+
// window.open(apiResponse.sas_url, '_blank');
|
|
81
|
+
// }
|
|
82
|
+
// }, (apiError) => {
|
|
83
|
+
// this.toastr.warning('Error while viewing file', 'Warning');
|
|
84
|
+
// });
|
|
85
|
+
// }
|
|
86
|
+
// }
|
|
87
|
+
getDocIcon(docName) {
|
|
88
|
+
const ext = docName.split('.').pop(-1);
|
|
89
|
+
return this.SharedService.docIcon(ext);
|
|
90
|
+
}
|
|
91
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.SharedService }], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FileUploadComponent, selector: "app-file-upload", inputs: { allFiles: "allFiles", limitFileUploading: "limitFileUploading", isDeleteFileButtonVisible: "isDeleteFileButtonVisible", isShowNoFileIcon: "isShowNoFileIcon" }, outputs: { selectedFileData: "selectedFileData", deletedFileData: "deletedFileData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\n <label class=\"she-label\">Attachment</label>\n </div>\n <div class=\"col-lg-3 document-cnt m-t-10 m-b-10 hover-pointer\"\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\n <div class=\"row\"> <!-- (click)=\"viewFile(eachFile)\" -->\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.name)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\">\n {{eachFile?.name}}\n </div>\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible\">\n <button class=\"she-btn-primary-bordered\" style=\"width:275px;\" (click)=\"onFileUpload($event)\"\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\n >Choose\n files</button>\n\n <input id='fileUpload' type=\"file\" id=\"fileUpload\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\n (change) = uploadMultipleFiles($event)\n />\n </label>\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\n formControl?.documents?.errors?.required\">\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\n </span> -->\n</div>\n", styles: [".nav.nav-tabs+.tab-content{background:transparent}.row_cnt_folder{background:#fff;padding:50px 30px}.row-recent-file{border-top:1px solid #EBEBEB;padding:20px 0;cursor:pointer}p{margin-bottom:0}.floating_button{position:fixed;right:20px;bottom:20px;z-index:10;cursor:pointer}.floating_button img{height:60px}.form-cnt{background:#ffffff;padding:40px;border:1px solid #e8e8e8;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.section-header{padding:15px;background:#F8F8F8;color:#898989;border:1px solid #e8e8e8;border-top-left-radius:5px;border-top-right-radius:5px}.document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px;margin-top:10px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px;overflow:hidden}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#ffffff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'app-file-upload', template: "<div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-md-12\" *ngIf=\"!isDeleteFileButtonVisible\" style=\"text-align: left;\">\n <label class=\"she-label\">Attachment</label>\n </div>\n <div class=\"col-lg-3 document-cnt m-t-10 m-b-10 hover-pointer\"\n *ngFor=\"let eachFile of copyOfInputAllFiles; let currentFileIndex = index\">\n <div class=\"row\"> <!-- (click)=\"viewFile(eachFile)\" -->\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(eachFile?.name)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\">\n {{eachFile?.name}}\n </div>\n <div class=\"document_delete\" (click)=\"deleteFile(currentFileIndex);$event.stopPropagation()\" *ngIf=\"isDeleteFileButtonVisible\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/bin.svg\">\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"copyOfInputAllFiles?.length === 0 && isShowNoFileIcon\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n</div>\n\n<div class=\"col-lg-6\" style=\"padding:0;margin-top: 10px;\">\n <label class=\"custom-file\" *ngIf=\"isDeleteFileButtonVisible\">\n <button class=\"she-btn-primary-bordered\" style=\"width:275px;\" (click)=\"onFileUpload($event)\"\n [ngClass]=\"{ 'btn-disabled': copyOfInputAllFiles?.length >= copyOfFileUploadingLimit }\" [disabled]=\"copyOfInputAllFiles?.length >= copyOfFileUploadingLimit\"\n >Choose\n files</button>\n\n <input id='fileUpload' type=\"file\" id=\"fileUpload\" name=\"fileUpload\" multiple=\"multiple\" accept=\"*\" style=\"display:none;\"\n (change) = uploadMultipleFiles($event)\n />\n </label>\n <!-- <span class=\"error-msg\" *ngIf=\"(formControl?.documents?.touched || formControl?.documents?.dirty) &&\n formControl?.documents?.errors?.required\">\n {{LM_POLICY_VALIDATION_MESSAGE.REQUIRED}}\n </span> -->\n</div>\n", styles: [".nav.nav-tabs+.tab-content{background:transparent}.row_cnt_folder{background:#fff;padding:50px 30px}.row-recent-file{border-top:1px solid #EBEBEB;padding:20px 0;cursor:pointer}p{margin-bottom:0}.floating_button{position:fixed;right:20px;bottom:20px;z-index:10;cursor:pointer}.floating_button img{height:60px}.form-cnt{background:#ffffff;padding:40px;border:1px solid #e8e8e8;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.section-header{padding:15px;background:#F8F8F8;color:#898989;border:1px solid #e8e8e8;border-top-left-radius:5px;border-top-right-radius:5px}.document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px;margin-top:10px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px;overflow:hidden}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}.btn-disabled{background:#e1e1e1;color:#fff;border:none;border-radius:5px;height:50px}.form-control[disabled]{border-radius:5px}.custom-file{color:#9a9a9a;font-size:14px;font-weight:400;display:inline-block;width:auto;margin-bottom:5px}.she-btn-primary-bordered{background:#ffffff;color:#48b7ff;border:1px solid #48B7FF;border-radius:5px;height:50px;outline:none!important}\n"] }]
|
|
97
|
+
}], ctorParameters: function () { return [{ type: i1.SharedService }]; }, propDecorators: { selectedFileData: [{
|
|
98
|
+
type: Output
|
|
99
|
+
}], deletedFileData: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], allFiles: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], limitFileUploading: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], isDeleteFileButtonVisible: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], isShowNoFileIcon: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7QUFPakgsTUFBTSxPQUFPLG1CQUFtQjtJQVdWO0lBVlYsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUM3QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQyxRQUFRLENBQUM7SUFDVCxrQkFBa0IsQ0FBQztJQUNuQix5QkFBeUIsQ0FBQztJQUMxQixnQkFBZ0IsQ0FBQztJQUVuQixxQkFBcUIsR0FBYSxFQUFFLENBQUM7SUFDckMsbUJBQW1CLENBQUM7SUFDcEIsd0JBQXdCLENBQUM7SUFDaEMsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDNUMsQ0FBQztJQUVMLFFBQVEsS0FBSyxDQUFDO0lBRWQsWUFBWSxDQUFDLEtBQVU7UUFDckIsTUFBTSxtQkFBbUIsR0FBZ0IsUUFBUSxDQUFDLGNBQWMsQ0FDOUQsWUFBWSxDQUNFLENBQUM7UUFDakIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUE0QjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFh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LFVBQVU7SUFDVixNQUFNO0lBQ04sSUFBSTtJQUVKLFVBQVUsQ0FBQyxPQUFPO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQTlGVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw2VUNQaEMsNC9EQXVDQTs7NEZEaENhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7b0dBS2pCLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxPdXRwdXQsRXZlbnRFbWl0dGVyLCBJbnB1dCAsRWxlbWVudFJlZiwgT25DaGFuZ2VzLFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZEZpbGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZWRGaWxlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxGaWxlcztcbiAgQElucHV0KCkgbGltaXRGaWxlVXBsb2FkaW5nO1xuICBASW5wdXQoKSBpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlO1xuICBASW5wdXQoKSBpc1Nob3dOb0ZpbGVJY29uO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGVOYW1lQXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBjb3B5T2ZJbnB1dEFsbEZpbGVzO1xuICBwdWJsaWMgY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIFNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG9uRmlsZVVwbG9hZChldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZVVwbG9hZGVyRWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICdmaWxlVXBsb2FkJ1xuICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZmlsZVVwbG9hZGVyRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnNvbGUubG9nKCdzaW1wbGUgY2hhbmdlcycsIHNpbXBsZUNoYW5nZXMpO1xuICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IHNpbXBsZUNoYW5nZXMuYWxsRmlsZXM/LmN1cnJlbnRWYWx1ZTtcbiAgICBpZiAoc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0ID0gc2ltcGxlQ2hhbmdlcy5saW1pdEZpbGVVcGxvYWRpbmc/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdGaWxlIHVwbG9hZGVyIGluaXRpYXRlZCcpO1xuICAgIGNvbnN0IGlucHV0RmlsZXM6IGFueVtdID0gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzID8gdGhpcy5jb3B5T2ZJbnB1dEFsbEZpbGVzIDogW107XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWxlRGF0YSA9IFtdO1xuICAgIGNvbnN0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgaWYgKHVwbG9hZGVkRmlsZXMubGVuZ3RoICsgaW5wdXRGaWxlcy5sZW5ndGggPD0gdGhpcy5jb3B5T2ZGaWxlVXBsb2FkaW5nTGltaXQpIHtcbiAgICAgIGZvciAoY29uc3QgZWFjaFVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzKSB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBlYWNoVXBsb2FkZWRGaWxlO1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRGaWxlRGF0YS5wdXNoKHtcbiAgICAgICAgICAgIGRvYzogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgIGZvcm1hdCxcbiAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlucHV0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBkb2M6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdZb3UgY2FuIHVwbG9hZCBtYXggNSBmaWxlcycpO1xuICAgICAgLy90aGlzLnRvYXN0ci53YXJuaW5nKFRPQVNURVJfTUVTU0FHRVMuTUFYX0ZJVkVfRklMRVMsIFRPQVNURVJfTUVTU0FHRVMuV0FSTklOR19USVRMRSk7XG4gICAgfVxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcyA9IGlucHV0RmlsZXM7XG4gICAgY29uc29sZS5sb2coJ3VwbG9hZGVkRmlsZXMnLGlucHV0RmlsZXMpO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlRGF0YS5lbWl0KGlucHV0RmlsZXMpO1xuICB9XG5cblxuICBkZWxldGVGaWxlKGN1cnJlbnRGaWxlSW5kZXgpIHtcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGVOYW1lID0gdGhpcy5zZWxlY3RlZEZpbGVOYW1lQXJyYXkuc3BsaWNlKGN1cnJlbnRGaWxlSW5kZXgsIDEpO1xuICAgICAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMuY29weU9mSW5wdXRBbGxGaWxlcy5zcGxpY2UoY3VycmVudEZpbGVJbmRleCwgMSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdlbWl0JywgZGVsZXRlZEZpbGVbMF0pO1xuICAgICAgICB0aGlzLmRlbGV0ZWRGaWxlRGF0YS5lbWl0KGRlbGV0ZWRGaWxlWzBdKTtcbiAgfVxuXG4gIC8vIHZpZXdGaWxlKGN1cnJlbnRGaWxlKSB7XG4gIC8vICAgLy8gRGlzcGxheSBmaWxlIGhlcmVcbiAgLy8gICBpZiAoY3VycmVudEZpbGUgJiYgY3VycmVudEZpbGUuZG9jKSB7XG4gIC8vICAgICB0aGlzLnNoYXJlZFNlcnZpY2Uudmlld0ZpbGUoY3VycmVudEZpbGUuZG9jLnNwbGl0KCcvJykucG9wKCkpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IGFueSkgPT4ge1xuICAvLyAgICAgICBpZiAoYXBpUmVzcG9uc2UgJiYgYXBpUmVzcG9uc2Uuc2FzX3VybCkge1xuICAvLyAgICAgICAgIHdpbmRvdy5vcGVuKGFwaVJlc3BvbnNlLnNhc191cmwsICdfYmxhbmsnKTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSwgKGFwaUVycm9yKSA9PiB7XG4gIC8vICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcoJ0Vycm9yIHdoaWxlIHZpZXdpbmcgZmlsZScsICdXYXJuaW5nJyk7XG4gIC8vICAgICB9KTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcbiAgICBjb25zdCBleHQgPSBkb2NOYW1lLnNwbGl0KCcuJykucG9wKC0xKTtcbiAgICByZXR1cm4gdGhpcy5TaGFyZWRTZXJ2aWNlLmRvY0ljb24oZXh0KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW46IDA7XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiFpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cInNoZS1sYWJlbFwiPkF0dGFjaG1lbnQ8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50LWNudCBtLXQtMTAgbS1iLTEwIGhvdmVyLXBvaW50ZXJcIlxuICAgICpuZ0Zvcj1cImxldCBlYWNoRmlsZSBvZiBjb3B5T2ZJbnB1dEFsbEZpbGVzOyBsZXQgY3VycmVudEZpbGVJbmRleCA9IGluZGV4XCI+XG4gICAgIDxkaXYgY2xhc3M9XCJyb3dcIj4gPCEtLSAoY2xpY2spPVwidmlld0ZpbGUoZWFjaEZpbGUpXCIgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGVhY2hGaWxlPy5uYW1lKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O2hlaWdodDogNDBweDtcIj5cbiAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCI+XG4gICAgICAgIHt7ZWFjaEZpbGU/Lm5hbWV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRfZGVsZXRlXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoY3VycmVudEZpbGVJbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9iaW4uc3ZnXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbS1iLTMwIHRleHQtY2VudGVyXCIgKm5nSWY9XCJjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPT09IDAgJiYgaXNTaG93Tm9GaWxlSWNvblwiPlxuICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb2wtbGctNlwiIHN0eWxlPVwicGFkZGluZzowO21hcmdpbi10b3A6IDEwcHg7XCI+XG4gIDxsYWJlbCBjbGFzcz1cImN1c3RvbS1maWxlXCIgKm5nSWY9XCJpc0RlbGV0ZUZpbGVCdXR0b25WaXNpYmxlXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNoZS1idG4tcHJpbWFyeS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6Mjc1cHg7XCIgKGNsaWNrKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tZGlzYWJsZWQnOiBjb3B5T2ZJbnB1dEFsbEZpbGVzPy5sZW5ndGggPj0gY29weU9mRmlsZVVwbG9hZGluZ0xpbWl0IH1cIiBbZGlzYWJsZWRdPVwiY29weU9mSW5wdXRBbGxGaWxlcz8ubGVuZ3RoID49IGNvcHlPZkZpbGVVcGxvYWRpbmdMaW1pdFwiXG4gICAgPkNob29zZVxuICAgICAgZmlsZXM8L2J1dHRvbj5cblxuICAgIDxpbnB1dCBpZD0nZmlsZVVwbG9hZCcgdHlwZT1cImZpbGVcIiBpZD1cImZpbGVVcGxvYWRcIiBuYW1lPVwiZmlsZVVwbG9hZFwiIG11bHRpcGxlPVwibXVsdGlwbGVcIiBhY2NlcHQ9XCIqXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCJcbiAgICAoY2hhbmdlKSA9IHVwbG9hZE11bHRpcGxlRmlsZXMoJGV2ZW50KVxuICAgIC8+XG4gIDwvbGFiZWw+XG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJlcnJvci1tc2dcIiAqbmdJZj1cIihmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy50b3VjaGVkIHx8ICAgICAgICBmb3JtQ29udHJvbD8uZG9jdW1lbnRzPy5kaXJ0eSkgJiZcbiAgZm9ybUNvbnRyb2w/LmRvY3VtZW50cz8uZXJyb3JzPy5yZXF1aXJlZFwiPlxuICAgIHt7TE1fUE9MSUNZX1ZBTElEQVRJT05fTUVTU0FHRS5SRVFVSVJFRH19XG4gIDwvc3Bhbj4gLS0+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/shared.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class FileViewComponent {
|
|
6
|
+
SharedService;
|
|
7
|
+
documentData;
|
|
8
|
+
api;
|
|
9
|
+
constructor(SharedService) {
|
|
10
|
+
this.SharedService = SharedService;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
viewDoc(link) {
|
|
15
|
+
/*
|
|
16
|
+
Author: Vinay Jadhav
|
|
17
|
+
@description: This function will view the file from azure blob.
|
|
18
|
+
The link passed as a parameter will extract file name and pass it to the service
|
|
19
|
+
@param link: It will accept a doc link
|
|
20
|
+
@return: It will not return anything but it will either show or download the file.
|
|
21
|
+
*/
|
|
22
|
+
if (link && link !== null) {
|
|
23
|
+
this.SharedService.processViewFile(link.split('/').pop(), this.api);
|
|
24
|
+
}
|
|
25
|
+
// window.open(environment.api.substring(0, environment.api.length - 1) + link, '_blank');
|
|
26
|
+
}
|
|
27
|
+
getDocIcon(docName) {
|
|
28
|
+
const ext = docName.split('.').pop(-1);
|
|
29
|
+
return this.SharedService.docIcon(ext);
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileViewComponent, deps: [{ token: i1.SharedService }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: FileViewComponent, selector: "app-file-view", inputs: { documentData: "documentData", api: "api" }, ngImport: i0, template: "<div class=\"col-lg-12\">\n <div class=\"row\" style=\"text-align: left;\">\n <div class=\"col-md-12\">\n <label class=\"she-label attachment\">Attachment</label>\n </div>\n </div>\n <div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of documentData;let i = index;\" style=\"margin-bottom: 10px;\">\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{file?.name}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"documentData?.length === 0\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n </div>\n ", styles: [".document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileViewComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'app-file-view', template: "<div class=\"col-lg-12\">\n <div class=\"row\" style=\"text-align: left;\">\n <div class=\"col-md-12\">\n <label class=\"she-label attachment\">Attachment</label>\n </div>\n </div>\n <div class=\"row\" style=\"margin: 0;\">\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of documentData;let i = index;\" style=\"margin-bottom: 10px;\">\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\n <div class=\"col-lg-3 document_image\">\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\n </div>\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\n {{file?.name}}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-12 m-b-30 text-center\" *ngIf=\"documentData?.length === 0\">\n <img src=\"https://rnxt.s3.amazonaws.com/Icons/fileTypeIcons/ic_no_attachments.svg\" style=\"height: 140px;\">\n </div>\n </div>\n ", styles: [".document-cnt{border:1px solid #48B7FF;border-radius:5px;margin-right:30px}.document_image{background:#48B7FF66;padding:10px}.document_name{padding:15px 5px}.document_delete{position:absolute;background:#C20808;display:block;height:30px;width:30px;border-radius:50px;bottom:32px;right:-15px;cursor:pointer}.document_delete img{position:relative;left:8px;top:3px}\n"] }]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.SharedService }]; }, propDecorators: { documentData: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], api: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtdmlldy9maWxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS12aWV3L2ZpbGUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8saUJBQWlCO0lBSVI7SUFIWCxZQUFZLENBQUM7SUFDYixHQUFHLENBQUM7SUFFYixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFJLENBQUM7SUFFckQsUUFBUTtJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSTtRQUNUOzs7Ozs7T0FNRDtRQUNELElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEU7UUFDQywwRkFBMEY7SUFDNUYsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFPO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQTFCVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiwyR0NSOUIsOGpDQXNCRTs7NEZEZFcsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7b0dBS2hCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkb2N1bWVudERhdGE7XG4gIEBJbnB1dCgpIGFwaTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIFNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgdmlld0RvYyhsaW5rKSB7XG4gICAgIC8qXG4gICAgQXV0aG9yOiBWaW5heSBKYWRoYXZcbiAgICBAZGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gd2lsbCB2aWV3IHRoZSBmaWxlIGZyb20gYXp1cmUgYmxvYi5cbiAgICAgICAgICAgICAgICAgIFRoZSBsaW5rIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB3aWxsIGV4dHJhY3QgZmlsZSBuYW1lIGFuZCBwYXNzIGl0IHRvIHRoZSBzZXJ2aWNlXG4gICAgQHBhcmFtIGxpbms6IEl0IHdpbGwgYWNjZXB0IGEgZG9jIGxpbmtcbiAgICBAcmV0dXJuOiBJdCB3aWxsIG5vdCByZXR1cm4gYW55dGhpbmcgYnV0IGl0IHdpbGwgZWl0aGVyIHNob3cgb3IgZG93bmxvYWQgdGhlIGZpbGUuXG4gICovXG4gICBpZiAobGluayAmJiBsaW5rICE9PSBudWxsKSB7XG4gICAgdGhpcy5TaGFyZWRTZXJ2aWNlLnByb2Nlc3NWaWV3RmlsZShsaW5rLnNwbGl0KCcvJykucG9wKCksdGhpcy5hcGkpO1xuICB9XG4gICAgLy8gd2luZG93Lm9wZW4oZW52aXJvbm1lbnQuYXBpLnN1YnN0cmluZygwLCBlbnZpcm9ubWVudC5hcGkubGVuZ3RoIC0gMSkgKyBsaW5rLCAnX2JsYW5rJyk7XG4gIH1cblxuICBnZXREb2NJY29uKGRvY05hbWUpIHtcbiAgICBjb25zdCBleHQgPSBkb2NOYW1lLnNwbGl0KCcuJykucG9wKC0xKTtcbiAgICByZXR1cm4gdGhpcy5TaGFyZWRTZXJ2aWNlLmRvY0ljb24oZXh0KTtcbiAgfVxuXG4gIFxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwic2hlLWxhYmVsIGF0dGFjaG1lbnRcIj5BdHRhY2htZW50PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbjogMDtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50LWNudFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGRvY3VtZW50RGF0YTtsZXQgaSA9IGluZGV4O1wiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAoY2xpY2spPVwidmlld0RvYyhmaWxlPy5kb2MpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MzVweDtcIj5cbiAgICAgICAgICAgICAgICAgICAge3tmaWxlPy5uYW1lfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG0tYi0zMCB0ZXh0LWNlbnRlclwiICpuZ0lmPVwiZG9jdW1lbnREYXRhPy5sZW5ndGggPT09IDBcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9ybnh0LnMzLmFtYXpvbmF3cy5jb20vSWNvbnMvZmlsZVR5cGVJY29ucy9pY19ub19hdHRhY2htZW50cy5zdmdcIiBzdHlsZT1cImhlaWdodDogMTQwcHg7XCI+XG4gIDwvZGl2PlxuICA8L2Rpdj5cbiAgIl19
|