ng-ipa-library 6.2.29 → 7.0.0

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.
Files changed (44) hide show
  1. package/fesm2022/ng-ipa-library.mjs +125 -246
  2. package/fesm2022/ng-ipa-library.mjs.map +1 -1
  3. package/index.d.ts +568 -5
  4. package/package.json +8 -13
  5. package/src/lib/assets/ngIPAStyle.scss +0 -51
  6. package/lib/core/components/loading/loading.component.d.ts +0 -13
  7. package/lib/core/interceptors/error.interceptor.d.ts +0 -12
  8. package/lib/core/interceptors/loading.interceptor.d.ts +0 -14
  9. package/lib/core/interceptors/myIPAToken.interceptor.d.ts +0 -14
  10. package/lib/core/interceptors/token.interceptor.d.ts +0 -19
  11. package/lib/core/services/auth.service.d.ts +0 -18
  12. package/lib/core/services/error.service.d.ts +0 -19
  13. package/lib/core/services/loader.service.d.ts +0 -12
  14. package/lib/core/services/token.service.d.ts +0 -10
  15. package/lib/generate-form/generate-form.component.d.ts +0 -35
  16. package/lib/ipa-form/datepicker/datepicker.component.d.ts +0 -46
  17. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +0 -7
  18. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +0 -10
  19. package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +0 -10
  20. package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +0 -7
  21. package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +0 -42
  22. package/lib/ipa-form/file-upload/file-upload.component.d.ts +0 -47
  23. package/lib/ipa-form/file-upload/models/files.d.ts +0 -4
  24. package/lib/ipa-form/ipa-form.service.d.ts +0 -52
  25. package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +0 -22
  26. package/lib/ipa-form/text-input/text-input.component.d.ts +0 -36
  27. package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +0 -33
  28. package/lib/models/apiException.d.ts +0 -5
  29. package/lib/models/apiResponse.d.ts +0 -5
  30. package/lib/models/breadcrumbs.model.d.ts +0 -4
  31. package/lib/models/decodedToken.model.d.ts +0 -6
  32. package/lib/models/exceptionUrl.model.d.ts +0 -4
  33. package/lib/models/generateForm.model.d.ts +0 -31
  34. package/lib/models/pagedResult.d.ts +0 -4
  35. package/lib/models/user.model.d.ts +0 -7
  36. package/lib/ng-ipa-library.module.d.ts +0 -25
  37. package/lib/pipes/hijri-date.pipe.d.ts +0 -7
  38. package/lib/pipes/pipes.module.d.ts +0 -7
  39. package/lib/services/breadcrumbs.service.d.ts +0 -18
  40. package/lib/services/breadcrumbsV2.service.d.ts +0 -19
  41. package/lib/services/common.service.d.ts +0 -11
  42. package/lib/share-button/share-button.component.d.ts +0 -19
  43. package/lib/share-button/share-button.module.d.ts +0 -13
  44. package/public-api.d.ts +0 -33
@@ -1,4 +1,4 @@
1
- import * as i2$2 from '@angular/common';
1
+ import * as i3 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Pipe, NgModule, Injectable, Input, ViewChild, Self, Component, ElementRef, EventEmitter, Output } from '@angular/core';
@@ -7,27 +7,18 @@ import { UntypedFormControl, Validators, UntypedFormArray, UntypedFormGroup, For
7
7
  import * as i1 from 'ngx-toastr';
8
8
  import { ToastrModule } from 'ngx-toastr';
9
9
  export * from 'ngx-toastr';
10
- import * as i3 from 'ngx-dropzone-wrapper';
10
+ import * as i3$1 from 'ngx-dropzone-wrapper';
11
11
  import { DropzoneDirective, DropzoneModule } from 'ngx-dropzone-wrapper';
12
- import * as i2$3 from 'ngx-captcha';
12
+ import * as i2$2 from 'ngx-captcha';
13
13
  import { NgxCaptchaModule } from 'ngx-captcha';
14
14
  import momentHijri from 'moment-hijri';
15
15
  import * as i2 from '@ng-bootstrap/ng-bootstrap';
16
16
  import { NgbDatepickerI18n, NgbCalendarIslamicUmalqura, NgbCalendar, NgbCalendarGregorian, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
17
17
  export * from '@ng-bootstrap/ng-bootstrap';
18
- import * as i5 from '@ng-select/ng-select';
19
18
  import { NgSelectModule } from '@ng-select/ng-select';
20
19
  export * from '@ng-select/ng-select';
21
- import * as i4 from '@angular/cdk/overlay';
22
- import { OverlayModule } from '@angular/cdk/overlay';
23
20
  import { BehaviorSubject, Observable, throwError } from 'rxjs';
24
- import * as i1$1 from '@fortawesome/angular-fontawesome';
25
- import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
26
- import { fas } from '@fortawesome/free-solid-svg-icons';
27
- import { ShareIconsModule } from 'ngx-sharebuttons/icons';
28
- import * as i2$4 from 'ngx-sharebuttons/popup';
29
- import { ShareButtonsPopupModule } from 'ngx-sharebuttons/popup';
30
- import * as i2$5 from '@angular/common/http';
21
+ import * as i2$3 from '@angular/common/http';
31
22
  import { HttpResponse } from '@angular/common/http';
32
23
  import { catchError } from 'rxjs/operators';
33
24
 
@@ -36,10 +27,10 @@ class HijriDatePipe {
36
27
  momentHijri.locale(lang);
37
28
  return momentHijri(date).format(format);
38
29
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HijriDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
40
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: HijriDatePipe, isStandalone: false, name: "hijriDate" }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
31
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: HijriDatePipe, isStandalone: false, name: "hijriDate" }); }
41
32
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HijriDatePipe, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatePipe, decorators: [{
43
34
  type: Pipe,
44
35
  args: [{
45
36
  name: 'hijriDate',
@@ -48,11 +39,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
48
39
  }] });
49
40
 
