ng-ipa-library 0.5.2 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/bundles/ng-ipa-library.umd.js +288 -129
  2. package/bundles/ng-ipa-library.umd.js.map +1 -1
  3. package/esm2015/lib/core/components/loading/loading.component.js +3 -3
  4. package/esm2015/lib/core/interceptors/error.interceptor.js +3 -3
  5. package/esm2015/lib/core/interceptors/loading.interceptor.js +3 -3
  6. package/esm2015/lib/core/interceptors/token.interceptor.js +3 -3
  7. package/esm2015/lib/core/services/auth.service.js +4 -4
  8. package/esm2015/lib/core/services/error.service.js +3 -3
  9. package/esm2015/lib/core/services/loader.service.js +3 -3
  10. package/esm2015/lib/generate-form/generate-form.component.js +10 -6
  11. package/esm2015/lib/ipa-form/datepicker/datepicker.component.js +4 -4
  12. package/esm2015/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.js +5 -5
  13. package/esm2015/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.js +3 -3
  14. package/esm2015/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.js +3 -3
  15. package/esm2015/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.js +5 -5
  16. package/esm2015/lib/ipa-form/dropdown-input/dropdown-input.component.js +3 -3
  17. package/esm2015/lib/ipa-form/file-upload/file-upload.component.js +7 -4
  18. package/esm2015/lib/ipa-form/ipa-form.service.js +187 -31
  19. package/esm2015/lib/ipa-form/text-input/text-input.component.js +5 -5
  20. package/esm2015/lib/ipa-form/textarea-input/textarea-input.component.js +5 -5
  21. package/esm2015/lib/ng-ipa-library.module.js +4 -4
  22. package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
  23. package/esm2015/lib/pipes/pipes.module.js +5 -5
  24. package/esm2015/lib/services/breadcrumbs.service.js +4 -4
  25. package/esm2015/lib/services/common.service.js +3 -3
  26. package/esm2015/lib/share-button/share-button.component.js +4 -4
  27. package/esm2015/lib/share-button/share-button.module.js +5 -5
  28. package/fesm2015/ng-ipa-library.js +275 -112
  29. package/fesm2015/ng-ipa-library.js.map +1 -1
  30. package/lib/generate-form/generate-form.component.d.ts +2 -2
  31. package/lib/ipa-form/file-upload/file-upload.component.d.ts +2 -1
  32. package/lib/ipa-form/ipa-form.service.d.ts +27 -6
  33. package/package.json +4 -4
@@ -32,9 +32,9 @@ class HijriDatePipe {
32
32
  return momentHijri(date).format(format);
33
33
  }
34
34
  }
