ng-ipa-library 0.6.14 → 0.7.3
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/bundles/ng-ipa-library.umd.js +40 -30
- package/bundles/ng-ipa-library.umd.js.map +1 -1
- package/esm2015/lib/core/interceptors/token.interceptor.js +3 -3
- package/esm2015/lib/generate-form/generate-form.component.js +2 -2
- package/esm2015/lib/ipa-form/dropdown-input/dropdown-input.component.js +15 -14
- package/esm2015/lib/ng-ipa-library.module.js +6 -2
- package/esm2015/public-api.js +2 -1
- package/fesm2015/ng-ipa-library.js +29 -23
- package/fesm2015/ng-ipa-library.js.map +1 -1
- package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +5 -6
- package/lib/ng-ipa-library.module.d.ts +2 -1
- package/package.json +3 -2
- package/public-api.d.ts +1 -0
- package/src/lib/assets/ngIPAStyle.scss +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-ipa-library.js","sources":["../../../projects/ng-ipa-library/src/lib/pipes/hijri-date.pipe.ts","../../../projects/ng-ipa-library/src/lib/pipes/pipes.module.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/ipa-form.service.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.html","../../../projects/ng-ipa-library/src/lib/core/services/loader.service.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.html","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.ts","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.html","../../../projects/ng-ipa-library/src/lib/share-button/share-button.module.ts","../../../projects/ng-ipa-library/src/lib/ng-ipa-library.module.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/loading.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/error.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/error.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/auth.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/token.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbs.service.ts","../../../projects/ng-ipa-library/src/lib/services/common.service.ts","../../../projects/ng-ipa-library/src/public-api.ts","../../../projects/ng-ipa-library/src/ng-ipa-library.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport momentHijri from 'moment-hijri';\r\n@Pipe({\r\n name: 'hijriDate',\r\n})\r\nexport class HijriDatePipe implements PipeTransform {\r\n transform(\r\n date: string,\r\n format: string = 'iYYYY-iMM-iDD',\r\n lang: 'ar' | 'en' = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HijriDatePipe } from './hijri-date.pipe';\r\n\r\n@NgModule({\r\n declarations: [HijriDatePipe],\r\n exports: [HijriDatePipe],\r\n})\r\nexport class PipesModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl, ValidationErrors } from '@angular/forms';\r\nimport momentHijri from 'moment-hijri';\r\nimport { Moment } from 'moment';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IPAFormService {\r\n constructor(private parserFormatter: NgbDateParserFormatter) {}\r\n\r\n /**\r\n * check link is valid.\r\n */\r\n static linkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?)$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { link: true };\r\n }\r\n\r\n /**\r\n * check mp4 link is valid.\r\n */\r\n static mp4LinkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?(\\/[\\w\\u0600-\\u06FF]+\\.mp4))$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { linkMP4: true };\r\n }\r\n\r\n /**\r\n * check mobile number is valid.\r\n */\r\n static mobileNo(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink = /^05\\d{8}$/.test(control.value);\r\n return isValidLink || !control.value ? null : { mobileNo: true };\r\n }\r\n\r\n /**\r\n * check email is valid.\r\n */\r\n static email(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { Email: true };\r\n }\r\n\r\n /**\r\n * check national ID or iqama ID is valid.\r\n */\r\n static checkID(control: AbstractControl): ValidationErrors | null {\r\n let isValid = false;\r\n const value = control.value;\r\n if (\r\n IPAFormService.nationalIdValidate(value) ||\r\n IPAFormService.iqamaIdValidate(value)\r\n ) {\r\n isValid = true;\r\n } else {\r\n isValid = false;\r\n }\r\n return isValid || !value ? null : { checkId: true };\r\n }\r\n\r\n getErrorMessage(control: FormControl, patternErrorMsg = ''): string | null {\r\n for (const propertyName in control?.errors) {\r\n if (\r\n control?.errors.hasOwnProperty(propertyName) &&\r\n (control.touched || control.dirty)\r\n ) {\r\n return this.getValidatorErrorMessage(\r\n propertyName,\r\n control.errors[propertyName],\r\n patternErrorMsg\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * convert gregorian date to hijri date (Based on Umm al-Qura calculations).\r\n * @param date: gregorian date\r\n * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,\r\n * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,\r\n * dd => ن, ddd => إثنين, dddd => الإثنين\r\n * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'\r\n * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'\r\n */\r\n convertToHijriDate(\r\n date: string,\r\n format = 'iYYYY-iMM-iDD',\r\n lang = 'ar-SA'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n\r\n convertToGregorianDate(\r\n date: Moment,\r\n format = 'YYYY-MM-DD',\r\n lang = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n const m = momentHijri.iConvert.toGregorian(\r\n date.year(),\r\n date.month(),\r\n date.date()\r\n );\r\n return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);\r\n }\r\n\r\n getCurrentHijriDate() {\r\n momentHijri.locale('en');\r\n return momentHijri().format('iYYYY/iMM/iDD');\r\n }\r\n\r\n private getValidatorErrorMessage(\r\n validatorName: string,\r\n validatorValue: any,\r\n patternErrorMsg: string\r\n ): string {\r\n if (validatorName === 'pattern') {\r\n validatorValue = this.addPatternMsg(validatorValue, patternErrorMsg);\r\n }\r\n const config: any = {\r\n required: 'هذا الحقل مطلوب',\r\n pattern: `${validatorValue.message}`,\r\n Email: 'خطأ في البريد الالكتروني (example@ipa.edu.sa)',\r\n maxlength: `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`,\r\n minlength: `على الأقل عدد ${validatorValue.requiredLength} حرف.`,\r\n min: `رقم اكبر من أو يساوي ${validatorValue.min}`,\r\n max: `رقم اصغر من أو يساوي ${validatorValue.max}`,\r\n ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),\r\n checkId: 'رقم الهوية أو الاقامة غير صحيح',\r\n link: 'الرابط غير صحيح (http://google.com)',\r\n linkMP4: 'الرابط غير صحيح (http://example.com/a.mp4)',\r\n mobileNo: 'خطأ في رقم الجوال (05xxxxxxxx)',\r\n };\r\n return config[validatorName];\r\n }\r\n\r\n private addPatternMsg(validatorValue: any, patternErrorMsg: string) {\r\n let pattern = {\r\n ...validatorValue,\r\n message: patternErrorMsg,\r\n };\r\n return pattern;\r\n }\r\n\r\n private getNgbDatepickerErrorMsg(validatorValue: any): string {\r\n let msg = '';\r\n if (validatorValue.maxDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.maxDate.actual\r\n )}\" اكبر من تاريخ اليوم \"${this.parserFormatter.format(\r\n validatorValue.maxDate.maxDate\r\n )}\"`;\r\n } else if (validatorValue.minDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.minDate.actual\r\n )}\" يجب ان يكون اكبر من أو يساوي تاريخ البداية \"${this.parserFormatter.format(\r\n validatorValue.minDate.minDate\r\n )}\"`;\r\n } else if (validatorValue.invalid) {\r\n msg = `التاريخ المدخل غير صحيح ${validatorValue.invalid}.`;\r\n }\r\n return msg;\r\n }\r\n\r\n private static convertToEn(value: string) {\r\n let newValue = '';\r\n for (let i = 0; i < value.length; i++) {\r\n let ch = value.charCodeAt(i);\r\n if (ch >= 1584 && ch <= 1650) {\r\n let newChar = ch - 1584;\r\n newValue = newValue + String.fromCharCode(newChar);\r\n } else {\r\n newValue = newValue + String.fromCharCode(ch);\r\n }\r\n }\r\n return newValue;\r\n }\r\n\r\n private static nationalIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '1'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static iqamaIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '2'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: ['./text-input.component.scss'],\r\n})\r\nexport class TextInputComponent implements OnInit {\r\n @ViewChild('input', { static: true }) input!: ElementRef;\r\n @Input() id!: string;\r\n @Input() type = 'text';\r\n @Input() placeholder = 'please enter text';\r\n @Input() label: string = 'text input';\r\n @Input() required = false;\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() pattern = '';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-textarea-input',\r\n templateUrl: './textarea-input.component.html',\r\n styleUrls: ['./textarea-input.component.scss'],\r\n})\r\nexport class TextareaInputComponent implements OnInit {\r\n @ViewChild('input', { static: true }) input: ElementRef<any> =\r\n new ElementRef<any>(null);\r\n @Input() id!: string;\r\n @Input() placeholder = 'please enter text';\r\n @Input() label: string = 'textarea input';\r\n @Input() required = false;\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() pattern!: string;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\"\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 </textarea>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-dropdown-input',\r\n templateUrl: './dropdown-input.component.html',\r\n styleUrls: ['./dropdown-input.component.scss'],\r\n})\r\nexport class DropdownInputComponent implements OnInit {\r\n @ViewChild('select', { static: true }) input: ElementRef<any> =\r\n new ElementRef<any>(null);\r\n @Input() id!: string;\r\n @Input() label: string = 'text input';\r\n @Input() items: any[] = [];\r\n @Input() textField!: string;\r\n @Input() valueField!: string;\r\n @Input() required = true;\r\n @Input() disabled = false;\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() pattern!: string;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\"\r\n [ngClass]=\"{'was-validated': (controlDir.control?.dirty || controlDir.control?.touched) && required}\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n [formControl]=\"formControl\">\r\n <option *ngFor=\"let item of items\" [value]=\"valueField ? item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</option>\r\n </select>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoaderService {\r\n public isLoading = new BehaviorSubject(false);\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component } from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'ipa-loader',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss'],\r\n})\r\nexport class LoaderComponent implements AfterViewInit {\r\n loading!: boolean;\r\n\r\n constructor(\r\n private loaderService: LoaderService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div id=\"cover-spin\" *ngIf=\"loading\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DropzoneConfigInterface, DropzoneDirective } from 'ngx-dropzone-wrapper';\r\n\r\n@Component({\r\n selector: 'ipa-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss']\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @ViewChild(DropzoneDirective, { static: false })\r\n dropzoneDir!: DropzoneDirective;\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() acceptedFiles = '';\r\n @Input() multiple = 1; // set maxFiles (NOT uploadMultiple)in the config object,\r\n @Input() maxFileSize = 2;\r\n @Input() method = 'POST';\r\n @Input() autoUpload = false;\r\n @Input() apiUrl = 'apiUrl';\r\n @Input() authorization!: string;\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n dragEnter = false;\r\n errors: string[] = [];\r\n config!: DropzoneConfigInterface;\r\n filesAdded: File[] = [];\r\n currentFiles: File[] = [];\r\n\r\n constructor(\r\n // private authService: AuthService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.label = 'رفع ' + this.label;\r\n this.config = {\r\n url: this.apiUrl,\r\n method: this.method,\r\n headers: {\r\n Authorization: 'Bearer ' + this.authorization,\r\n },\r\n maxFilesize: this.maxFileSize,\r\n maxFiles: this.multiple,\r\n uploadMultiple: this.multiple > 1,\r\n dictInvalidFileType: 'صيغة الملف غير مسموح بها',\r\n dictFileTooBig: 'الحجم تجاوز الحد المسموح',\r\n dictMaxFilesExceeded:\r\n 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف',\r\n acceptedFiles: this.acceptedFiles,\r\n autoProcessQueue: this.autoUpload,\r\n previewTemplate: '<span></span>',\r\n };\r\n }\r\n\r\n operationCompleted(e: any): void {\r\n if (this.filesAdded.length > 0) {\r\n this.successUpload.emit(this.filesAdded);\r\n this.filesAdded = [];\r\n }\r\n this.dropzoneDir.reset();\r\n }\r\n\r\n onUploadSuccess(e: any): void {\r\n const file = e[0];\r\n if (file.status === 'success') {\r\n this.filesAdded.push(file);\r\n }\r\n\r\n this.toastrService.success('تم تحميل المرفقات بنجاح');\r\n }\r\n\r\n onUploadError(e: any): void {\r\n if (e[1]) {\r\n this.errors = [];\r\n this.errors.push(`${e[1]} (${e[0].name})`);\r\n }\r\n }\r\n\r\n fileWasAdded(e: File): void {\r\n const myDropzone = this.dropzoneDir.dropzone();\r\n if (this.multiple === 1) {\r\n this.currentFiles = [];\r\n this.filesAdded = [];\r\n this.errors = [];\r\n const files = myDropzone.files;\r\n if (files.length > 1) {\r\n myDropzone.removeFile(files[0]);\r\n }\r\n }\r\n this.currentFiles.push(e);\r\n this.fileAdded.emit(e);\r\n }\r\n\r\n sending(e: any): void {\r\n this.errors = [];\r\n }\r\n\r\n reset(e: any): void {}\r\n\r\n deleteFile(file: any): void {\r\n this.currentFiles = this.currentFiles.filter(\r\n (x) => x.name !== file.name && x.size !== file.size\r\n );\r\n this.errors = [];\r\n this.fileDeleted.emit();\r\n }\r\n}\r\n","<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">قم بسحب الملف أو اضغط هنا</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n الصيغة المسموح بها:\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n اقصى حجم للمرفق:\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>","import { Component, Input, OnInit, Self } from '@angular/core';\nimport { FormControl, NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ipa-recaptcha',\n templateUrl: './recaptcha.component.html',\n styleUrls: ['./recaptcha.component.scss'],\n})\nexport class RecaptchaComponent implements OnInit {\n @Input() siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\n @Input() lang = 'ar';\n @Input() recaptchaType: 'image' | 'audio' = 'image';\n @Input() theme: 'light' | 'dark' = 'light';\n @Input() useGlobalDomain = true;\n formControl: FormControl = new FormControl('');\n constructor(@Self() public controlDir: NgControl) {\n this.controlDir.valueAccessor = this;\n }\n\n ngOnInit(): void {\n const control = this.controlDir.control;\n const validators = control?.validator ? [control.validator] : [];\n\n control?.setValidators(validators);\n control?.updateValueAndValidity();\n this.formControl = control as FormControl;\n }\n\n onChange(event: any): void {}\n\n onTouched(): void {}\n writeValue(obj: any): void {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {\r\n FormArray,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form/ipa-form.service';\r\nimport { Column, GenerateForm } from '../models/generateForm.model';\r\n\r\n@Component({\r\n selector: 'ipa-generate-form',\r\n templateUrl: './generate-form.component.html',\r\n styleUrls: ['./generate-form.component.scss'],\r\n})\r\nexport class GenerateFormComponent implements OnInit {\r\n @Input() generateForm!: FormGroup;\r\n @Input() form!: GenerateForm;\r\n\r\n // recaptcha inputs\r\n @Input() siteKey!: string;\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n\r\n // file upload outputs\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n\r\n errorMsg!: string | null;\r\n\r\n constructor(private validationService: IPAFormService) {}\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n }\r\n\r\n get formControls() {\r\n return this.generateForm.get('items') as FormArray;\r\n }\r\n\r\n getErrorMessage(formControlName: string): string | null {\r\n const formControl = this.generateForm.controls[\r\n formControlName\r\n ] as FormControl;\r\n this.errorMsg = this.validationService.getErrorMessage(formControl);\r\n return this.errorMsg;\r\n }\r\n\r\n SuccessUpload(event: any) {\r\n this.successUpload.emit(event);\r\n }\r\n\r\n FileAdded(file: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(file);\r\n this.fileAdded.emit(file);\r\n }\r\n\r\n FileDeleted(event: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(null);\r\n this.fileDeleted.emit(event);\r\n }\r\n\r\n private createForm() {\r\n this.form.columns.forEach((column) => {\r\n if (column.type === 'checkbox') {\r\n this.addCheckboxControl(column);\r\n } else {\r\n this.generateForm.addControl(\r\n column.englishName,\r\n new FormControl(null, [\r\n column.required ? Validators.required : Validators.nullValidator,\r\n Validators.maxLength(column.size!),\r\n column.type === 'number'\r\n ? Validators.min(1)\r\n : Validators.nullValidator,\r\n ])\r\n );\r\n }\r\n });\r\n }\r\n\r\n private addCheckboxControl(column: Column) {\r\n let checkboxGroup = new FormArray(\r\n column.data!.map((item) => {\r\n return new FormGroup({\r\n [column.valueField!]: new FormControl(item[column.valueField!]),\r\n [column.textField!]: new FormControl(item[column.textField!]),\r\n checkbox: new FormControl(false, Validators.required),\r\n });\r\n })\r\n );\r\n\r\n this.generateForm.addControl(\r\n column.englishName,\r\n new FormControl(\r\n null,\r\n column.required ? Validators.required : Validators.nullValidator\r\n )\r\n );\r\n this.generateForm.addControl('items', checkboxGroup);\r\n checkboxGroup.valueChanges.subscribe((value) => {\r\n if (this.getCheckboxSelectedValues(value)) {\r\n this.generateForm.controls[column.englishName].patchValue(value);\r\n } else {\r\n this.generateForm.controls[column.englishName].patchValue(null);\r\n this.generateForm.controls[column.englishName].markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n private getCheckboxSelectedValues(items: any[]) {\r\n let selectedItems = items.filter((item) => item.checkbox);\r\n return selectedItems.length > 0 ? selectedItems : null;\r\n }\r\n}\r\n","<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.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.validationPattern!\"\r\n [patternErrorMsg]=\"column.patternErrorMsg!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\"></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.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data!\" [valueField]=\"column.valueField!\"\r\n [textField]=\"column.textField!\" [required]=\"column.required\" [pattern]=\"column.validationPattern!\"\r\n [patternErrorMsg]=\"column.patternErrorMsg!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value[column.valueField!]\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item[column.valueField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.validationPattern!\"\r\n [patternErrorMsg]=\"column.patternErrorMsg!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>","import { Component, Input, OnInit, Self } from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateStruct,\r\n NgbInputDatepickerConfig,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n})\r\nexport class DatepickerComponent implements OnInit {\r\n @Input() id!: string;\r\n @Input() label = 'datepicker';\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() required = false;\r\n @Input() maxDate!: NgbDateStruct;\r\n @Input() minDate!: NgbDateStruct;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n today = this.calendar.getToday();\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private ipaFormService: IPAFormService,\r\n private calendar: NgbCalendar,\r\n @Self() public controlDir: NgControl,\r\n config: NgbInputDatepickerConfig\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n config.container = 'body';\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.ipaFormService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<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\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" title=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"d.toggle()\">\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);\">اليوم</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()\">مسح</button>\r\n </ng-template>\r\n</div>","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'محرم',\r\n 'صفر',\r\n 'ربيع الأول',\r\n 'ربيع الآخر',\r\n 'جمادى الأولى',\r\n 'جمادى الآخرة',\r\n 'رجب',\r\n 'شعبان',\r\n 'رمضان',\r\n 'شوال',\r\n 'ذو القعدة',\r\n 'ذو الحجة',\r\n];\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { IslamicI18n } from './IslamicI18n';\r\n@Component({\r\n selector: 'ipa-hijri-datepicker',\r\n templateUrl: '../datepicker.component.html',\r\n styleUrls: ['../datepicker.component.scss'],\r\n providers: [\r\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\r\n { provide: NgbDatepickerI18n, useClass: IslamicI18n },\r\n ],\r\n})\r\nexport class HijriDatepickerComponent extends DatepickerComponent {}\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'اغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n];\r\n\r\n@Injectable()\r\nexport class Gregorian18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { Gregorian18n } from './gregorian18n';\r\n\r\n@Component({\r\n selector: 'ipa-gregorian-datepicker',\r\n templateUrl: '../datepicker.component.html',\r\n styleUrls: ['../datepicker.component.scss'],\r\n providers: [\r\n { provide: NgbCalendar, useClass: NgbCalendarGregorian},\r\n { provide: NgbDatepickerI18n, useClass: Gregorian18n },\r\n ],\r\n})\r\nexport class GregorianDatepickerComponent extends DatepickerComponent {}\r\n","import { Component, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ipa-share-button',\r\n templateUrl: './share-button.component.html',\r\n styleUrls: ['./share-button.component.scss'],\r\n})\r\nexport class ShareButtonComponent implements AfterViewInit {\r\n @Input() title = '';\r\n @Input() description = '';\r\n @Input() btnLabel = '';\r\n constructor() {}\r\n ngAfterViewInit(): void {\r\n const elements = document.getElementsByClassName('sb-show-icon');\r\n elements[0].setAttribute('type', 'button');\r\n elements[0].setAttribute('id', 'IPAShareBtn');\r\n const label = document.createElement('label');\r\n label.innerHTML = this.btnLabel;\r\n label.classList.add('sm-share-title');\r\n label.classList.add('me-1');\r\n elements[0].before(label);\r\n }\r\n}\r\n","<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n FaIconLibrary,\r\n FontAwesomeModule,\r\n} from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\r\nimport { ShareButtonsPopupModule } from 'ngx-sharebuttons/popup';\r\nimport { ShareButtonComponent } from './share-button.component';\r\n\r\n@NgModule({\r\n declarations: [ShareButtonComponent],\r\n imports: [\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ShareButtonComponent,\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ]\r\n})\r\nexport class ShareButtonModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIconPacks(fas);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { TextInputComponent } from './ipa-form/text-input/text-input.component';\r\nimport { TextareaInputComponent } from './ipa-form/textarea-input/textarea-input.component';\r\nimport { DropdownInputComponent } from './ipa-form/dropdown-input/dropdown-input.component';\r\nimport { LoaderComponent } from './core/components/loading/loading.component';\r\nimport { GenerateFormComponent } from './generate-form/generate-form.component';\r\nimport { FileUploadComponent } from './ipa-form/file-upload/file-upload.component';\r\nimport { DatepickerComponent } from './ipa-form/datepicker/datepicker.component';\r\nimport { HijriDatepickerComponent } from './ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nimport { GregorianDatepickerComponent } from './ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nimport { ShareButtonModule } from './share-button/share-button.module';\r\nimport { RecaptchaComponent } from './ipa-form/recaptcha/recaptcha.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n DatepickerComponent,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n RecaptchaComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToastrModule,\r\n DropzoneModule,\r\n NgxCaptchaModule,\r\n PipesModule,\r\n NgbDatepickerModule,\r\n ShareButtonModule,\r\n ],\r\n exports: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n PipesModule,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n ShareButtonModule,\r\n RecaptchaComponent,\r\n ],\r\n})\r\nexport class NgIPALibraryModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService) {}\r\n\r\n removeRequest(req: HttpRequest<any>): void {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n this.requests.push(req);\r\n\r\n this.loaderService.isLoading.next(true);\r\n return new Observable((observer) => {\r\n const subscription = next.handle(req).subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(req);\r\n observer.next(event);\r\n }\r\n },\r\n (err) => {\r\n this.removeRequest(req);\r\n observer.error(err);\r\n },\r\n () => {\r\n this.removeRequest(req);\r\n observer.complete();\r\n }\r\n );\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(req);\r\n subscription.unsubscribe();\r\n };\r\n });\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.loaderService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../services/error.service';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private errorService: ErrorService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n const response = error.error as ApiException;\r\n const toastrConfig: Partial<IndividualConfig> = {\r\n disableTimeOut: true,\r\n };\r\n switch (response.statusCode) {\r\n case 500:\r\n this.toastrService.error(\r\n response?.innerException + ' ' + response?.stackTrace,\r\n response.message,\r\n toastrConfig\r\n );\r\n break;\r\n\r\n default:\r\n this.toastrService.error(response.message, '', toastrConfig);\r\n break;\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.errorService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public currentUser = new BehaviorSubject<DecodedToken>({ exp: 0 });\r\n currentUserUrl = '';\r\n constructor() {}\r\n\r\n getToken(): string {\r\n return localStorage.getItem('token') ?? '';\r\n }\r\n\r\n getDecodedToken(): any {\r\n return this.decodeJwt(this.getToken());\r\n }\r\n\r\n setCurrentUser(): void {\r\n const decodedToken = this.getDecodedToken() as DecodedToken;\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid,\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n setCurrentUserUrl(url: string) {\r\n this.currentUserUrl = url;\r\n }\r\n\r\n private decodeJwt(token: string): any {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpClient,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\nimport { User } from '../../models/user.model';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n refresh = false;\r\n constructor(private authService: AuthService, private http: HttpClient) {}\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getToken();\r\n if (token) {\r\n this.isTokenExpired(token);\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n private isTokenExpired(token: string) {\r\n const redirectPath = location.pathname;\r\n const decodedToken = this.authService.getDecodedToken() as DecodedToken;\r\n const expDate = new Date((decodedToken.exp ?? 0) * 1000);\r\n if (expDate < new Date()) {\r\n location.replace('/ar/login?redirect=' + redirectPath);\r\n return;\r\n } else {\r\n if (this.authService.currentUserUrl) {\r\n if (this.refresh) {\r\n this.http\r\n .get<User>(this.authService.currentUserUrl + `/api/users?refresh`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n })\r\n .subscribe((user) => {\r\n localStorage.setItem('token', user.token);\r\n this.refresh = false;\r\n setTimeout(() => {\r\n this.refresh = true;\r\n }, 25000);\r\n });\r\n }\r\n } else {\r\n throw new Error(\r\n \"provide current base user api url using this function authService.setCurrentUserUrl('https://...')\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n private isException(request: HttpRequest<any>): boolean {\r\n if (\r\n request.url.includes('/api/users?refresh') &&\r\n request.method === 'GET'\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsService {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.sub-section-title');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n setMainPageTitle(text: string, url: string) {\r\n const div = document.getElementsByClassName('main-section-title');\r\n if (div && div.length > 0) {\r\n div[0].innerHTML = `<a id=\"site-url\" href=\"${url}\">${text}</a>`;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n //get last child\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n lastIndex.classList.remove(...['bc-current']);\r\n //add new link\r\n lastIndex.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n //add new span and empty span\r\n const newSpan = this.createSpan(nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.childNodes;\r\n //get last child\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastSpan.innerHTML;\r\n lastSpan.classList.remove(...[spanClasses]);\r\n lastSpan.innerHTML = '';\r\n //add new link\r\n lastSpan.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const currentSpan = document.getElementById(\r\n 'ctl00_path'\r\n ) as HTMLSpanElement;\r\n currentSpan.innerHTML = '';\r\n const newSpan = document.createElement('span');\r\n currentSpan?.appendChild(newSpan);\r\n newSpan.appendChild(\r\n this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses)\r\n );\r\n const spans = currentSpan?.children;\r\n for (let i = 1; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex?.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n this.setCurrentNode(spans);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n let index = -1;\r\n for (let i = 0; i < spans.length; i++) {\r\n const span = spans.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = spans.length - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n spans?.item(index)?.remove();\r\n spans?.item(index)?.remove();\r\n } else {\r\n spans?.item(index)?.remove();\r\n spans?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n while (length > 0) {\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n length--;\r\n }\r\n if (spans.length > 0) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string, classes: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.classList.add(...[classes]);\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const lastSpanLink = spans\r\n ?.item(spans.length - 1)\r\n ?.children.item(0) as HTMLAnchorElement;\r\n lastSpan?.classList.add(...['bc-current']);\r\n lastSpan.innerHTML = lastSpanLink.innerHTML;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n constructor() {}\r\n\r\n print(element: string, title: string, classes?: string) {\r\n const styles = this.getElementTag('style');\r\n const linkes = this.getElementTag('link');\r\n const scripts = this.getElementTag('script');\r\n\r\n const printContents = document.getElementById(element)?.innerHTML;\r\n const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');\r\n const data = `\r\n <!DOCTYPE html>\r\n <head>\r\n <title> ${title} </title>\r\n <meta charset=\"utf-8\">\r\n ${linkes}\r\n ${styles}\r\n <style>\r\n @media print {\r\n .noPrint{\r\n display: none !important;\r\n }\r\n body {\r\n direction: rtl;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body class=\"${classes}\">\r\n ${printContents}\r\n ${scripts}\r\n </body>\r\n\r\n </html>`;\r\n popupWin?.document.open();\r\n popupWin?.document.write(data);\r\n popupWin?.document.close();\r\n popupWin?.focus();\r\n popupWin?.addEventListener('focus', () => {\r\n setTimeout(() => {\r\n if (popupWin.document.hasFocus()) {\r\n popupWin.print();\r\n popupWin.close();\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n\r\n return html.join('\\r\\n');\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ipa-library\r\n */\r\n// module\r\nexport * from './lib/ng-ipa-library.module';\r\nexport * from 'ngx-toastr';\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/share-button/share-button.module';\r\n\r\n// core components\r\nexport * from './lib/core/components/loading/loading.component';\r\n\r\n// form components\r\nexport * from './lib/ipa-form/text-input/text-input.component';\r\nexport * from './lib/ipa-form/textarea-input/textarea-input.component';\r\nexport * from './lib/ipa-form/dropdown-input/dropdown-input.component';\r\nexport * from './lib/ipa-form/file-upload/file-upload.component';\r\nexport * from './lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nexport * from './lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nexport * from './lib/ipa-form/recaptcha/recaptcha.component';\r\nexport * from './lib/generate-form/generate-form.component';\r\nexport * from './lib/share-button/share-button.component';\r\n\r\n// interceptors\r\nexport * from './lib/core/interceptors/loading.interceptor';\r\nexport * from './lib/core/interceptors/error.interceptor';\r\nexport * from './lib/core/interceptors/token.interceptor';\r\n\r\n// services\r\nexport * from './lib/core/services/loader.service';\r\nexport * from './lib/core/services/auth.service';\r\nexport * from './lib/ipa-form/ipa-form.service';\r\nexport * from './lib/core/services/error.service';\r\nexport * from './lib/services/breadcrumbs.service';\r\nexport * from './lib/services/common.service';\r\n\r\n//pipes\r\nexport * from './lib/pipes/hijri-date.pipe';\r\n\r\n//models\r\nexport * from './lib/models/pagedResult';\r\nexport * from './lib/models/apiException';\r\nexport * from './lib/models/apiResponse';\r\nexport * from './lib/models/generateForm.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["WEEKDAYS","MONTHS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-ipa-library.js","sources":["../../../projects/ng-ipa-library/src/lib/pipes/hijri-date.pipe.ts","../../../projects/ng-ipa-library/src/lib/pipes/pipes.module.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/ipa-form.service.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.html","../../../projects/ng-ipa-library/src/lib/core/services/loader.service.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.html","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.ts","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.html","../../../projects/ng-ipa-library/src/lib/share-button/share-button.module.ts","../../../projects/ng-ipa-library/src/lib/ng-ipa-library.module.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/loading.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/error.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/error.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/auth.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/token.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbs.service.ts","../../../projects/ng-ipa-library/src/lib/services/common.service.ts","../../../projects/ng-ipa-library/src/public-api.ts","../../../projects/ng-ipa-library/src/ng-ipa-library.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport momentHijri from 'moment-hijri';\r\n@Pipe({\r\n name: 'hijriDate',\r\n})\r\nexport class HijriDatePipe implements PipeTransform {\r\n transform(\r\n date: string,\r\n format: string = 'iYYYY-iMM-iDD',\r\n lang: 'ar' | 'en' = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HijriDatePipe } from './hijri-date.pipe';\r\n\r\n@NgModule({\r\n declarations: [HijriDatePipe],\r\n exports: [HijriDatePipe],\r\n})\r\nexport class PipesModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl, ValidationErrors } from '@angular/forms';\r\nimport momentHijri from 'moment-hijri';\r\nimport { Moment } from 'moment';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IPAFormService {\r\n constructor(private parserFormatter: NgbDateParserFormatter) {}\r\n\r\n /**\r\n * check link is valid.\r\n */\r\n static linkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?)$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { link: true };\r\n }\r\n\r\n /**\r\n * check mp4 link is valid.\r\n */\r\n static mp4LinkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?(\\/[\\w\\u0600-\\u06FF]+\\.mp4))$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { linkMP4: true };\r\n }\r\n\r\n /**\r\n * check mobile number is valid.\r\n */\r\n static mobileNo(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink = /^05\\d{8}$/.test(control.value);\r\n return isValidLink || !control.value ? null : { mobileNo: true };\r\n }\r\n\r\n /**\r\n * check email is valid.\r\n */\r\n static email(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { Email: true };\r\n }\r\n\r\n /**\r\n * check national ID or iqama ID is valid.\r\n */\r\n static checkID(control: AbstractControl): ValidationErrors | null {\r\n let isValid = false;\r\n const value = control.value;\r\n if (\r\n IPAFormService.nationalIdValidate(value) ||\r\n IPAFormService.iqamaIdValidate(value)\r\n ) {\r\n isValid = true;\r\n } else {\r\n isValid = false;\r\n }\r\n return isValid || !value ? null : { checkId: true };\r\n }\r\n\r\n getErrorMessage(control: FormControl, patternErrorMsg = ''): string | null {\r\n for (const propertyName in control?.errors) {\r\n if (\r\n control?.errors.hasOwnProperty(propertyName) &&\r\n (control.touched || control.dirty)\r\n ) {\r\n return this.getValidatorErrorMessage(\r\n propertyName,\r\n control.errors[propertyName],\r\n patternErrorMsg\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * convert gregorian date to hijri date (Based on Umm al-Qura calculations).\r\n * @param date: gregorian date\r\n * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,\r\n * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,\r\n * dd => ن, ddd => إثنين, dddd => الإثنين\r\n * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'\r\n * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'\r\n */\r\n convertToHijriDate(\r\n date: string,\r\n format = 'iYYYY-iMM-iDD',\r\n lang = 'ar-SA'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n\r\n convertToGregorianDate(\r\n date: Moment,\r\n format = 'YYYY-MM-DD',\r\n lang = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n const m = momentHijri.iConvert.toGregorian(\r\n date.year(),\r\n date.month(),\r\n date.date()\r\n );\r\n return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);\r\n }\r\n\r\n getCurrentHijriDate() {\r\n momentHijri.locale('en');\r\n return momentHijri().format('iYYYY/iMM/iDD');\r\n }\r\n\r\n private getValidatorErrorMessage(\r\n validatorName: string,\r\n validatorValue: any,\r\n patternErrorMsg: string\r\n ): string {\r\n if (validatorName === 'pattern') {\r\n validatorValue = this.addPatternMsg(validatorValue, patternErrorMsg);\r\n }\r\n const config: any = {\r\n required: 'هذا الحقل مطلوب',\r\n pattern: `${validatorValue.message}`,\r\n Email: 'خطأ في البريد الالكتروني (example@ipa.edu.sa)',\r\n maxlength: `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`,\r\n minlength: `على الأقل عدد ${validatorValue.requiredLength} حرف.`,\r\n min: `رقم اكبر من أو يساوي ${validatorValue.min}`,\r\n max: `رقم اصغر من أو يساوي ${validatorValue.max}`,\r\n ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),\r\n checkId: 'رقم الهوية أو الاقامة غير صحيح',\r\n link: 'الرابط غير صحيح (http://google.com)',\r\n linkMP4: 'الرابط غير صحيح (http://example.com/a.mp4)',\r\n mobileNo: 'خطأ في رقم الجوال (05xxxxxxxx)',\r\n };\r\n return config[validatorName];\r\n }\r\n\r\n private addPatternMsg(validatorValue: any, patternErrorMsg: string) {\r\n let pattern = {\r\n ...validatorValue,\r\n message: patternErrorMsg,\r\n };\r\n return pattern;\r\n }\r\n\r\n private getNgbDatepickerErrorMsg(validatorValue: any): string {\r\n let msg = '';\r\n if (validatorValue.maxDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.maxDate.actual\r\n )}\" اكبر من تاريخ اليوم \"${this.parserFormatter.format(\r\n validatorValue.maxDate.maxDate\r\n )}\"`;\r\n } else if (validatorValue.minDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.minDate.actual\r\n )}\" يجب ان يكون اكبر من أو يساوي تاريخ البداية \"${this.parserFormatter.format(\r\n validatorValue.minDate.minDate\r\n )}\"`;\r\n } else if (validatorValue.invalid) {\r\n msg = `التاريخ المدخل غير صحيح ${validatorValue.invalid}.`;\r\n }\r\n return msg;\r\n }\r\n\r\n private static convertToEn(value: string) {\r\n let newValue = '';\r\n for (let i = 0; i < value.length; i++) {\r\n let ch = value.charCodeAt(i);\r\n if (ch >= 1584 && ch <= 1650) {\r\n let newChar = ch - 1584;\r\n newValue = newValue + String.fromCharCode(newChar);\r\n } else {\r\n newValue = newValue + String.fromCharCode(ch);\r\n }\r\n }\r\n return newValue;\r\n }\r\n\r\n private static nationalIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '1'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static iqamaIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '2'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: ['./text-input.component.scss'],\r\n})\r\nexport class TextInputComponent implements OnInit {\r\n @ViewChild('input', { static: true }) input!: ElementRef;\r\n @Input() id!: string;\r\n @Input() type = 'text';\r\n @Input() placeholder = 'please enter text';\r\n @Input() label: string = 'text input';\r\n @Input() required = false;\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() pattern = '';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-textarea-input',\r\n templateUrl: './textarea-input.component.html',\r\n styleUrls: ['./textarea-input.component.scss'],\r\n})\r\nexport class TextareaInputComponent implements OnInit {\r\n @ViewChild('input', { static: true }) input: ElementRef<any> =\r\n new ElementRef<any>(null);\r\n @Input() id!: string;\r\n @Input() placeholder = 'please enter text';\r\n @Input() label: string = 'textarea input';\r\n @Input() required = false;\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() pattern!: string;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\"\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 </textarea>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-dropdown-input',\r\n templateUrl: './dropdown-input.component.html',\r\n styleUrls: ['./dropdown-input.component.scss'],\r\n})\r\nexport class DropdownInputComponent implements OnInit {\r\n @ViewChild('select', { static: true }) input!: HTMLSelectElement;\r\n @Input() id!: string;\r\n @Input() label: string = 'text input';\r\n @Input() items: any[] = [];\r\n @Input() textField!: string;\r\n @Input() valueField!: string;\r\n @Input() required = false;\r\n @Input() searchable = false;\r\n @Input() notFoundText = 'لا يوجد بيانات';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n this.formControl.patchValue(null);\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n if (this.input) this.input.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(this.formControl);\r\n return this.errorMsg;\r\n }\r\n}\r\n","<div class=\"form-floating {{containerClasses}}\"\r\n [ngClass]=\"{'was-validated': (controlDir.control?.dirty || controlDir.control?.touched) && required}\">\r\n\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\">\r\n <option *ngFor=\"let item of items\" [value]=\"valueField ? item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</option>\r\n </select>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\" [bindValue]=\"valueField\"\r\n [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoaderService {\r\n public isLoading = new BehaviorSubject(false);\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component } from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'ipa-loader',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss'],\r\n})\r\nexport class LoaderComponent implements AfterViewInit {\r\n loading!: boolean;\r\n\r\n constructor(\r\n private loaderService: LoaderService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div id=\"cover-spin\" *ngIf=\"loading\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DropzoneConfigInterface, DropzoneDirective } from 'ngx-dropzone-wrapper';\r\n\r\n@Component({\r\n selector: 'ipa-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss']\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @ViewChild(DropzoneDirective, { static: false })\r\n dropzoneDir!: DropzoneDirective;\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() acceptedFiles = '';\r\n @Input() multiple = 1; // set maxFiles (NOT uploadMultiple)in the config object,\r\n @Input() maxFileSize = 2;\r\n @Input() method = 'POST';\r\n @Input() autoUpload = false;\r\n @Input() apiUrl = 'apiUrl';\r\n @Input() authorization!: string;\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n dragEnter = false;\r\n errors: string[] = [];\r\n config!: DropzoneConfigInterface;\r\n filesAdded: File[] = [];\r\n currentFiles: File[] = [];\r\n\r\n constructor(\r\n // private authService: AuthService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.label = 'رفع ' + this.label;\r\n this.config = {\r\n url: this.apiUrl,\r\n method: this.method,\r\n headers: {\r\n Authorization: 'Bearer ' + this.authorization,\r\n },\r\n maxFilesize: this.maxFileSize,\r\n maxFiles: this.multiple,\r\n uploadMultiple: this.multiple > 1,\r\n dictInvalidFileType: 'صيغة الملف غير مسموح بها',\r\n dictFileTooBig: 'الحجم تجاوز الحد المسموح',\r\n dictMaxFilesExceeded:\r\n 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف',\r\n acceptedFiles: this.acceptedFiles,\r\n autoProcessQueue: this.autoUpload,\r\n previewTemplate: '<span></span>',\r\n };\r\n }\r\n\r\n operationCompleted(e: any): void {\r\n if (this.filesAdded.length > 0) {\r\n this.successUpload.emit(this.filesAdded);\r\n this.filesAdded = [];\r\n }\r\n this.dropzoneDir.reset();\r\n }\r\n\r\n onUploadSuccess(e: any): void {\r\n const file = e[0];\r\n if (file.status === 'success') {\r\n this.filesAdded.push(file);\r\n }\r\n\r\n this.toastrService.success('تم تحميل المرفقات بنجاح');\r\n }\r\n\r\n onUploadError(e: any): void {\r\n if (e[1]) {\r\n this.errors = [];\r\n this.errors.push(`${e[1]} (${e[0].name})`);\r\n }\r\n }\r\n\r\n fileWasAdded(e: File): void {\r\n const myDropzone = this.dropzoneDir.dropzone();\r\n if (this.multiple === 1) {\r\n this.currentFiles = [];\r\n this.filesAdded = [];\r\n this.errors = [];\r\n const files = myDropzone.files;\r\n if (files.length > 1) {\r\n myDropzone.removeFile(files[0]);\r\n }\r\n }\r\n this.currentFiles.push(e);\r\n this.fileAdded.emit(e);\r\n }\r\n\r\n sending(e: any): void {\r\n this.errors = [];\r\n }\r\n\r\n reset(e: any): void {}\r\n\r\n deleteFile(file: any): void {\r\n this.currentFiles = this.currentFiles.filter(\r\n (x) => x.name !== file.name && x.size !== file.size\r\n );\r\n this.errors = [];\r\n this.fileDeleted.emit();\r\n }\r\n}\r\n","<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">قم بسحب الملف أو اضغط هنا</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n الصيغة المسموح بها:\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n اقصى حجم للمرفق:\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>","import { Component, Input, OnInit, Self } from '@angular/core';\nimport { FormControl, NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ipa-recaptcha',\n templateUrl: './recaptcha.component.html',\n styleUrls: ['./recaptcha.component.scss'],\n})\nexport class RecaptchaComponent implements OnInit {\n @Input() siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\n @Input() lang = 'ar';\n @Input() recaptchaType: 'image' | 'audio' = 'image';\n @Input() theme: 'light' | 'dark' = 'light';\n @Input() useGlobalDomain = true;\n formControl: FormControl = new FormControl('');\n constructor(@Self() public controlDir: NgControl) {\n this.controlDir.valueAccessor = this;\n }\n\n ngOnInit(): void {\n const control = this.controlDir.control;\n const validators = control?.validator ? [control.validator] : [];\n\n control?.setValidators(validators);\n control?.updateValueAndValidity();\n this.formControl = control as FormControl;\n }\n\n onChange(event: any): void {}\n\n onTouched(): void {}\n writeValue(obj: any): void {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {\r\n FormArray,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form/ipa-form.service';\r\nimport { Column, GenerateForm } from '../models/generateForm.model';\r\n\r\n@Component({\r\n selector: 'ipa-generate-form',\r\n templateUrl: './generate-form.component.html',\r\n styleUrls: ['./generate-form.component.scss'],\r\n})\r\nexport class GenerateFormComponent implements OnInit {\r\n @Input() generateForm!: FormGroup;\r\n @Input() form!: GenerateForm;\r\n\r\n // recaptcha inputs\r\n @Input() siteKey!: string;\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n\r\n // file upload outputs\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n\r\n errorMsg!: string | null;\r\n\r\n constructor(private validationService: IPAFormService) {}\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n }\r\n\r\n get formControls() {\r\n return this.generateForm.get('items') as FormArray;\r\n }\r\n\r\n getErrorMessage(formControlName: string): string | null {\r\n const formControl = this.generateForm.controls[\r\n formControlName\r\n ] as FormControl;\r\n this.errorMsg = this.validationService.getErrorMessage(formControl);\r\n return this.errorMsg;\r\n }\r\n\r\n SuccessUpload(event: any) {\r\n this.successUpload.emit(event);\r\n }\r\n\r\n FileAdded(file: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(file);\r\n this.fileAdded.emit(file);\r\n }\r\n\r\n FileDeleted(event: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(null);\r\n this.fileDeleted.emit(event);\r\n }\r\n\r\n private createForm() {\r\n this.form.columns.forEach((column) => {\r\n if (column.type === 'checkbox') {\r\n this.addCheckboxControl(column);\r\n } else {\r\n this.generateForm.addControl(\r\n column.englishName,\r\n new FormControl(null, [\r\n column.required ? Validators.required : Validators.nullValidator,\r\n Validators.maxLength(column.size!),\r\n column.type === 'number'\r\n ? Validators.min(1)\r\n : Validators.nullValidator,\r\n ])\r\n );\r\n }\r\n });\r\n }\r\n\r\n private addCheckboxControl(column: Column) {\r\n let checkboxGroup = new FormArray(\r\n column.data!.map((item) => {\r\n return new FormGroup({\r\n [column.valueField!]: new FormControl(item[column.valueField!]),\r\n [column.textField!]: new FormControl(item[column.textField!]),\r\n checkbox: new FormControl(false, Validators.required),\r\n });\r\n })\r\n );\r\n\r\n this.generateForm.addControl(\r\n column.englishName,\r\n new FormControl(\r\n null,\r\n column.required ? Validators.required : Validators.nullValidator\r\n )\r\n );\r\n this.generateForm.addControl('items', checkboxGroup);\r\n checkboxGroup.valueChanges.subscribe((value) => {\r\n if (this.getCheckboxSelectedValues(value)) {\r\n this.generateForm.controls[column.englishName].patchValue(value);\r\n } else {\r\n this.generateForm.controls[column.englishName].patchValue(null);\r\n this.generateForm.controls[column.englishName].markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n private getCheckboxSelectedValues(items: any[]) {\r\n let selectedItems = items.filter((item) => item.checkbox);\r\n return selectedItems.length > 0 ? selectedItems : null;\r\n }\r\n}\r\n","<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.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.validationPattern!\"\r\n [patternErrorMsg]=\"column.patternErrorMsg!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\"></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.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [items]=\"column.data!\" [valueField]=\"column.valueField!\"\r\n [textField]=\"column.textField!\" [required]=\"column.required\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div [formArrayName]=\"'items'\" *ngFor=\"let control of formControls.controls; let i = index\">\r\n <div [formGroupName]=\"i\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+control.value[column.valueField!]\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\">\r\n <label [for]=\"column.englishName\">{{column.arabicLabel}}</label>\r\n <div *ngFor=\"let item of column.data; let i = index\" [id]=\"column.englishName\">\r\n <div class=\"form-check\">\r\n <input [id]=\"column.englishName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item[column.valueField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.englishName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\">\r\n <ipa-file-upload [label]=\"column.arabicLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\"\r\n ngDefaultControl [formControlName]=\"column.englishName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.englishName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.englishName)\"></ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"lang\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.englishName}}\"></ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\" [type]=\"column.type\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.validationPattern!\"\r\n [patternErrorMsg]=\"column.patternErrorMsg!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>","import { Component, Input, OnInit, Self } from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateStruct,\r\n NgbInputDatepickerConfig,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n})\r\nexport class DatepickerComponent implements OnInit {\r\n @Input() id!: string;\r\n @Input() label = 'datepicker';\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() required = false;\r\n @Input() maxDate!: NgbDateStruct;\r\n @Input() minDate!: NgbDateStruct;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n today = this.calendar.getToday();\r\n formControl: FormControl = new FormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private ipaFormService: IPAFormService,\r\n private calendar: NgbCalendar,\r\n @Self() public controlDir: NgControl,\r\n config: NgbInputDatepickerConfig\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n config.container = 'body';\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as FormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.ipaFormService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<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\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" title=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"d.toggle()\">\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);\">اليوم</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()\">مسح</button>\r\n </ng-template>\r\n</div>","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'محرم',\r\n 'صفر',\r\n 'ربيع الأول',\r\n 'ربيع الآخر',\r\n 'جمادى الأولى',\r\n 'جمادى الآخرة',\r\n 'رجب',\r\n 'شعبان',\r\n 'رمضان',\r\n 'شوال',\r\n 'ذو القعدة',\r\n 'ذو الحجة',\r\n];\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { IslamicI18n } from './IslamicI18n';\r\n@Component({\r\n selector: 'ipa-hijri-datepicker',\r\n templateUrl: '../datepicker.component.html',\r\n styleUrls: ['../datepicker.component.scss'],\r\n providers: [\r\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\r\n { provide: NgbDatepickerI18n, useClass: IslamicI18n },\r\n ],\r\n})\r\nexport class HijriDatepickerComponent extends DatepickerComponent {}\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'اغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n];\r\n\r\n@Injectable()\r\nexport class Gregorian18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { Gregorian18n } from './gregorian18n';\r\n\r\n@Component({\r\n selector: 'ipa-gregorian-datepicker',\r\n templateUrl: '../datepicker.component.html',\r\n styleUrls: ['../datepicker.component.scss'],\r\n providers: [\r\n { provide: NgbCalendar, useClass: NgbCalendarGregorian},\r\n { provide: NgbDatepickerI18n, useClass: Gregorian18n },\r\n ],\r\n})\r\nexport class GregorianDatepickerComponent extends DatepickerComponent {}\r\n","import { Component, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ipa-share-button',\r\n templateUrl: './share-button.component.html',\r\n styleUrls: ['./share-button.component.scss'],\r\n})\r\nexport class ShareButtonComponent implements AfterViewInit {\r\n @Input() title = '';\r\n @Input() description = '';\r\n @Input() btnLabel = '';\r\n constructor() {}\r\n ngAfterViewInit(): void {\r\n const elements = document.getElementsByClassName('sb-show-icon');\r\n elements[0].setAttribute('type', 'button');\r\n elements[0].setAttribute('id', 'IPAShareBtn');\r\n const label = document.createElement('label');\r\n label.innerHTML = this.btnLabel;\r\n label.classList.add('sm-share-title');\r\n label.classList.add('me-1');\r\n elements[0].before(label);\r\n }\r\n}\r\n","<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n FaIconLibrary,\r\n FontAwesomeModule,\r\n} from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\r\nimport { ShareButtonsPopupModule } from 'ngx-sharebuttons/popup';\r\nimport { ShareButtonComponent } from './share-button.component';\r\n\r\n@NgModule({\r\n declarations: [ShareButtonComponent],\r\n imports: [\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ShareButtonComponent,\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ]\r\n})\r\nexport class ShareButtonModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIconPacks(fas);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\nimport { TextInputComponent } from './ipa-form/text-input/text-input.component';\r\nimport { TextareaInputComponent } from './ipa-form/textarea-input/textarea-input.component';\r\nimport { DropdownInputComponent } from './ipa-form/dropdown-input/dropdown-input.component';\r\nimport { LoaderComponent } from './core/components/loading/loading.component';\r\nimport { GenerateFormComponent } from './generate-form/generate-form.component';\r\nimport { FileUploadComponent } from './ipa-form/file-upload/file-upload.component';\r\nimport { DatepickerComponent } from './ipa-form/datepicker/datepicker.component';\r\nimport { HijriDatepickerComponent } from './ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nimport { GregorianDatepickerComponent } from './ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nimport { ShareButtonModule } from './share-button/share-button.module';\r\nimport { RecaptchaComponent } from './ipa-form/recaptcha/recaptcha.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n DatepickerComponent,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n RecaptchaComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToastrModule,\r\n DropzoneModule,\r\n NgxCaptchaModule,\r\n PipesModule,\r\n NgbDatepickerModule,\r\n ShareButtonModule,\r\n NgSelectModule,\r\n ],\r\n exports: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n PipesModule,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n ShareButtonModule,\r\n RecaptchaComponent,\r\n ],\r\n})\r\nexport class NgIPALibraryModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService) {}\r\n\r\n removeRequest(req: HttpRequest<any>): void {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n this.requests.push(req);\r\n\r\n this.loaderService.isLoading.next(true);\r\n return new Observable((observer) => {\r\n const subscription = next.handle(req).subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(req);\r\n observer.next(event);\r\n }\r\n },\r\n (err) => {\r\n this.removeRequest(req);\r\n observer.error(err);\r\n },\r\n () => {\r\n this.removeRequest(req);\r\n observer.complete();\r\n }\r\n );\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(req);\r\n subscription.unsubscribe();\r\n };\r\n });\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.loaderService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../services/error.service';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private errorService: ErrorService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n const response = error.error as ApiException;\r\n const toastrConfig: Partial<IndividualConfig> = {\r\n disableTimeOut: true,\r\n };\r\n switch (response.statusCode) {\r\n case 500:\r\n this.toastrService.error(\r\n response?.innerException + ' ' + response?.stackTrace,\r\n response.message,\r\n toastrConfig\r\n );\r\n break;\r\n\r\n default:\r\n this.toastrService.error(response.message, '', toastrConfig);\r\n break;\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.errorService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public currentUser = new BehaviorSubject<DecodedToken>({ exp: 0 });\r\n currentUserUrl = '';\r\n constructor() {}\r\n\r\n getToken(): string {\r\n return localStorage.getItem('token') ?? '';\r\n }\r\n\r\n getDecodedToken(): any {\r\n return this.decodeJwt(this.getToken());\r\n }\r\n\r\n setCurrentUser(): void {\r\n const decodedToken = this.getDecodedToken() as DecodedToken;\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid,\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n setCurrentUserUrl(url: string) {\r\n this.currentUserUrl = url;\r\n }\r\n\r\n private decodeJwt(token: string): any {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpClient,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\nimport { User } from '../../models/user.model';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n refresh = true;\r\n constructor(private authService: AuthService, private http: HttpClient) {}\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getToken();\r\n if (token) {\r\n this.isTokenExpired(token);\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n private isTokenExpired(token: string) {\r\n const redirectPath = location.pathname;\r\n const decodedToken = this.authService.getDecodedToken() as DecodedToken;\r\n const expDate = new Date((decodedToken.exp ?? 0) * 1000);\r\n if (expDate < new Date()) {\r\n location.replace('/ar/login?redirect=' + redirectPath);\r\n return;\r\n } else {\r\n if (this.authService.currentUserUrl) {\r\n if (this.refresh) {\r\n this.http\r\n .get<User>(this.authService.currentUserUrl + `/api/users?refresh`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n })\r\n .subscribe((user) => {\r\n localStorage.setItem('token', user.token);\r\n this.refresh = false;\r\n setTimeout(() => {\r\n this.refresh = true;\r\n }, 60 * 1000);\r\n });\r\n }\r\n } else {\r\n throw new Error(\r\n \"provide current base user api url using this function authService.setCurrentUserUrl('https://...')\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n private isException(request: HttpRequest<any>): boolean {\r\n if (\r\n request.url.includes('/api/users?refresh') &&\r\n request.method === 'GET'\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsService {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.sub-section-title');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n setMainPageTitle(text: string, url: string) {\r\n const div = document.getElementsByClassName('main-section-title');\r\n if (div && div.length > 0) {\r\n div[0].innerHTML = `<a id=\"site-url\" href=\"${url}\">${text}</a>`;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n //get last child\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n lastIndex.classList.remove(...['bc-current']);\r\n //add new link\r\n lastIndex.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n //add new span and empty span\r\n const newSpan = this.createSpan(nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.childNodes;\r\n //get last child\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastSpan.innerHTML;\r\n lastSpan.classList.remove(...[spanClasses]);\r\n lastSpan.innerHTML = '';\r\n //add new link\r\n lastSpan.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const currentSpan = document.getElementById(\r\n 'ctl00_path'\r\n ) as HTMLSpanElement;\r\n currentSpan.innerHTML = '';\r\n const newSpan = document.createElement('span');\r\n currentSpan?.appendChild(newSpan);\r\n newSpan.appendChild(\r\n this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses)\r\n );\r\n const spans = currentSpan?.children;\r\n for (let i = 1; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex?.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n this.setCurrentNode(spans);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n let index = -1;\r\n for (let i = 0; i < spans.length; i++) {\r\n const span = spans.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = spans.length - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n spans?.item(index)?.remove();\r\n spans?.item(index)?.remove();\r\n } else {\r\n spans?.item(index)?.remove();\r\n spans?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n while (length > 0) {\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n length--;\r\n }\r\n if (spans.length > 0) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string, classes: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.classList.add(...[classes]);\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const lastSpanLink = spans\r\n ?.item(spans.length - 1)\r\n ?.children.item(0) as HTMLAnchorElement;\r\n lastSpan?.classList.add(...['bc-current']);\r\n lastSpan.innerHTML = lastSpanLink.innerHTML;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n constructor() {}\r\n\r\n print(element: string, title: string, classes?: string) {\r\n const styles = this.getElementTag('style');\r\n const linkes = this.getElementTag('link');\r\n const scripts = this.getElementTag('script');\r\n\r\n const printContents = document.getElementById(element)?.innerHTML;\r\n const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');\r\n const data = `\r\n <!DOCTYPE html>\r\n <head>\r\n <title> ${title} </title>\r\n <meta charset=\"utf-8\">\r\n ${linkes}\r\n ${styles}\r\n <style>\r\n @media print {\r\n .noPrint{\r\n display: none !important;\r\n }\r\n body {\r\n direction: rtl;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body class=\"${classes}\">\r\n ${printContents}\r\n ${scripts}\r\n </body>\r\n\r\n </html>`;\r\n popupWin?.document.open();\r\n popupWin?.document.write(data);\r\n popupWin?.document.close();\r\n popupWin?.focus();\r\n popupWin?.addEventListener('focus', () => {\r\n setTimeout(() => {\r\n if (popupWin.document.hasFocus()) {\r\n popupWin.print();\r\n popupWin.close();\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n\r\n return html.join('\\r\\n');\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ipa-library\r\n */\r\n// module\r\nexport * from './lib/ng-ipa-library.module';\r\nexport * from 'ngx-toastr';\r\nexport * from '@ng-select/ng-select';\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/share-button/share-button.module';\r\n\r\n// core components\r\nexport * from './lib/core/components/loading/loading.component';\r\n\r\n// form components\r\nexport * from './lib/ipa-form/text-input/text-input.component';\r\nexport * from './lib/ipa-form/textarea-input/textarea-input.component';\r\nexport * from './lib/ipa-form/dropdown-input/dropdown-input.component';\r\nexport * from './lib/ipa-form/file-upload/file-upload.component';\r\nexport * from './lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nexport * from './lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nexport * from './lib/ipa-form/recaptcha/recaptcha.component';\r\nexport * from './lib/generate-form/generate-form.component';\r\nexport * from './lib/share-button/share-button.component';\r\n\r\n// interceptors\r\nexport * from './lib/core/interceptors/loading.interceptor';\r\nexport * from './lib/core/interceptors/error.interceptor';\r\nexport * from './lib/core/interceptors/token.interceptor';\r\n\r\n// services\r\nexport * from './lib/core/services/loader.service';\r\nexport * from './lib/core/services/auth.service';\r\nexport * from './lib/ipa-form/ipa-form.service';\r\nexport * from './lib/core/services/error.service';\r\nexport * from './lib/services/breadcrumbs.service';\r\nexport * from './lib/services/common.service';\r\n\r\n//pipes\r\nexport * from './lib/pipes/hijri-date.pipe';\r\n\r\n//models\r\nexport * from './lib/models/pagedResult';\r\nexport * from './lib/models/apiException';\r\nexport * from './lib/models/apiResponse';\r\nexport * from './lib/models/generateForm.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["WEEKDAYS","MONTHS"],"mappings":"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"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
2
|
import { FormControl, NgControl } from '@angular/forms';
|
|
3
3
|
import { IPAFormService } from '../ipa-form.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class DropdownInputComponent implements OnInit {
|
|
6
6
|
private validationService;
|
|
7
7
|
controlDir: NgControl;
|
|
8
|
-
input:
|
|
8
|
+
input: HTMLSelectElement;
|
|
9
9
|
id: string;
|
|
10
10
|
label: string;
|
|
11
11
|
items: any[];
|
|
12
12
|
textField: string;
|
|
13
13
|
valueField: string;
|
|
14
14
|
required: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
pattern: string;
|
|
15
|
+
searchable: boolean;
|
|
16
|
+
notFoundText: string;
|
|
18
17
|
classes: string;
|
|
19
18
|
containerClasses: string;
|
|
20
19
|
formControl: FormControl;
|
|
@@ -28,5 +27,5 @@ export declare class DropdownInputComponent implements OnInit {
|
|
|
28
27
|
registerOnTouched(fn: any): void;
|
|
29
28
|
get errorMessage(): string | null;
|
|
30
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownInputComponent, [null, { self: true; }]>;
|
|
31
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownInputComponent, "ipa-dropdown-input", never, { "id": "id"; "label": "label"; "items": "items"; "textField": "textField"; "valueField": "valueField"; "required": "required"; "
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownInputComponent, "ipa-dropdown-input", never, { "id": "id"; "label": "label"; "items": "items"; "textField": "textField"; "valueField": "valueField"; "required": "required"; "searchable": "searchable"; "notFoundText": "notFoundText"; "classes": "classes"; "containerClasses": "containerClasses"; }, {}, never, never>;
|
|
32
31
|
}
|