ng-ipa-library 6.2.30 → 7.0.1

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 +116 -244
  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 +1 -52
  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 -48
  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
  }] } });
@@ -842,12 +823,12 @@ class FileUploadComponent {
842
823
  dictRemoveFile: '',
843
824
  };
844
825
  }
845
- 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 }); }
846
- 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"] }] }); }
847
828
  }
848
- 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: [{
849
830
  type: Component,
850
- 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"] }]
851
832
  }], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { dropzoneDir: [{
852
833
  type: ViewChild,
853
834
  args: [DropzoneDirective, { static: false }]
@@ -911,10 +892,10 @@ class RecaptchaComponent {
911
892
  registerOnTouched(fn) {
912
893
  this.onTouched = fn;
913
894
  }
914
- 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 }); }
915
- 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"] }] }); }
916
897
  }
917
- 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: [{
918
899
  type: Component,
919
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>" }]
920
901
  }], ctorParameters: () => [{ type: i2$1.NgControl, decorators: [{
@@ -940,7 +921,6 @@ class GenerateFormComponent {
940
921
  constructor(validationService) {
941
922
  this.validationService = validationService;
942
923
  this.isArabicForm = true;
943
- this.isPlatformCodeDesignSystem = false;
944
924
  this.recaptchaSize = 'normal';
945
925
  this.lang = 'ar';
946
926
  this.recaptchaType = 'image';
@@ -1046,20 +1026,18 @@ class GenerateFormComponent {
1046
1026
  let selectedItems = items.filter((item) => item.checkbox);
1047
1027
  return selectedItems.length > 0 ? selectedItems : null;
1048
1028
  }
1049
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component }); }
1050
- 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"] }] }); }
1051
1031
  }
1052
- 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: [{
1053
1033
  type: Component,
1054
- 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>" }]
1055
1035
  }], ctorParameters: () => [{ type: IPAFormService }], propDecorators: { generateForm: [{
1056
1036
  type: Input
1057
1037
  }], form: [{
1058
1038
  type: Input
1059
1039
  }], isArabicForm: [{
1060
1040
  type: Input
1061
- }], isPlatformCodeDesignSystem: [{
1062
- type: Input
1063
1041
  }], siteKey: [{
1064
1042
  type: Input
1065
1043
  }], recaptchaSize: [{
@@ -1086,7 +1064,6 @@ class DatepickerComponent {
1086
1064
  this.calendar = calendar;
1087
1065
  this.controlDir = controlDir;
1088
1066
  this.cd = cd;
1089
- this.isPlatformCodeDesignSystem = false;
1090
1067
  this.label = 'datepicker';
1091
1068
  this.patternErrorMsg = 'invalid pattern';
1092
1069
  this.required = false;
@@ -1100,9 +1077,7 @@ class DatepickerComponent {
1100
1077
  }
1101
1078
  ngAfterContentChecked() {
1102
1079
  this.cd.detectChanges();
1103
- if (this.isPlatformCodeDesignSystem) {
1104
- this.initCustomDropdowns();
1105
- }
1080
+ this.initCustomDropdowns();
1106
1081
  }
1107
1082
  ngOnInit() {
1108
1083
  const control = this.controlDir.control;
@@ -1112,10 +1087,8 @@ class DatepickerComponent {
1112
1087
  control?.setValidators(validators);
1113
1088
  control?.updateValueAndValidity();
1114
1089
  this.formControl = control;
1115
- if (this.isPlatformCodeDesignSystem) {
1116
- this.years = [];
1117
- this.generateYearsRange();
1118
- }
1090
+ this.years = [];
1091
+ this.generateYearsRange();
1119
1092
  }
1120
1093
  onChange(event) { }
1121
1094
  onTouched() { }
@@ -1128,11 +1101,6 @@ class DatepickerComponent {
1128
1101
  }
1129
1102
  openDatepicker(event) {
1130
1103
  if (!this.datepicker.isOpen()) {
1131
- setTimeout(() => {
1132
- if (!this.isPlatformCodeDesignSystem) {
1133
- this.changeDatepickerTitles();
1134
- }
1135
- }, 100);
1136
1104
  this.datepicker.toggle();
1137
1105
  event.preventDefault();
1138
1106
  return;
@@ -1153,39 +1121,6 @@ class DatepickerComponent {
1153
1121
  datepicker.navigateTo(newDate);
1154
1122
  this.generateYearsRange(year);
1155
1123
  }
1156
- changeDatepickerTitles() {
1157
- // change pervious month button title
1158
- const arrowPre = document
1159
- .getElementsByClassName('ngb-dp-arrow-prev')
1160
- .item(0);
1161
- const buttonPrev = arrowPre.getElementsByTagName('button').item(0);
1162
- if (this.isArabicForm)
1163
- buttonPrev.title = 'الشهر السابق';
1164
- else
1165
- buttonPrev.title = 'Pervious month';
1166
- // change next month button title
1167
- const arrowNext = document
1168
- .getElementsByClassName('ngb-dp-arrow-next')
1169
- .item(0);
1170
- const buttonNext = arrowNext.getElementsByTagName('button').item(0);
1171
- if (this.isArabicForm)
1172
- buttonNext.title = 'الشهر التالي';
1173
- else
1174
- buttonNext.title = 'Next month';
1175
- // change month list title
1176
- const divList = document
1177
- .getElementsByClassName('ngb-dp-navigation-select')
1178
- .item(0);
1179
- const selectList = divList.getElementsByTagName('select');
1180
- if (this.isArabicForm) {
1181
- selectList.item(0).title = 'اختر الشهر';
1182
- selectList.item(1).title = 'اختر السنة';
1183
- }
1184
- else {
1185
- selectList.item(0).title = 'Select month';
1186
- selectList.item(1).title = 'Select year';
1187
- }
1188
- }
1189
1124
  generateYearsRange(setYear = this.formControl.value?.year
1190
1125
  ? this.formControl.value.year
1191
1126
  : this.isHijriDatepicker
@@ -1231,19 +1166,17 @@ class DatepickerComponent {
1231
1166
  });
1232
1167
  });
1233
1168
  }
1234
- 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 }); }
1235
- 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"] }] }); }
1236
1171
  }
1237
- 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: [{
1238
1173
  type: Component,
1239
- 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"] }]
1240
1175
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2.NgbCalendar }, { type: i2$1.NgControl, decorators: [{
1241
1176
  type: Self
1242
1177
  }] }, { type: i2.NgbInputDatepickerConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { datepicker: [{
1243
1178
  type: ViewChild,
1244
1179
  args: ['d']
1245
- }], isPlatformCodeDesignSystem: [{
1246
- type: Input
1247
1180
  }], id: [{
1248
1181
  type: Input
1249
1182
  }], label: [{
@@ -1292,10 +1225,10 @@ class IslamicI18n extends NgbDatepickerI18n {
1292
1225
  getDayAriaLabel(date) {
1293
1226
  return `${date.day}-${date.month}-${date.year}`;
1294
1227
  }
1295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1296
- 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 }); }
1297
1230
  }
1298
- 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: [{
1299
1232
  type: Injectable
1300
1233
  }] });
1301
1234
 
@@ -1304,18 +1237,18 @@ class HijriDatepickerComponent extends DatepickerComponent {
1304
1237
  super(...arguments);
1305
1238
  this.isHijriDatepicker = true;
1306
1239
  }
1307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1308
- 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: [
1309
1242
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
1310
1243
  { provide: NgbDatepickerI18n, useClass: IslamicI18n },
1311
- ], 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"] }] }); }
1312
1245
  }
1313
- 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: [{
1314
1247
  type: Component,
1315
1248
  args: [{ selector: 'ipa-hijri-datepicker', providers: [
1316
1249
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
1317
1250
  { provide: NgbDatepickerI18n, useClass: IslamicI18n },
1318
- ], 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"] }]
1319
1252
  }] });
1320
1253
 
1321
1254
  const WEEKDAYS = ['أثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت', 'أحد'];
@@ -1346,10 +1279,10 @@ class Gregorian18n extends NgbDatepickerI18n {
1346
1279
  getDayAriaLabel(date) {
1347
1280
  return `${date.day}-${date.month}-${date.year}`;
1348
1281
  }
1349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1350
- 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 }); }
1351
1284
  }