35
- HijriDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: HijriDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
36
- HijriDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: HijriDatePipe, name: "hijriDate" });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: HijriDatePipe, decorators: [{
35
+ HijriDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
36
+ HijriDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, name: "hijriDate" });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, decorators: [{
38
38
  type: Pipe,
39
39
  args: [{
40
40
  name: 'hijriDate',
@@ -43,10 +43,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
43
43
 
44
44
  class PipesModule {
45
45
  }
46
- PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
- PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: PipesModule, declarations: [HijriDatePipe], exports: [HijriDatePipe] });
48
- PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: PipesModule });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: PipesModule, decorators: [{
46
+ PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
+ PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, declarations: [HijriDatePipe], exports: [HijriDatePipe] });
48
+ PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, decorators: [{
50
50
  type: NgModule,
51
51
  args: [{
52
52
  declarations: [HijriDatePipe],
@@ -58,17 +58,48 @@ class IPAFormService {
58
58
  constructor(parserFormatter) {
59
59
  this.parserFormatter = parserFormatter;
60
60
  }
61
+ /**
62
+ * check link is valid.
63
+ */
61
64
  static linkValidation(control) {
62
65
  const isValidLink = /^((https?:\/\/)[\w-]+(\.[a-z-]+)+\.?(:\d+)?(\/\S*)?)$/.test(control.value);
63
- return isValidLink || !control.value
64
- ? { pattern: { required: false } }
65
- : { pattern: { required: true } };
66
+ return isValidLink || !control.value ? null : { link: true };
66
67
  }
68
+ /**
69
+ * check mp4 link is valid.
70
+ */
67
71
  static mp4LinkValidation(control) {
68
72
  const isValidLink = /^((https?:\/\/)[\w-]+(\.[a-z-]+)+\.?(:\d+)?(\/\S*)?(\/[\w\u0600-\u06FF]+\.mp4))$/.test(control.value);
69
- return isValidLink || !control.value
70
- ? { pattern: { required: false } }
71
- : { pattern: { required: true } };
73
+ return isValidLink || !control.value ? null : { linkMP4: true };
74
+ }
75
+ /**
76
+ * check mobile number is valid.
77
+ */
78
+ static mobileNo(control) {
79
+ const isValidLink = /^05\d{8}$/.test(control.value);
80
+ return isValidLink || !control.value ? null : { mobileNo: true };
81
+ }
82
+ /**
83
+ * check email is valid.
84
+ */
85
+ static email(control) {
86
+ const isValidLink = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/.test(control.value);
87
+ return isValidLink || !control.value ? null : { Email: true };
88
+ }
89
+ /**
90
+ * check national ID or iqama ID is valid.
91
+ */
92
+ static checkID(control) {
93
+ let isValid = false;
94
+ const value = control.value;
95
+ if (IPAFormService.nationalIdValidate(value) ||
96
+ IPAFormService.iqamaIdValidate(value)) {
97
+ isValid = true;
98
+ }
99
+ else {
100
+ isValid = false;
101
+ }
102
+ return isValid || !value ? null : { checkId: true };
72
103
  }
73
104
  getErrorMessage(control, patternErrorMsg = '') {
74
105
  for (const propertyName in control === null || control === void 0 ? void 0 : control.errors) {
@@ -79,6 +110,28 @@ class IPAFormService {
79
110
  }
80
111
  return null;
81
112
  }
113
+ /**
114
+ * convert gregorian date to hijri date (Based on Umm al-Qura calculations).
115
+ * @param date: gregorian date
116
+ * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,
117
+ * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,
118
+ * dd => ن, ddd => إثنين, dddd => الإثنين
119
+ * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'
120
+ * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'
121
+ */
122
+ convertToHijriDate(date, format = 'iYYYY-iMM-iDD', lang = 'ar-SA') {
123
+ momentHijri.locale(lang);
124
+ return momentHijri(date).format(format);
125
+ }
126
+ convertToGregorianDate(date, format = 'YYYY-MM-DD', lang = 'en') {
127
+ momentHijri.locale(lang);
128
+ const m = momentHijri.iConvert.toGregorian(date.year(), date.month(), date.date());
129
+ return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);
130
+ }
131
+ getCurrentHijriDate() {
132
+ momentHijri.locale('en');
133
+ return momentHijri().format('iYYYY/iMM/iDD');
134
+ }
82
135
  getValidatorErrorMessage(validatorName, validatorValue, patternErrorMsg) {
83
136
  if (validatorName === 'pattern') {
84
137
  validatorValue = this.addPatternMsg(validatorValue, patternErrorMsg);
@@ -86,14 +139,17 @@ class IPAFormService {
86
139
  const config = {
87
140
  required: 'هذا الحقل مطلوب',
88
141
  pattern: `${validatorValue.message}`,
89
- email: 'خطأ في البريد الالكتروني مثال (example@ipa.edu.sa)',
142
+ Email: 'خطأ في البريد الالكتروني (example@ipa.edu.sa)',
90
143
  maxlength: `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`,
91
144
  minlength: `على الأقل عدد ${validatorValue.requiredLength} حرف.`,
92
145
  min: `رقم اكبر من أو يساوي ${validatorValue.min}`,
93
146
  max: `رقم اصغر من أو يساوي ${validatorValue.max}`,
94
147
  ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),
148
+ checkId: 'رقم الهوية أو الاقامة غير صحيح',
149
+ link: 'الرابط غير صحيح (http://google.com)',
150
+ linkMP4: 'الرابط غير صحيح (http://example.com/a.mp4)',
151
+ mobileNo: 'خطأ في رقم الجوال (05xxxxxxxx)',
95
152
  };
96
- console.log(validatorValue);
97
153
  return config[validatorName];
98
154
  }
99
155
  addPatternMsg(validatorValue, patternErrorMsg) {
@@ -113,32 +169,132 @@ class IPAFormService {
113
169
  }
114
170
  return msg;
115
171
  }
116
- /**
117
- * convert gregorian date to hijri date (Based on Umm al-Qura calculations).
118
- * @param date: gregorian date
119
- * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,
120
- * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,
121
- * dd => ن, ddd => إثنين, dddd => الإثنين
122
- * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'
123
- * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'
124
- */
125
- convertToHijriDate(date, format = 'iYYYY-iMM-iDD', lang = 'ar-SA') {
126
- momentHijri.locale(lang);
127
- return momentHijri(date).format(format);
128
- }
129
- convertToGregorianDate(date, format = 'YYYY-MM-DD', lang = 'en') {
130
- momentHijri.locale(lang);
131
- const m = momentHijri.iConvert.toGregorian(date.year(), date.month(), date.date());
132
- return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);
172
+ static convertToEn(value) {
173
+ let newValue = '';
174
+ for (let i = 0; i < value.length; i++) {
175
+ let ch = value.charCodeAt(i);
176
+ if (ch >= 1584 && ch <= 1650) {
177
+ let newChar = ch - 1584;
178
+ newValue = newValue + String.fromCharCode(newChar);
179
+ }
180
+ else {
181
+ newValue = newValue + String.fromCharCode(ch);
182
+ }
183
+ }
184
+ return newValue;
185
+ }
186
+ static nationalIdValidate(civilId) {
187
+ if (civilId) {
188
+ let strID = this.convertToEn(civilId);
189
+ let digits = '';
190
+ let counter = 0;
191
+ while (counter < 9) {
192
+ if ((counter + 1) % 2 == 0) {
193
+ digits = digits + strID.substring(counter, counter + 1);
194
+ }
195
+ else {
196
+ digits =
197
+ digits + (+strID.substring(counter, counter + 1) * 2).toString();
198
+ }
199
+ counter++;
200
+ }
201
+ let intSum = 0;
202
+ let intSumTemp = 0;
203
+ let strSum;
204
+ let intOddSumDigit;
205
+ let CheckDigit;
206
+ counter = 0;
207
+ while (counter < digits.length) {
208
+ intSumTemp = +digits.charAt(counter) * 1;
209
+ intSum += intSumTemp;
210
+ counter++;
211
+ }
212
+ strSum = intSum.toString();
213
+ if (strSum.length == 1) {
214
+ intOddSumDigit = intSum;
215
+ }
216
+ else {
217
+ intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);
218
+ }
219
+ if (intOddSumDigit == 0) {
220
+ CheckDigit = 0;
221
+ }
222
+ else {
223
+ CheckDigit = (10 - +intOddSumDigit).toString();
224
+ }
225
+ let PublicID = this.convertToEn(civilId);
226
+ if (CheckDigit ==
227
+ PublicID.substring(PublicID.length - 1, PublicID.length) &&
228
+ strID.length == 10 &&
229
+ strID.substring(0, 1) == '1') {
230
+ return true;
231
+ }
232
+ else {
233
+ return false;
234
+ }
235
+ }
236
+ else {
237
+ return false;
238
+ }
133
239
  }
134
- getCurrentHijriDate() {
135
- momentHijri.locale('en');
136
- return momentHijri().format('iYYYY/iMM/iDD');
240
+ static iqamaIdValidate(civilId) {
241
+ if (civilId) {
242
+ let strID = this.convertToEn(civilId);
243
+ let digits = '';
244
+ let counter = 0;
245
+ while (counter < 9) {
246
+ if ((counter + 1) % 2 == 0) {
247
+ digits = digits + strID.substring(counter, counter + 1);
248
+ }
249
+ else {
250
+ digits =
251
+ digits + (+strID.substring(counter, counter + 1) * 2).toString();
252
+ }
253
+ counter++;
254
+ }
255
+ let intSum = 0;
256
+ let intSumTemp = 0;
257
+ let strSum;
258
+ let intOddSumDigit;
259
+ let CheckDigit;
260
+ counter = 0;
261
+ while (counter < digits.length) {
262
+ intSumTemp = +digits.charAt(counter) * 1;
263
+ intSum += intSumTemp;
264
+ counter++;
265
+ }
266
+ strSum = intSum.toString();
267
+ if (strSum.length == 1) {
268
+ intOddSumDigit = intSum;
269
+ }
270
+ else {
271
+ intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);
272
+ }
273
+ if (intOddSumDigit == 0) {
274
+ CheckDigit = 0;
275
+ }
276
+ else {
277
+ CheckDigit = (10 - +intOddSumDigit).toString();
278
+ }
279
+ let PublicID = this.convertToEn(civilId);
280
+ if (CheckDigit ==
281
+ PublicID.substring(PublicID.length - 1, PublicID.length) &&
282
+ strID.length == 10 &&
283
+ strID.substring(0, 1) == '2') {
284
+ return true;
285
+ }
286
+ else {
287
+ return false;
288
+ }
289
+ }
290
+ else {
291
+ return false;
292
+ }
137
293
  }
138
294
  }
139
- IPAFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IPAFormService, deps: [{ token: i2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable });
140
- IPAFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IPAFormService, providedIn: 'root' });
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IPAFormService, decorators: [{
295
+ IPAFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IPAFormService, deps: [{ token: i2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable });
296
+ IPAFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IPAFormService, providedIn: 'root' });
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IPAFormService, decorators: [{
142
298
  type: Injectable,
143
299
  args: [{
144
300
  providedIn: 'root',
@@ -152,7 +308,7 @@ class TextInputComponent {
152
308
  this.type = 'text';
153
309
  this.placeholder = 'please enter text';
154
310
  this.label = 'text input';
155
- this.required = true;
311
+ this.required = false;
156
312
  this.patternErrorMsg = 'invalid pattern';
157
313
  this.pattern = '';
158
314
  this.formControl = new FormControl('');
@@ -181,9 +337,9 @@ class TextInputComponent {
181
337
  return this.errorMsg;
182
338
  }
183
339
  }
184
- TextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
185
- TextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: TextInputComponent, selector: "ipa-text-input", inputs: { id: "id", type: "type", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\"\r\n [ngClass]=\"{'was-validated': (controlDir.control?.dirty || controlDir.control?.touched) && required}\">\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 <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextInputComponent, decorators: [{
340
+ TextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
341
+ TextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: TextInputComponent, selector: "ipa-text-input", inputs: { id: "id", type: "type", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<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>", styles: [""], directives: [{ type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextInputComponent, decorators: [{
187
343
  type: Component,
188
344
  args: [{
189
345
  selector: 'ipa-text-input',
@@ -222,7 +378,7 @@ class TextareaInputComponent {
222
378
  this.input = new ElementRef(null);
223
379
  this.placeholder = 'please enter text';
224
380
  this.label = 'textarea input';
225
- this.required = true;
381
+ this.required = false;
226
382
  this.patternErrorMsg = 'invalid pattern';
227
383
  this.formControl = new FormControl('');
228
384
  this.controlDir.valueAccessor = this;
@@ -250,9 +406,9 @@ class TextareaInputComponent {
250
406
  return this.errorMsg;
251
407
  }
252
408
  }
253
- TextareaInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextareaInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
254
- TextareaInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: { id: "id", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\"\r\n [ngClass]=\"{'was-validated': (controlDir.control?.dirty || controlDir.control?.touched) && required}\">\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 </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>", styles: [""], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TextareaInputComponent, decorators: [{
409
+ TextareaInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextareaInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
410
+ TextareaInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: { id: "id", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<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>", styles: [""], directives: [{ type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextareaInputComponent, decorators: [{
256
412
  type: Component,
257
413
  args: [{
258
414
  selector: 'ipa-textarea-input',
@@ -318,9 +474,9 @@ class DropdownInputComponent {
318
474
  return this.errorMsg;
319
475
  }
320
476
  }
321
- DropdownInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: DropdownInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
322
- DropdownInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: { id: "id", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", disabled: "disabled", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<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>", styles: [""], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: DropdownInputComponent, decorators: [{
477
+ DropdownInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: DropdownInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
478
+ DropdownInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: { id: "id", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", disabled: "disabled", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<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>", styles: [""], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: DropdownInputComponent, decorators: [{
324
480
  type: Component,
325
481
  args: [{
326
482
  selector: 'ipa-dropdown-input',
@@ -368,9 +524,9 @@ class LoaderService {
368
524
  this.urls.push(url);
369
525
  }
370
526
  }
371
- LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
372
- LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoaderService, providedIn: 'root' });
373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoaderService, decorators: [{
527
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
528
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoaderService, providedIn: 'root' });
529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoaderService, decorators: [{
374
530
  type: Injectable,
375
531
  args: [{
376
532
  providedIn: 'root',
@@ -389,9 +545,9 @@ class LoaderComponent {
389
545
  });
390
546
  }
391
547
  }
392
- LoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoaderComponent, deps: [{ token: LoaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
393
- LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: LoaderComponent, selector: "ipa-loader", ngImport: i0, template: "<div id=\"cover-spin\" [class.d-none]=\"!loading\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n", styles: ["#cover-spin{position:fixed;width:100%;left:0;height:100%;right:0;top:0;bottom:0;background-color:#fff;z-index:99999;display:flex;justify-content:center;align-items:center}#cover-spin:after{content:\"\";display:block;background-size:46px;position:absolute;left:48%;top:40%;width:46px;height:46px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite}@-webkit-keyframes spin7{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes spin7{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.spinner{display:block;position:fixed;top:50%;left:50%;height:80px;width:80px;margin-top:-50px;margin-left:-50px;border:2px solid transparent;border-top-color:#2d557e;border-radius:50%;-webkit-animation:spin7 1s ease infinite;animation:spin7 1s ease infinite}.spinner:before{content:\"\";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:50%;border:2px solid transparent;border-top-color:#2aa7c5;-webkit-animation:spin7 3s linear infinite;animation:spin7 3s linear infinite}.spinner:after{content:\"\";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:50%;border:2px solid transparent;border-top-color:#cfe79d;-webkit-animation:spin7 1.5s ease infinite;animation:spin7 1.5s ease infinite}"] });
394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoaderComponent, decorators: [{
548
+ LoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoaderComponent, deps: [{ token: LoaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
549
+ LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: LoaderComponent, selector: "ipa-loader", ngImport: i0, template: "<div id=\"cover-spin\" [class.d-none]=\"!loading\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n", styles: ["#cover-spin{position:fixed;width:100%;left:0;height:100%;right:0;top:0;bottom:0;background-color:#fff;z-index:99999;display:flex;justify-content:center;align-items:center}#cover-spin:after{content:\"\";display:block;background-size:46px;position:absolute;left:48%;top:40%;width:46px;height:46px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite}@-webkit-keyframes spin7{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spin7{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.spinner{display:block;position:fixed;top:50%;left:50%;height:80px;width:80px;margin-top:-50px;margin-left:-50px;border:2px solid transparent;border-top-color:#2d557e;border-radius:50%;-webkit-animation:spin7 1s ease infinite;animation:spin7 1s ease infinite}.spinner:before{content:\"\";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:2px solid transparent;border-radius:50%;border-top-color:#2aa7c5;-webkit-animation:spin7 3s linear infinite;animation:spin7 3s linear infinite}.spinner:after{content:\"\";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border:2px solid transparent;border-radius:50%;border-top-color:#cfe79d;-webkit-animation:spin7 1.5s ease infinite;animation:spin7 1.5s ease infinite}\n"] });
550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoaderComponent, decorators: [{
395
551
  type: Component,
396
552
  args: [{
397
553
  selector: 'ipa-loader',
@@ -406,6 +562,7 @@ class FileUploadComponent {
406
562
  toastrService) {
407
563
  this.toastrService = toastrService;
408
564
  this.label = '';
565
+ this.required = false;
409
566
  this.acceptedFiles = '';
410
567
  this.multiple = 1; // set maxFiles (NOT uploadMultiple)in the config object,
411
568
  this.maxFileSize = 2;
@@ -483,9 +640,9 @@ class FileUploadComponent {
483
640
  this.fileDeleted.emit();
484
641
  }
485
642
  }
486
- FileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
487
- FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { label: "label", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\n (addedFile)=\"fileWasAdded($event)\">\n </div>\n <div class=\"upload-btn-wrapper\">\n <div>\n <div class=\"subtitle mb-2\">\n {{label}}\n </div>\n <hr>\n <span style=\"font-size: 12px;\">\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627</span>\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\n </div>\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\n \u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:\n <span class=\"extensions\">{{ acceptedFiles }}</span>\n </div>\n <div class=\"allowed-extensions\">\n \u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\n </div>\n </div>\n</div>\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\n style=\"color:firebrick; cursor: pointer;\"></i>\n <br>\n </span>\n <ul class=\"list-unstyled\">\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\n </ul>\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:1px dashed #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;z-index:9999;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}"], directives: [{ type: i2$2.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: FileUploadComponent, decorators: [{
643
+ FileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
644
+ FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\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;\">\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627</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 \u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n \u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:\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>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"], directives: [{ type: i2$2.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileUploadComponent, decorators: [{
489
646
  type: Component,
490
647
  args: [{
491
648
  selector: 'ipa-file-upload',
@@ -497,6 +654,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
497
654
  args: [DropzoneDirective, { static: false }]
498
655
  }], label: [{
499
656
  type: Input
657
+ }], required: [{
658
+ type: Input
500
659
  }], acceptedFiles: [{
501
660
  type: Input
502
661
  }], multiple: [{
@@ -556,8 +715,12 @@ class GenerateFormComponent {
556
715
  this.generateForm.controls[formControlName].patchValue(null);
557
716
  this.fileDeleted.emit(event);
558
717
  }
559
- handleReset() { }
560
- handleExpire() { }
718
+ handleReset(formControlName) {
719
+ this.generateForm.controls[formControlName].patchValue(null);
720
+ }
721
+ handleExpire(formControlName) {
722
+ this.generateForm.controls[formControlName].patchValue(null);
723
+ }
561
724
  handleLoad() { }
562
725
  handleSuccess(event, formControlName) {
563
726
  this.generateForm.controls[formControlName].patchValue(event);
@@ -629,9 +792,9 @@ class GenerateFormComponent {
629
792
  this.useGlobalDomain = (_c = col.useGlobalDomain) !== null && _c !== void 0 ? _c : this.useGlobalDomain;
630
793
  }
631
794
  }
632
- GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
633
- GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\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.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\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.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\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.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\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\" [authorization]=\"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 <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\"\r\n [type]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\" (reset)=\"handleReset()\"\r\n (expire)=\"handleExpire()\" (load)=\"handleLoad()\"\r\n (success)=\"handleSuccess($event, column.englishName)\" formControlName=\"{{column.englishName}}\">\r\n </ngx-recaptcha2>\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.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }, { type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
634
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: GenerateFormComponent, decorators: [{
795
+ GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, deps: [{ token: IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
796
+ GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted", recaptchaOutput: "recaptchaOutput" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.englishName\" [id]=\"column.englishName\"\r\n [label]=\"column.arabicLabel\" [required]=\"column.required\" [pattern]=\"column.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\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.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\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.id\" class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+control.value.id\">\r\n {{control.value.description}}\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.id\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.englishName\" [value]=\"item.id\">\r\n <label class=\"form-check-label\" [for]=\"column.englishName+item.id\">\r\n {{item.description}}\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\" [authorization]=\"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 <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'recaptcha'\">\r\n <ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\"\r\n [type]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\" (reset)=\"handleReset(column.englishName)\"\r\n (expire)=\"handleExpire(column.englishName)\" (load)=\"handleLoad()\"\r\n (success)=\"handleSuccess($event, column.englishName)\" formControlName=\"{{column.englishName}}\">\r\n </ngx-recaptcha2>\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.pattern\"\r\n [patternErrorMsg]=\"column.patternErrorMsg\" [classes]=\"column.classes\"\r\n [containerClasses]=\"column.containerClasses\"></ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "disabled", "patternErrorMsg", "pattern", "classes", "containerClasses"] }, { type: FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }, { type: TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses"] }], directives: [{ type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GenerateFormComponent, decorators: [{
635
798
  type: Component,
636
799
  args: [{
637
800
  selector: 'ipa-generate-form',
@@ -700,9 +863,9 @@ class DatepickerComponent {
700
863
  return this.errorMsg;
701
864
  }
702
865
  }
703
- DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: DatepickerComponent, deps: [{ token: IPAFormService }, { token: i2.NgbCalendar }, { token: i2$1.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }], target: i0.ɵɵFactoryTarget.Component });
704
- DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: DatepickerComponent, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses" }, ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\n <input id=\"{{id}}\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && required,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && required)}\"\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" (click)=\"d.toggle()\" [firstDayOfWeek]=\"7\"\n ngbDatepicker #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\n [required]=\"required\" style=\"outline: unset;\" autocomplete=\"off\" (blur)=\"onTouched()\">\n <label for=\"{{id}}\">{{label}}</label>\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\n {{errorMsg}}\n </div>\n <ng-template #footerTemplate style=\"text-align: center;\">\n <hr>\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\n </ng-template>\n</div>", styles: [""], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: DatepickerComponent, decorators: [{
866
+ DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: DatepickerComponent, deps: [{ token: IPAFormService }, { token: i2.NgbCalendar }, { token: i2$1.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }], target: i0.ɵɵFactoryTarget.Component });
867
+ DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: DatepickerComponent, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses" }, ngImport: i0, template: "<div class=\"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;\" autocomplete=\"off\" (blur)=\"onTouched()\" title=\"{{label}}\" [placeholder]=\"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);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: DatepickerComponent, decorators: [{
706
869
  type: Component,
707
870
  args: [{
708
871
  selector: 'ipa-datepicker',
@@ -758,20 +921,20 @@ class IslamicI18n extends NgbDatepickerI18n {
758
921
  return `${date.day}-${date.month}-${date.year}`;
759
922
  }
760
923
  }
761
- IslamicI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
762
- IslamicI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IslamicI18n });
763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: IslamicI18n, decorators: [{
924
+ IslamicI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
925
+ IslamicI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IslamicI18n });
926
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: IslamicI18n, decorators: [{
764
927
  type: Injectable
765
928
  }] });
766
929
 
767
930
  class HijriDatepickerComponent extends DatepickerComponent {
768
931
  }
769
- HijriDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
770
- HijriDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: HijriDatepickerComponent, selector: "ipa-hijri-datepicker", providers: [
932
+ HijriDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
933
+ HijriDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: HijriDatepickerComponent, selector: "ipa-hijri-datepicker", providers: [
771
934
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
772
935
  { provide: NgbDatepickerI18n, useClass: IslamicI18n },
773
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\n <input id=\"{{id}}\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && required,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && required)}\"\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" (click)=\"d.toggle()\" [firstDayOfWeek]=\"7\"\n ngbDatepicker #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\n [required]=\"required\" style=\"outline: unset;\" autocomplete=\"off\" (blur)=\"onTouched()\">\n <label for=\"{{id}}\">{{label}}</label>\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\n {{errorMsg}}\n </div>\n <ng-template #footerTemplate style=\"text-align: center;\">\n <hr>\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\n </ng-template>\n</div>", styles: [""], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
774
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
936
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"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;\" autocomplete=\"off\" (blur)=\"onTouched()\" title=\"{{label}}\" [placeholder]=\"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);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
775
938
  type: Component,
776
939
  args: [{
777
940
  selector: 'ipa-hijri-datepicker',
@@ -813,20 +976,20 @@ class Gregorian18n extends NgbDatepickerI18n {
813
976
  return `${date.day}-${date.month}-${date.year}`;
814
977
  }
815
978
  }
816
- Gregorian18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
817
- Gregorian18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: Gregorian18n });
818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: Gregorian18n, decorators: [{
979
+ Gregorian18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
980
+ Gregorian18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: Gregorian18n });
981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: Gregorian18n, decorators: [{
819
982
  type: Injectable
820
983
  }] });
821
984
 
822
985
  class GregorianDatepickerComponent extends DatepickerComponent {
823
986
  }
824
- GregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
825
- GregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
987
+ GregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
988
+ GregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
826
989
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
827
990
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
828
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\n <input id=\"{{id}}\"\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && required,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && required)}\"\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" (click)=\"d.toggle()\" [firstDayOfWeek]=\"7\"\n ngbDatepicker #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\n [required]=\"required\" style=\"outline: unset;\" autocomplete=\"off\" (blur)=\"onTouched()\">\n <label for=\"{{id}}\">{{label}}</label>\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\n {{errorMsg}}\n </div>\n <ng-template #footerTemplate style=\"text-align: center;\">\n <hr>\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\n </ng-template>\n</div>", styles: [""], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
991
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"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;\" autocomplete=\"off\" (blur)=\"onTouched()\" title=\"{{label}}\" [placeholder]=\"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);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
830
993
  type: Component,
831
994
  args: [{
832
995
  selector: 'ipa-gregorian-datepicker',
@@ -849,9 +1012,9 @@ class ShareButtonComponent {
849
1012
  elements[0].setAttribute('type', 'button');
850
1013
  }
851
1014
  }
852
- ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
853
- ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1$1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonComponent, decorators: [{
1015
+ ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1016
+ ShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: ShareButtonComponent, selector: "ipa-share-button", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','email','copy']\">\r\n</share-popup-button>", styles: [""], components: [{ type: i1$1.SharePopupComponent, selector: "share-popup-button", inputs: ["theme", "icon", "text", "include", "exclude", "closeIcon", "url", "title", "description", "image", "tags", "autoSetMeta", "show", "showIcon", "showText", "disabled", "hasBackdrop", "backdropClass"], outputs: ["opened", "closed", "popupClosed"] }] });
1017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonComponent, decorators: [{
855
1018
  type: Component,
856
1019
  args: [{
857
1020
  selector: 'ipa-share-button',
@@ -869,8 +1032,8 @@ class ShareButtonModule {
869
1032
  library.addIconPacks(fas);
870
1033
  }
871
1034
  }
872
- ShareButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonModule, deps: [{ token: i1$2.FaIconLibrary }], target: i0.ɵɵFactoryTarget.NgModule });
873
- ShareButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonModule, declarations: [ShareButtonComponent], imports: [ShareIconsModule,
1035
+ ShareButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonModule, deps: [{ token: i1$2.FaIconLibrary }], target: i0.ɵɵFactoryTarget.NgModule });
1036
+ ShareButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonModule, declarations: [ShareButtonComponent], imports: [ShareIconsModule,
874
1037
  ShareButtonsPopupModule,
875
1038
  OverlayModule,
876
1039
  FontAwesomeModule], exports: [ShareButtonComponent,
@@ -878,7 +1041,7 @@ ShareButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
878
1041
  ShareButtonsPopupModule,
879
1042
  OverlayModule,
880
1043
  FontAwesomeModule] });
881
- ShareButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonModule, imports: [[
1044
+ ShareButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonModule, imports: [[
882
1045
  ShareIconsModule,
883
1046
  ShareButtonsPopupModule,
884
1047
  OverlayModule,
@@ -887,7 +1050,7 @@ ShareButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
887
1050
  ShareButtonsPopupModule,
888
1051
  OverlayModule,
889
1052
  FontAwesomeModule] });
890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ShareButtonModule, decorators: [{
1053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ShareButtonModule, decorators: [{
891
1054
  type: NgModule,
892
1055
  args: [{
893
1056
  declarations: [ShareButtonComponent],
@@ -909,8 +1072,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
909
1072
 
910
1073
  class NgIPALibraryModule {
911
1074
  }
912
- NgIPALibraryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
913
- NgIPALibraryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
1075
+ NgIPALibraryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1076
+ NgIPALibraryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
914
1077
  TextareaInputComponent,
915
1078
  DropdownInputComponent,
916
1079
  LoaderComponent,
@@ -936,7 +1099,7 @@ NgIPALibraryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
936
1099
  HijriDatepickerComponent,
937
1100
  GregorianDatepickerComponent,
938
1101
  ShareButtonModule] });
939
- NgIPALibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NgIPALibraryModule, imports: [[
1102
+ NgIPALibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, imports: [[
940
1103
  CommonModule,
941
1104
  FormsModule,
942
1105
  ReactiveFormsModule,
@@ -948,7 +1111,7 @@ NgIPALibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
948
1111
  ShareButtonModule,
949
1112
  ], PipesModule,
950
1113
  ShareButtonModule] });
951
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NgIPALibraryModule, decorators: [{
1114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, decorators: [{
952
1115
  type: NgModule,
953
1116
  args: [{
954
1117
  declarations: [
@@ -1035,9 +1198,9 @@ class LoadingInterceptor {
1035
1198
  return false;
1036
1199
  }
1037
1200
  }
1038
- LoadingInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
1039
- LoadingInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoadingInterceptor });
1040
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: LoadingInterceptor, decorators: [{
1201
+ LoadingInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
1202
+ LoadingInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoadingInterceptor });
1203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: LoadingInterceptor, decorators: [{
1041
1204
  type: Injectable
1042
1205
  }], ctorParameters: function () { return [{ type: LoaderService }]; } });
1043
1206
 
@@ -1052,9 +1215,9 @@ class ErrorService {
1052
1215
  this.urls.push(url);
1053
1216
  }
1054
1217
  }
1055
- ErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1056
- ErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorService, providedIn: 'root' });
1057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorService, decorators: [{
1218
+ ErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1219
+ ErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorService, providedIn: 'root' });
1220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorService, decorators: [{
1058
1221
  type: Injectable,
1059
1222
  args: [{
1060
1223
  providedIn: 'root'
@@ -1095,9 +1258,9 @@ class ErrorInterceptor {
1095
1258
  return false;
1096
1259
  }
1097
1260
  }
1098
- ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }, { token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable });
1099
- ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorInterceptor });
1100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ErrorInterceptor, decorators: [{
1261
+ ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorInterceptor, deps: [{ token: ErrorService }, { token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable });
1262
+ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorInterceptor });
1263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: ErrorInterceptor, decorators: [{
1101
1264
  type: Injectable
1102
1265
  }], ctorParameters: function () { return [{ type: ErrorService }, { type: i1.ToastrService }]; } });
1103
1266
 
@@ -1137,9 +1300,9 @@ class AuthService {
1137
1300
  return JSON.parse(jsonPayload);
1138
1301
  }
1139
1302
  }
1140
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1141
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AuthService, providedIn: 'root' });
1142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AuthService, decorators: [{
1303
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1304
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: AuthService, providedIn: 'root' });
1305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: AuthService, decorators: [{
1143
1306
  type: Injectable,
1144
1307
  args: [{
1145
1308
  providedIn: 'root',
@@ -1205,9 +1368,9 @@ class TokenInterceptor {
1205
1368
  return false;
1206
1369
  }
1207
1370
  }
1208
- TokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TokenInterceptor, deps: [{ token: AuthService }, { token: i2$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1209
- TokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TokenInterceptor });
1210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: TokenInterceptor, decorators: [{
1371
+ TokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TokenInterceptor, deps: [{ token: AuthService }, { token: i2$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1372
+ TokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TokenInterceptor });
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TokenInterceptor, decorators: [{
1211
1374
  type: Injectable
1212
1375
  }], ctorParameters: function () { return [{ type: AuthService }, { type: i2$3.HttpClient }]; } });
1213
1376
 
@@ -1345,9 +1508,9 @@ class BreadcrumbsService {
1345
1508
  lastSpan.innerHTML = lastSpanLink.innerHTML;
1346
1509
  }
1347
1510
  }
1348
- BreadcrumbsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1349
- BreadcrumbsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' });
1350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BreadcrumbsService, decorators: [{
1511
+ BreadcrumbsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1512
+ BreadcrumbsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' });
1513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, decorators: [{
1351
1514
  type: Injectable,
1352
1515
  args: [{
1353
1516
  providedIn: 'root',
@@ -1409,9 +1572,9 @@ class CommonService {
1409
1572
  return html.join('\r\n');
1410
1573
  }
1411
1574
  }
1412
- CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CommonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1413
- CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CommonService, providedIn: 'root' });
1414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: CommonService, decorators: [{
1575
+ CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: CommonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1576
+ CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: CommonService, providedIn: 'root' });
1577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: CommonService, decorators: [{
1415
1578
  type: Injectable,
1416
1579
  args: [{
1417
1580
  providedIn: 'root',