50
41
  class PipesModule {
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
52
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: PipesModule, declarations: [HijriDatePipe], exports: [HijriDatePipe] }); }
53
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PipesModule }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: PipesModule, declarations: [HijriDatePipe], exports: [HijriDatePipe] }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PipesModule }); }
54
45
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PipesModule, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PipesModule, decorators: [{
56
47
  type: NgModule,
57
48
  args: [{
58
49
  declarations: [HijriDatePipe],
@@ -340,10 +331,10 @@ class IPAFormService {
340
331
  return false;
341
332
  }
342
333
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IPAFormService, deps: [{ token: i2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable }); }
344
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IPAFormService, providedIn: 'root' }); }
334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IPAFormService, deps: [{ token: i2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable }); }
335
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IPAFormService, providedIn: 'root' }); }
345
336
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IPAFormService, decorators: [{
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IPAFormService, decorators: [{
347
338
  type: Injectable,
348
339
  args: [{
349
340
  providedIn: 'root',
@@ -355,7 +346,6 @@ class TextInputComponent {
355
346
  this.validationService = validationService;
356
347
  this.controlDir = controlDir;
357
348
  this.cd = cd;
358
- this.isPlatformCodeDesignSystem = false;
359
349
  this.type = 'text';
360
350
  this.required = false;
361
351
  this.onlyNumber = false;
@@ -403,19 +393,17 @@ class TextInputComponent {
403
393
  this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg, this.isArabicForm);
404
394
  return this.errorMsg;
405
395
  }
406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
407
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TextInputComponent, isStandalone: false, selector: "ipa-text-input", inputs: { isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", id: "id", type: "type", label: "label", placeholder: "placeholder", required: "required", patternErrorMsg: "patternErrorMsg", onlyNumber: "onlyNumber", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TextInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
397
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TextInputComponent, isStandalone: false, selector: "ipa-text-input", inputs: { id: "id", type: "type", label: "label", placeholder: "placeholder", required: "required", patternErrorMsg: "patternErrorMsg", onlyNumber: "onlyNumber", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<!-- platform code design system -->\n<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
408
398
  }
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextInputComponent, decorators: [{
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TextInputComponent, decorators: [{
410
400
  type: Component,
411
- args: [{ selector: 'ipa-text-input', standalone: false, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>" }]
401
+ args: [{ selector: 'ipa-text-input', standalone: false, template: "<!-- platform code design system -->\n<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n </div>" }]
412
402
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2$1.NgControl, decorators: [{
413
403
  type: Self
414
404
  }] }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
415
405
  type: ViewChild,
416
406
  args: ['input', { static: true }]
417
- }], isPlatformCodeDesignSystem: [{
418
- type: Input
419
407
  }], id: [{
420
408
  type: Input
421
409
  }], type: [{
@@ -447,7 +435,6 @@ class TextareaInputComponent {
447
435
  this.controlDir = controlDir;
448
436
  this.cd = cd;
449
437
  this.input = new ElementRef(null);
450
- this.isPlatformCodeDesignSystem = false;
451
438
  this.required = false;
452
439
  this.isArabicForm = true;
453
440
  this.formControl = new UntypedFormControl('');
@@ -481,19 +468,17 @@ class TextareaInputComponent {
481
468
  this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg, this.isArabicForm);
482
469
  return this.errorMsg;
483
470
  }
484
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextareaInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TextareaInputComponent, isStandalone: false, selector: "ipa-textarea-input", inputs: { isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", id: "id", label: "label", placeholder: "placeholder", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media (max-width: 1699px){.form-floating label:before{width:107%!important}}@media (max-width: 770px){.form-floating label:before{width:97%!important}}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TextareaInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TextareaInputComponent, isStandalone: false, selector: "ipa-textarea-input", inputs: { id: "id", label: "label", placeholder: "placeholder", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<!-- platform code design system -->\n<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\n (blur)=\"onTouched()\" style=\"height: 135px;\"\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media(max-width:1699px){.form-floating label:before{width:107%!important}}@media(max-width:770px){.form-floating label:before{width:97%!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
486
473
  }
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextareaInputComponent, decorators: [{
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TextareaInputComponent, decorators: [{
488
475
  type: Component,
489
- args: [{ selector: 'ipa-textarea-input', standalone: false, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media (max-width: 1699px){.form-floating label:before{width:107%!important}}@media (max-width: 770px){.form-floating label:before{width:97%!important}}\n"] }]
476
+ args: [{ selector: 'ipa-textarea-input', standalone: false, template: "<!-- platform code design system -->\n<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\n (blur)=\"onTouched()\" style=\"height: 135px;\"\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media(max-width:1699px){.form-floating label:before{width:107%!important}}@media(max-width:770px){.form-floating label:before{width:97%!important}}\n"] }]
490
477
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2$1.NgControl, decorators: [{
491
478
  type: Self
492
479
  }] }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
493
480
  type: ViewChild,
494
481
  args: ['input', { static: true }]
495
- }], isPlatformCodeDesignSystem: [{
496
- type: Input
497
482
  }], id: [{
498
483
  type: Input
499
484
  }], label: [{
@@ -518,7 +503,6 @@ class DropdownInputComponent {
518
503
  constructor(validationService, controlDir) {
519
504
  this.validationService = validationService;
520
505
  this.controlDir = controlDir;
521
- this.isPlatformCodeDesignSystem = false;
522
506
  this.items = [];
523
507
  this.required = false;
524
508
  this.searchable = false;
@@ -536,8 +520,7 @@ class DropdownInputComponent {
536
520
  this.formControl = control;
537
521
  }
538
522
  ngAfterContentChecked() {
539
- if (this.isPlatformCodeDesignSystem)
540
- this.initCustomDropdowns();
523
+ this.initCustomDropdowns();
541
524
  }
542
525
  onChange(event) { }
543
526
  onTouched() { }
@@ -607,12 +590,12 @@ class DropdownInputComponent {
607
590
  }
608
591
  });
609
592
  }
610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
611
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownInputComponent, isStandalone: false, selector: "ipa-dropdown-input", inputs: { id: "id", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", firstItemLabel: "firstItemLabel", searchable: "searchable", notFoundText: "notFoundText", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm", fromGenerateForm: "fromGenerateForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label for=\"select{{id}}\" class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">{{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span (click)=\"dropdownItemClicked(-1)\" class=\"dropdown-item active first-item-{{id}}\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items; let i = index;\">\r\n <span (click)=\"dropdownItemClicked(i)\" class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
593
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropdownInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
594
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DropdownInputComponent, isStandalone: false, selector: "ipa-dropdown-input", inputs: { id: "id", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", firstItemLabel: "firstItemLabel", searchable: "searchable", notFoundText: "notFoundText", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm", fromGenerateForm: "fromGenerateForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<!-- platform code design system -->\n<div class=\"form-group w-100 position-relative {{containerClasses}}\">\n <div class=\"d-flex gap-1 mb-2\">\n <label for=\"select{{id}}\" class=\"form-label mb-0\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n </div>\n <!-- Standard hidden select -->\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n @if (firstItemLabel) {\n <option value=\"\">{{firstItemLabel}}</option>\n }\n @for (item of items; track item) {\n <option\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\n {{textField ? item[textField] : item}}\n </option>\n }\n </select>\n <!-- Custom Dropdown Wrapper -->\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n <span class=\"selected-text\">{{label}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\n @if (firstItemLabel) {\n <li>\n <span (click)=\"dropdownItemClicked(-1)\" class=\"dropdown-item active first-item-{{id}}\" href=\"javascript:void(0);\"\n [attr.data-value]=\"''\">{{firstItemLabel}}\n </span>\n </li>\n }\n @for (item of items; track item; let i = $index) {\n <li>\n <span (click)=\"dropdownItemClicked(i)\" class=\"dropdown-item\" href=\"javascript:void(0);\"\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\n {{textField ? item[textField] : item}}</span>\n </li>\n }\n </ul>\n </div>\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback ms-3\">\n {{errorMsg}}\n </div>\n }\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
612
595
  }
613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownInputComponent, decorators: [{
596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DropdownInputComponent, decorators: [{
614
597
  type: Component,
615
- args: [{ selector: 'ipa-dropdown-input', standalone: false, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label for=\"select{{id}}\" class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">{{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span (click)=\"dropdownItemClicked(-1)\" class=\"dropdown-item active first-item-{{id}}\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items; let i = index;\">\r\n <span (click)=\"dropdownItemClicked(i)\" class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>" }]
598
+ args: [{ selector: 'ipa-dropdown-input', standalone: false, template: "<!-- platform code design system -->\n<div class=\"form-group w-100 position-relative {{containerClasses}}\">\n <div class=\"d-flex gap-1 mb-2\">\n <label for=\"select{{id}}\" class=\"form-label mb-0\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}}</label>\n </div>\n <!-- Standard hidden select -->\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n @if (firstItemLabel) {\n <option value=\"\">{{firstItemLabel}}</option>\n }\n @for (item of items; track item) {\n <option\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\n {{textField ? item[textField] : item}}\n </option>\n }\n </select>\n <!-- Custom Dropdown Wrapper -->\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n <span class=\"selected-text\">{{label}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\n @if (firstItemLabel) {\n <li>\n <span (click)=\"dropdownItemClicked(-1)\" class=\"dropdown-item active first-item-{{id}}\" href=\"javascript:void(0);\"\n [attr.data-value]=\"''\">{{firstItemLabel}}\n </span>\n </li>\n }\n @for (item of items; track item; let i = $index) {\n <li>\n <span (click)=\"dropdownItemClicked(i)\" class=\"dropdown-item\" href=\"javascript:void(0);\"\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\n {{textField ? item[textField] : item}}</span>\n </li>\n }\n </ul>\n </div>\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback ms-3\">\n {{errorMsg}}\n </div>\n }\n</div>" }]
616
599
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2$1.NgControl, decorators: [{
617
600
  type: Self
618
601
  }] }], propDecorators: { input: [{
@@ -621,8 +604,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
621
604
  }], id: [{
622
605
  type: Input,
623
606
  args: [{ required: true }]
624
- }], isPlatformCodeDesignSystem: [{
625
- type: Input
626
607
  }], label: [{
627
608
  type: Input,
628
609
  args: [{ required: true }]
@@ -662,10 +643,10 @@ class LoaderService {
662
643
  addExceptionUrl(url) {
663
644
  this.urls.push(url);
664
645
  }
665
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
666
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoaderService, providedIn: 'root' }); }
646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
647
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoaderService, providedIn: 'root' }); }
667
648
  }
668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoaderService, decorators: [{
649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoaderService, decorators: [{
669
650
  type: Injectable,
670
651
  args: [{
671
652
  providedIn: 'root',
@@ -695,12 +676,12 @@ class LoaderComponent {
695
676
  this.cdr.detectChanges();
696
677
  });
697
678
  }
698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoaderComponent, deps: [{ token: LoaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
699
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LoaderComponent, isStandalone: false, selector: "ipa-loader", inputs: { isLocal: "isLocal" }, ngImport: i0, template: "<div id=\"cover-spin\" *ngIf=\"loading && isLocal\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n", styles: ["#cover-spin{display:flex}\n"], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
679
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoaderComponent, deps: [{ token: LoaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
680
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: LoaderComponent, isStandalone: false, selector: "ipa-loader", inputs: { isLocal: "isLocal" }, ngImport: i0, template: "@if (loading && isLocal) {\n <div id=\"cover-spin\">\n <div class=\"spinner\"></div>\n </div>\n}\n", styles: ["#cover-spin{display:flex}\n"] }); }
700
681
  }
701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoaderComponent, decorators: [{
682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoaderComponent, decorators: [{
702
683
  type: Component,
703
- args: [{ selector: 'ipa-loader', standalone: false, template: "<div id=\"cover-spin\" *ngIf=\"loading && isLocal\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n", styles: ["#cover-spin{display:flex}\n"] }]
684
+ args: [{ selector: 'ipa-loader', standalone: false, template: "@if (loading && isLocal) {\n <div id=\"cover-spin\">\n <div class=\"spinner\"></div>\n </div>\n}\n", styles: ["#cover-spin{display:flex}\n"] }]
704
685
  }], ctorParameters: () => [{ type: LoaderService }, { type: i0.ChangeDetectorRef }], propDecorators: { isLocal: [{
705
686
  type: Input
706
687
  }] } });
@@ -735,10 +716,10 @@ class FileUploadComponent {
735
716
  ngOnInit() {
736
717
  this.setConfiguration();
737
718
  if (this.isArabicForm) {
738
- this.fileMessage = `الحد الأقصى لحجم الملف المسموح به هو ${this.maxFileSize} ميجابايت، وتشمل الصيغ المدعومة ${this.acceptedFiles.replace(',', ' و ')}.`;
719
+ this.fileMessage = `الحد الأقصى لحجم الملف المسموح به هو ${this.maxFileSize} ميجابايت، وتشمل الصيغ المدعومة ${this.formatAcceptedFiles(' و ')}.`;
739
720
  }
740
721
  else {
741
- this.fileMessage = `Maximum file size allowed is ${this.maxFileSize} MB, supported file formats include ${this.acceptedFiles.replace(',', ' and ')}.`;
722
+ this.fileMessage = `Maximum file size allowed is ${this.maxFileSize} MB, supported file formats include ${this.formatAcceptedFiles(' and ')}.`;
742
723
  }
743
724
  }
744
725
  operationCompleted(e) {
@@ -809,6 +790,13 @@ class FileUploadComponent {
809
790
  ? 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من إضافة الملف'
810
791
  : 'Please delete existing files to be able to add this file');
811
792
  }
793
+ formatAcceptedFiles(separator) {
794
+ return this.acceptedFiles
795
+ .split(',')
796
+ .map((fileType) => fileType.trim())
797
+ .filter((fileType) => fileType.length > 0)
798
+ .join(separator);
799
+ }
812
800
  setConfiguration() {
813
801
  this.label = (this.isArabicForm ? 'رفع ' : 'Upload ') + this.label;
814
802
  this.config = {
@@ -835,12 +823,12 @@ class FileUploadComponent {
835
823
  dictRemoveFile: '',
836
824
  };
837
825
  }
838
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
839
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: FileUploadComponent, isStandalone: false, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization", disabled: "disabled" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<!-- <div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\" tabindex=\"0\"\r\n (keydown.enter)=\"onEnterKey($event)\" (keydown.space)=\"onEnterKey($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"text-danger\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}}\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <ng-container *ngFor=\"let file of currentFiles\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.file.name }} <i (click)=\"deleteFile(file.file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <span class=\"text-danger\" style=\"font-size: 12px;\" *>\r\n {{file.error}}\r\n </span>\r\n </ng-container>\r\n</div> -->\r\n@if(multiple === 1) {\r\n<div class=\"file-upload-label\"> {{label}}</div>\r\n<div class=\"file-upload-description\">\r\n {{fileMessage}}\r\n</div>\r\n<div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\r\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\r\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\r\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\r\n</div>\r\n<br><br>\r\n@if (currentFiles.length > 0) {\r\n<ng-container *ngFor=\"let file of currentFiles\">\r\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\r\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\r\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\r\n </div>\r\n @if (file.error) {\r\n <div class=\"flex-wrap-newline\" *ngIf=\"file.error\"></div>\r\n <div class=\"uploaded-helper\">{{file.error}}</div>\r\n }\r\n </div><br><br>\r\n</ng-container>\r\n}\r\n}@else{\r\n<div class=\"file-upload-label form-label\"> {{label}}</div>\r\n<div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\r\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\r\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\r\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\r\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\r\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\r\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\r\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n <div>\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\r\n </div>\r\n <div class=\"multiple-file-upload-text\">\r\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\r\n </div>\r\n <div class=\"multiple-file-upload-description\">\r\n {{fileMessage}}\r\n </div>\r\n <div class=\"tp-link\">\r\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\r\n </div>\r\n</div>\r\n<br>\r\n@if (currentFiles.length > 0) {\r\n<ng-container *ngFor=\"let file of currentFiles\">\r\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\r\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\r\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\r\n </div>\r\n @if (file.error) {\r\n <div class=\"flex-wrap-newline\" *ngIf=\"file.error\"></div>\r\n <div class=\"uploaded-helper\">{{file.error}}</div>\r\n }\r\n </div><br>\r\n</ng-container>\r\n}\r\n}", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }] }); }
826
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
827
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: FileUploadComponent, isStandalone: false, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization", disabled: "disabled" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "@if(multiple === 1) {\n <div class=\"file-upload-label\"> {{label}}</div>\n <div class=\"file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n <br><br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br><br>\n }\n }\n }@else{\n <div class=\"file-upload-label form-label\"> {{label}}</div>\n <div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n <div>\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\n </div>\n <div class=\"multiple-file-upload-text\">\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\n </div>\n <div class=\"multiple-file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"tp-link\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n </div>\n <br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br>\n }\n }\n }", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }] }); }
840
828
  }
841
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FileUploadComponent, decorators: [{
829
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FileUploadComponent, decorators: [{
842
830
  type: Component,
843
- args: [{ selector: 'ipa-file-upload', standalone: false, template: "<!-- <div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\" tabindex=\"0\"\r\n (keydown.enter)=\"onEnterKey($event)\" (keydown.space)=\"onEnterKey($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"text-danger\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}}\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <ng-container *ngFor=\"let file of currentFiles\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.file.name }} <i (click)=\"deleteFile(file.file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <span class=\"text-danger\" style=\"font-size: 12px;\" *>\r\n {{file.error}}\r\n </span>\r\n </ng-container>\r\n</div> -->\r\n@if(multiple === 1) {\r\n<div class=\"file-upload-label\"> {{label}}</div>\r\n<div class=\"file-upload-description\">\r\n {{fileMessage}}\r\n</div>\r\n<div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\r\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\r\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\r\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\r\n</div>\r\n<br><br>\r\n@if (currentFiles.length > 0) {\r\n<ng-container *ngFor=\"let file of currentFiles\">\r\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\r\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\r\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\r\n </div>\r\n @if (file.error) {\r\n <div class=\"flex-wrap-newline\" *ngIf=\"file.error\"></div>\r\n <div class=\"uploaded-helper\">{{file.error}}</div>\r\n }\r\n </div><br><br>\r\n</ng-container>\r\n}\r\n}@else{\r\n<div class=\"file-upload-label form-label\"> {{label}}</div>\r\n<div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\r\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\r\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\r\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\r\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\r\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\r\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\r\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\r\n <div>\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\r\n </div>\r\n <div class=\"multiple-file-upload-text\">\r\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\r\n </div>\r\n <div class=\"multiple-file-upload-description\">\r\n {{fileMessage}}\r\n </div>\r\n <div class=\"tp-link\">\r\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\r\n </div>\r\n</div>\r\n<br>\r\n@if (currentFiles.length > 0) {\r\n<ng-container *ngFor=\"let file of currentFiles\">\r\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\r\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\r\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\r\n </div>\r\n @if (file.error) {\r\n <div class=\"flex-wrap-newline\" *ngIf=\"file.error\"></div>\r\n <div class=\"uploaded-helper\">{{file.error}}</div>\r\n }\r\n </div><br>\r\n</ng-container>\r\n}\r\n}", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"] }]
831
+ args: [{ selector: 'ipa-file-upload', standalone: false, template: "@if(multiple === 1) {\n <div class=\"file-upload-label\"> {{label}}</div>\n <div class=\"file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n <br><br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br><br>\n }\n }\n }@else{\n <div class=\"file-upload-label form-label\"> {{label}}</div>\n <div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n <div>\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\n </div>\n <div class=\"multiple-file-upload-text\">\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\n </div>\n <div class=\"multiple-file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"tp-link\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n </div>\n <br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br>\n }\n }\n }", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"] }]
844
832
  }], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { dropzoneDir: [{
845
833
  type: ViewChild,
846
834
  args: [DropzoneDirective, { static: false }]
@@ -904,10 +892,10 @@ class RecaptchaComponent {
904
892
  registerOnTouched(fn) {
905
893
  this.onTouched = fn;
906
894
  }
907
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
908
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RecaptchaComponent, isStandalone: false, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, viewQueries: [{ propertyName: "recaptcha", first: true, predicate: ["recaptcha"], descendants: true }], ngImport: i0, template: "<ngx-recaptcha2 #recaptcha [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" (success)=\"onChange($event)\"\n (error)=\"onChange(null)\" (expire)=\"onChange(null)\">\n</ngx-recaptcha2>", styles: [""], dependencies: [{ kind: "component", type: i2$3.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size"] }] }); }
895
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
896
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: RecaptchaComponent, isStandalone: false, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, viewQueries: [{ propertyName: "recaptcha", first: true, predicate: ["recaptcha"], descendants: true }], ngImport: i0, template: "<ngx-recaptcha2 #recaptcha [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" (success)=\"onChange($event)\"\n (error)=\"onChange(null)\" (expire)=\"onChange(null)\">\n</ngx-recaptcha2>", styles: [""], dependencies: [{ kind: "component", type: i2$2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size"] }] }); }
909
897
  }
910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RecaptchaComponent, decorators: [{
898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RecaptchaComponent, decorators: [{
911
899
  type: Component,
912
900
  args: [{ selector: 'ipa-recaptcha', standalone: false, template: "<ngx-recaptcha2 #recaptcha [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" (success)=\"onChange($event)\"\n (error)=\"onChange(null)\" (expire)=\"onChange(null)\">\n</ngx-recaptcha2>" }]
913
901
  }], ctorParameters: () => [{ type: i2$1.NgControl, decorators: [{
@@ -933,7 +921,6 @@ class GenerateFormComponent {
933
921
  constructor(validationService) {
934
922
  this.validationService = validationService;
935
923
  this.isArabicForm = true;
936
- this.isPlatformCodeDesignSystem = false;
937
924
  this.recaptchaSize = 'normal';
938
925
  this.lang = 'ar';
939
926
  this.recaptchaType = 'image';
@@ -1039,20 +1026,18 @@ class GenerateFormComponent {
1039
1026
  let selectedItems = items.filter((item) => item.checkbox);
1040
1027
  return selectedItems.length > 0 ? selectedItems : null;
1041
1028
  }
1042
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component }); }
1043
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GenerateFormComponent, isStandalone: false, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\r\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\r\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: TextInputComponent, selector: "ipa-text-input", inputs: ["isPlatformCodeDesignSystem", "id", "type", "label", "placeholder", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["isPlatformCodeDesignSystem", "id", "label", "placeholder", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "isPlatformCodeDesignSystem", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization", "disabled"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] }); }
1029
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component }); }
1030
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: GenerateFormComponent, isStandalone: false, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\n @for (column of form.columns; track column) {\n <div>\n @switch (column.type) {\n <!-- TEXTAREA -->\n @case ('textArea') {\n <div>\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-textarea-input>\n </div>\n }\n <!-- DROP DOWN LIST -->\n @case ('select') {\n <div>\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\n </ipa-dropdown-input>\n </div>\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (control of getFormControls(column.formControlName).controls; track control; let i = $index) {\n <ng-container [formArrayName]=\"'items'+ column.formControlName\">\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\n type=\"checkbox\" formControlName=\"checkbox\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\n {{control.value[column.textField!]}}\n </label>\n </div>\n </ng-container>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- RADIO -->\n @case ('radio') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (item of column.data; track item; let i = $index) {\n <div class=\"form-check {{column.inputClasses}}\">\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\n {{item[column.textField!]}}\n </label>\n </div>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- FILE UPLOAD -->\n @case ('file') {\n <div [class]=\"column.containerClasses\">\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\n </ipa-file-upload>\n </div>\n }\n <!-- recaptcha -->\n @case ('recaptcha') {\n <div [class]=\"column.containerClasses\">\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\n formControlName=\"{{column.formControlName}}\">\n </ipa-recaptcha>\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div>\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-text-input>\n </div>\n }\n }\n </div>\n }\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "label", "placeholder", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "label", "placeholder", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization", "disabled"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] }); }
1044
1031
  }
1045
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GenerateFormComponent, decorators: [{
1032
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GenerateFormComponent, decorators: [{
1046
1033
  type: Component,
1047
- args: [{ selector: 'ipa-generate-form', standalone: false, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\r\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\r\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>" }]
1034
+ args: [{ selector: 'ipa-generate-form', standalone: false, template: "<form [formGroup]=\"generateForm\">\n @for (column of form.columns; track column) {\n <div>\n @switch (column.type) {\n <!-- TEXTAREA -->\n @case ('textArea') {\n <div>\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-textarea-input>\n </div>\n }\n <!-- DROP DOWN LIST -->\n @case ('select') {\n <div>\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\n </ipa-dropdown-input>\n </div>\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (control of getFormControls(column.formControlName).controls; track control; let i = $index) {\n <ng-container [formArrayName]=\"'items'+ column.formControlName\">\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\n type=\"checkbox\" formControlName=\"checkbox\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\n {{control.value[column.textField!]}}\n </label>\n </div>\n </ng-container>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- RADIO -->\n @case ('radio') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (item of column.data; track item; let i = $index) {\n <div class=\"form-check {{column.inputClasses}}\">\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\n {{item[column.textField!]}}\n </label>\n </div>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- FILE UPLOAD -->\n @case ('file') {\n <div [class]=\"column.containerClasses\">\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\n </ipa-file-upload>\n </div>\n }\n <!-- recaptcha -->\n @case ('recaptcha') {\n <div [class]=\"column.containerClasses\">\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\n formControlName=\"{{column.formControlName}}\">\n </ipa-recaptcha>\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div>\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-text-input>\n </div>\n }\n }\n </div>\n }\n</form>" }]
1048
1035
  }], ctorParameters: () => [{ type: IPAFormService }], propDecorators: { generateForm: [{
1049
1036
  type: Input
1050
1037
  }], form: [{
1051
1038
  type: Input
1052
1039
  }], isArabicForm: [{
1053
1040
  type: Input
1054
- }], isPlatformCodeDesignSystem: [{
1055
- type: Input
1056
1041
  }], siteKey: [{
1057
1042
  type: Input
1058
1043
  }], recaptchaSize: [{
@@ -1079,7 +1064,6 @@ class DatepickerComponent {
1079
1064
  this.calendar = calendar;
1080
1065
  this.controlDir = controlDir;
1081
1066
  this.cd = cd;
1082
- this.isPlatformCodeDesignSystem = false;
1083
1067
  this.label = 'datepicker';
1084
1068
  this.patternErrorMsg = 'invalid pattern';
1085
1069
  this.required = false;
@@ -1093,9 +1077,7 @@ class DatepickerComponent {
1093
1077
  }
1094
1078
  ngAfterContentChecked() {
1095
1079
  this.cd.detectChanges();
1096
- if (this.isPlatformCodeDesignSystem) {
1097
- this.initCustomDropdowns();
1098
- }
1080
+ this.initCustomDropdowns();
1099
1081
  }
1100
1082
  ngOnInit() {
1101
1083
  const control = this.controlDir.control;
@@ -1105,10 +1087,8 @@ class DatepickerComponent {
1105
1087
  control?.setValidators(validators);
1106
1088
  control?.updateValueAndValidity();
1107
1089
  this.formControl = control;
1108
- if (this.isPlatformCodeDesignSystem) {
1109
- this.years = [];
1110
- this.generateYearsRange();
1111
- }
1090
+ this.years = [];
1091
+ this.generateYearsRange();
1112
1092
  }
1113
1093
  onChange(event) { }
1114
1094
  onTouched() { }
@@ -1121,11 +1101,6 @@ class DatepickerComponent {
1121
1101
  }
1122
1102
  openDatepicker(event) {
1123
1103
  if (!this.datepicker.isOpen()) {
1124
- setTimeout(() => {
1125
- if (!this.isPlatformCodeDesignSystem) {
1126
- this.changeDatepickerTitles();
1127
- }
1128
- }, 100);
1129
1104
  this.datepicker.toggle();
1130
1105
  event.preventDefault();
1131
1106
  return;
@@ -1146,39 +1121,6 @@ class DatepickerComponent {
1146
1121
  datepicker.navigateTo(newDate);
1147
1122
  this.generateYearsRange(year);
1148
1123
  }
1149
- changeDatepickerTitles() {
1150
- // change pervious month button title
1151
- const arrowPre = document
1152
- .getElementsByClassName('ngb-dp-arrow-prev')
1153
- .item(0);
1154
- const buttonPrev = arrowPre.getElementsByTagName('button').item(0);
1155
- if (this.isArabicForm)
1156
- buttonPrev.title = 'الشهر السابق';
1157
- else
1158
- buttonPrev.title = 'Pervious month';
1159
- // change next month button title
1160
- const arrowNext = document
1161
- .getElementsByClassName('ngb-dp-arrow-next')
1162
- .item(0);
1163
- const buttonNext = arrowNext.getElementsByTagName('button').item(0);
1164
- if (this.isArabicForm)
1165
- buttonNext.title = 'الشهر التالي';
1166
- else
1167
- buttonNext.title = 'Next month';
1168
- // change month list title
1169
- const divList = document
1170
- .getElementsByClassName('ngb-dp-navigation-select')
1171
- .item(0);
1172
- const selectList = divList.getElementsByTagName('select');
1173
- if (this.isArabicForm) {
1174
- selectList.item(0).title = 'اختر الشهر';
1175
- selectList.item(1).title = 'اختر السنة';
1176
- }
1177
- else {
1178
- selectList.item(0).title = 'Select month';
1179
- selectList.item(1).title = 'Select year';
1180
- }
1181
- }
1182
1124
  generateYearsRange(setYear = this.formControl.value?.year
1183
1125
  ? this.formControl.value.year
1184
1126
  : this.isHijriDatepicker
@@ -1224,19 +1166,17 @@ class DatepickerComponent {
1224
1166
  });
1225
1167
  });
1226
1168
  }
1227
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatepickerComponent, deps: [{ token: IPAFormService }, { token: i2.NgbCalendar }, { token: i2$1.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DatepickerComponent, isStandalone: false, selector: "ipa-datepicker", inputs: { isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DatepickerComponent, deps: [{ token: IPAFormService }, { token: i2.NgbCalendar }, { token: i2$1.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DatepickerComponent, isStandalone: false, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1229
1171
  }
1230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatepickerComponent, decorators: [{
1172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DatepickerComponent, decorators: [{
1231
1173
  type: Component,
1232
- args: [{ selector: 'ipa-datepicker', standalone: false, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1174
+ args: [{ selector: 'ipa-datepicker', standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1233
1175
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2.NgbCalendar }, { type: i2$1.NgControl, decorators: [{
1234
1176
  type: Self
1235
1177
  }] }, { type: i2.NgbInputDatepickerConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { datepicker: [{
1236
1178
  type: ViewChild,
1237
1179
  args: ['d']
1238
- }], isPlatformCodeDesignSystem: [{
1239
- type: Input
1240
1180
  }], id: [{
1241
1181
  type: Input
1242
1182
  }], label: [{
@@ -1285,10 +1225,10 @@ class IslamicI18n extends NgbDatepickerI18n {
1285
1225
  getDayAriaLabel(date) {
1286
1226
  return `${date.day}-${date.month}-${date.year}`;
1287
1227
  }
1288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1289
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IslamicI18n }); }
1228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1229
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n }); }
1290
1230
  }
1291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IslamicI18n, decorators: [{
1231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n, decorators: [{
1292
1232
  type: Injectable
1293
1233
  }] });
1294
1234
 
@@ -1297,18 +1237,18 @@ class HijriDatepickerComponent extends DatepickerComponent {
1297
1237
  super(...arguments);
1298
1238
  this.isHijriDatepicker = true;
1299
1239
  }
1300
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1301
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: HijriDatepickerComponent, isStandalone: false, selector: "ipa-hijri-datepicker", providers: [
1240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: HijriDatepickerComponent, isStandalone: false, selector: "ipa-hijri-datepicker", providers: [
1302
1242
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
1303
1243
  { provide: NgbDatepickerI18n, useClass: IslamicI18n },
1304
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1244
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1305
1245
  }
1306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
1246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
1307
1247
  type: Component,
1308
1248
  args: [{ selector: 'ipa-hijri-datepicker', providers: [
1309
1249
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
1310
1250
  { provide: NgbDatepickerI18n, useClass: IslamicI18n },
1311
- ], standalone: false, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1251
+ ], standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1312
1252
  }] });
1313
1253
 
1314
1254
  const WEEKDAYS = ['أثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت', 'أحد'];
@@ -1339,10 +1279,10 @@ class Gregorian18n extends NgbDatepickerI18n {
1339
1279
  getDayAriaLabel(date) {
1340
1280
  return `${date.day}-${date.month}-${date.year}`;
1341
1281
  }
1342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1343
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Gregorian18n }); }
1282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1283
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n }); }
1344
1284
  }
1345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Gregorian18n, decorators: [{
1285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n, decorators: [{
1346
1286
  type: Injectable
1347
1287
  }] });
1348
1288
 
@@ -1351,18 +1291,18 @@ class GregorianDatepickerComponent extends DatepickerComponent {
1351
1291
  super(...arguments);
1352
1292
  this.isHijriDatepicker = false;
1353
1293
  }
1354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1355
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: GregorianDatepickerComponent, isStandalone: false, selector: "ipa-gregorian-datepicker", providers: [
1294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: GregorianDatepickerComponent, isStandalone: false, selector: "ipa-gregorian-datepicker", providers: [
1356
1296
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
1357
1297
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
1358
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1298
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
1359
1299
  }
1360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
1300
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
1361
1301
  type: Component,
1362
1302
  args: [{ selector: 'ipa-gregorian-datepicker', providers: [
1363
1303
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
1364
1304
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
1365
- ], standalone: false, template: "<div class=\"form-floating input-group {{containerClasses}}\" *ngIf=\"!isPlatformCodeDesignSystem\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <div class=\"d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary m-2 w-25\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary m-2 w-25\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div class=\"{{containerClasses}}\" *ngIf=\"isPlatformCodeDesignSystem\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\r\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\r\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\r\n {{ date.day }}\r\n </div>\r\n </ng-template>\r\n <ng-template #contentTemplate let-dp>\r\n <div class=\"p-2\">\r\n <div class=\"custom-month-grid\">\r\n @for (month of dp.state.months; track month.month) {\r\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\r\n <div class=\"d-inline-flex\">\r\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\r\n <li *ngFor=\"let year of years; let i = index;\" (click)=\"navigateYear(dp, year);\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\r\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\r\n {{year}}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" style=\"transform: rotate(-180deg);\" />\r\n </button>\r\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\r\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\"\r\n alt=\"Calender Icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1305
+ ], standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
1366
1306
  }] });
1367
1307
 
1368
1308
  class ShareButtonComponent {
@@ -1373,25 +1313,9 @@ class ShareButtonComponent {
1373
1313
  this.containerClasses = '';
1374
1314
  this.description = '';
1375
1315
  this.btnLabel = '';
1376
- this.isPlatformCodeDesignSystem = false;
1377
1316
  }
1378
1317
  ngOnChanges() {
1379
- if (this.isPlatformCodeDesignSystem)
1380
- this.addShareStyleAndScript();
1381
- }
1382
- ngAfterViewInit() {
1383
- const button = document.getElementsByClassName('sb-show-icon')[0];
1384
- if (!this.isPlatformCodeDesignSystem) {
1385
- if (!button.getAttribute('id')) {
1386
- button.setAttribute('type', 'button');
1387
- button.setAttribute('id', 'IPAShareBtn');
1388
- const label = document.createElement('label');
1389
- label.innerHTML = this.btnLabel;
1390
- label.classList.add('sm-share-title');
1391
- label.classList.add('me-1');
1392
- button.before(label);
1393
- }
1394
- }
1318
+ this.addShareStyleAndScript();
1395
1319
  }
1396
1320
  alertSuccessCopy() {
1397
1321
  this.toastrService.success('تم نسخ الرابط إلى الحافظة');
@@ -1408,12 +1332,12 @@ class ShareButtonComponent {
1408
1332
  script.setAttribute('init', '');
1409
1333
  document.body.appendChild(script);
1410
1334
  }
1411
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
1412
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ShareButtonComponent, isStandalone: false, selector: "ipa-share-button", inputs: { title: "title", tooltip: "tooltip", containerClasses: "containerClasses", description: "description", btnLabel: "btnLabel", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem" }, usesOnChanges: true, ngImport: i0, template: "@if (!isPlatformCodeDesignSystem) {\r\n<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>\r\n}@else{\r\n<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>\r\n}", styles: [""], dependencies: [{ kind: "component", type: i2$4.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] }); }
1335
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShareButtonComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
1336
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ShareButtonComponent, isStandalone: false, selector: "ipa-share-button", inputs: { title: "title", tooltip: "tooltip", containerClasses: "containerClasses", description: "description", btnLabel: "btnLabel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>", styles: [""] }); }
1413
1337
  }
1414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonComponent, decorators: [{
1338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShareButtonComponent, decorators: [{
1415
1339
  type: Component,
1416
- args: [{ selector: 'ipa-share-button', standalone: false, template: "@if (!isPlatformCodeDesignSystem) {\r\n<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>\r\n}@else{\r\n<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>\r\n}" }]
1340
+ args: [{ selector: 'ipa-share-button', standalone: false, template: "<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>" }]
1417
1341
  }], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { title: [{
1418
1342
  type: Input
1419
1343
  }], tooltip: [{
@@ -1424,54 +1348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1424
1348
  type: Input
1425
1349
  }], btnLabel: [{
1426
1350
  type: Input
1427
- }], isPlatformCodeDesignSystem: [{
1428
- type: Input
1429
1351
  }] } });
1430
1352
 
1431
- class ShareButtonModule {
1432
- constructor(library) {
1433
- library.addIconPacks(fas);
1434
- }
1435
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, deps: [{ token: i1$1.FaIconLibrary }], target: i0.ɵɵFactoryTarget.NgModule }); }
1436
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, declarations: [ShareButtonComponent], imports: [ShareIconsModule,
1437
- ShareButtonsPopupModule,
1438
- OverlayModule,
1439
- FontAwesomeModule], exports: [ShareButtonComponent,
1440
- ShareIconsModule,
1441
- ShareButtonsPopupModule,
1442
- OverlayModule,
1443
- FontAwesomeModule] }); }
1444
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, imports: [ShareIconsModule,
1445
- ShareButtonsPopupModule,
1446
- OverlayModule,
1447
- FontAwesomeModule, ShareIconsModule,
1448
- ShareButtonsPopupModule,
1449
- OverlayModule,
1450
- FontAwesomeModule] }); }
1451
- }
1452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, decorators: [{
1453
- type: NgModule,
1454
- args: [{
1455
- declarations: [ShareButtonComponent],
1456
- imports: [
1457
- ShareIconsModule,
1458
- ShareButtonsPopupModule,
1459
- OverlayModule,
1460
- FontAwesomeModule,
1461
- ],
1462
- exports: [
1463
- ShareButtonComponent,
1464
- ShareIconsModule,
1465
- ShareButtonsPopupModule,
1466
- OverlayModule,
1467
- FontAwesomeModule,
1468
- ]
1469
- }]
1470
- }], ctorParameters: () => [{ type: i1$1.FaIconLibrary }] });
1471
-
1472
1353
  class NgIPALibraryModule {
1473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1474
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
1354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1355
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
1475
1356
  TextareaInputComponent,
1476
1357
  DropdownInputComponent,
1477
1358
  LoaderComponent,
@@ -1480,7 +1361,8 @@ class NgIPALibraryModule {
1480
1361
  DatepickerComponent,
1481
1362
  HijriDatepickerComponent,
1482
1363
  GregorianDatepickerComponent,
1483
- RecaptchaComponent], imports: [CommonModule,
1364
+ RecaptchaComponent,
1365
+ ShareButtonComponent], imports: [CommonModule,
1484
1366
  FormsModule,
1485
1367
  ReactiveFormsModule,
1486
1368
  ToastrModule,
@@ -1488,7 +1370,6 @@ class NgIPALibraryModule {
1488
1370
  NgxCaptchaModule,
1489
1371
  PipesModule,
1490
1372
  NgbDatepickerModule,
1491
- ShareButtonModule,
1492
1373
  NgSelectModule], exports: [TextInputComponent,
1493
1374
  TextareaInputComponent,
1494
1375
  DropdownInputComponent,
@@ -1498,9 +1379,9 @@ class NgIPALibraryModule {
1498
1379
  PipesModule,
1499
1380
  HijriDatepickerComponent,
1500
1381
  GregorianDatepickerComponent,
1501
- ShareButtonModule,
1502
- RecaptchaComponent] }); }
1503
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NgIPALibraryModule, imports: [CommonModule,
1382
+ RecaptchaComponent,
1383
+ ShareButtonComponent] }); }
1384
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, imports: [CommonModule,
1504
1385
  FormsModule,
1505
1386
  ReactiveFormsModule,
1506
1387
  ToastrModule,
@@ -1508,11 +1389,9 @@ class NgIPALibraryModule {
1508
1389
  NgxCaptchaModule,
1509
1390
  PipesModule,
1510
1391
  NgbDatepickerModule,
1511
- ShareButtonModule,
1512
- NgSelectModule, PipesModule,
1513
- ShareButtonModule] }); }
1392
+ NgSelectModule, PipesModule] }); }
1514
1393
  }
1515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NgIPALibraryModule, decorators: [{
1394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, decorators: [{
1516
1395
  type: NgModule,
1517
1396
  args: [{
1518
1397
  declarations: [
@@ -1526,6 +1405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1526
1405
  HijriDatepickerComponent,
1527
1406
  GregorianDatepickerComponent,
1528
1407
  RecaptchaComponent,
1408
+ ShareButtonComponent
1529
1409
  ],
1530
1410
  imports: [
1531
1411
  CommonModule,
@@ -1536,7 +1416,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1536
1416
  NgxCaptchaModule,
1537
1417
  PipesModule,
1538
1418
  NgbDatepickerModule,
1539
- ShareButtonModule,
1540
1419
  NgSelectModule,
1541
1420
  ],
1542
1421
  exports: [
@@ -1549,8 +1428,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1549
1428
  PipesModule,
1550
1429
  HijriDatepickerComponent,
1551
1430
  GregorianDatepickerComponent,
1552
- ShareButtonModule,
1553
1431
  RecaptchaComponent,
1432
+ ShareButtonComponent
1554
1433
  ],
1555
1434
  }]
1556
1435
  }] });
@@ -1601,10 +1480,10 @@ class LoadingInterceptor {
1601
1480
  }
1602
1481
  return false;
1603
1482
  }
1604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1605
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoadingInterceptor }); }
1483
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1484
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor }); }
1606
1485
  }
1607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoadingInterceptor, decorators: [{
1486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor, decorators: [{
1608
1487
  type: Injectable
1609
1488
  }], ctorParameters: () => [{ type: LoaderService }] });
1610
1489
 
@@ -1669,10 +1548,10 @@ class CommonService {
1669
1548
  }
1670
1549
  return html.join('\r\n');
1671
1550
  }