1352
- 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: [{
1353
1286
  type: Injectable
1354
1287
  }] });
1355
1288
 
@@ -1358,18 +1291,18 @@ class GregorianDatepickerComponent extends DatepickerComponent {
1358
1291
  super(...arguments);
1359
1292
  this.isHijriDatepicker = false;
1360
1293
  }
1361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1362
- 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: [
1363
1296
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
1364
1297
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
1365
- ], 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"] }] }); }
1366
1299
  }
1367
- 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: [{
1368
1301
  type: Component,
1369
1302
  args: [{ selector: 'ipa-gregorian-datepicker', providers: [
1370
1303
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
1371
1304
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
1372
- ], 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"] }]
1373
1306
  }] });
1374
1307
 
1375
1308
  class ShareButtonComponent {
@@ -1380,25 +1313,9 @@ class ShareButtonComponent {
1380
1313
  this.containerClasses = '';
1381
1314
  this.description = '';
1382
1315
  this.btnLabel = '';
1383
- this.isPlatformCodeDesignSystem = false;
1384
1316
  }
1385
1317
  ngOnChanges() {
1386
- if (this.isPlatformCodeDesignSystem)
1387
- this.addShareStyleAndScript();
1388
- }
1389
- ngAfterViewInit() {
1390
- const button = document.getElementsByClassName('sb-show-icon')[0];
1391
- if (!this.isPlatformCodeDesignSystem) {
1392
- if (!button.getAttribute('id')) {
1393
- button.setAttribute('type', 'button');
1394
- button.setAttribute('id', 'IPAShareBtn');
1395
- const label = document.createElement('label');
1396
- label.innerHTML = this.btnLabel;
1397
- label.classList.add('sm-share-title');
1398
- label.classList.add('me-1');
1399
- button.before(label);
1400
- }
1401
- }
1318
+ this.addShareStyleAndScript();
1402
1319
  }
1403
1320
  alertSuccessCopy() {
1404
1321
  this.toastrService.success('تم نسخ الرابط إلى الحافظة');
@@ -1415,12 +1332,12 @@ class ShareButtonComponent {
1415
1332
  script.setAttribute('init', '');
1416
1333
  document.body.appendChild(script);
1417
1334
  }
1418
- 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 }); }
1419
- 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: [""] }); }
1420
1337
  }
