@idsoftsource/initial-process 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1461,11 +1461,11 @@ class StepperComponent {
1461
1461
  }
1462
1462
  }
1463
1463
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, deps: [{ token: CredentialingStore }], target: i0.ɵɵFactoryTarget.Component });
1464
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperComponent, isStandalone: false, selector: "app-stepper", ngImport: i0, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:100%;display:flex}.stepper-wrapper .tabs .tab{padding:15px 30.4px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}@media screen and (max-width: 767px){.stepper-wrapper .tabs{width:100%;display:flex;flex-direction:column}.stepper-wrapper .step-count{width:100%;padding:8px}}\n"], dependencies: [{ kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1464
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperComponent, isStandalone: false, selector: "app-stepper", ngImport: i0, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:100%;display:flex}.stepper-wrapper .tabs .tab{padding:15px 30.4px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}@media screen and (max-width: 767px){.stepper-wrapper .tabs{width:100%;display:flex;flex-direction:column}.stepper-wrapper .step-count{width:100%;padding:8px}}.tab.active{background-color:#7a94ac!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1465
1465
  }
1466
1466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, decorators: [{
1467
1467
  type: Component,
1468
- args: [{ selector: 'app-stepper', standalone: false, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:100%;display:flex}.stepper-wrapper .tabs .tab{padding:15px 30.4px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}@media screen and (max-width: 767px){.stepper-wrapper .tabs{width:100%;display:flex;flex-direction:column}.stepper-wrapper .step-count{width:100%;padding:8px}}\n"] }]
1468
+ args: [{ selector: 'app-stepper', standalone: false, template: "<div class=\"stepper-wrapper\">\r\n <div class=\"tabs\">\r\n <div\r\n *ngFor=\"let step of steps; let i = index\"\r\n class=\"tab\"\r\n [class.active]=\"store.currentStep() === i + 1\"\r\n [class.completed]=\"store.currentStep() > i + 1\"\r\n (click)=\"goToStep(i)\"\r\n >\r\n {{ step }}\r\n </div>\r\n <div class=\"align-items-center d-flex step-count\">\r\n Step {{ store.currentStep() }}/{{ steps.length }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".stepper-wrapper{display:flex;align-items:center}.stepper-wrapper .tabs{width:100%;display:flex}.stepper-wrapper .tabs .tab{padding:15px 30.4px;cursor:pointer;background-color:#f1f4fa;color:#4077ad;font-weight:500;transition:all .3s;text-align:center}.stepper-wrapper .tabs .tab.active,.stepper-wrapper .tabs .tab.completed{background-color:#4077ad;color:#fff}.stepper-wrapper .step-count{font-weight:500;color:#fff;background:#4077ad;width:10%;justify-content:center}@media screen and (max-width: 767px){.stepper-wrapper .tabs{width:100%;display:flex;flex-direction:column}.stepper-wrapper .step-count{width:100%;padding:8px}}.tab.active{background-color:#7a94ac!important;color:#fff!important}\n"] }]
1469
1469
  }], ctorParameters: () => [{ type: CredentialingStore }] });
1470
1470
 
1471
1471
  const STORAGE_KEY = 'profile_full_state';
@@ -2177,16 +2177,21 @@ class EducationComponent {
2177
2177
  this.fileChanged);
2178
2178
  }
2179
2179
  removeFile() {
2180
- // clear selected/new file
2180
+ // clear selected file
2181
2181
  this.fileData = null;
2182
- // clear UI name
2182
+ // clear UI
2183
2183
  this.fileName = null;
2184
- // mark file as changed (IMPORTANT for API trigger)
2185
- this.fileChanged = true;
2186
- // clear existing file from model (this will send null to backend)
2184
+ // clear model
2187
2185
  this.model.fileId = null;
2188
2186
  this.model.fileUrl = null;
2189
2187
  this.model.fileName = null;
2188
+ // ✅ clear input value (IMPORTANT FIX)
2189
+ const fileInput = document.querySelector('input[type="file"]');
2190
+ if (fileInput) {
2191
+ fileInput.value = '';
2192
+ }
2193
+ // mark as changed
2194
+ this.fileChanged = true;
2190
2195
  }
2191
2196
  saveFile() {
2192
2197
  if (this.educationForm.invalid) {
@@ -2486,7 +2491,9 @@ class UserDocumentService {
2486
2491
  return this.httpClient.put(`${this.baseUrl}/UpdateUserDocument`, model);
2487
2492
  }
2488
2493
  getUserDocument(query) {
2489
- return this.httpClient.get(`${this.baseUrl}/GetUserDocument`);
2494
+ return this.httpClient.get(`${this.baseUrl}/GetUserDocument`, {
2495
+ params: this.buildParams(query)
2496
+ });
2490
2497
  }
2491
2498
  buildParams(query) {
2492
2499
  let params = new HttpParams();
@@ -2532,7 +2539,7 @@ class CertificationStore {
2532
2539
  page: 1,
2533
2540
  pageSize: 10,
2534
2541
  orderBy: 'createdDateTime asc',
2535
- filter: `mainType=2,userId=${userId}`,
2542
+ filter: `mainType=2`,
2536
2543
  };
2537
2544
  this.userDocumentService
2538
2545
  .getUserDocument(query)
@@ -2699,6 +2706,10 @@ class CertificationComponent {
2699
2706
  this.certificateForm.markAllAsTouched();
2700
2707
  return;
2701
2708
  }
2709
+ if (!this.selectedDocumentId) {
2710
+ console.log('No document selected');
2711
+ return;
2712
+ }
2702
2713
  // ✅ STOP unnecessary API
2703
2714
  if (this.editingIndex >= 0 && !this.hasChanges()) {
2704
2715
  console.log('No changes → API skipped');
@@ -2754,12 +2765,21 @@ class CertificationComponent {
2754
2765
  }
2755
2766
  }
2756
2767
  removeFile() {
2768
+ // clear selected file
2757
2769
  this.fileData = null;
2770
+ // clear UI
2758
2771
  this.fileName = null;
2772
+ // clear model
2759
2773
  this.model.fileId = null;
2760
2774
  this.model.fileUrl = null;
2761
2775
  this.model.fileName = null;
2762
- this.fileChanged = true; // mark change
2776
+ // clear input value (IMPORTANT FIX)
2777
+ const fileInput = document.querySelector('input[type="file"]');
2778
+ if (fileInput) {
2779
+ fileInput.value = '';
2780
+ }
2781
+ // mark as changed
2782
+ this.fileChanged = true;
2763
2783
  }
2764
2784
  hasChanges() {
2765
2785
  const current = this.certificateForm.getRawValue();
@@ -3630,6 +3650,7 @@ class SkillsComponent {
3630
3650
  const saved = profileSignal();
3631
3651
  this.userdata = saved;
3632
3652
  console.log(this.userdata);
3653
+ this.user = this.userService.getUserDetails();
3633
3654
  this.userId = await this.tokenService?.getUserId();
3634
3655
  this.emailId = await this.tokenService?.getUserEmail();
3635
3656
  this.showForm = false;
@@ -4155,6 +4176,10 @@ class LicensesComponent {
4155
4176
  this.certificateForm.markAllAsTouched();
4156
4177
  return;
4157
4178
  }
4179
+ if (!this.selectedDocumentId) {
4180
+ console.log('No document selected');
4181
+ return;
4182
+ }
4158
4183
  // ✅ SKIP API if no changes
4159
4184
  if (this.editingIndex >= 0 && !this.hasChanges()) {
4160
4185
  console.log('No changes → API skipped');
@@ -4213,11 +4238,20 @@ class LicensesComponent {
4213
4238
  }
4214
4239
  }
4215
4240
  removeFile() {
4241
+ // clear selected file
4216
4242
  this.fileData = null;
4243
+ // clear UI
4217
4244
  this.fileName = null;
4245
+ // clear model
4218
4246
  this.model.fileId = null;
4219
4247
  this.model.fileUrl = null;
4220
4248
  this.model.fileName = null;
4249
+ // ✅ clear input value (IMPORTANT FIX)
4250
+ const fileInput = document.querySelector('input[type="file"]');
4251
+ if (fileInput) {
4252
+ fileInput.value = '';
4253
+ }
4254
+ // mark as changed
4221
4255
  this.fileChanged = true;
4222
4256
  }
4223
4257
  hasChanges() {
@@ -28723,7 +28757,12 @@ class WorkexperienceComponent {
28723
28757
  this.model.fileId = null;
28724
28758
  this.model.fileUrl = null;
28725
28759
  this.model.fileName = null;
28726
- // ✅ IMPORTANT: mark as changed
28760
+ // ✅ clear input value (IMPORTANT FIX)
28761
+ const fileInput = document.querySelector('input[type="file"]');
28762
+ if (fileInput) {
28763
+ fileInput.value = '';
28764
+ }
28765
+ // mark as changed
28727
28766
  this.fileChanged = true;
28728
28767
  }
28729
28768
  edit(index) {