1672
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CommonService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1673
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CommonService, providedIn: 'root' }); }
1551
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1552
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, providedIn: 'root' }); }
1674
1553
  }
1675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CommonService, decorators: [{
1554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, decorators: [{
1676
1555
  type: Injectable,
1677
1556
  args: [{
1678
1557
  providedIn: 'root',
@@ -1720,10 +1599,10 @@ class ErrorService {
1720
1599
  });
1721
1600
  messageToast.appendChild(icon);
1722
1601
  }
1723
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorService, deps: [{ token: i1.ToastrService }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1724
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorService, providedIn: 'root' }); }
1602
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, deps: [{ token: i1.ToastrService }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1603
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, providedIn: 'root' }); }
1725
1604
  }
1726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorService, decorators: [{
1605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, decorators: [{
1727
1606
  type: Injectable,
1728
1607
  args: [{
1729
1608
  providedIn: 'root',
@@ -1764,10 +1643,10 @@ class ErrorInterceptor {
1764
1643
  }
1765
1644
  return false;
1766
1645
  }
1767
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1768
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorInterceptor }); }
1646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1647
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor }); }
1769
1648
  }
1770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorInterceptor, decorators: [{
1649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor, decorators: [{
1771
1650
  type: Injectable
1772
1651
  }], ctorParameters: () => [{ type: ErrorService }] });