1421
- 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: [{
1422
1339
  type: Component,
1423
- 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>" }]
1424
1341
  }], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { title: [{
1425
1342
  type: Input
1426
1343
  }], tooltip: [{
@@ -1431,54 +1348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1431
1348
  type: Input
1432
1349
  }], btnLabel: [{
1433
1350
  type: Input
1434
- }], isPlatformCodeDesignSystem: [{
1435
- type: Input
1436
1351
  }] } });
1437
1352
 
1438
- class ShareButtonModule {
1439
- constructor(library) {
1440
- library.addIconPacks(fas);
1441
- }
1442
- 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 }); }
1443
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, declarations: [ShareButtonComponent], imports: [ShareIconsModule,
1444
- ShareButtonsPopupModule,
1445
- OverlayModule,
1446
- FontAwesomeModule], exports: [ShareButtonComponent,
1447
- ShareIconsModule,
1448
- ShareButtonsPopupModule,
1449
- OverlayModule,
1450
- FontAwesomeModule] }); }
1451
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, imports: [ShareIconsModule,
1452
- ShareButtonsPopupModule,
1453
- OverlayModule,
1454
- FontAwesomeModule, ShareIconsModule,
1455
- ShareButtonsPopupModule,
1456
- OverlayModule,
1457
- FontAwesomeModule] }); }
1458
- }
1459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, decorators: [{
1460
- type: NgModule,
1461
- args: [{
1462
- declarations: [ShareButtonComponent],
1463
- imports: [
1464
- ShareIconsModule,
1465
- ShareButtonsPopupModule,
1466
- OverlayModule,
1467
- FontAwesomeModule,
1468
- ],
1469
- exports: [
1470
- ShareButtonComponent,
1471
- ShareIconsModule,
1472
- ShareButtonsPopupModule,
1473
- OverlayModule,
1474
- FontAwesomeModule,
1475
- ]
1476
- }]
1477
- }], ctorParameters: () => [{ type: i1$1.FaIconLibrary }] });
1478
-
1479
1353
  class NgIPALibraryModule {
1480
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1481
- 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,
1482
1356
  TextareaInputComponent,
1483
1357
  DropdownInputComponent,
1484
1358
  LoaderComponent,
@@ -1487,7 +1361,8 @@ class NgIPALibraryModule {
1487
1361
  DatepickerComponent,
1488
1362
  HijriDatepickerComponent,
1489
1363
  GregorianDatepickerComponent,
1490
- RecaptchaComponent], imports: [CommonModule,
1364
+ RecaptchaComponent,
1365
+ ShareButtonComponent], imports: [CommonModule,
1491
1366
  FormsModule,
1492
1367
  ReactiveFormsModule,
1493
1368
  ToastrModule,
@@ -1495,7 +1370,6 @@ class NgIPALibraryModule {
1495
1370
  NgxCaptchaModule,
1496
1371
  PipesModule,
1497
1372
  NgbDatepickerModule,
1498
- ShareButtonModule,
1499
1373
  NgSelectModule], exports: [TextInputComponent,
1500
1374
  TextareaInputComponent,
1501
1375
  DropdownInputComponent,
@@ -1505,9 +1379,9 @@ class NgIPALibraryModule {
1505
1379
  PipesModule,
1506
1380
  HijriDatepickerComponent,
1507
1381
  GregorianDatepickerComponent,
1508
- ShareButtonModule,
1509
- RecaptchaComponent] }); }
1510
- 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,
1511
1385
  FormsModule,
