ng-ipa-library 5.0.11 → 6.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 +117 -104
- package/fesm2022/ng-ipa-library.mjs.map +1 -1
- package/lib/core/interceptors/myIPAToken.interceptor.d.ts +4 -1
- package/package.json +11 -13
- package/src/lib/assets/ngIPAStyle.scss +6 -14
- package/esm2022/lib/core/components/loading/loading.component.mjs +0 -37
- package/esm2022/lib/core/interceptors/error.interceptor.mjs +0 -46
- package/esm2022/lib/core/interceptors/loading.interceptor.mjs +0 -58
- package/esm2022/lib/core/interceptors/myIPAToken.interceptor.mjs +0 -25
- package/esm2022/lib/core/interceptors/token.interceptor.mjs +0 -81
- package/esm2022/lib/core/services/auth.service.mjs +0 -62
- package/esm2022/lib/core/services/error.service.mjs +0 -55
- package/esm2022/lib/core/services/loader.service.mjs +0 -24
- package/esm2022/lib/core/services/token.service.mjs +0 -22
- package/esm2022/lib/generate-form/generate-form.component.mjs +0 -153
- package/esm2022/lib/ipa-form/datepicker/datepicker.component.mjs +0 -124
- package/esm2022/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +0 -27
- package/esm2022/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.mjs +0 -38
- package/esm2022/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.mjs +0 -38
- package/esm2022/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +0 -27
- package/esm2022/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +0 -84
- package/esm2022/lib/ipa-form/file-upload/file-upload.component.mjs +0 -142
- package/esm2022/lib/ipa-form/ipa-form.service.mjs +0 -290
- package/esm2022/lib/ipa-form/recaptcha/recaptcha.component.mjs +0 -55
- package/esm2022/lib/ipa-form/text-input/text-input.component.mjs +0 -93
- package/esm2022/lib/ipa-form/textarea-input/textarea-input.component.mjs +0 -76
- package/esm2022/lib/models/apiException.mjs +0 -2
- package/esm2022/lib/models/apiResponse.mjs +0 -2
- package/esm2022/lib/models/breadcrumbs.model.mjs +0 -2
- package/esm2022/lib/models/decodedToken.model.mjs +0 -2
- package/esm2022/lib/models/exceptionUrl.model.mjs +0 -2
- package/esm2022/lib/models/generateForm.model.mjs +0 -2
- package/esm2022/lib/models/pagedResult.mjs +0 -2
- package/esm2022/lib/models/user.model.mjs +0 -2
- package/esm2022/lib/ng-ipa-library.module.mjs +0 -107
- package/esm2022/lib/pipes/hijri-date.pipe.mjs +0 -18
- package/esm2022/lib/pipes/pipes.module.mjs +0 -16
- package/esm2022/lib/services/breadcrumbs.service.mjs +0 -149
- package/esm2022/lib/services/common.service.mjs +0 -74
- package/esm2022/lib/share-button/share-button.component.mjs +0 -35
- package/esm2022/lib/share-button/share-button.module.mjs +0 -50
- package/esm2022/ng-ipa-library.mjs +0 -5
- package/esm2022/public-api.mjs +0 -43
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { IPAFormService } from '../ipa-form/ipa-form.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../ipa-form/ipa-form.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "@angular/forms";
|
|
8
|
-
import * as i4 from "../ipa-form/text-input/text-input.component";
|
|
9
|
-
import * as i5 from "../ipa-form/textarea-input/textarea-input.component";
|
|
10
|
-
import * as i6 from "../ipa-form/dropdown-input/dropdown-input.component";
|
|
11
|
-
import * as i7 from "../ipa-form/file-upload/file-upload.component";
|
|
12
|
-
import * as i8 from "../ipa-form/recaptcha/recaptcha.component";
|
|
13
|
-
export class GenerateFormComponent {
|
|
14
|
-
constructor(validationService) {
|
|
15
|
-
this.validationService = validationService;
|
|
16
|
-
this.isArabicForm = true;
|
|
17
|
-
this.recaptchaSize = 'normal';
|
|
18
|
-
this.lang = 'ar';
|
|
19
|
-
this.recaptchaType = 'image';
|
|
20
|
-
this.theme = 'light';
|
|
21
|
-
this.useGlobalDomain = true;
|
|
22
|
-
// file upload outputs
|
|
23
|
-
this.successUpload = new EventEmitter();
|
|
24
|
-
this.fileAdded = new EventEmitter();
|
|
25
|
-
this.fileDeleted = new EventEmitter();
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.changeDataValueForEngForm();
|
|
29
|
-
this.createForm();
|
|
30
|
-
}
|
|
31
|
-
getFormControls(formControlName) {
|
|
32
|
-
return this.generateForm.get('items' + formControlName);
|
|
33
|
-
}
|
|
34
|
-
getErrorMessage(formControlName) {
|
|
35
|
-
const formControl = this.generateForm.controls[formControlName];
|
|
36
|
-
this.errorMsg = this.validationService.getErrorMessage(formControl, '', this.isArabicForm);
|
|
37
|
-
return this.errorMsg;
|
|
38
|
-
}
|
|
39
|
-
SuccessUpload(event) {
|
|
40
|
-
this.successUpload.emit(event);
|
|
41
|
-
}
|
|
42
|
-
FileAdded(file, formControlName) {
|
|
43
|
-
this.generateForm.controls[formControlName].patchValue(file);
|
|
44
|
-
this.fileAdded.emit(file);
|
|
45
|
-
}
|
|
46
|
-
FileDeleted(event, formControlName) {
|
|
47
|
-
this.generateForm.controls[formControlName].patchValue(null);
|
|
48
|
-
this.fileDeleted.emit(event);
|
|
49
|
-
}
|
|
50
|
-
changeDataValueForEngForm() {
|
|
51
|
-
this.form.columns = this.form.columns.map((column) => {
|
|
52
|
-
return {
|
|
53
|
-
...column,
|
|
54
|
-
data: column.data?.map((item) => {
|
|
55
|
-
const value = item[column.textField];
|
|
56
|
-
return {
|
|
57
|
-
...item,
|
|
58
|
-
[column.textField]: this.isArabicForm
|
|
59
|
-
? value.split(',')[0]
|
|
60
|
-
: value.split(',')[1],
|
|
61
|
-
};
|
|
62
|
-
}),
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
createForm() {
|
|
67
|
-
this.form.columns.forEach((column) => {
|
|
68
|
-
if (column.type === 'checkbox') {
|
|
69
|
-
this.addCheckboxControl(column);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
this.generateForm.addControl(column.formControlName, new UntypedFormControl(column.type === 'file' && column.multipleFile > 1 ? [] : null, [
|
|
73
|
-
column.required ? Validators.required : Validators.nullValidator,
|
|
74
|
-
column.validationPattern
|
|
75
|
-
? Validators.pattern(column.validationPattern)
|
|
76
|
-
: Validators.nullValidator,
|
|
77
|
-
['select', 'radio', 'file', 'recaptcha'].indexOf(column.type) <=
|
|
78
|
-
-1
|
|
79
|
-
? Validators.maxLength(column.size)
|
|
80
|
-
: Validators.nullValidator,
|
|
81
|
-
column.type === 'number'
|
|
82
|
-
? Validators.min(1)
|
|
83
|
-
: Validators.nullValidator,
|
|
84
|
-
column.formControlName === 'email'
|
|
85
|
-
? IPAFormService.email
|
|
86
|
-
: Validators.nullValidator,
|
|
87
|
-
column.formControlName === 'mobileNo'
|
|
88
|
-
? IPAFormService.mobileNo
|
|
89
|
-
: Validators.nullValidator,
|
|
90
|
-
column.formControlName === 'userId'
|
|
91
|
-
? IPAFormService.checkID
|
|
92
|
-
: Validators.nullValidator,
|
|
93
|
-
]));
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
addCheckboxControl(column) {
|
|
98
|
-
let checkboxGroup = new UntypedFormArray(column.data.map((item) => {
|
|
99
|
-
return new UntypedFormGroup({
|
|
100
|
-
[column.valueField]: new UntypedFormControl(item[column.valueField]),
|
|
101
|
-
[column.textField]: new UntypedFormControl(item[column.textField]),
|
|
102
|
-
checkbox: new UntypedFormControl(false),
|
|
103
|
-
});
|
|
104
|
-
}));
|
|
105
|
-
this.generateForm.addControl(column.formControlName, new UntypedFormControl(null, column.required ? Validators.required : Validators.nullValidator));
|
|
106
|
-
this.generateForm.addControl('items' + column.formControlName, checkboxGroup);
|
|
107
|
-
checkboxGroup.valueChanges.subscribe((value) => {
|
|
108
|
-
let selectedItems = this.getCheckboxSelectedValues(value);
|
|
109
|
-
if (selectedItems) {
|
|
110
|
-
this.generateForm.controls[column.formControlName].patchValue(selectedItems.map((x) => x[column.textField]));
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this.generateForm.controls[column.formControlName].patchValue(null);
|
|
114
|
-
this.generateForm.controls[column.formControlName].markAsTouched();
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
getCheckboxSelectedValues(items) {
|
|
119
|
-
let selectedItems = items.filter((item) => item.checkbox);
|
|
120
|
-
return selectedItems.length > 0 ? selectedItems : null;
|
|
121
|
-
}
|
|
122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GenerateFormComponent, deps: [{ token: i1.IPAFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: GenerateFormComponent, 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\">\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 [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\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 [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 [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\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>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: i5.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: i6.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: i7.FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: i8.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] }); }
|
|
124
|
-
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GenerateFormComponent, decorators: [{
|
|
126
|
-
type: Component,
|
|
127
|
-
args: [{ selector: 'ipa-generate-form', 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 [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\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 [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 [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\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>\r\n" }]
|
|
128
|
-
}], ctorParameters: () => [{ type: i1.IPAFormService }], propDecorators: { generateForm: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], form: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], isArabicForm: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], siteKey: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], recaptchaSize: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], lang: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], recaptchaType: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], theme: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], useGlobalDomain: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], successUpload: [{
|
|
147
|
-
type: Output
|
|
148
|
-
}], fileAdded: [{
|
|
149
|
-
type: Output
|
|
150
|
-
}], fileDeleted: [{
|
|
151
|
-
type: Output
|
|
152
|
-
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFROUQsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBb0IsaUJBQWlDO1FBQWpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFqQjVDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBSXBCLGtCQUFhLEdBQXlCLFFBQVEsQ0FBQztRQUMvQyxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN6QixrQkFBYSxHQUFzQixPQUFPLENBQUM7UUFDM0MsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFaEMsc0JBQXNCO1FBQ1osa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUlhLENBQUM7SUFFekQsUUFBUTtRQUNOLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FB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LENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBWTtRQUM1QyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsT0FBTyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQzs4R0F0SlUscUJBQXFCO2tHQUFyQixxQkFBcUIsc1lDVmxDLG8vS0FnR0E7OzJGRHRGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO21GQUtwQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbHVtbiwgR2VuZXJhdGVGb3JtIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlRm9ybS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1nZW5lcmF0ZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBnZW5lcmF0ZUZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm0hOiBHZW5lcmF0ZUZvcm07XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuXHJcbiAgLy8gcmVjYXB0Y2hhIGlucHV0c1xyXG4gIEBJbnB1dCgpIHNpdGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVjYXB0Y2hhU2l6ZTogJ2NvbXBhY3QnIHwgJ25vcm1hbCcgPSAnbm9ybWFsJztcclxuICBASW5wdXQoKSBsYW5nOiAnYXInIHwgJ2VuJyA9ICdhcic7XHJcbiAgQElucHV0KCkgcmVjYXB0Y2hhVHlwZTogJ2ltYWdlJyB8ICdhdWRpbycgPSAnaW1hZ2UnO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcclxuICBASW5wdXQoKSB1c2VHbG9iYWxEb21haW4gPSB0cnVlO1xyXG5cclxuICAvLyBmaWxlIHVwbG9hZCBvdXRwdXRzXHJcbiAgQE91dHB1dCgpIHN1Y2Nlc3NVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbGVBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZURlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGVycm9yTXNnITogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VEYXRhVmFsdWVGb3JFbmdGb3JtKCk7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1Db250cm9scyhmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVGb3JtLmdldCgnaXRlbXMnICsgZm9ybUNvbnRyb2xOYW1lKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKGZvcm1Db250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW1xyXG4gICAgICBmb3JtQ29udHJvbE5hbWVcclxuICAgIF0gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgdGhpcy5lcnJvck1zZyA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgICBmb3JtQ29udHJvbCxcclxuICAgICAgJycsXHJcbiAgICAgIHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG5cclxuICBTdWNjZXNzVXBsb2FkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3VjY2Vzc1VwbG9hZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIEZpbGVBZGRlZChmaWxlOiBhbnksIGZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnBhdGNoVmFsdWUoZmlsZSk7XHJcbiAgICB0aGlzLmZpbGVBZGRlZC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgRmlsZURlbGV0ZWQoZXZlbnQ6IGFueSwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsZURlbGV0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZURhdGFWYWx1ZUZvckVuZ0Zvcm0oKSB7XHJcbiAgICB0aGlzLmZvcm0uY29sdW1ucyA9IHRoaXMuZm9ybS5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uY29sdW1uLFxyXG4gICAgICAgIGRhdGE6IGNvbHVtbi5kYXRhPy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVtjb2x1bW4udGV4dEZpZWxkIV07XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICBbY29sdW1uLnRleHRGaWVsZCFdOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgICAgICAgID8gdmFsdWUuc3BsaXQoJywnKVswXVxyXG4gICAgICAgICAgICAgIDogdmFsdWUuc3BsaXQoJywnKVsxXSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSksXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgICB0aGlzLmFkZENoZWNrYm94Q29udHJvbChjb2x1bW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICAgICAgbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICAgICAgY29sdW1uLnR5cGUgPT09ICdmaWxlJyAmJiBjb2x1bW4ubXVsdGlwbGVGaWxlISA+IDEgPyBbXSA6IG51bGwsXHJcbiAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICBjb2x1bW4ucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgIGNvbHVtbi52YWxpZGF0aW9uUGF0dGVyblxyXG4gICAgICAgICAgICAgICAgPyBWYWxpZGF0b3JzLnBhdHRlcm4oY29sdW1uLnZhbGlkYXRpb25QYXR0ZXJuKVxyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgWydzZWxlY3QnLCAncmFkaW8nLCAnZmlsZScsICdyZWNhcHRjaGEnXS5pbmRleE9mKGNvbHVtbi50eXBlKSA8PVxyXG4gICAgICAgICAgICAgIC0xXHJcbiAgICAgICAgICAgICAgICA/IFZhbGlkYXRvcnMubWF4TGVuZ3RoKGNvbHVtbi5zaXplISlcclxuICAgICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSAnbnVtYmVyJ1xyXG4gICAgICAgICAgICAgICAgPyBWYWxpZGF0b3JzLm1pbigxKVxyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uLmZvcm1Db250cm9sTmFtZSA9PT0gJ2VtYWlsJ1xyXG4gICAgICAgICAgICAgICAgPyBJUEFGb3JtU2VydmljZS5lbWFpbFxyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uLmZvcm1Db250cm9sTmFtZSA9PT0gJ21vYmlsZU5vJ1xyXG4gICAgICAgICAgICAgICAgPyBJUEFGb3JtU2VydmljZS5tb2JpbGVOb1xyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uLmZvcm1Db250cm9sTmFtZSA9PT0gJ3VzZXJJZCdcclxuICAgICAgICAgICAgICAgID8gSVBBRm9ybVNlcnZpY2UuY2hlY2tJRFxyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbjogQ29sdW1uKSB7XHJcbiAgICBsZXQgY2hlY2tib3hHcm91cCA9IG5ldyBVbnR5cGVkRm9ybUFycmF5KFxyXG4gICAgICBjb2x1bW4uZGF0YSEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgICAgIFtjb2x1bW4udmFsdWVGaWVsZCFdOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGl0ZW1bY29sdW1uLnZhbHVlRmllbGQhXSksXHJcbiAgICAgICAgICBbY29sdW1uLnRleHRGaWVsZCFdOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGl0ZW1bY29sdW1uLnRleHRGaWVsZCFdKSxcclxuICAgICAgICAgIGNoZWNrYm94OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgY29sdW1uLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIGNvbHVtbi5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3JcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICdpdGVtcycgKyBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICBjaGVja2JveEdyb3VwXHJcbiAgICApO1xyXG4gICAgY2hlY2tib3hHcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55W10pID0+IHtcclxuICAgICAgbGV0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmdldENoZWNrYm94U2VsZWN0ZWRWYWx1ZXModmFsdWUpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2NvbHVtbi5mb3JtQ29udHJvbE5hbWVdLnBhdGNoVmFsdWUoXHJcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLm1hcCgoeCkgPT4geFtjb2x1bW4udGV4dEZpZWxkIV0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2NvbHVtbi5mb3JtQ29udHJvbE5hbWVdLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENoZWNrYm94U2VsZWN0ZWRWYWx1ZXMoaXRlbXM6IGFueVtdKTogYW55W10gfCBudWxsIHtcclxuICAgIGxldCBzZWxlY3RlZEl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrYm94KTtcclxuICAgIHJldHVybiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgPyBzZWxlY3RlZEl0ZW1zIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZW5lcmF0ZUZvcm1cIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybS5jb2x1bW5zXCI+XHJcbiAgICA8ZGl2IFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG4gICAgICA8IS0tIFRFWFRBUkVBIC0tPlxyXG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIndGV4dEFyZWEnXCI+XHJcbiAgICAgICAgPGlwYS10ZXh0YXJlYS1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCIgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXHJcbiAgICAgICAgICBbcGF0dGVybkVycm9yTXNnXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLnBhdHRlcm5BckVycm9yTXNnISA6IGNvbHVtbi5wYXR0ZXJuRW5FcnJvck1zZyFcIlxyXG4gICAgICAgICAgW2NsYXNzZXNdPVwiY29sdW1uLmlucHV0Q2xhc3NlcyFcIiBbY29udGFpbmVyQ2xhc3Nlc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3NlcyFcIiBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiPlxyXG4gICAgICAgIDwvaXBhLXRleHRhcmVhLWlucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gRFJPUCBET1dOIExJU1QgLS0+XHJcbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCI+XHJcbiAgICAgICAgPGlwYS1kcm9wZG93bi1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCIgW2l0ZW1zXT1cImNvbHVtbi5kYXRhIVwiXHJcbiAgICAgICAgICBbdmFsdWVGaWVsZF09XCJjb2x1bW4udmFsdWVGaWVsZCFcIiBbdGV4dEZpZWxkXT1cImNvbHVtbi50ZXh0RmllbGQhXCIgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXHJcbiAgICAgICAgICBbc2VhcmNoYWJsZV09XCJjb2x1bW4uc2VhcmNoYWJsZSFcIiBbbm90Rm91bmRUZXh0XT1cImNvbHVtbi5ub3RGb3VuZFRleHQhXCIgW2NsYXNzZXNdPVwiY29sdW1uLmlucHV0Q2xhc3NlcyFcIlxyXG4gICAgICAgICAgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCIgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIiBbZnJvbUdlbmVyYXRlRm9ybV09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9pcGEtZHJvcGRvd24taW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBDSEVDS0JPWCAtLT5cclxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sdW1uLnJlcXVpcmVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICB7e2lzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtQXJyYXlOYW1lXT1cIidpdGVtcycrIGNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZ2V0Rm9ybUNvbnRyb2xzKGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayB7e2NvbHVtbi5pbnB1dENsYXNzZXN9fVwiIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cclxuICAgICAgICAgICAgPGlucHV0IFtpZF09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2NvbnRyb2wudmFsdWVbY29sdW1uLnZhbHVlRmllbGQhXVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStjb250cm9sLnZhbHVlW2NvbHVtbi52YWx1ZUZpZWxkIV1cIj5cclxuICAgICAgICAgICAgICB7e2NvbnRyb2wudmFsdWVbY29sdW1uLnRleHRGaWVsZCFdfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAqbmdJZj1cImdldEVycm9yTWVzc2FnZShjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBSQURJTyAtLT5cclxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sdW1uLnJlcXVpcmVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgICB7e2lzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbHVtbi5kYXRhOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayB7e2NvbHVtbi5pbnB1dENsYXNzZXN9fVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUraXRlbVtjb2x1bW4udmFsdWVGaWVsZCFdXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwiaXRlbVtjb2x1bW4udGV4dEZpZWxkIV1cIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStpdGVtW2NvbHVtbi52YWx1ZUZpZWxkIV1cIj5cclxuICAgICAgICAgICAgICB7e2l0ZW1bY29sdW1uLnRleHRGaWVsZCFdfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAqbmdJZj1cImdldEVycm9yTWVzc2FnZShjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBGSUxFIFVQTE9BRCAtLT5cclxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbGUnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgPGlwYS1maWxlLXVwbG9hZCBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxyXG4gICAgICAgICAgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiIFthY2NlcHRlZEZpbGVzXT1cImNvbHVtbi5hY2NlcHRlZEZpbGVzIVwiXHJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiY29sdW1uLm11bHRpcGxlRmlsZSFcIiBbbWF4RmlsZVNpemVdPVwiY29sdW1uLnNpemUhXCIgW21ldGhvZF09XCJjb2x1bW4uYXBpVVJsTWV0aG9kIVwiXHJcbiAgICAgICAgICBbYXV0b1VwbG9hZF09XCJjb2x1bW4uYXV0b1VwbG9hZEZpbGUhXCIgW2FwaVVybF09XCJjb2x1bW4uYXBpVXJsPz8gJ2FwaVVybCcgXCJcclxuICAgICAgICAgIFthdXRob3JpemF0aW9uXT1cImNvbHVtbi5hdXRob3JpemF0aW9uIVwiIG5nRGVmYXVsdENvbnRyb2wgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgIChzdWNjZXNzVXBsb2FkKT1cIlN1Y2Nlc3NVcGxvYWQoJGV2ZW50KVwiIChmaWxlQWRkZWQpPVwiRmlsZUFkZGVkKCRldmVudCwgY29sdW1uLmZvcm1Db250cm9sTmFtZSlcIlxyXG4gICAgICAgICAgKGZpbGVEZWxldGVkKT1cIkZpbGVEZWxldGVkKCRldmVudCwgY29sdW1uLmZvcm1Db250cm9sTmFtZSlcIj5cclxuICAgICAgICA8L2lwYS1maWxlLXVwbG9hZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIHJlY2FwdGNoYSAtLT5cclxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3JlY2FwdGNoYSdcIiBbY2xhc3NdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXNcIj5cclxuICAgICAgICA8aXBhLXJlY2FwdGNoYSBbcmVjYXB0Y2hhU2l6ZV09XCJyZWNhcHRjaGFTaXplXCIgW2xhbmddPVwiaXNBcmFiaWNGb3JtPyAnYXInOidlbidcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgW3JlY2FwdGNoYVR5cGVdPVwicmVjYXB0Y2hhVHlwZVwiIFt1c2VHbG9iYWxEb21haW5dPVwidXNlR2xvYmFsRG9tYWluXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7Y29sdW1uLmZvcm1Db250cm9sTmFtZX19XCI+XHJcbiAgICAgICAgPC9pcGEtcmVjYXB0Y2hhPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gREVGQVVMVCAtLT5cclxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgIDxpcGEtdGV4dC1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIFt0eXBlXT1cImNvbHVtbi50eXBlXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIiBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgIFtwYXR0ZXJuRXJyb3JNc2ddPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4ucGF0dGVybkFyRXJyb3JNc2chIDogY29sdW1uLnBhdHRlcm5FbkVycm9yTXNnIVwiXHJcbiAgICAgICAgICBbY2xhc3Nlc109XCJjb2x1bW4uaW5wdXRDbGFzc2VzIVwiIFtjb250YWluZXJDbGFzc2VzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzIVwiIFtpc0FyYWJpY0Zvcm1dPVwiaXNBcmFiaWNGb3JtXCI+XHJcbiAgICAgICAgPC9pcGEtdGV4dC1pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Self, ViewChild, } from '@angular/core';
|
|
2
|
-
import { UntypedFormControl } from '@angular/forms';
|
|
3
|
-
import { IPAFormService } from '../ipa-form.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../ipa-form.service";
|
|
6
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
7
|
-
import * as i3 from "@angular/forms";
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
export class DatepickerComponent {
|
|
10
|
-
constructor(ipaFormService, calendar, controlDir, config, cd) {
|
|
11
|
-
this.ipaFormService = ipaFormService;
|
|
12
|
-
this.calendar = calendar;
|
|
13
|
-
this.controlDir = controlDir;
|
|
14
|
-
this.cd = cd;
|
|
15
|
-
this.label = 'datepicker';
|
|
16
|
-
this.patternErrorMsg = 'invalid pattern';
|
|
17
|
-
this.required = false;
|
|
18
|
-
this.isArabicForm = true;
|
|
19
|
-
this.today = this.calendar.getToday();
|
|
20
|
-
this.formControl = new UntypedFormControl('');
|
|
21
|
-
this.controlDir.valueAccessor = this;
|
|
22
|
-
config.container = null;
|
|
23
|
-
config.placement = 'bottom-center';
|
|
24
|
-
}
|
|
25
|
-
ngAfterContentChecked() {
|
|
26
|
-
this.cd.detectChanges();
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
const control = this.controlDir.control;
|
|
30
|
-
const validators = control?.validator ? [control.validator] : [];
|
|
31
|
-
if (this.isHijriDatepicker)
|
|
32
|
-
validators.push(IPAFormService.validHijriDate);
|
|
33
|
-
control?.setValidators(validators);
|
|
34
|
-
control?.updateValueAndValidity();
|
|
35
|
-
this.formControl = control;
|
|
36
|
-
}
|
|
37
|
-
onChange(event) { }
|
|
38
|
-
onTouched() { }
|
|
39
|
-
writeValue(obj) { }
|
|
40
|
-
registerOnChange(fn) {
|
|
41
|
-
this.onChange = fn;
|
|
42
|
-
}
|
|
43
|
-
registerOnTouched(fn) {
|
|
44
|
-
this.onTouched = fn;
|
|
45
|
-
}
|
|
46
|
-
openDatepicker(event) {
|
|
47
|
-
if (!this.datepicker.isOpen()) {
|
|
48
|
-
setTimeout(() => {
|
|
49
|
-
this.changeDatepickerTitles();
|
|
50
|
-
}, 100);
|
|
51
|
-
this.datepicker.toggle();
|
|
52
|
-
event.preventDefault();
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this.datepicker.close();
|
|
56
|
-
}
|
|
57
|
-
get errorMessage() {
|
|
58
|
-
this.errorMsg = this.ipaFormService.getErrorMessage(this.formControl, this.patternErrorMsg, this.isArabicForm);
|
|
59
|
-
return this.errorMsg;
|
|
60
|
-
}
|
|
61
|
-
changeDatepickerTitles() {
|
|
62
|
-
// change pervious month button title
|
|
63
|
-
const arrowPre = document
|
|
64
|
-
.getElementsByClassName('ngb-dp-arrow-prev')
|
|
65
|
-
.item(0);
|
|
66
|
-
const buttonPrev = arrowPre.getElementsByTagName('button').item(0);
|
|
67
|
-
if (this.isArabicForm)
|
|
68
|
-
buttonPrev.title = 'الشهر السابق';
|
|
69
|
-
else
|
|
70
|
-
buttonPrev.title = 'Pervious month';
|
|
71
|
-
// change next month button title
|
|
72
|
-
const arrowNext = document
|
|
73
|
-
.getElementsByClassName('ngb-dp-arrow-next')
|
|
74
|
-
.item(0);
|
|
75
|
-
const buttonNext = arrowNext.getElementsByTagName('button').item(0);
|
|
76
|
-
if (this.isArabicForm)
|
|
77
|
-
buttonNext.title = 'الشهر التالي';
|
|
78
|
-
else
|
|
79
|
-
buttonNext.title = 'Next month';
|
|
80
|
-
// change month list title
|
|
81
|
-
const divList = document
|
|
82
|
-
.getElementsByClassName('ngb-dp-navigation-select')
|
|
83
|
-
.item(0);
|
|
84
|
-
const selectList = divList.getElementsByTagName('select');
|
|
85
|
-
if (this.isArabicForm) {
|
|
86
|
-
selectList.item(0).title = 'اختر الشهر';
|
|
87
|
-
selectList.item(1).title = 'اختر السنة';
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
selectList.item(0).title = 'Select month';
|
|
91
|
-
selectList.item(1).title = 'Select year';
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgbCalendar }, { token: i3.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DatepickerComponent, 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=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.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"] }] }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{ selector: 'ipa-datepicker', template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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"] }]
|
|
100
|
-
}], ctorParameters: () => [{ type: i1.IPAFormService }, { type: i2.NgbCalendar }, { type: i3.NgControl, decorators: [{
|
|
101
|
-
type: Self
|
|
102
|
-
}] }, { type: i2.NgbInputDatepickerConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { datepicker: [{
|
|
103
|
-
type: ViewChild,
|
|
104
|
-
args: ['d']
|
|
105
|
-
}], id: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], label: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], patternErrorMsg: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], required: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], maxDate: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], minDate: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], classes: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], containerClasses: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], isArabicForm: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBTy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBT3JELE1BQU0sT0FBTyxtQkFBbUI7SUFnQjlCLFlBQ1UsY0FBOEIsRUFDOUIsUUFBcUIsRUFDZCxVQUFxQixFQUNwQyxNQUFnQyxFQUN4QixFQUFxQjtRQUpyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVc7UUFFNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFsQnRCLFVBQUssR0FBRyxZQUFZLENBQUM7UUFDckIsb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS2pCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRTdCLFVBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQXVCLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFVM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxD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UUFFdkMsMEJBQTBCO1FBQzFCLE1BQU0sT0FBTyxHQUFHLFFBQVE7YUFDckIsc0JBQXNCLENBQUMsMEJBQTBCLENBQUM7YUFDbEQsSUFBSSxDQUFDLENBQUMsQ0FBbUIsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsQ0FBQyxLQUFNLEdBQUcsWUFBWSxDQUFDO1lBQzFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsS0FBTSxHQUFHLFlBQVksQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsS0FBTSxHQUFHLGNBQWMsQ0FBQztZQUM1QyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDLEtBQU0sR0FBRyxhQUFhLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7OEdBeEdVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVYQ3ZCaEMsMG5EQXFCQTs7MkZERWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBdUJ2QixJQUFJO2dIQWxCUyxVQUFVO3NCQUF6QixTQUFTO3VCQUFDLEdBQUc7Z0JBQ0wsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiQ2FsZW5kYXIsXHJcbiAgTmdiRGF0ZVN0cnVjdCxcclxuICBOZ2JJbnB1dERhdGVwaWNrZXIsXHJcbiAgTmdiSW5wdXREYXRlcGlja2VyQ29uZmlnLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBAVmlld0NoaWxkKCdkJykgZGF0ZXBpY2tlciE6IE5nYklucHV0RGF0ZXBpY2tlcjtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbCA9ICdkYXRlcGlja2VyJztcclxuICBASW5wdXQoKSBwYXR0ZXJuRXJyb3JNc2cgPSAnaW52YWxpZCBwYXR0ZXJuJztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIGNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3NlcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG4gIGlzSGlqcmlEYXRlcGlja2VyITogYm9vbGVhbjtcclxuICB0b2RheSA9IHRoaXMuY2FsZW5kYXIuZ2V0VG9kYXkoKTtcclxuICBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcbiAgZXJyb3JNc2chOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaXBhRm9ybVNlcnZpY2U6IElQQUZvcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWxlbmRhcjogTmdiQ2FsZW5kYXIsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wsXHJcbiAgICBjb25maWc6IE5nYklucHV0RGF0ZXBpY2tlckNvbmZpZyxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xEaXIudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICBjb25maWcuY29udGFpbmVyID0gbnVsbDtcclxuICAgIGNvbmZpZy5wbGFjZW1lbnQgPSAnYm90dG9tLWNlbnRlcic7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuICAgIGlmICh0aGlzLmlzSGlqcmlEYXRlcGlja2VyKSB2YWxpZGF0b3JzLnB1c2goSVBBRm9ybVNlcnZpY2UudmFsaWRIaWpyaURhdGUpO1xyXG4gICAgY29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge31cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVwaWNrZXIoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuZGF0ZXBpY2tlci5pc09wZW4oKSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNoYW5nZURhdGVwaWNrZXJUaXRsZXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnRvZ2dsZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy5pcGFGb3JtU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnLFxyXG4gICAgICB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTXNnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VEYXRlcGlja2VyVGl0bGVzKCk6IHZvaWQge1xyXG4gICAgLy8gY2hhbmdlIHBlcnZpb3VzIG1vbnRoIGJ1dHRvbiB0aXRsZVxyXG4gICAgY29uc3QgYXJyb3dQcmUgPSBkb2N1bWVudFxyXG4gICAgICAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbmdiLWRwLWFycm93LXByZXYnKVxyXG4gICAgICAuaXRlbSgwKSBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGNvbnN0IGJ1dHRvblByZXYgPSBhcnJvd1ByZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJykuaXRlbSgwKTtcclxuICAgIGlmICh0aGlzLmlzQXJhYmljRm9ybSkgYnV0dG9uUHJldiEudGl0bGUhID0gJ9in2YTYtNmH2LEg2KfZhNiz2KfYqNmCJztcclxuICAgIGVsc2UgYnV0dG9uUHJldiEudGl0bGUhID0gJ1BlcnZpb3VzIG1vbnRoJztcclxuXHJcbiAgICAvLyBjaGFuZ2UgbmV4dCBtb250aCBidXR0b24gdGl0bGVcclxuICAgIGNvbnN0IGFycm93TmV4dCA9IGRvY3VtZW50XHJcbiAgICAgIC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCduZ2ItZHAtYXJyb3ctbmV4dCcpXHJcbiAgICAgIC5pdGVtKDApIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgY29uc3QgYnV0dG9uTmV4dCA9IGFycm93TmV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJykuaXRlbSgwKTtcclxuICAgIGlmICh0aGlzLmlzQXJhYmljRm9ybSkgYnV0dG9uTmV4dCEudGl0bGUhID0gJ9in2YTYtNmH2LEg2KfZhNiq2KfZhNmKJztcclxuICAgIGVsc2UgYnV0dG9uTmV4dCEudGl0bGUhID0gJ05leHQgbW9udGgnO1xyXG5cclxuICAgIC8vIGNoYW5nZSBtb250aCBsaXN0IHRpdGxlXHJcbiAgICBjb25zdCBkaXZMaXN0ID0gZG9jdW1lbnRcclxuICAgICAgLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ25nYi1kcC1uYXZpZ2F0aW9uLXNlbGVjdCcpXHJcbiAgICAgIC5pdGVtKDApIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgY29uc3Qgc2VsZWN0TGlzdCA9IGRpdkxpc3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpO1xyXG4gICAgaWYgKHRoaXMuaXNBcmFiaWNGb3JtKSB7XHJcbiAgICAgIHNlbGVjdExpc3QuaXRlbSgwKSEudGl0bGUhID0gJ9in2K7YqtixINin2YTYtNmH2LEnO1xyXG4gICAgICBzZWxlY3RMaXN0Lml0ZW0oMSkhLnRpdGxlISA9ICfYp9iu2KrYsSDYp9mE2LPZhtipJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdExpc3QuaXRlbSgwKSEudGl0bGUhID0gJ1NlbGVjdCBtb250aCc7XHJcbiAgICAgIHNlbGVjdExpc3QuaXRlbSgxKSEudGl0bGUhID0gJ1NlbGVjdCB5ZWFyJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmxvYXRpbmcgaW5wdXQtZ3JvdXAge3tjb250YWluZXJDbGFzc2VzfX1cIj5cclxuICA8aW5wdXQgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkIGlzLWludmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkpICYmIGVycm9yTXNnLCdpcy12YWxpZCBpcy12YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCJcclxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3Nlc319XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cIjdcIiBuZ2JEYXRlcGlja2VyICNkPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICBzdHlsZT1cIm91dGxpbmU6IHVuc2V0OyB6LWluZGV4OiB1bnNldCAhaW1wb3J0YW50O1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChibHVyKT1cIm9uVG91Y2hlZCgpXCIgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIj5cclxuICA8bGFiZWwgZm9yPVwie3tpZH19XCI+PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPiB7e2xhYmVsfX0gPC9sYWJlbD5cclxuICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgY2FsZW5kZXJCdG5cIiAoY2xpY2spPVwib3BlbkRhdGVwaWNrZXIoJGV2ZW50KVwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtY2FsZW5kYXItYWx0IGZhLWxnXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICB7e2Vycm9yTXNnfX1cclxuICA8L2Rpdj5cclxuICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgPGhyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG0tMiBcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogcmlnaHQ7XCJcclxuICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUodG9kYXkpO2QubmF2aWdhdGVUbyh0b2RheSk7ZC5jbG9zZSgpXCI+2KfZhNmK2YjZhTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gbS0yXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IGxlZnQ7XCJcclxuICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUobnVsbCk7ZC5jbG9zZSgpXCI+2YXYs9itPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
package/esm2022/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import { DatepickerComponent } from '../datepicker.component';
|
|
4
|
-
import { Gregorian18n } from './gregorian18n';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
-
export class GregorianDatepickerComponent extends DatepickerComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.isHijriDatepicker = false;
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
|
|
16
|
-
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
17
|
-
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
18
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.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"] }] }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'ipa-gregorian-datepicker', providers: [
|
|
23
|
-
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
24
|
-
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
25
|
-
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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"] }]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFXOUMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQVRyRTs7UUFVRSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7S0FDM0I7OEdBRlksNEJBQTRCO2tHQUE1Qiw0QkFBNEIsbURBTDVCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQztZQUN2RCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO1NBQ3ZELGlEQ1pILDBuREFxQkE7OzJGRFBhLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQzt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkNhbGVuZGFyR3JlZ29yaWFuLCBOZ2JEYXRlcGlja2VySTE4biB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JlZ29yaWFuMThuIH0gZnJvbSAnLi9ncmVnb3JpYW4xOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZ3JlZ29yaWFuLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhckdyZWdvcmlhbn0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogR3JlZ29yaWFuMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyZWdvcmlhbkRhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlcGlja2VyQ29tcG9uZW50IHtcclxuICBpc0hpanJpRGF0ZXBpY2tlciA9IGZhbHNlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIGlucHV0LWdyb3VwIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgPGlucHV0IGlkPVwie3tpZH19XCJcclxuICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiXHJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCB7e2NsYXNzZXN9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtmaXJzdERheU9mV2Vla109XCI3XCIgbmdiRGF0ZXBpY2tlciAjZD1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgc3R5bGU9XCJvdXRsaW5lOiB1bnNldDsgei1pbmRleDogdW5zZXQgIWltcG9ydGFudDtcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoYmx1cik9XCJvblRvdWNoZWQoKVwiIHBsYWNlaG9sZGVyPVwie3tsYWJlbH19XCI+XHJcbiAgPGxhYmVsIGZvcj1cInt7aWR9fVwiPjxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj4ge3tsYWJlbH19IDwvbGFiZWw+XHJcbiAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0IGNhbGVuZGVyQnRuXCIgKGNsaWNrKT1cIm9wZW5EYXRlcGlja2VyKCRldmVudClcIj5cclxuICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdCBmYS1sZ1wiPjwvaT5cclxuICA8L3NwYW4+XHJcbiAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImVycm9yTWVzc2FnZSAhPT0gbnVsbFwiPlxyXG4gICAge3tlcnJvck1zZ319XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZSBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgIDxocj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IHJpZ2h0O1wiXHJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRvZGF5KTtkLm5hdmlnYXRlVG8odG9kYXkpO2QuY2xvc2UoKVwiPtin2YTZitmI2YU8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMlwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiBsZWZ0O1wiXHJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKG51bGwpO2QuY2xvc2UoKVwiPtmF2LPYrTwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];
|
|
5
|
-
const MONTHS = [
|
|
6
|
-
'يناير',
|
|
7
|
-
'فبراير',
|
|
8
|
-
'مارس',
|
|
9
|
-
'أبريل',
|
|
10
|
-
'مايو',
|
|
11
|
-
'يونيو',
|
|
12
|
-
'يوليو',
|
|
13
|
-
'اغسطس',
|
|
14
|
-
'سبتمبر',
|
|
15
|
-
'أكتوبر',
|
|
16
|
-
'نوفمبر',
|
|
17
|
-
'ديسمبر',
|
|
18
|
-
];
|
|
19
|
-
export class Gregorian18n extends NgbDatepickerI18n {
|
|
20
|
-
getMonthShortName(month) {
|
|
21
|
-
return MONTHS[month - 1];
|
|
22
|
-
}
|
|
23
|
-
getMonthFullName(month) {
|
|
24
|
-
return MONTHS[month - 1];
|
|
25
|
-
}
|
|
26
|
-
getWeekdayLabel(weekday) {
|
|
27
|
-
return WEEKDAYS[weekday - 1];
|
|
28
|
-
}
|
|
29
|
-
getDayAriaLabel(date) {
|
|
30
|
-
return `${date.day}-${date.month}-${date.year}`;
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Gregorian18n }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Gregorian18n, decorators: [{
|
|
36
|
-
type: Injectable
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbjE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsUUFBUTtDQUNULENBQUM7QUFHRixNQUFNLE9BQU8sWUFBYSxTQUFRLGlCQUFpQjtJQUNqRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlO1FBQzdCLE9BQU8sUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQW1CO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBZlUsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb25XaWR0aCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZXBpY2tlckkxOG4sIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5jb25zdCBXRUVLREFZUyA9IFsn2YYnLCAn2KsnLCAn2LEnLCAn2K4nLCAn2KwnLCAn2LMnLCAn2K0nXTtcclxuY29uc3QgTU9OVEhTID0gW1xyXG4gICfZitmG2KfZitixJyxcclxuICAn2YHYqNix2KfZitixJyxcclxuICAn2YXYp9ix2LMnLFxyXG4gICfYo9io2LHZitmEJyxcclxuICAn2YXYp9mK2YgnLFxyXG4gICfZitmI2YbZitmIJyxcclxuICAn2YrZiNmE2YrZiCcsXHJcbiAgJ9in2LrYs9i32LMnLFxyXG4gICfYs9io2KrZhdio2LEnLFxyXG4gICfYo9mD2KrZiNio2LEnLFxyXG4gICfZhtmI2YHZhdio2LEnLFxyXG4gICfYr9mK2LPZhdio2LEnLFxyXG5dO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR3JlZ29yaWFuMThuIGV4dGVuZHMgTmdiRGF0ZXBpY2tlckkxOG4ge1xyXG4gIGdldE1vbnRoU2hvcnROYW1lKG1vbnRoOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNT05USFNbbW9udGggLSAxXTtcclxuICB9XHJcblxyXG4gIGdldE1vbnRoRnVsbE5hbWUobW9udGg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1PTlRIU1ttb250aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2Vla2RheUxhYmVsKHdlZWtkYXk6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIFdFRUtEQVlTW3dlZWtkYXkgLSAxXTtcclxuICB9XHJcblxyXG4gIGdldERheUFyaWFMYWJlbChkYXRlOiBOZ2JEYXRlU3RydWN0KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtkYXRlLmRheX0tJHtkYXRlLm1vbnRofS0ke2RhdGUueWVhcn1gO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
const WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];
|
|
5
|
-
const MONTHS = [
|
|
6
|
-
'محرم',
|
|
7
|
-
'صفر',
|
|
8
|
-
'ربيع الأول',
|
|
9
|
-
'ربيع الآخر',
|
|
10
|
-
'جمادى الأولى',
|
|
11
|
-
'جمادى الآخرة',
|
|
12
|
-
'رجب',
|
|
13
|
-
'شعبان',
|
|
14
|
-
'رمضان',
|
|
15
|
-
'شوال',
|
|
16
|
-
'ذو القعدة',
|
|
17
|
-
'ذو الحجة',
|
|
18
|
-
];
|
|
19
|
-
export class IslamicI18n extends NgbDatepickerI18n {
|
|
20
|
-
getMonthShortName(month) {
|
|
21
|
-
return MONTHS[month - 1];
|
|
22
|
-
}
|
|
23
|
-
getMonthFullName(month) {
|
|
24
|
-
return MONTHS[month - 1];
|
|
25
|
-
}
|
|
26
|
-
getWeekdayLabel(weekday) {
|
|
27
|
-
return WEEKDAYS[weekday - 1];
|
|
28
|
-
}
|
|
29
|
-
getDayAriaLabel(date) {
|
|
30
|
-
return `${date.day}-${date.month}-${date.year}`;
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IslamicI18n }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IslamicI18n, decorators: [{
|
|
36
|
-
type: Injectable
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNsYW1pY0kxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9Jc2xhbWljSTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE1BQU07SUFDTixLQUFLO0lBQ0wsWUFBWTtJQUNaLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztJQUNkLEtBQUs7SUFDTCxPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixXQUFXO0lBQ1gsVUFBVTtDQUNYLENBQUM7QUFHRixNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUNoRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlO1FBQzdCLE9BQU8sUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQW1CO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBZlUsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb25XaWR0aCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZXBpY2tlckkxOG4sIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5jb25zdCBXRUVLREFZUyA9IFsn2YYnLCAn2KsnLCAn2LEnLCAn2K4nLCAn2KwnLCAn2LMnLCAn2K0nXTtcclxuY29uc3QgTU9OVEhTID0gW1xyXG4gICfZhdit2LHZhScsXHJcbiAgJ9i12YHYsScsXHJcbiAgJ9ix2KjZiti5INin2YTYo9mI2YQnLFxyXG4gICfYsdio2YrYuSDYp9mE2KLYrtixJyxcclxuICAn2KzZhdin2K/ZiSDYp9mE2KPZiNmE2YknLFxyXG4gICfYrNmF2KfYr9mJINin2YTYotiu2LHYqScsXHJcbiAgJ9ix2KzYqCcsXHJcbiAgJ9i02LnYqNin2YYnLFxyXG4gICfYsdmF2LbYp9mGJyxcclxuICAn2LTZiNin2YQnLFxyXG4gICfYsNmIINin2YTZgti52K/YqScsXHJcbiAgJ9iw2Ygg2KfZhNit2KzYqScsXHJcbl07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJc2xhbWljSTE4biBleHRlbmRzIE5nYkRhdGVwaWNrZXJJMThuIHtcclxuICBnZXRNb250aFNob3J0TmFtZShtb250aDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTU9OVEhTW21vbnRoIC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXRNb250aEZ1bGxOYW1lKG1vbnRoOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNT05USFNbbW9udGggLSAxXTtcclxuICB9XHJcblxyXG4gIGdldFdlZWtkYXlMYWJlbCh3ZWVrZGF5OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBXRUVLREFZU1t3ZWVrZGF5IC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXREYXlBcmlhTGFiZWwoZGF0ZTogTmdiRGF0ZVN0cnVjdCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7ZGF0ZS5kYXl9LSR7ZGF0ZS5tb250aH0tJHtkYXRlLnllYXJ9YDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import { DatepickerComponent } from '../datepicker.component';
|
|
4
|
-
import { IslamicI18n } from './IslamicI18n';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
-
export class HijriDatepickerComponent extends DatepickerComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.isHijriDatepicker = true;
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: HijriDatepickerComponent, selector: "ipa-hijri-datepicker", providers: [
|
|
16
|
-
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
17
|
-
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
18
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.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"] }] }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'ipa-hijri-datepicker', providers: [
|
|
23
|
-
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
24
|
-
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
25
|
-
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>\r\n", 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"] }]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVTVDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFUakU7O1FBVUUsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBQzFCOzhHQUZZLHdCQUF3QjtrR0FBeEIsd0JBQXdCLCtDQUx4QjtZQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUU7WUFDOUQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtTQUN0RCxpRENYSCwwbkRBcUJBOzsyRkRSYSx3QkFBd0I7a0JBVHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUU7d0JBQzlELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7cUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkNhbGVuZGFyLCBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSwgTmdiRGF0ZXBpY2tlckkxOG4gfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElzbGFtaWNJMThuIH0gZnJvbSAnLi9Jc2xhbWljSTE4bic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWhpanJpLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IElzbGFtaWNJMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpanJpRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIERhdGVwaWNrZXJDb21wb25lbnQge1xyXG4gIGlzSGlqcmlEYXRlcGlja2VyID0gdHJ1ZTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyBpbnB1dC1ncm91cCB7e2NvbnRhaW5lckNsYXNzZXN9fVwiPlxyXG4gIDxpbnB1dCBpZD1cInt7aWR9fVwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQgaXMtaW52YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSkgJiYgZXJyb3JNc2csJ2lzLXZhbGlkIGlzLXZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8udmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSAgJiYgKGVycm9yTXNnIHx8IGNvbnRyb2xEaXIudmFsdWUpKX1cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbZmlyc3REYXlPZldlZWtdPVwiN1wiIG5nYkRhdGVwaWNrZXIgI2Q9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgIFttYXhEYXRlXT1cIm1heERhdGVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgIHN0eWxlPVwib3V0bGluZTogdW5zZXQ7IHotaW5kZXg6IHVuc2V0ICFpbXBvcnRhbnQ7XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGJsdXIpPVwib25Ub3VjaGVkKClcIiBwbGFjZWhvbGRlcj1cInt7bGFiZWx9fVwiPlxyXG4gIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj48c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+IHt7bGFiZWx9fSA8L2xhYmVsPlxyXG4gIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dCBjYWxlbmRlckJ0blwiIChjbGljayk9XCJvcGVuRGF0ZXBpY2tlcigkZXZlbnQpXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhciBmYS1jYWxlbmRhci1hbHQgZmEtbGdcIj48L2k+XHJcbiAgPC9zcGFuPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2UgIT09IG51bGxcIj5cclxuICAgIHt7ZXJyb3JNc2d9fVxyXG4gIDwvZGl2PlxyXG4gIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICA8aHI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbS0yIFwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiByaWdodDtcIlxyXG4gICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0b2RheSk7ZC5uYXZpZ2F0ZVRvKHRvZGF5KTtkLmNsb3NlKClcIj7Yp9mE2YrZiNmFPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBtLTJcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDtcIlxyXG4gICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtkLmNsb3NlKClcIj7Zhdiz2K08L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|