1773
1652
 
@@ -1831,10 +1710,10 @@ class AuthService {
1831
1710
  .join(''));
1832
1711
  return JSON.parse(jsonPayload);
1833
1712
  }
1834
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1835
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AuthService, providedIn: 'root' }); }
1713
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1714
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, providedIn: 'root' }); }
1836
1715
  }
1837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AuthService, decorators: [{
1716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, decorators: [{
1838
1717
  type: Injectable,
1839
1718
  args: [{
1840
1719
  providedIn: 'root',
@@ -1851,10 +1730,10 @@ class TokenService {
1851
1730
  addExceptionUrl(url) {
1852
1731
  this.urls.push(url);
1853
1732
  }
1854
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1855
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenService, providedIn: 'root' }); }
1733
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1734
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, providedIn: 'root' }); }
1856
1735
  }
1857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenService, decorators: [{
1736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, decorators: [{
1858
1737
  type: Injectable,
1859
1738
  args: [{
1860
1739
  providedIn: 'root',
@@ -1929,12 +1808,12 @@ class TokenInterceptor {
1929
1808
  }
1930
1809
  return false;
1931
1810
  }
1932
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenInterceptor, deps: [{ token: AuthService }, { token: i2$5.HttpClient }, { token: LoaderService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1933
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenInterceptor }); }
1811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor, deps: [{ token: AuthService }, { token: i2$3.HttpClient }, { token: LoaderService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1812
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor }); }
1934
1813
  }
1935
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenInterceptor, decorators: [{
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor, decorators: [{
1936
1815
  type: Injectable
1937
- }], ctorParameters: () => [{ type: AuthService }, { type: i2$5.HttpClient }, { type: LoaderService }, { type: TokenService }] });
1816
+ }], ctorParameters: () => [{ type: AuthService }, { type: i2$3.HttpClient }, { type: LoaderService }, { type: TokenService }] });
1938
1817
 