1512
1386
  ReactiveFormsModule,
1513
1387
  ToastrModule,
@@ -1515,11 +1389,9 @@ class NgIPALibraryModule {
1515
1389
  NgxCaptchaModule,
1516
1390
  PipesModule,
1517
1391
  NgbDatepickerModule,
1518
- ShareButtonModule,
1519
- NgSelectModule, PipesModule,
1520
- ShareButtonModule] }); }
1392
+ NgSelectModule, PipesModule] }); }
1521
1393
  }
1522
- 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: [{
1523
1395
  type: NgModule,
1524
1396
  args: [{
1525
1397
  declarations: [
@@ -1533,6 +1405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1533
1405
  HijriDatepickerComponent,
1534
1406
  GregorianDatepickerComponent,
1535
1407
  RecaptchaComponent,
1408
+ ShareButtonComponent
1536
1409
  ],
1537
1410
  imports: [
1538
1411
  CommonModule,
@@ -1543,7 +1416,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1543
1416
  NgxCaptchaModule,
1544
1417
  PipesModule,
1545
1418
  NgbDatepickerModule,
1546
- ShareButtonModule,
1547
1419
  NgSelectModule,
1548
1420
  ],
1549
1421
  exports: [
@@ -1556,8 +1428,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1556
1428
  PipesModule,
1557
1429
  HijriDatepickerComponent,
1558
1430
  GregorianDatepickerComponent,
1559
- ShareButtonModule,
1560
1431
  RecaptchaComponent,
1432
+ ShareButtonComponent
1561
1433
  ],
1562
1434
  }]
1563
1435
  }] });
@@ -1608,10 +1480,10 @@ class LoadingInterceptor {
1608
1480
  }
1609
1481
  return false;
1610
1482
  }
1611
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1612
- 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 }); }
1613
1485
  }
1614
- 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: [{
1615
1487
  type: Injectable
1616
1488
  }], ctorParameters: () => [{ type: LoaderService }] });
1617
1489
 
@@ -1676,10 +1548,10 @@ class CommonService {
1676
1548
  }
