PageSourceSearch

https://irsofficersonline.gov.in/chunk-O4IVKGM5.js

js irsofficersonline.gov.in collected 2026-10-02 12:59:39 UTC 13,394 bytes, 289 lines download raw bytes

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.