1939
1818
  class myIPATokenInterceptor {
1940
1819
  constructor(authService, tokenService) {
@@ -1963,10 +1842,10 @@ class myIPATokenInterceptor {
1963
1842
  }
1964
1843
  return false;
1965
1844
  }
1966
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: myIPATokenInterceptor, deps: [{ token: AuthService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1967
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: myIPATokenInterceptor }); }
1845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor, deps: [{ token: AuthService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1846
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor }); }
1968
1847
  }
1969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: myIPATokenInterceptor, decorators: [{
1848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor, decorators: [{
1970
1849
  type: Injectable
1971
1850
  }], ctorParameters: () => [{ type: AuthService }, { type: TokenService }] });
1972
1851
 
@@ -2107,10 +1986,10 @@ class BreadcrumbsService {
2107
1986
  lastSpan?.classList.add(...['bc-current']);
2108
1987
  lastSpan.innerHTML = lastSpanLink.innerHTML;
2109
1988
  }
2110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' }); }
1989
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1990
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' }); }
2112
1991
  }
2113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsService, decorators: [{
1992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, decorators: [{
2114
1993
  type: Injectable,
2115
1994
  args: [{
2116
1995
  providedIn: 'root',
@@ -2274,10 +2153,10 @@ class BreadcrumbsV2Service {
2274
2153
  const span = this.createSpan(lastSpan.innerHTML);
2275
2154
  lastSpan.replaceWith(span);
2276
2155
  }
2277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsV2Service, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2278
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsV2Service, providedIn: 'root' }); }
2156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2157
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, providedIn: 'root' }); }
2279
2158
  }
2280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsV2Service, decorators: [{
2159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, decorators: [{
2281
2160
  type: Injectable,
2282
2161
  args: [{
2283
2162
  providedIn: 'root',
@@ -2293,5 +2172,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
2293
2172
  * Generated bundle index. Do not edit.
2294
2173
  */
2295
2174
 
2296
- export { AuthService, BreadcrumbsService, BreadcrumbsV2Service, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, ShareButtonModule, TextInputComponent, TextareaInputComponent, TokenInterceptor, TokenService, myIPATokenInterceptor };
2175
+ export { AuthService, BreadcrumbsService, BreadcrumbsV2Service, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, TextInputComponent, TextareaInputComponent, TokenInterceptor, TokenService, myIPATokenInterceptor };
2297
2176
  //# sourceMappingURL=ng-ipa-library.mjs.map