1677
1549
  return html.join('\r\n');
1678
1550
  }
1679
- 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 }); }
1680
- 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' }); }
1681
1553
  }
1682
- 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: [{
1683
1555
  type: Injectable,
1684
1556
  args: [{
1685
1557
  providedIn: 'root',
@@ -1727,10 +1599,10 @@ class ErrorService {
1727
1599
  });
1728
1600
  messageToast.appendChild(icon);
1729
1601
  }
1730
- 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 }); }
1731
- 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' }); }
1732
1604
  }
1733
- 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: [{
1734
1606
  type: Injectable,
1735
1607
  args: [{
1736
1608
  providedIn: 'root',
@@ -1771,10 +1643,10 @@ class ErrorInterceptor {
1771
1643
  }
1772
1644
  return false;
1773
1645
  }
1774
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1775
- 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 }); }
1776
1648
  }
1777
- 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: [{
1778
1650
  type: Injectable
1779
1651
  }], ctorParameters: () => [{ type: ErrorService }] });
1780
1652
 
@@ -1838,10 +1710,10 @@ class AuthService {
1838
1710
  .join(''));
1839
1711
  return JSON.parse(jsonPayload);
1840
1712
  }
1841
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1842
- 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' }); }
1843
1715
  }
1844
- 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: [{
1845
1717
  type: Injectable,
1846
1718
  args: [{
1847
1719
  providedIn: 'root',
@@ -1858,10 +1730,10 @@ class TokenService {
1858
1730
  addExceptionUrl(url) {
1859
1731
  this.urls.push(url);
1860
1732
  }
1861
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1862
- 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' }); }
1863
1735
  }
1864
- 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: [{
1865
1737
  type: Injectable,
1866
1738
  args: [{
1867
1739
  providedIn: 'root',
@@ -1936,12 +1808,12 @@ class TokenInterceptor {
1936
1808
  }
1937
1809
  return false;
1938
1810
  }
1939
- 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 }); }
1940
- 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 }); }
1941
1813
  }
1942
- 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: [{
1943
1815
  type: Injectable
1944
- }], ctorParameters: () => [{ type: AuthService }, { type: i2$5.HttpClient }, { type: LoaderService }, { type: TokenService }] });
1816
+ }], ctorParameters: () => [{ type: AuthService }, { type: i2$3.HttpClient }, { type: LoaderService }, { type: TokenService }] });
1945
1817
 
1946
1818
  class myIPATokenInterceptor {
1947
1819
  constructor(authService, tokenService) {
@@ -1970,10 +1842,10 @@ class myIPATokenInterceptor {
1970
1842
  }
1971
1843
  return false;
1972
1844
  }
1973
- 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 }); }
1974
- 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 }); }
1975
1847
  }
1976
- 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: [{
1977
1849
  type: Injectable
1978
1850
  }], ctorParameters: () => [{ type: AuthService }, { type: TokenService }] });
1979
1851
 
@@ -2114,10 +1986,10 @@ class BreadcrumbsService {
2114
1986
  lastSpan?.classList.add(...['bc-current']);
2115
1987
  lastSpan.innerHTML = lastSpanLink.innerHTML;
2116
1988
  }
2117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2118
- 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' }); }
2119
1991
  }
2120
- 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: [{
2121
1993
  type: Injectable,
2122
1994
  args: [{
2123
1995
  providedIn: 'root',
@@ -2281,10 +2153,10 @@ class BreadcrumbsV2Service {
2281
2153
  const span = this.createSpan(lastSpan.innerHTML);
2282
2154
  lastSpan.replaceWith(span);
2283
2155
  }
2284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BreadcrumbsV2Service, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2285
- 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' }); }
2286
2158
  }
2287
- 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: [{
2288
2160
  type: Injectable,
2289
2161
  args: [{
2290
2162
  providedIn: 'root',
@@ -2300,5 +2172,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
2300
2172
  * Generated bundle index. Do not edit.
2301
2173
  */
2302
2174
 
2303
- 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 };
2304
2176
  //# sourceMappingURL=ng-ipa-library.mjs.map