1import { 2 APIRoutes, 3 AppService, 4 CommanService, 5 HttpClient, 6 Injectable, 7 LocalStorageService, 8 ToastrService, 9 customStorage, 10 setClassMetadata, 11 validationMessage, 12 ɵɵdefineInjectable, 13 ɵɵinject 14} from "./chunk-3EH6P36B.js"; 15import { 16 __async 17} from "./chunk-O3IXIRTK.js"; 18 19// src/app/shared/services/file-upload.service.ts 20var _FileUploadService = class _FileUploadService { 21 constructor(http, toaster, commonService, sessData, apiservice) { 22 this.http = http; 23 this.toaster = toaster; 24 this.commonService = commonService; 25 this.sessData = sessData; 26 this.apiservice = apiservice; 27 this.validationMessage = validationMessage; 28 this.AllFiles = []; 29 this.uploadedDocuments = []; 30 this.DocumentList = []; 31 this.customStorage = customStorage; 32 } 33 ngOnInit() { 34 this.userDataByLogin(); 35 } 36 userDataByLogin() { 37 this.userData = this.sessData.getData(this.customStorage.sessionKeys.sessionData) ? JSON.parse(this.sessData.getData(this.customStorage.sessionKeys.sessionData)) : {}; 38 } 39 deleteFile(id) { 40 return __async(this, null, function* () { 41 const response = yield this.apiservice.updateFileService(APIRoutes.DocumentUploadFile + "/" + id).toPromise(); 42 return response; 43 }); 44 } 45 /** Upload functionality impletement in portal */ 46 uploadFile(event, screenName, screenSectionName) { 47 return __async(this, null, function* () { 48 this.userDataByLogin(); 49 let formData = new FormData(); 50 let files = event?.target?.files; 51 if (files) { 52 for (let i = 0; i < files.length; i++) { 53 this.DocumentList.push({ 54 "formFile": files[i], 55 "documentId": 0, 56 "documentName": files[i].name, 57 "documentDisplayName": files[i].name, 58 "documentTypeDetailId": 0, 59 "screenName": screenName, 60 "screenSectionName": screenSectionName, 61 "documentSequence": i 62 }); 63 } 64 } 65 formData.append("inputParameters[0].formFile", this.DocumentList[0].formFile); 66 formData.append("inputParameters[0].documentId", this.DocumentList[0].documentId); 67 formData.append("inputParameters[0].documentName", this.DocumentList[0].documentName); 68 formData.append("inputParameters[0].documentDisplayName", this.DocumentList[0].documentName); 69 formData.append("inputParameters[0].screenName", this.DocumentList[0].screenName); 70 formData.append("inputParameters[0].screenSectionName", this.DocumentList[0].screenSectionName); 71 formData.append("inputParameters[0].documentSequence", this.DocumentList[0].documentSequence); 72 try { 73 const response = yield this.apiservice.postService(APIRoutes.DocumentUploadFile, formData).toPromise(); 74 this.uploadDocumentId = response?.data?.responseId; 75 this.DocumentList = []; 76 return this.uploadDocumentId; 77 } catch (error) { 78 this.DocumentList = []; 79 return 0; 80 } 81 }); 82 } 83 /** Upload file validation */ 84 fileValidationRule(event, files, allowedUploadFileType, maxSize) { 85 validationMessage.maximumFileSize = maxSize == void 0 || !maxSize ? validationMessage.maximumFileSize : maxSize; 86 const forbiddenPattern = /\.\.|\/|\\|%00|\%/; 87 if (files) { 88 for (let i = 0; i < files.length; i++) { 89 let selectedFile = files[i]; 90 if (!allowedUploadFileType.includes(selectedFile["name"].split(".").pop())) { 91 event.target.value = null; 92 this.commonService.notification(validationMessage.toasterClass.warning, `${validationMessage.common.documentformat} - ${allowedUploadFileType}.`); 93 return false; 94 } 95 if (selectedFile["size"] / 1024 / 1024 > validationMessage.maximumFileSize) { 96 event.target.value = null; 97 this.commonService.notification(this.validationMessage.toasterClass.warning, `${this.validationMessage.common.FileSizeErrorMesage} ${validationMessage.maximumFileSize} MB.`); 98 return false; 99 } 100 if (selectedFile["name"].length > validationMessage.fileNameSize) { 101 event.target.value = null;
102 this.commonService.notification(this.validationMessage.toasterClass.warning, this.validationMessage.common.FilenameExceedErrorMesage); 103 return false; 104 } 105 if (forbiddenPattern.test(selectedFile["name"])) { 106 event.target.value = null; 107 this.commonService.notification(this.validationMessage.toasterClass.warning, this.validationMessage.common.MaliciousFilenameErrorMesage); 108 return false; 109 } 110 let MIMEType = this.getMimeType(allowedUploadFileType); 111 if (!MIMEType.includes(selectedFile["type"])) { 112 event.target.value = null; 113 this.commonService.notification(this.validationMessage.toasterClass.warning, this.validationMessage.common.MaliciousFilenameErrorMesage); 114 return false; 115 } 116 const matches = selectedFile["name"].match(/\./g); 117 if (matches?.length > 1) { 118 event.target.value = null; 119 this.commonService.notification(this.validationMessage.toasterClass.warning, this.validationMessage.common.MaliciousFilenameErrorMesage); 120 return false; 121 } 122 return true; 123 } 124 return true; 125 } else { 126 return false; 127 } 128 } 129 getMimeType(fileFormatArray) { 130 let MIMEType = []; 131 fileFormatArray.forEach((element) => { 132 switch (element) { 133 case "pdf": 134 MIMEType.push("application/pdf"); 135 break; 136 case "jpg": 137 MIMEType.push("image/jpg"); 138 break; 139 case "jpeg": 140 MIMEType.push("image/jpeg"); 141 break; 142 case "png": 143 MIMEType.push("image/png"); 144 break; 145 case "xls": 146 MIMEType.push("application/vnd.ms-excel"); 147 break; 148 case "xlsx": 149 MIMEType.push("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 150 break; 151 case "doc": 152 MIMEType.push("application/msword"); 153 break; 154 case "docx": 155 MIMEType.push("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); 156 break; 157 default: 158 break; 159 } 160 }); 161 return MIMEType; 162 } 163 uploadWebsiteFileForOnlyAchiverP(events, responseId, tableName, screenName, screenSectionName, isActive = true, isDocumentVerified) { 164 return __async(this, null, function* () { 165 this.userDataByLogin(); 166 let formData = new FormData(); 167 if (events && events?.length > 0) { 168 events.forEach((x, index) => { 169 screenSectionName = Object.keys(x)[0]; 170 let event = x[screenSectionName]; 171 let files = event?.target?.files; 172 if (files) { 173 let documentId = 0; 174 let documentSequence = 0; 175 for (let i = 0; i < files.length; i++) { 176 formData.append(`inputParameters[${index * files.length + i}].formFile`, files[i]); 177 formData.append(`inputParameters[${index * files.length + i}].documentId`, documentId); 178 formData.append(`inputParameters[${index * files.length + i}].documentName`, files[i].name); 179 formData.append(`inputParameters[${index * files.length + i}].documentDisplayName`, files[i].name); 180 formData.append(`inputParameters[${index * files.length + i}].screenName`, screenName); 181 formData.append(`inputParameters[${index * files.length + i}].screenSectionName`, screenSectionName); 182 formData.append(`inputParameters[${index * files.length + i}].documentSequence`, documentSequence); 183 formData.append(`inputParameters[${index * files.length + i}].tableName`, tableName?.toLowerCase()); 184 formData.append(`inputParameters[${index * files.length + i}].tablePrimaryKey`, responseId); 185 formData.append(`inputParameters[${index * files.length + i}].isActive`, isActive); 186 formData.append(`inputParameters[${index * files.length + i}].isDocumentVerified`, isDocumentVerified); 187 } 188 } 189 }); 190 } else { 191 let event = events; 192 let files = event?.target?.files; 193 if (files) { 194 let documentId = 0; 195 let documentSequence = 0; 196 for (let i = 0; i < files.length; i++) { 197 formData.append(`inputParameters[${i}].formFile`, files[i]); 198 formData.append(`inputParameters[${i}].documentId`, documentId); 199 formData.append(`inputParameters[${i}].documentName`, files[i].name); 200 formData.append(`inputParameters[${i}].documentDisplayName`, files[i].name); 201 formData.append(`inputParameters[${i}].screenName`, screenName); 202 formData.append(`inputParameters[${i}].screenSectionName`, screenSectionName); 203 formData.append(`inputParameters[${i}].documentSequence`, documentSequence); 204 formData.append(`inputParameters[${i}].tableName`, tableName?.toLowerCase()); 205 formData.append(`inputParameters[${i}].tablePrimaryKey`, responseId); 206 formData.append(`inputParameters[${i}].isActive`, isActive); 207 formData.append(`inputParameters[${i}].isDocumentVerified`, isDocumentVerified); 208 } 209 } 210 }
211 try { 212 const response = yield this.apiservice.postWebsiteFileService(APIRoutes.DocumentUploadFile, formData).toPromise(); 213 return response; 214 } catch (error) { 215 } 216 }); 217 } 218 /** Upload functionality impletement in website */ 219 uploadWebsiteFile(events, responseId, tableName, screenName, screenSectionName, isActive = true) { 220 return __async(this, null, function* () { 221 this.userDataByLogin(); 222 let formData = new FormData(); 223 if (events && events?.length > 0) { 224 events.forEach((x, index) => { 225 screenSectionName = Object.keys(x)[0]; 226 let event = x[screenSectionName]; 227 let files = event?.target?.files; 228 if (files) { 229 let documentId = 0; 230 let documentSequence = 0; 231 for (let i = 0; i < files.length; i++) { 232 formData.append(`inputParameters[${index * files.length + i}].formFile`, files[i]); 233 formData.append(`inputParameters[${index * files.length + i}].documentId`, documentId); 234 formData.append(`inputParameters[${index * files.length + i}].documentName`, files[i].name); 235 formData.append(`inputParameters[${index * files.length + i}].documentDisplayName`, files[i].name); 236 formData.append(`inputParameters[${index * files.length + i}].screenName`, screenName); 237 formData.append(`inputParameters[${index * files.length + i}].screenSectionName`, screenSectionName); 238 formData.append(`inputParameters[${index * files.length + i}].documentSequence`, documentSequence); 239 formData.append(`inputParameters[${index * files.length + i}].tableName`, tableName?.toLowerCase()); 240 formData.append(`inputParameters[${index * files.length + i}].tablePrimaryKey`, responseId); 241 formData.append(`inputParameters[${index * files.length + i}].isActive`, isActive); 242 } 243 } 244 }); 245 } else { 246 let event = events; 247 let files = event?.target?.files; 248 if (files) { 249 let documentId = 0; 250 let documentSequence = 0; 251 for (let i = 0; i < files.length; i++) { 252 formData.append(`inputParameters[${i}].formFile`, files[i]); 253 formData.append(`inputParameters[${i}].documentId`, documentId); 254 formData.append(`inputParameters[${i}].documentName`, files[i].name); 255 formData.append(`inputParameters[${i}].documentDisplayName`, files[i].name); 256 formData.append(`inputParameters[${i}].screenName`, screenName); 257 formData.append(`inputParameters[${i}].screenSectionName`, screenSectionName); 258 formData.append(`inputParameters[${i}].documentSequence`, documentSequence); 259 formData.append(`inputParameters[${i}].tableName`, tableName?.toLowerCase()); 260 formData.append(`inputParameters[${i}].tablePrimaryKey`, responseId); 261 formData.append(`inputParameters[${i}].isActive`, isActive); 262 } 263 } 264 } 265 try { 266 const response = yield this.apiservice.postWebsiteFileService(APIRoutes.DocumentUploadFile, formData).toPromise(); 267 return response; 268 } catch (error) { 269 } 270 }); 271 } 272}; 273_FileUploadService.\u0275fac = function FileUploadService_Factory(__ngFactoryType__) { 274 return new (__ngFactoryType__ || _FileUploadService)(\u0275\u0275inject(HttpClient), \u0275\u0275inject(ToastrService), \u0275\u0275inject(CommanService), \u0275\u0275inject(LocalStorageService), \u0275\u0275inject(AppService)); 275}; 276_FileUploadService.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _FileUploadService, factory: _FileUploadService.\u0275fac, providedIn: "root" }); 277var FileUploadService = _FileUploadService; 278(() => { 279 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(FileUploadService, [{ 280 type: Injectable, 281 args: [{ 282 providedIn: "root" 283 }] 284 }], () => [{ type: HttpClient }, { type: ToastrService }, { type: CommanService }, { type: LocalStorageService }, { type: AppService }], null); 285})(); 286 287export { 288 FileUploadService 289};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.