ng-ipa-library 6.2.29 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ng-ipa-library.mjs +125 -246
- package/fesm2022/ng-ipa-library.mjs.map +1 -1
- package/index.d.ts +568 -5
- package/package.json +8 -13
- package/src/lib/assets/ngIPAStyle.scss +0 -51
- package/lib/core/components/loading/loading.component.d.ts +0 -13
- package/lib/core/interceptors/error.interceptor.d.ts +0 -12
- package/lib/core/interceptors/loading.interceptor.d.ts +0 -14
- package/lib/core/interceptors/myIPAToken.interceptor.d.ts +0 -14
- package/lib/core/interceptors/token.interceptor.d.ts +0 -19
- package/lib/core/services/auth.service.d.ts +0 -18
- package/lib/core/services/error.service.d.ts +0 -19
- package/lib/core/services/loader.service.d.ts +0 -12
- package/lib/core/services/token.service.d.ts +0 -10
- package/lib/generate-form/generate-form.component.d.ts +0 -35
- package/lib/ipa-form/datepicker/datepicker.component.d.ts +0 -46
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +0 -7
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +0 -10
- package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +0 -10
- package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +0 -7
- package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +0 -42
- package/lib/ipa-form/file-upload/file-upload.component.d.ts +0 -47
- package/lib/ipa-form/file-upload/models/files.d.ts +0 -4
- package/lib/ipa-form/ipa-form.service.d.ts +0 -52
- package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +0 -22
- package/lib/ipa-form/text-input/text-input.component.d.ts +0 -36
- package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +0 -33
- package/lib/models/apiException.d.ts +0 -5
- package/lib/models/apiResponse.d.ts +0 -5
- package/lib/models/breadcrumbs.model.d.ts +0 -4
- package/lib/models/decodedToken.model.d.ts +0 -6
- package/lib/models/exceptionUrl.model.d.ts +0 -4
- package/lib/models/generateForm.model.d.ts +0 -31
- package/lib/models/pagedResult.d.ts +0 -4
- package/lib/models/user.model.d.ts +0 -7
- package/lib/ng-ipa-library.module.d.ts +0 -25
- package/lib/pipes/hijri-date.pipe.d.ts +0 -7
- package/lib/pipes/pipes.module.d.ts +0 -7
- package/lib/services/breadcrumbs.service.d.ts +0 -18
- package/lib/services/breadcrumbsV2.service.d.ts +0 -19
- package/lib/services/common.service.d.ts +0 -11
- package/lib/share-button/share-button.component.d.ts +0 -19
- package/lib/share-button/share-button.module.d.ts +0 -13
- package/public-api.d.ts +0 -33
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
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$
|
|
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
|
|
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: "
|
|
40
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
52
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
53
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
344
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
407
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: "<!--
|
|
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: "
|
|
485
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: "<!--
|
|
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
|
-
|
|
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: "
|
|
611
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: "<!--
|
|
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: "
|
|
666
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
699
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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\"
|
|
684
|
+
args: [{ selector: 'ipa-loader', standalone: false, template: "@if (loading && isLocal) {\n <div id=\"cover-spin\">\n <div class=\"spinner\"></div>\n </div>\n}\n", styles: ["#cover-spin{display:flex}\n"] }]
|
|
704
685
|
}], ctorParameters: () => [{ type: LoaderService }, { type: i0.ChangeDetectorRef }], propDecorators: { isLocal: [{
|
|
705
686
|
type: Input
|
|
706
687
|
}] } });
|
|
@@ -735,10 +716,10 @@ class FileUploadComponent {
|
|
|
735
716
|
ngOnInit() {
|
|
736
717
|
this.setConfiguration();
|
|
737
718
|
if (this.isArabicForm) {
|
|
738
|
-
this.fileMessage = `الحد الأقصى لحجم الملف المسموح به هو ${this.maxFileSize} ميجابايت، وتشمل الصيغ المدعومة ${this.
|
|
719
|
+
this.fileMessage = `الحد الأقصى لحجم الملف المسموح به هو ${this.maxFileSize} ميجابايت، وتشمل الصيغ المدعومة ${this.formatAcceptedFiles(' و ')}.`;
|
|
739
720
|
}
|
|
740
721
|
else {
|
|
741
|
-
this.fileMessage = `Maximum file size allowed is ${this.maxFileSize} MB, supported file formats include ${this.
|
|
722
|
+
this.fileMessage = `Maximum file size allowed is ${this.maxFileSize} MB, supported file formats include ${this.formatAcceptedFiles(' and ')}.`;
|
|
742
723
|
}
|
|
743
724
|
}
|
|
744
725
|
operationCompleted(e) {
|
|
@@ -809,6 +790,13 @@ class FileUploadComponent {
|
|
|
809
790
|
? 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من إضافة الملف'
|
|
810
791
|
: 'Please delete existing files to be able to add this file');
|
|
811
792
|
}
|
|
793
|
+
formatAcceptedFiles(separator) {
|
|
794
|
+
return this.acceptedFiles
|
|
795
|
+
.split(',')
|
|
796
|
+
.map((fileType) => fileType.trim())
|
|
797
|
+
.filter((fileType) => fileType.length > 0)
|
|
798
|
+
.join(separator);
|
|
799
|
+
}
|
|
812
800
|
setConfiguration() {
|
|
813
801
|
this.label = (this.isArabicForm ? 'رفع ' : 'Upload ') + this.label;
|
|
814
802
|
this.config = {
|
|
@@ -835,12 +823,12 @@ class FileUploadComponent {
|
|
|
835
823
|
dictRemoveFile: '',
|
|
836
824
|
};
|
|
837
825
|
}
|
|
838
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
839
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
826
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
827
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: FileUploadComponent, isStandalone: false, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization", disabled: "disabled" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "@if(multiple === 1) {\n <div class=\"file-upload-label\"> {{label}}</div>\n <div class=\"file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n <br><br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br><br>\n }\n }\n }@else{\n <div class=\"file-upload-label form-label\"> {{label}}</div>\n <div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n <div>\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\n </div>\n <div class=\"multiple-file-upload-text\">\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\n </div>\n <div class=\"multiple-file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"tp-link\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n </div>\n <br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br>\n }\n }\n }", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }] }); }
|
|
840
828
|
}
|
|
841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
829
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
842
830
|
type: Component,
|
|
843
|
-
args: [{ selector: 'ipa-file-upload', standalone: false, template: "
|
|
831
|
+
args: [{ selector: 'ipa-file-upload', standalone: false, template: "@if(multiple === 1) {\n <div class=\"file-upload-label\"> {{label}}</div>\n <div class=\"file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"single-file-upload\" [ngClass]=\"{'disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\n (addedFile)=\"fileWasAdded($event)\" (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n <br><br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br><br>\n }\n }\n }@else{\n <div class=\"file-upload-label form-label\"> {{label}}</div>\n <div class=\"multiple-file-upload text-center d-flex flex-column align-items-center \"\n [ngClass]=\"{'multiple-disabled': disabled}\" [disabled]=\"disabled\" [dropzone]=\"config\"\n (error)=\"onUploadError($event)\" tabindex=\"0\" (keydown.enter)=\"onEnterKey($event)\"\n (keydown.space)=\"onEnterKey($event)\" (queueComplete)=\"operationCompleted($event)\"\n (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\" (dragLeave)=\"dragEnter = false\"\n (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\" [class.multiple-drag-hover]=\"dragEnter\"\n (sending)=\"sending($event)\" (reset)=\"reset($event)\" (addedFile)=\"fileWasAdded($event)\"\n (maxFilesExceeded)=\"maxFilesExceeded($event)\">\n <div>\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/file-upload.svg\">\n </div>\n <div class=\"multiple-file-upload-text\">\n {{isArabicForm ? '\u0627\u0633\u062D\u0628 \u0648 \u0623\u0641\u0644\u062A \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627 \u0644\u0644\u0631\u0641\u0639' : 'Drag and drop files here to upload'}}\n </div>\n <div class=\"multiple-file-upload-description\">\n {{fileMessage}}\n </div>\n <div class=\"tp-link\">\n {{isArabicForm ? '\u062A\u0635\u0641\u062D \u0627\u0644\u0645\u0644\u0641\u0627\u062A' : 'Browse Files'}}\n </div>\n </div>\n <br>\n @if (currentFiles.length > 0) {\n @for (file of currentFiles; track file) {\n <div class=\"uploaded-file \" [ngClass]=\"{'uploaded-file-error': file.error}\">\n <img [src]=\"file.error ? fileIconError : fileIconDone\"> {{ file.file.name }}\n <div style=\"margin-right: auto;\" (click)=\"deleteFile(file.file)\" title=\"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/upload-close.svg\">\n </div>\n @if (file.error) {\n @if (file.error) {\n <div class=\"flex-wrap-newline\"></div>\n }\n <div class=\"uploaded-helper\">{{file.error}}</div>\n }\n </div><br>\n }\n }\n }", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}\n"] }]
|
|
844
832
|
}], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { dropzoneDir: [{
|
|
845
833
|
type: ViewChild,
|
|
846
834
|
args: [DropzoneDirective, { static: false }]
|
|
@@ -904,10 +892,10 @@ class RecaptchaComponent {
|
|
|
904
892
|
registerOnTouched(fn) {
|
|
905
893
|
this.onTouched = fn;
|
|
906
894
|
}
|
|
907
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
908
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
895
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
896
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: RecaptchaComponent, isStandalone: false, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, viewQueries: [{ propertyName: "recaptcha", first: true, predicate: ["recaptcha"], descendants: true }], ngImport: i0, template: "<ngx-recaptcha2 #recaptcha [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" (success)=\"onChange($event)\"\n (error)=\"onChange(null)\" (expire)=\"onChange(null)\">\n</ngx-recaptcha2>", styles: [""], dependencies: [{ kind: "component", type: i2$2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size"] }] }); }
|
|
909
897
|
}
|
|
910
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
898
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RecaptchaComponent, decorators: [{
|
|
911
899
|
type: Component,
|
|
912
900
|
args: [{ selector: 'ipa-recaptcha', standalone: false, template: "<ngx-recaptcha2 #recaptcha [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" (success)=\"onChange($event)\"\n (error)=\"onChange(null)\" (expire)=\"onChange(null)\">\n</ngx-recaptcha2>" }]
|
|
913
901
|
}], ctorParameters: () => [{ type: i2$1.NgControl, decorators: [{
|
|
@@ -933,7 +921,6 @@ class GenerateFormComponent {
|
|
|
933
921
|
constructor(validationService) {
|
|
934
922
|
this.validationService = validationService;
|
|
935
923
|
this.isArabicForm = true;
|
|
936
|
-
this.isPlatformCodeDesignSystem = false;
|
|
937
924
|
this.recaptchaSize = 'normal';
|
|
938
925
|
this.lang = 'ar';
|
|
939
926
|
this.recaptchaType = 'image';
|
|
@@ -1039,20 +1026,18 @@ class GenerateFormComponent {
|
|
|
1039
1026
|
let selectedItems = items.filter((item) => item.checkbox);
|
|
1040
1027
|
return selectedItems.length > 0 ? selectedItems : null;
|
|
1041
1028
|
}
|
|
1042
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1043
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GenerateFormComponent, isStandalone: false, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\r\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\r\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\"\r\n [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: TextInputComponent, selector: "ipa-text-input", inputs: ["isPlatformCodeDesignSystem", "id", "type", "label", "placeholder", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["isPlatformCodeDesignSystem", "id", "label", "placeholder", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "isPlatformCodeDesignSystem", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization", "disabled"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] }); }
|
|
1029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1030
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: GenerateFormComponent, isStandalone: false, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\n @for (column of form.columns; track column) {\n <div>\n @switch (column.type) {\n <!-- TEXTAREA -->\n @case ('textArea') {\n <div>\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-textarea-input>\n </div>\n }\n <!-- DROP DOWN LIST -->\n @case ('select') {\n <div>\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\n </ipa-dropdown-input>\n </div>\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (control of getFormControls(column.formControlName).controls; track control; let i = $index) {\n <ng-container [formArrayName]=\"'items'+ column.formControlName\">\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\n type=\"checkbox\" formControlName=\"checkbox\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\n {{control.value[column.textField!]}}\n </label>\n </div>\n </ng-container>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- RADIO -->\n @case ('radio') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (item of column.data; track item; let i = $index) {\n <div class=\"form-check {{column.inputClasses}}\">\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\n {{item[column.textField!]}}\n </label>\n </div>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- FILE UPLOAD -->\n @case ('file') {\n <div [class]=\"column.containerClasses\">\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\n </ipa-file-upload>\n </div>\n }\n <!-- recaptcha -->\n @case ('recaptcha') {\n <div [class]=\"column.containerClasses\">\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\n formControlName=\"{{column.formControlName}}\">\n </ipa-recaptcha>\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div>\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-text-input>\n </div>\n }\n }\n </div>\n }\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "label", "placeholder", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "label", "placeholder", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization", "disabled"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] }); }
|
|
1044
1031
|
}
|
|
1045
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GenerateFormComponent, decorators: [{
|
|
1046
1033
|
type: Component,
|
|
1047
|
-
args: [{ selector: 'ipa-generate-form', standalone: false, template: "<form [formGroup]=\"generateForm\">\
|
|
1034
|
+
args: [{ selector: 'ipa-generate-form', standalone: false, template: "<form [formGroup]=\"generateForm\">\n @for (column of form.columns; track column) {\n <div>\n @switch (column.type) {\n <!-- TEXTAREA -->\n @case ('textArea') {\n <div>\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-textarea-input>\n </div>\n }\n <!-- DROP DOWN LIST -->\n @case ('select') {\n <div>\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\n </ipa-dropdown-input>\n </div>\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (control of getFormControls(column.formControlName).controls; track control; let i = $index) {\n <ng-container [formArrayName]=\"'items'+ column.formControlName\">\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\n type=\"checkbox\" formControlName=\"checkbox\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\n {{control.value[column.textField!]}}\n </label>\n </div>\n </ng-container>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- RADIO -->\n @case ('radio') {\n <div [class]=\"column.containerClasses\">\n <label>\n @if (column.required) {\n <span class=\"text-danger\">*</span>\n }\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\n </label>\n @for (item of column.data; track item; let i = $index) {\n <div class=\"form-check {{column.inputClasses}}\">\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\n {{item[column.textField!]}}\n </label>\n </div>\n }\n @if (getErrorMessage(column.formControlName) !== null) {\n <div class=\"invalid-feedback\" style=\"display: block !important;\">\n {{errorMsg}}\n </div>\n }\n </div>\n }\n <!-- FILE UPLOAD -->\n @case ('file') {\n <div [class]=\"column.containerClasses\">\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\n </ipa-file-upload>\n </div>\n }\n <!-- recaptcha -->\n @case ('recaptcha') {\n <div [class]=\"column.containerClasses\">\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\n formControlName=\"{{column.formControlName}}\">\n </ipa-recaptcha>\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div>\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\n [placeholder]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\n </ipa-text-input>\n </div>\n }\n }\n </div>\n }\n</form>" }]
|
|
1048
1035
|
}], ctorParameters: () => [{ type: IPAFormService }], propDecorators: { generateForm: [{
|
|
1049
1036
|
type: Input
|
|
1050
1037
|
}], form: [{
|
|
1051
1038
|
type: Input
|
|
1052
1039
|
}], isArabicForm: [{
|
|
1053
1040
|
type: Input
|
|
1054
|
-
}], isPlatformCodeDesignSystem: [{
|
|
1055
|
-
type: Input
|
|
1056
1041
|
}], siteKey: [{
|
|
1057
1042
|
type: Input
|
|
1058
1043
|
}], recaptchaSize: [{
|
|
@@ -1079,7 +1064,6 @@ class DatepickerComponent {
|
|
|
1079
1064
|
this.calendar = calendar;
|
|
1080
1065
|
this.controlDir = controlDir;
|
|
1081
1066
|
this.cd = cd;
|
|
1082
|
-
this.isPlatformCodeDesignSystem = false;
|
|
1083
1067
|
this.label = 'datepicker';
|
|
1084
1068
|
this.patternErrorMsg = 'invalid pattern';
|
|
1085
1069
|
this.required = false;
|
|
@@ -1093,9 +1077,7 @@ class DatepickerComponent {
|
|
|
1093
1077
|
}
|
|
1094
1078
|
ngAfterContentChecked() {
|
|
1095
1079
|
this.cd.detectChanges();
|
|
1096
|
-
|
|
1097
|
-
this.initCustomDropdowns();
|
|
1098
|
-
}
|
|
1080
|
+
this.initCustomDropdowns();
|
|
1099
1081
|
}
|
|
1100
1082
|
ngOnInit() {
|
|
1101
1083
|
const control = this.controlDir.control;
|
|
@@ -1105,10 +1087,8 @@ class DatepickerComponent {
|
|
|
1105
1087
|
control?.setValidators(validators);
|
|
1106
1088
|
control?.updateValueAndValidity();
|
|
1107
1089
|
this.formControl = control;
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
this.generateYearsRange();
|
|
1111
|
-
}
|
|
1090
|
+
this.years = [];
|
|
1091
|
+
this.generateYearsRange();
|
|
1112
1092
|
}
|
|
1113
1093
|
onChange(event) { }
|
|
1114
1094
|
onTouched() { }
|
|
@@ -1121,11 +1101,6 @@ class DatepickerComponent {
|
|
|
1121
1101
|
}
|
|
1122
1102
|
openDatepicker(event) {
|
|
1123
1103
|
if (!this.datepicker.isOpen()) {
|
|
1124
|
-
setTimeout(() => {
|
|
1125
|
-
if (!this.isPlatformCodeDesignSystem) {
|
|
1126
|
-
this.changeDatepickerTitles();
|
|
1127
|
-
}
|
|
1128
|
-
}, 100);
|
|
1129
1104
|
this.datepicker.toggle();
|
|
1130
1105
|
event.preventDefault();
|
|
1131
1106
|
return;
|
|
@@ -1146,39 +1121,6 @@ class DatepickerComponent {
|
|
|
1146
1121
|
datepicker.navigateTo(newDate);
|
|
1147
1122
|
this.generateYearsRange(year);
|
|
1148
1123
|
}
|
|
1149
|
-
changeDatepickerTitles() {
|
|
1150
|
-
// change pervious month button title
|
|
1151
|
-
const arrowPre = document
|
|
1152
|
-
.getElementsByClassName('ngb-dp-arrow-prev')
|
|
1153
|
-
.item(0);
|
|
1154
|
-
const buttonPrev = arrowPre.getElementsByTagName('button').item(0);
|
|
1155
|
-
if (this.isArabicForm)
|
|
1156
|
-
buttonPrev.title = 'الشهر السابق';
|
|
1157
|
-
else
|
|
1158
|
-
buttonPrev.title = 'Pervious month';
|
|
1159
|
-
// change next month button title
|
|
1160
|
-
const arrowNext = document
|
|
1161
|
-
.getElementsByClassName('ngb-dp-arrow-next')
|
|
1162
|
-
.item(0);
|
|
1163
|
-
const buttonNext = arrowNext.getElementsByTagName('button').item(0);
|
|
1164
|
-
if (this.isArabicForm)
|
|
1165
|
-
buttonNext.title = 'الشهر التالي';
|
|
1166
|
-
else
|
|
1167
|
-
buttonNext.title = 'Next month';
|
|
1168
|
-
// change month list title
|
|
1169
|
-
const divList = document
|
|
1170
|
-
.getElementsByClassName('ngb-dp-navigation-select')
|
|
1171
|
-
.item(0);
|
|
1172
|
-
const selectList = divList.getElementsByTagName('select');
|
|
1173
|
-
if (this.isArabicForm) {
|
|
1174
|
-
selectList.item(0).title = 'اختر الشهر';
|
|
1175
|
-
selectList.item(1).title = 'اختر السنة';
|
|
1176
|
-
}
|
|
1177
|
-
else {
|
|
1178
|
-
selectList.item(0).title = 'Select month';
|
|
1179
|
-
selectList.item(1).title = 'Select year';
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
1124
|
generateYearsRange(setYear = this.formControl.value?.year
|
|
1183
1125
|
? this.formControl.value.year
|
|
1184
1126
|
: this.isHijriDatepicker
|
|
@@ -1224,19 +1166,17 @@ class DatepickerComponent {
|
|
|
1224
1166
|
});
|
|
1225
1167
|
});
|
|
1226
1168
|
}
|
|
1227
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1228
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DatepickerComponent, deps: [{ token: IPAFormService }, { token: i2.NgbCalendar }, { token: i2$1.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1170
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: DatepickerComponent, isStandalone: false, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
|
|
1229
1171
|
}
|
|
1230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
1231
1173
|
type: Component,
|
|
1232
|
-
args: [{ selector: 'ipa-datepicker', standalone: false, template: "<div class=\"
|
|
1174
|
+
args: [{ selector: 'ipa-datepicker', standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
1233
1175
|
}], ctorParameters: () => [{ type: IPAFormService }, { type: i2.NgbCalendar }, { type: i2$1.NgControl, decorators: [{
|
|
1234
1176
|
type: Self
|
|
1235
1177
|
}] }, { type: i2.NgbInputDatepickerConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { datepicker: [{
|
|
1236
1178
|
type: ViewChild,
|
|
1237
1179
|
args: ['d']
|
|
1238
|
-
}], isPlatformCodeDesignSystem: [{
|
|
1239
|
-
type: Input
|
|
1240
1180
|
}], id: [{
|
|
1241
1181
|
type: Input
|
|
1242
1182
|
}], label: [{
|
|
@@ -1285,10 +1225,10 @@ class IslamicI18n extends NgbDatepickerI18n {
|
|
|
1285
1225
|
getDayAriaLabel(date) {
|
|
1286
1226
|
return `${date.day}-${date.month}-${date.year}`;
|
|
1287
1227
|
}
|
|
1288
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1289
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1228
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1229
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n }); }
|
|
1290
1230
|
}
|
|
1291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IslamicI18n, decorators: [{
|
|
1292
1232
|
type: Injectable
|
|
1293
1233
|
}] });
|
|
1294
1234
|
|
|
@@ -1297,18 +1237,18 @@ class HijriDatepickerComponent extends DatepickerComponent {
|
|
|
1297
1237
|
super(...arguments);
|
|
1298
1238
|
this.isHijriDatepicker = true;
|
|
1299
1239
|
}
|
|
1300
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1301
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1241
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: HijriDatepickerComponent, isStandalone: false, selector: "ipa-hijri-datepicker", providers: [
|
|
1302
1242
|
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
1303
1243
|
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
1304
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"
|
|
1244
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
|
|
1305
1245
|
}
|
|
1306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
|
|
1307
1247
|
type: Component,
|
|
1308
1248
|
args: [{ selector: 'ipa-hijri-datepicker', providers: [
|
|
1309
1249
|
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
1310
1250
|
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
1311
|
-
], standalone: false, template: "<div class=\"
|
|
1251
|
+
], standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
1312
1252
|
}] });
|
|
1313
1253
|
|
|
1314
1254
|
const WEEKDAYS = ['أثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت', 'أحد'];
|
|
@@ -1339,10 +1279,10 @@ class Gregorian18n extends NgbDatepickerI18n {
|
|
|
1339
1279
|
getDayAriaLabel(date) {
|
|
1340
1280
|
return `${date.day}-${date.month}-${date.year}`;
|
|
1341
1281
|
}
|
|
1342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1343
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1282
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1283
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n }); }
|
|
1344
1284
|
}
|
|
1345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Gregorian18n, decorators: [{
|
|
1346
1286
|
type: Injectable
|
|
1347
1287
|
}] });
|
|
1348
1288
|
|
|
@@ -1351,18 +1291,18 @@ class GregorianDatepickerComponent extends DatepickerComponent {
|
|
|
1351
1291
|
super(...arguments);
|
|
1352
1292
|
this.isHijriDatepicker = false;
|
|
1353
1293
|
}
|
|
1354
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1355
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1294
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1295
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: GregorianDatepickerComponent, isStandalone: false, selector: "ipa-gregorian-datepicker", providers: [
|
|
1356
1296
|
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
1357
1297
|
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
1358
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"
|
|
1298
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i2.NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }] }); }
|
|
1359
1299
|
}
|
|
1360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
|
|
1361
1301
|
type: Component,
|
|
1362
1302
|
args: [{ selector: 'ipa-gregorian-datepicker', providers: [
|
|
1363
1303
|
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
1364
1304
|
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
1365
|
-
], standalone: false, template: "<div class=\"
|
|
1305
|
+
], standalone: false, template: "<div class=\"{{containerClasses}}\">\n <label class=\"form-label\" for=\"{{id}}\">@if (required) {\n <span class=\"text-danger\">*</span>\n } {{label}} </label>\n <input id=\"{{id}}\" class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [required]=\"required\"\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\"\n (click)=\"openDatepicker($event)\" [contentTemplate]=\"contentTemplate\" [navigation]=\"'none'\"\n [placement]=\"'bottom-end'\" [autoClose]=\"true\" [dayTemplate]=\"dayTemplate\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\n\n @if (errorMessage !== null) {\n <div class=\"invalid-feedback\">\n {{errorMsg}}\n </div>\n }\n <ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <div ngbdatepickerdayview [class.bg-primary]=\"selected\" [class.outside]=\"date.month !== currentMonth\">\n {{ date.day }}\n </div>\n </ng-template>\n <ng-template #contentTemplate let-dp>\n <div class=\"p-2\">\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month.month) {\n <div class=\"d-flex justify-content-between\" style=\"height: 40px;\">\n <div class=\"d-inline-flex\">\n <span class=\"align-content-center me-2\">{{ dp.i18n.getMonthShortName(month.month) }}</span>\n <div class=\"dropdown custom-dropdown-wrapper-{{id}}\">\n <button\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center\"\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n <span class=\"selected-text\">{{dp.state.focusedDate.year}}</span>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-end w-50\" style=\"max-height: 360px; overflow-y: auto;\">\n @for (year of years; track year; let i = $index) {\n <li (click)=\"navigateYear(dp, year);\">\n <span class=\"dropdown-item\" href=\"javascript:void(0);\" [attr.data-value]=\"year\"\n [ngClass]=\"{'active': dp.state.focusedDate.year === year}\">\n {{year}}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n <div>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, -1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year <= minYear) && (minDate?.month && (+dp.state.focusedDate.month <= minDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\"\n style=\"transform: rotate(-180deg);\" />\n </button>\n <button type=\"button\" class=\"tp-link tp-link-subtle\" (click)=\"navigate(dp, 1)\"\n [ngClass]=\"{'disabled': (+dp.state.focusedDate.year >= maxYear) && (maxDate?.month && (+dp.state.focusedDate.month >= maxDate.month))}\">\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/arrow.svg\" alt=\"Calender Icon\" />\n </button>\n </div>\n </div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n }\n </div>\n </div>\n </ng-template>\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
1366
1306
|
}] });
|
|
1367
1307
|
|
|
1368
1308
|
class ShareButtonComponent {
|
|
@@ -1373,25 +1313,9 @@ class ShareButtonComponent {
|
|
|
1373
1313
|
this.containerClasses = '';
|
|
1374
1314
|
this.description = '';
|
|
1375
1315
|
this.btnLabel = '';
|
|
1376
|
-
this.isPlatformCodeDesignSystem = false;
|
|
1377
1316
|
}
|
|
1378
1317
|
ngOnChanges() {
|
|
1379
|
-
|
|
1380
|
-
this.addShareStyleAndScript();
|
|
1381
|
-
}
|
|
1382
|
-
ngAfterViewInit() {
|
|
1383
|
-
const button = document.getElementsByClassName('sb-show-icon')[0];
|
|
1384
|
-
if (!this.isPlatformCodeDesignSystem) {
|
|
1385
|
-
if (!button.getAttribute('id')) {
|
|
1386
|
-
button.setAttribute('type', 'button');
|
|
1387
|
-
button.setAttribute('id', 'IPAShareBtn');
|
|
1388
|
-
const label = document.createElement('label');
|
|
1389
|
-
label.innerHTML = this.btnLabel;
|
|
1390
|
-
label.classList.add('sm-share-title');
|
|
1391
|
-
label.classList.add('me-1');
|
|
1392
|
-
button.before(label);
|
|
1393
|
-
}
|
|
1394
|
-
}
|
|
1318
|
+
this.addShareStyleAndScript();
|
|
1395
1319
|
}
|
|
1396
1320
|
alertSuccessCopy() {
|
|
1397
1321
|
this.toastrService.success('تم نسخ الرابط إلى الحافظة');
|
|
@@ -1408,12 +1332,12 @@ class ShareButtonComponent {
|
|
|
1408
1332
|
script.setAttribute('init', '');
|
|
1409
1333
|
document.body.appendChild(script);
|
|
1410
1334
|
}
|
|
1411
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1412
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1335
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShareButtonComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1336
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ShareButtonComponent, isStandalone: false, selector: "ipa-share-button", inputs: { title: "title", tooltip: "tooltip", containerClasses: "containerClasses", description: "description", btnLabel: "btnLabel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>", styles: [""] }); }
|
|
1413
1337
|
}
|
|
1414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShareButtonComponent, decorators: [{
|
|
1415
1339
|
type: Component,
|
|
1416
|
-
args: [{ selector: 'ipa-share-button', standalone: false, template: "
|
|
1340
|
+
args: [{ selector: 'ipa-share-button', standalone: false, template: "<div class=\"dropdown {{containerClasses}}\">\r\n <button class=\"tp-link \" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [title]=\"tooltip\">\r\n {{btnLabel}}\r\n <img src=\"/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg\">\r\n </button>\r\n <div id=\"share\" class=\"dropdown-menu shareon\" style=\"width: max-content\" [attr.data-text]=\"description\">\r\n <a class=\"twitter\" [attr.data-title]=\"title\"></a>\r\n <a class=\"whatsapp\" [attr.data-title]=\"title\"></a>\r\n <a class=\"facebook\" [attr.data-title]=\"title\"></a>\r\n <a class=\"linkedin\" [attr.data-title]=\"title\"></a>\r\n <a class=\"telegram\" [attr.data-title]=\"title\"></a>\r\n <a class=\"copy-url\" (click)=\"alertSuccessCopy()\"></a>\r\n </div>\r\n</div>" }]
|
|
1417
1341
|
}], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { title: [{
|
|
1418
1342
|
type: Input
|
|
1419
1343
|
}], tooltip: [{
|
|
@@ -1424,54 +1348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1424
1348
|
type: Input
|
|
1425
1349
|
}], btnLabel: [{
|
|
1426
1350
|
type: Input
|
|
1427
|
-
}], isPlatformCodeDesignSystem: [{
|
|
1428
|
-
type: Input
|
|
1429
1351
|
}] } });
|
|
1430
1352
|
|
|
1431
|
-
class ShareButtonModule {
|
|
1432
|
-
constructor(library) {
|
|
1433
|
-
library.addIconPacks(fas);
|
|
1434
|
-
}
|
|
1435
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, deps: [{ token: i1$1.FaIconLibrary }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1436
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, declarations: [ShareButtonComponent], imports: [ShareIconsModule,
|
|
1437
|
-
ShareButtonsPopupModule,
|
|
1438
|
-
OverlayModule,
|
|
1439
|
-
FontAwesomeModule], exports: [ShareButtonComponent,
|
|
1440
|
-
ShareIconsModule,
|
|
1441
|
-
ShareButtonsPopupModule,
|
|
1442
|
-
OverlayModule,
|
|
1443
|
-
FontAwesomeModule] }); }
|
|
1444
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, imports: [ShareIconsModule,
|
|
1445
|
-
ShareButtonsPopupModule,
|
|
1446
|
-
OverlayModule,
|
|
1447
|
-
FontAwesomeModule, ShareIconsModule,
|
|
1448
|
-
ShareButtonsPopupModule,
|
|
1449
|
-
OverlayModule,
|
|
1450
|
-
FontAwesomeModule] }); }
|
|
1451
|
-
}
|
|
1452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShareButtonModule, decorators: [{
|
|
1453
|
-
type: NgModule,
|
|
1454
|
-
args: [{
|
|
1455
|
-
declarations: [ShareButtonComponent],
|
|
1456
|
-
imports: [
|
|
1457
|
-
ShareIconsModule,
|
|
1458
|
-
ShareButtonsPopupModule,
|
|
1459
|
-
OverlayModule,
|
|
1460
|
-
FontAwesomeModule,
|
|
1461
|
-
],
|
|
1462
|
-
exports: [
|
|
1463
|
-
ShareButtonComponent,
|
|
1464
|
-
ShareIconsModule,
|
|
1465
|
-
ShareButtonsPopupModule,
|
|
1466
|
-
OverlayModule,
|
|
1467
|
-
FontAwesomeModule,
|
|
1468
|
-
]
|
|
1469
|
-
}]
|
|
1470
|
-
}], ctorParameters: () => [{ type: i1$1.FaIconLibrary }] });
|
|
1471
|
-
|
|
1472
1353
|
class NgIPALibraryModule {
|
|
1473
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1474
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1354
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1355
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
|
|
1475
1356
|
TextareaInputComponent,
|
|
1476
1357
|
DropdownInputComponent,
|
|
1477
1358
|
LoaderComponent,
|
|
@@ -1480,7 +1361,8 @@ class NgIPALibraryModule {
|
|
|
1480
1361
|
DatepickerComponent,
|
|
1481
1362
|
HijriDatepickerComponent,
|
|
1482
1363
|
GregorianDatepickerComponent,
|
|
1483
|
-
RecaptchaComponent
|
|
1364
|
+
RecaptchaComponent,
|
|
1365
|
+
ShareButtonComponent], imports: [CommonModule,
|
|
1484
1366
|
FormsModule,
|
|
1485
1367
|
ReactiveFormsModule,
|
|
1486
1368
|
ToastrModule,
|
|
@@ -1488,7 +1370,6 @@ class NgIPALibraryModule {
|
|
|
1488
1370
|
NgxCaptchaModule,
|
|
1489
1371
|
PipesModule,
|
|
1490
1372
|
NgbDatepickerModule,
|
|
1491
|
-
ShareButtonModule,
|
|
1492
1373
|
NgSelectModule], exports: [TextInputComponent,
|
|
1493
1374
|
TextareaInputComponent,
|
|
1494
1375
|
DropdownInputComponent,
|
|
@@ -1498,9 +1379,9 @@ class NgIPALibraryModule {
|
|
|
1498
1379
|
PipesModule,
|
|
1499
1380
|
HijriDatepickerComponent,
|
|
1500
1381
|
GregorianDatepickerComponent,
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1382
|
+
RecaptchaComponent,
|
|
1383
|
+
ShareButtonComponent] }); }
|
|
1384
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, imports: [CommonModule,
|
|
1504
1385
|
FormsModule,
|
|
1505
1386
|
ReactiveFormsModule,
|
|
1506
1387
|
ToastrModule,
|
|
@@ -1508,11 +1389,9 @@ class NgIPALibraryModule {
|
|
|
1508
1389
|
NgxCaptchaModule,
|
|
1509
1390
|
PipesModule,
|
|
1510
1391
|
NgbDatepickerModule,
|
|
1511
|
-
|
|
1512
|
-
NgSelectModule, PipesModule,
|
|
1513
|
-
ShareButtonModule] }); }
|
|
1392
|
+
NgSelectModule, PipesModule] }); }
|
|
1514
1393
|
}
|
|
1515
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: NgIPALibraryModule, decorators: [{
|
|
1516
1395
|
type: NgModule,
|
|
1517
1396
|
args: [{
|
|
1518
1397
|
declarations: [
|
|
@@ -1526,6 +1405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1526
1405
|
HijriDatepickerComponent,
|
|
1527
1406
|
GregorianDatepickerComponent,
|
|
1528
1407
|
RecaptchaComponent,
|
|
1408
|
+
ShareButtonComponent
|
|
1529
1409
|
],
|
|
1530
1410
|
imports: [
|
|
1531
1411
|
CommonModule,
|
|
@@ -1536,7 +1416,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1536
1416
|
NgxCaptchaModule,
|
|
1537
1417
|
PipesModule,
|
|
1538
1418
|
NgbDatepickerModule,
|
|
1539
|
-
ShareButtonModule,
|
|
1540
1419
|
NgSelectModule,
|
|
1541
1420
|
],
|
|
1542
1421
|
exports: [
|
|
@@ -1549,8 +1428,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1549
1428
|
PipesModule,
|
|
1550
1429
|
HijriDatepickerComponent,
|
|
1551
1430
|
GregorianDatepickerComponent,
|
|
1552
|
-
ShareButtonModule,
|
|
1553
1431
|
RecaptchaComponent,
|
|
1432
|
+
ShareButtonComponent
|
|
1554
1433
|
],
|
|
1555
1434
|
}]
|
|
1556
1435
|
}] });
|
|
@@ -1601,10 +1480,10 @@ class LoadingInterceptor {
|
|
|
1601
1480
|
}
|
|
1602
1481
|
return false;
|
|
1603
1482
|
}
|
|
1604
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1605
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1483
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1484
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor }); }
|
|
1606
1485
|
}
|
|
1607
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1486
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LoadingInterceptor, decorators: [{
|
|
1608
1487
|
type: Injectable
|
|
1609
1488
|
}], ctorParameters: () => [{ type: LoaderService }] });
|
|
1610
1489
|
|
|
@@ -1669,10 +1548,10 @@ class CommonService {
|
|
|
1669
1548
|
}
|
|
1670
1549
|
return html.join('\r\n');
|
|
1671
1550
|
}
|
|
1672
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1673
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1552
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, providedIn: 'root' }); }
|
|
1674
1553
|
}
|
|
1675
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CommonService, decorators: [{
|
|
1676
1555
|
type: Injectable,
|
|
1677
1556
|
args: [{
|
|
1678
1557
|
providedIn: 'root',
|
|
@@ -1720,10 +1599,10 @@ class ErrorService {
|
|
|
1720
1599
|
});
|
|
1721
1600
|
messageToast.appendChild(icon);
|
|
1722
1601
|
}
|
|
1723
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1724
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1602
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, deps: [{ token: i1.ToastrService }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1603
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, providedIn: 'root' }); }
|
|
1725
1604
|
}
|
|
1726
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1605
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorService, decorators: [{
|
|
1727
1606
|
type: Injectable,
|
|
1728
1607
|
args: [{
|
|
1729
1608
|
providedIn: 'root',
|
|
@@ -1764,10 +1643,10 @@ class ErrorInterceptor {
|
|
|
1764
1643
|
}
|
|
1765
1644
|
return false;
|
|
1766
1645
|
}
|
|
1767
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1768
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1646
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1647
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor }); }
|
|
1769
1648
|
}
|
|
1770
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorInterceptor, decorators: [{
|
|
1771
1650
|
type: Injectable
|
|
1772
1651
|
}], ctorParameters: () => [{ type: ErrorService }] });
|
|
1773
1652
|
|
|
@@ -1831,10 +1710,10 @@ class AuthService {
|
|
|
1831
1710
|
.join(''));
|
|
1832
1711
|
return JSON.parse(jsonPayload);
|
|
1833
1712
|
}
|
|
1834
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1835
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1713
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1714
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, providedIn: 'root' }); }
|
|
1836
1715
|
}
|
|
1837
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1716
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AuthService, decorators: [{
|
|
1838
1717
|
type: Injectable,
|
|
1839
1718
|
args: [{
|
|
1840
1719
|
providedIn: 'root',
|
|
@@ -1851,10 +1730,10 @@ class TokenService {
|
|
|
1851
1730
|
addExceptionUrl(url) {
|
|
1852
1731
|
this.urls.push(url);
|
|
1853
1732
|
}
|
|
1854
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1855
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1733
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1734
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, providedIn: 'root' }); }
|
|
1856
1735
|
}
|
|
1857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1736
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenService, decorators: [{
|
|
1858
1737
|
type: Injectable,
|
|
1859
1738
|
args: [{
|
|
1860
1739
|
providedIn: 'root',
|
|
@@ -1929,12 +1808,12 @@ class TokenInterceptor {
|
|
|
1929
1808
|
}
|
|
1930
1809
|
return false;
|
|
1931
1810
|
}
|
|
1932
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1933
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1811
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor, deps: [{ token: AuthService }, { token: i2$3.HttpClient }, { token: LoaderService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1812
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor }); }
|
|
1934
1813
|
}
|
|
1935
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1814
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TokenInterceptor, decorators: [{
|
|
1936
1815
|
type: Injectable
|
|
1937
|
-
}], ctorParameters: () => [{ type: AuthService }, { type: i2$
|
|
1816
|
+
}], ctorParameters: () => [{ type: AuthService }, { type: i2$3.HttpClient }, { type: LoaderService }, { type: TokenService }] });
|
|
1938
1817
|
|
|
1939
1818
|
class myIPATokenInterceptor {
|
|
1940
1819
|
constructor(authService, tokenService) {
|
|
@@ -1963,10 +1842,10 @@ class myIPATokenInterceptor {
|
|
|
1963
1842
|
}
|
|
1964
1843
|
return false;
|
|
1965
1844
|
}
|
|
1966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1967
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1845
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor, deps: [{ token: AuthService }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1846
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor }); }
|
|
1968
1847
|
}
|
|
1969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: myIPATokenInterceptor, decorators: [{
|
|
1970
1849
|
type: Injectable
|
|
1971
1850
|
}], ctorParameters: () => [{ type: AuthService }, { type: TokenService }] });
|
|
1972
1851
|
|
|
@@ -2107,10 +1986,10 @@ class BreadcrumbsService {
|
|
|
2107
1986
|
lastSpan?.classList.add(...['bc-current']);
|
|
2108
1987
|
lastSpan.innerHTML = lastSpanLink.innerHTML;
|
|
2109
1988
|
}
|
|
2110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1989
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1990
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' }); }
|
|
2112
1991
|
}
|
|
2113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1992
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsService, decorators: [{
|
|
2114
1993
|
type: Injectable,
|
|
2115
1994
|
args: [{
|
|
2116
1995
|
providedIn: 'root',
|
|
@@ -2274,10 +2153,10 @@ class BreadcrumbsV2Service {
|
|
|
2274
2153
|
const span = this.createSpan(lastSpan.innerHTML);
|
|
2275
2154
|
lastSpan.replaceWith(span);
|
|
2276
2155
|
}
|
|
2277
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2278
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2156
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2157
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, providedIn: 'root' }); }
|
|
2279
2158
|
}
|
|
2280
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BreadcrumbsV2Service, decorators: [{
|
|
2281
2160
|
type: Injectable,
|
|
2282
2161
|
args: [{
|
|
2283
2162
|
providedIn: 'root',
|
|
@@ -2293,5 +2172,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2293
2172
|
* Generated bundle index. Do not edit.
|
|
2294
2173
|
*/
|
|
2295
2174
|
|
|
2296
|
-
export { AuthService, BreadcrumbsService, BreadcrumbsV2Service, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent,
|
|
2175
|
+
export { AuthService, BreadcrumbsService, BreadcrumbsV2Service, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, TextInputComponent, TextareaInputComponent, TokenInterceptor, TokenService, myIPATokenInterceptor };
|
|
2297
2176
|
//# sourceMappingURL=ng-ipa-library.mjs.map
|