ng-ipa-library 0.7.5 → 0.7.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 (135) hide show
  1. package/karma.conf.js +44 -0
  2. package/ng-package.json +43 -0
  3. package/package.json +24 -31
  4. package/src/lib/core/components/loading/loading.component.html +3 -0
  5. package/src/lib/core/components/loading/loading.component.scss +3 -0
  6. package/src/lib/core/components/loading/loading.component.ts +23 -0
  7. package/src/lib/core/interceptors/error.interceptor.ts +61 -0
  8. package/src/lib/core/interceptors/loading.interceptor.ts +69 -0
  9. package/src/lib/core/interceptors/token.interceptor.ts +77 -0
  10. package/src/lib/core/services/auth.service.ts +48 -0
  11. package/src/lib/core/services/error.service.ts +19 -0
  12. package/src/lib/core/services/loader.service.ts +21 -0
  13. package/src/lib/generate-form/generate-form.component.html +85 -0
  14. package/src/lib/generate-form/generate-form.component.scss +0 -0
  15. package/src/lib/generate-form/generate-form.component.ts +119 -0
  16. package/src/lib/ipa-form/datepicker/datepicker.component.html +21 -0
  17. package/src/lib/ipa-form/datepicker/datepicker.component.scss +13 -0
  18. package/src/lib/ipa-form/datepicker/datepicker.component.ts +67 -0
  19. package/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.ts +15 -0
  20. package/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.ts +38 -0
  21. package/src/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.ts +38 -0
  22. package/src/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.ts +14 -0
  23. package/src/lib/ipa-form/dropdown-input/dropdown-input.component.html +22 -0
  24. package/src/lib/ipa-form/dropdown-input/dropdown-input.component.scss +0 -0
  25. package/src/lib/ipa-form/dropdown-input/dropdown-input.component.ts +68 -0
  26. package/src/lib/ipa-form/file-upload/file-upload.component.html +37 -0
  27. package/src/lib/ipa-form/file-upload/file-upload.component.scss +45 -0
  28. package/src/lib/ipa-form/file-upload/file-upload.component.ts +109 -0
  29. package/src/lib/ipa-form/ipa-form.service.ts +294 -0
  30. package/src/lib/ipa-form/recaptcha/recaptcha.component.html +3 -0
  31. package/src/lib/ipa-form/recaptcha/recaptcha.component.scss +0 -0
  32. package/src/lib/ipa-form/recaptcha/recaptcha.component.ts +42 -0
  33. package/src/lib/ipa-form/text-input/text-input.component.html +10 -0
  34. package/src/lib/ipa-form/text-input/text-input.component.scss +0 -0
  35. package/src/lib/ipa-form/text-input/text-input.component.ts +69 -0
  36. package/src/lib/ipa-form/textarea-input/textarea-input.component.html +11 -0
  37. package/src/lib/ipa-form/textarea-input/textarea-input.component.scss +0 -0
  38. package/src/lib/ipa-form/textarea-input/textarea-input.component.ts +69 -0
  39. package/{lib/models/apiException.d.ts → src/lib/models/apiException.ts} +2 -1
  40. package/src/lib/models/apiResponse.ts +4 -0
  41. package/src/lib/models/breadcrumbs.model.ts +4 -0
  42. package/src/lib/models/decodedToken.model.ts +6 -0
  43. package/src/lib/models/exceptionUrl.model.ts +4 -0
  44. package/src/lib/models/generateForm.model.ts +29 -0
  45. package/src/lib/models/pagedResult.ts +4 -0
  46. package/src/lib/models/user.model.ts +7 -0
  47. package/src/lib/ng-ipa-library.component.ts +15 -0
  48. package/src/lib/ng-ipa-library.module.ts +63 -0
  49. package/src/lib/pipes/hijri-date.pipe.ts +15 -0
  50. package/src/lib/pipes/pipes.module.ts +8 -0
  51. package/src/lib/services/breadcrumbs.service.ts +189 -0
  52. package/src/lib/services/common.service.ts +63 -0
  53. package/src/lib/share-button/share-button.component.html +3 -0
  54. package/src/lib/share-button/share-button.component.scss +0 -0
  55. package/src/lib/share-button/share-button.component.ts +23 -0
  56. package/src/lib/share-button/share-button.module.ts +32 -0
  57. package/{public-api.d.ts → src/public-api.ts} +16 -1
  58. package/src/test.ts +26 -0
  59. package/tsconfig.lib.json +20 -0
  60. package/tsconfig.lib.prod.json +10 -0
  61. package/tsconfig.spec.json +17 -0
  62. package/bundles/ng-ipa-library.umd.js +0 -2098
  63. package/bundles/ng-ipa-library.umd.js.map +0 -1
  64. package/esm2015/lib/core/components/loading/loading.component.js +0 -27
  65. package/esm2015/lib/core/interceptors/error.interceptor.js +0 -46
  66. package/esm2015/lib/core/interceptors/loading.interceptor.js +0 -58
  67. package/esm2015/lib/core/interceptors/token.interceptor.js +0 -69
  68. package/esm2015/lib/core/services/auth.service.js +0 -48
  69. package/esm2015/lib/core/services/error.service.js +0 -22
  70. package/esm2015/lib/core/services/loader.service.js +0 -24
  71. package/esm2015/lib/generate-form/generate-form.component.js +0 -120
  72. package/esm2015/lib/ipa-form/datepicker/datepicker.component.js +0 -70
  73. package/esm2015/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.js +0 -28
  74. package/esm2015/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.js +0 -38
  75. package/esm2015/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.js +0 -38
  76. package/esm2015/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.js +0 -28
  77. package/esm2015/lib/ipa-form/dropdown-input/dropdown-input.component.js +0 -81
  78. package/esm2015/lib/ipa-form/file-upload/file-upload.component.js +0 -128
  79. package/esm2015/lib/ipa-form/ipa-form.service.js +0 -251
  80. package/esm2015/lib/ipa-form/recaptcha/recaptcha.component.js +0 -59
  81. package/esm2015/lib/ipa-form/text-input/text-input.component.js +0 -76
  82. package/esm2015/lib/ipa-form/textarea-input/textarea-input.component.js +0 -73
  83. package/esm2015/lib/models/apiException.js +0 -2
  84. package/esm2015/lib/models/apiResponse.js +0 -2
  85. package/esm2015/lib/models/breadcrumbs.model.js +0 -2
  86. package/esm2015/lib/models/decodedToken.model.js +0 -2
  87. package/esm2015/lib/models/exceptionUrl.model.js +0 -2
  88. package/esm2015/lib/models/generateForm.model.js +0 -2
  89. package/esm2015/lib/models/pagedResult.js +0 -2
  90. package/esm2015/lib/models/user.model.js +0 -2
  91. package/esm2015/lib/ng-ipa-library.module.js +0 -109
  92. package/esm2015/lib/pipes/hijri-date.pipe.js +0 -18
  93. package/esm2015/lib/pipes/pipes.module.js +0 -16
  94. package/esm2015/lib/services/breadcrumbs.service.js +0 -151
  95. package/esm2015/lib/services/common.service.js +0 -66
  96. package/esm2015/lib/share-button/share-button.component.js +0 -37
  97. package/esm2015/lib/share-button/share-button.module.js +0 -52
  98. package/esm2015/ng-ipa-library.js +0 -5
  99. package/esm2015/public-api.js +0 -40
  100. package/fesm2015/ng-ipa-library.js +0 -1630
  101. package/fesm2015/ng-ipa-library.js.map +0 -1
  102. package/lib/core/components/loading/loading.component.d.ts +0 -12
  103. package/lib/core/interceptors/error.interceptor.d.ts +0 -14
  104. package/lib/core/interceptors/loading.interceptor.d.ts +0 -14
  105. package/lib/core/interceptors/token.interceptor.d.ts +0 -15
  106. package/lib/core/services/auth.service.d.ts +0 -15
  107. package/lib/core/services/error.service.d.ts +0 -10
  108. package/lib/core/services/loader.service.d.ts +0 -12
  109. package/lib/generate-form/generate-form.component.d.ts +0 -32
  110. package/lib/ipa-form/datepicker/datepicker.component.d.ts +0 -31
  111. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +0 -6
  112. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +0 -11
  113. package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +0 -11
  114. package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +0 -6
  115. package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +0 -31
  116. package/lib/ipa-form/file-upload/file-upload.component.d.ts +0 -36
  117. package/lib/ipa-form/ipa-form.service.d.ts +0 -49
  118. package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +0 -22
  119. package/lib/ipa-form/text-input/text-input.component.d.ts +0 -30
  120. package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +0 -29
  121. package/lib/models/apiResponse.d.ts +0 -4
  122. package/lib/models/breadcrumbs.model.d.ts +0 -4
  123. package/lib/models/decodedToken.model.d.ts +0 -6
  124. package/lib/models/exceptionUrl.model.d.ts +0 -4
  125. package/lib/models/generateForm.model.d.ts +0 -27
  126. package/lib/models/pagedResult.d.ts +0 -4
  127. package/lib/models/user.model.d.ts +0 -7
  128. package/lib/ng-ipa-library.module.d.ts +0 -25
  129. package/lib/pipes/hijri-date.pipe.d.ts +0 -7
  130. package/lib/pipes/pipes.module.d.ts +0 -7
  131. package/lib/services/breadcrumbs.service.d.ts +0 -18
  132. package/lib/services/common.service.d.ts +0 -8
  133. package/lib/share-button/share-button.component.d.ts +0 -11
  134. package/lib/share-button/share-button.module.d.ts +0 -13
  135. package/ng-ipa-library.d.ts +0 -5
@@ -1,76 +0,0 @@
1
- import { Component, Input, Self, ViewChild, } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../ipa-form.service";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/common";
7
- export class TextInputComponent {
8
- constructor(validationService, controlDir) {
9
- this.validationService = validationService;
10
- this.controlDir = controlDir;
11
- this.type = 'text';
12
- this.placeholder = 'please enter text';
13
- this.label = 'text input';
14
- this.required = false;
15
- this.patternErrorMsg = 'invalid pattern';
16
- this.pattern = '';
17
- this.formControl = new FormControl('');
18
- this.controlDir.valueAccessor = this;
19
- }
20
- ngOnInit() {
21
- const control = this.controlDir.control;
22
- const validators = (control === null || control === void 0 ? void 0 : control.validator) ? [control.validator] : [];
23
- control === null || control === void 0 ? void 0 : control.setValidators(validators);
24
- control === null || control === void 0 ? void 0 : control.updateValueAndValidity();
25
- this.formControl = control;
26
- }
27
- onChange(event) { }
28
- onTouched() { }
29
- writeValue(obj) {
30
- this.input.nativeElement.value = obj || '';
31
- }
32
- registerOnChange(fn) {
33
- this.onChange = fn;
34
- }
35
- registerOnTouched(fn) {
36
- this.onTouched = fn;
37
- }
38
- get errorMessage() {
39
- this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg);
40
- return this.errorMsg;
41
- }
42
- }
43
- TextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
44
- 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.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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.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"] }] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextInputComponent, decorators: [{
46
- type: Component,
47
- args: [{
48
- selector: 'ipa-text-input',
49
- templateUrl: './text-input.component.html',
50
- styleUrls: ['./text-input.component.scss'],
51
- }]
52
- }], ctorParameters: function () { return [{ type: i1.IPAFormService }, { type: i2.NgControl, decorators: [{
53
- type: Self
54
- }] }]; }, propDecorators: { input: [{
55
- type: ViewChild,
56
- args: ['input', { static: true }]
57
- }], id: [{
58
- type: Input
59
- }], type: [{
60
- type: Input
61
- }], placeholder: [{
62
- type: Input
63
- }], label: [{
64
- type: Input
65
- }], required: [{
66
- type: Input
67
- }], patternErrorMsg: [{
68
- type: Input
69
- }], pattern: [{
70
- type: Input
71
- }], classes: [{
72
- type: Input
73
- }], containerClasses: [{
74
- type: Input
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFReEQsTUFBTSxPQUFPLGtCQUFrQjtJQWM3QixZQUNVLGlCQUFpQyxFQUMxQixVQUFxQjtRQUQ1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFiN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsVUFBSyxHQUFXLFlBQVksQ0FBQztRQUM3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDcEMsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUd0QixnQkFBVyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU83QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQXNCLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7OytHQW5EVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0WENoQi9CLHV6QkFTTTsyRkRPTyxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzswQkFpQkksSUFBSTs0Q0FmK0IsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMzQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJUEFGb3JtU2VydmljZSB9IGZyb20gJy4uL2lwYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtdGV4dC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdwbGVhc2UgZW50ZXIgdGV4dCc7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICd0ZXh0IGlucHV0JztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBhdHRlcm5FcnJvck1zZyA9ICdpbnZhbGlkIHBhdHRlcm4nO1xyXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnJztcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuXHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvblRvdWNoZWQoKTogdm9pZCB7fVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG9iaiB8fCAnJztcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8aW5wdXQgI2lucHV0IGlkPVwie3tpZH19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbdHlwZV09XCJ0eXBlXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgcGF0dGVybj1cInt7cGF0dGVybn19XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIChpbnB1dCk9XCJvbkNoYW5nZShjb250cm9sRGlyLmNvbnRyb2w/LnZhbHVlKVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiPlxyXG4gICAgPGxhYmVsIGZvcj1cInt7aWR9fVwiPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,73 +0,0 @@
1
- import { Component, ElementRef, Input, Self, ViewChild, } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../ipa-form.service";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/common";
7
- export class TextareaInputComponent {
8
- constructor(validationService, controlDir) {
9
- this.validationService = validationService;
10
- this.controlDir = controlDir;
11
- this.input = new ElementRef(null);
12
- this.placeholder = 'please enter text';
13
- this.label = 'textarea input';
14
- this.required = false;
15
- this.patternErrorMsg = 'invalid pattern';
16
- this.formControl = new FormControl('');
17
- this.controlDir.valueAccessor = this;
18
- }
19
- ngOnInit() {
20
- const control = this.controlDir.control;
21
- const validators = (control === null || control === void 0 ? void 0 : control.validator) ? [control.validator] : [];
22
- control === null || control === void 0 ? void 0 : control.setValidators(validators);
23
- control === null || control === void 0 ? void 0 : control.updateValueAndValidity();
24
- this.formControl = control;
25
- }
26
- onChange(event) { }
27
- onTouched() { }
28
- writeValue(obj) {
29
- this.input.nativeElement.value = obj || '';
30
- }
31
- registerOnChange(fn) {
32
- this.onChange = fn;
33
- }
34
- registerOnTouched(fn) {
35
- this.onTouched = fn;
36
- }
37
- get errorMessage() {
38
- this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg);
39
- return this.errorMsg;
40
- }
41
- }
42
- TextareaInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextareaInputComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component });
43
- 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.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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.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"] }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: TextareaInputComponent, decorators: [{
45
- type: Component,
46
- args: [{
47
- selector: 'ipa-textarea-input',
48
- templateUrl: './textarea-input.component.html',
49
- styleUrls: ['./textarea-input.component.scss'],
50
- }]
51
- }], ctorParameters: function () { return [{ type: i1.IPAFormService }, { type: i2.NgControl, decorators: [{
52
- type: Self
53
- }] }]; }, propDecorators: { input: [{
54
- type: ViewChild,
55
- args: ['input', { static: true }]
56
- }], id: [{
57
- type: Input
58
- }], placeholder: [{
59
- type: Input
60
- }], label: [{
61
- type: Input
62
- }], required: [{
63
- type: Input
64
- }], patternErrorMsg: [{
65
- type: Input
66
- }], pattern: [{
67
- type: Input
68
- }], classes: [{
69
- type: Input
70
- }], containerClasses: [{
71
- type: Input
72
- }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFReEQsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLGlCQUFpQyxFQUMxQixVQUFxQjtRQUQ1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFmQSxVQUFLLEdBQ3pDLElBQUksVUFBVSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsVUFBSyxHQUFXLGdCQUFnQixDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUk3QyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU83QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQXNCLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O21IQW5EVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixrWENoQm5DLDZ6QkFVTTsyRkRNTyxzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DOzswQkFpQkksSUFBSTs0Q0FmK0IsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS10ZXh0YXJlYS1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dDogRWxlbWVudFJlZjxhbnk+ID1cclxuICAgIG5ldyBFbGVtZW50UmVmPGFueT4obnVsbCk7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAncGxlYXNlIGVudGVyIHRleHQnO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAndGV4dGFyZWEgaW5wdXQnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGF0dGVybkVycm9yTXNnID0gJ2ludmFsaWQgcGF0dGVybic7XHJcbiAgQElucHV0KCkgcGF0dGVybiE6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuXHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvblRvdWNoZWQoKTogdm9pZCB7fVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG9iaiB8fCAnJztcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8dGV4dGFyZWEgI2lucHV0IGlkPVwie3tpZH19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBwYXR0ZXJuPVwie3twYXR0ZXJufX1cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgKGlucHV0KT1cIm9uQ2hhbmdlKGNvbnRyb2xEaXIuY29udHJvbD8udmFsdWUpXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkIGlzLWludmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkpICYmIGVycm9yTXNnLCdpcy12YWxpZCBpcy12YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCI+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPGxhYmVsIGZvcj1cInt7aWR9fVwiPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9tb2RlbHMvYXBpRXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gXCIuL2FwaVJlc3BvbnNlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwaUV4Y2VwdGlvbiBleHRlbmRzIEFwaVJlc3BvbnNlIHtcclxuICAgIGlubmVyRXhjZXB0aW9uOiBzdHJpbmc7XHJcbiAgICBzdGFja1RyYWNlOiBzdHJpbmc7XHJcbn0iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL21vZGVscy9hcGlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZSB7XHJcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL21vZGVscy9icmVhZGNydW1icy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1icyB7XHJcbiAgbm9kZU5hbWU6IHN0cmluZztcclxuICBub2RlVXJsOiBzdHJpbmcgfCBudWxsO1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlZFRva2VuLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9tb2RlbHMvZGVjb2RlZFRva2VuLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERlY29kZWRUb2tlbiB7XHJcbiAgbmFtZWlkPzogc3RyaW5nO1xyXG4gIGdpdmVuX25hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgZXhwPzogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uVXJsLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9tb2RlbHMvZXhjZXB0aW9uVXJsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEV4Y2VwdGlvblVybCB7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIG1ldGhvZDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVGb3JtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlRm9ybSB7XHJcbiAgY29sdW1uczogQ29sdW1uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uIHtcclxuICBhcmFiaWNMYWJlbDogc3RyaW5nO1xyXG4gIGVuZ2xpc2hOYW1lOiBzdHJpbmc7XHJcbiAgdmFsaWRhdGlvblBhdHRlcm4/OiBzdHJpbmc7XHJcbiAgaW5wdXRDbGFzc2VzPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lckNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICB0ZXh0RmllbGQ/OiBzdHJpbmc7XHJcbiAgcGF0dGVybkVycm9yTXNnPzogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBzaXplPzogbnVtYmVyO1xyXG4gIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIGRhdGE/OiBEYXRhW10gfCBhbnlbXTtcclxuICBhY2NlcHRlZEZpbGVzPzogc3RyaW5nO1xyXG4gIG11bHRpcGxlRmlsZT86IG51bWJlcjtcclxuICBhcGlVcmw/OiBzdHJpbmc7XHJcbiAgYXV0b1VwbG9hZEZpbGU/OiBib29sZWFuO1xyXG4gIGFwaVVSbE1ldGhvZD86IHN0cmluZztcclxuICBhdXRob3JpemF0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGEge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZWRSZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL21vZGVscy9wYWdlZFJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYWdlZFJlc3VsdDxUPiB7XHJcbiAgZGF0YTogVFtdO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvbW9kZWxzL3VzZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBlbWFpbDogc3RyaW5nO1xyXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgdG9rZW46IHN0cmluZztcclxuICBpbWFnZVVybDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,109 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { ToastrModule } from 'ngx-toastr';
5
- import { DropzoneModule } from 'ngx-dropzone-wrapper';
6
- import { NgxCaptchaModule } from 'ngx-captcha';
7
- import { PipesModule } from './pipes/pipes.module';
8
- import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
9
- import { NgSelectModule } from '@ng-select/ng-select';
10
- import { TextInputComponent } from './ipa-form/text-input/text-input.component';
11
- import { TextareaInputComponent } from './ipa-form/textarea-input/textarea-input.component';
12
- import { DropdownInputComponent } from './ipa-form/dropdown-input/dropdown-input.component';
13
- import { LoaderComponent } from './core/components/loading/loading.component';
14
- import { GenerateFormComponent } from './generate-form/generate-form.component';
15
- import { FileUploadComponent } from './ipa-form/file-upload/file-upload.component';
16
- import { DatepickerComponent } from './ipa-form/datepicker/datepicker.component';
17
- import { HijriDatepickerComponent } from './ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';
18
- import { GregorianDatepickerComponent } from './ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';
19
- import { ShareButtonModule } from './share-button/share-button.module';
20
- import { RecaptchaComponent } from './ipa-form/recaptcha/recaptcha.component';
21
- import * as i0 from "@angular/core";
22
- export class NgIPALibraryModule {
23
- }
24
- NgIPALibraryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- NgIPALibraryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, declarations: [TextInputComponent,
26
- TextareaInputComponent,
27
- DropdownInputComponent,
28
- LoaderComponent,
29
- GenerateFormComponent,
30
- FileUploadComponent,
31
- DatepickerComponent,
32
- HijriDatepickerComponent,
33
- GregorianDatepickerComponent,
34
- RecaptchaComponent], imports: [CommonModule,
35
- FormsModule,
36
- ReactiveFormsModule,
37
- ToastrModule,
38
- DropzoneModule,
39
- NgxCaptchaModule,
40
- PipesModule,
41
- NgbDatepickerModule,
42
- ShareButtonModule,
43
- NgSelectModule], exports: [TextInputComponent,
44
- TextareaInputComponent,
45
- DropdownInputComponent,
46
- LoaderComponent,
47
- GenerateFormComponent,
48
- FileUploadComponent,
49
- PipesModule,
50
- HijriDatepickerComponent,
51
- GregorianDatepickerComponent,
52
- ShareButtonModule,
53
- RecaptchaComponent] });
54
- NgIPALibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, imports: [[
55
- CommonModule,
56
- FormsModule,
57
- ReactiveFormsModule,
58
- ToastrModule,
59
- DropzoneModule,
60
- NgxCaptchaModule,
61
- PipesModule,
62
- NgbDatepickerModule,
63
- ShareButtonModule,
64
- NgSelectModule,
65
- ], PipesModule,
66
- ShareButtonModule] });
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: NgIPALibraryModule, decorators: [{
68
- type: NgModule,
69
- args: [{
70
- declarations: [
71
- TextInputComponent,
72
- TextareaInputComponent,
73
- DropdownInputComponent,
74
- LoaderComponent,
75
- GenerateFormComponent,
76
- FileUploadComponent,
77
- DatepickerComponent,
78
- HijriDatepickerComponent,
79
- GregorianDatepickerComponent,
80
- RecaptchaComponent,
81
- ],
82
- imports: [
83
- CommonModule,
84
- FormsModule,
85
- ReactiveFormsModule,
86
- ToastrModule,
87
- DropzoneModule,
88
- NgxCaptchaModule,
89
- PipesModule,
90
- NgbDatepickerModule,
91
- ShareButtonModule,
92
- NgSelectModule,
93
- ],
94
- exports: [
95
- TextInputComponent,
96
- TextareaInputComponent,
97
- DropdownInputComponent,
98
- LoaderComponent,
99
- GenerateFormComponent,
100
- FileUploadComponent,
101
- PipesModule,
102
- HijriDatepickerComponent,
103
- GregorianDatepickerComponent,
104
- ShareButtonModule,
105
- RecaptchaComponent,
106
- ],
107
- }]
108
- }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaXBhLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9uZy1pcGEtbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUF5QzlFLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFyQzNCLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsNEJBQTRCO1FBQzVCLGtCQUFrQixhQUdsQixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osY0FBYztRQUNkLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixjQUFjLGFBR2Qsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLHdCQUF3QjtRQUN4Qiw0QkFBNEI7UUFDNUIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtnSEFHVCxrQkFBa0IsWUExQnBCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsY0FBYztTQUNmLEVBUUMsV0FBVztRQUdYLGlCQUFpQjsyRkFJUixrQkFBa0I7a0JBdkM5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IERyb3B6b25lTW9kdWxlIH0gZnJvbSAnbmd4LWRyb3B6b25lLXdyYXBwZXInO1xyXG5pbXBvcnQgeyBOZ3hDYXB0Y2hhTW9kdWxlIH0gZnJvbSAnbmd4LWNhcHRjaGEnO1xyXG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHsgTmdiRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pcGEtZm9ybS90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pcGEtZm9ybS9kcm9wZG93bi1pbnB1dC9kcm9wZG93bi1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuZXJhdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9nZW5lcmF0ZS1mb3JtL2dlbmVyYXRlLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vaXBhLWZvcm0vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhpanJpRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vaXBhLWZvcm0vZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JlZ29yaWFuRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vaXBhLWZvcm0vZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaGFyZUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4vc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBSZWNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL2lwYS1mb3JtL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25JbnB1dENvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIEdlbmVyYXRlRm9ybUNvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgSGlqcmlEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgR3JlZ29yaWFuRGF0ZXBpY2tlckNvbXBvbmVudCxcclxuICAgIFJlY2FwdGNoYUNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRvYXN0ck1vZHVsZSxcclxuICAgIERyb3B6b25lTW9kdWxlLFxyXG4gICAgTmd4Q2FwdGNoYU1vZHVsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIFNoYXJlQnV0dG9uTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25JbnB1dENvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIEdlbmVyYXRlRm9ybUNvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIEhpanJpRGF0ZXBpY2tlckNvbXBvbmVudCxcclxuICAgIEdyZWdvcmlhbkRhdGVwaWNrZXJDb21wb25lbnQsXHJcbiAgICBTaGFyZUJ1dHRvbk1vZHVsZSxcclxuICAgIFJlY2FwdGNoYUNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdJUEFMaWJyYXJ5TW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import momentHijri from 'moment-hijri';
3
- import * as i0 from "@angular/core";
4
- export class HijriDatePipe {
5
- transform(date, format = 'iYYYY-iMM-iDD', lang = 'en') {
6
- momentHijri.locale(lang);
7
- return momentHijri(date).format(format);
8
- }
9
- }
10
- HijriDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
- HijriDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, name: "hijriDate" });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: HijriDatePipe, decorators: [{
13
- type: Pipe,
14
- args: [{
15
- name: 'hijriDate',
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9waXBlcy9oaWpyaS1kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDOztBQUl2QyxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQ1AsSUFBWSxFQUNaLFNBQWlCLGVBQWUsRUFDaEMsT0FBb0IsSUFBSTtRQUV4QixXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDOzswR0FSVSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnRIaWpyaSBmcm9tICdtb21lbnQtaGlqcmknO1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2hpanJpRGF0ZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWpyaURhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgZGF0ZTogc3RyaW5nLFxyXG4gICAgZm9ybWF0OiBzdHJpbmcgPSAnaVlZWVktaU1NLWlERCcsXHJcbiAgICBsYW5nOiAnYXInIHwgJ2VuJyA9ICdlbidcclxuICApOiBzdHJpbmcge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKGxhbmcpO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKGRhdGUpLmZvcm1hdChmb3JtYXQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { HijriDatePipe } from './hijri-date.pipe';
3
- import * as i0 from "@angular/core";
4
- export class PipesModule {
5
- }
6
- PipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- PipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, declarations: [HijriDatePipe], exports: [HijriDatePipe] });
8
- PipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: PipesModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- declarations: [HijriDatePipe],
13
- exports: [HijriDatePipe],
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTWxELE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBSFAsYUFBYSxhQUNsQixhQUFhO3lHQUVaLFdBQVc7MkZBQVgsV0FBVztrQkFKdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIaWpyaURhdGVQaXBlIH0gZnJvbSAnLi9oaWpyaS1kYXRlLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtIaWpyaURhdGVQaXBlXSxcclxuICBleHBvcnRzOiBbSGlqcmlEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaXBlc01vZHVsZSB7fVxyXG4iXX0=
@@ -1,151 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BreadcrumbsService {
4
- constructor() { }
5
- setPageTitle(text) {
6
- const titleEl = document.querySelector('.sub-section-title');
7
- if (titleEl) {
8
- titleEl.textContent = text;
9
- }
10
- }
11
- setMainPageTitle(text, url) {
12
- const div = document.getElementsByClassName('main-section-title');
13
- if (div && div.length > 0) {
14
- div[0].innerHTML = `<a id="site-url" href="${url}">${text}</a>`;
15
- }
16
- }
17
- addBreadcrumb(nodeName, spanClasses = 'bc-current', linkClasses = 'bc-node') {
18
- var _a;
19
- const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
20
- //get last child
21
- const lastIndex = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
22
- const innerHTML = lastIndex.innerHTML;
23
- lastIndex.innerHTML = '';
24
- lastIndex.classList.remove(...['bc-current']);
25
- //add new link
26
- lastIndex.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
27
- //add new span and empty span
28
- const newSpan = this.createSpan(nodeName, spanClasses);
29
- const emptySpan = document.createElement('span');
30
- lastIndex.after(...[emptySpan, newSpan]);
31
- }
32
- addBreadcrumbList(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
33
- var _a;
34
- const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.childNodes;
35
- //get last child
36
- const lastSpan = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
37
- const innerHTML = lastSpan.innerHTML;
38
- lastSpan.classList.remove(...[spanClasses]);
39
- lastSpan.innerHTML = '';
40
- //add new link
41
- lastSpan.appendChild(this.createLink(innerHTML, location.pathname, linkClasses));
42
- for (let i = 0; i < nodeList.length; i++) {
43
- const lastIndex = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
44
- if (nodeList[i].nodeUrl) {
45
- const newSpan = document.createElement('span');
46
- newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
47
- const emptySpan = document.createElement('span');
48
- lastIndex.after(...[emptySpan, newSpan]);
49
- }
50
- else {
51
- const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
52
- const emptySpan = document.createElement('span');
53
- lastIndex.after(...[emptySpan, newSpan]);
54
- }
55
- }
56
- }
57
- createBreadcrumbs(nodeList, spanClasses = 'bc-current', linkClasses = 'bc-node') {
58
- const currentSpan = document.getElementById('ctl00_path');
59
- currentSpan.innerHTML = '';
60
- const newSpan = document.createElement('span');
61
- currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.appendChild(newSpan);
62
- newSpan.appendChild(this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses));
63
- const spans = currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.children;
64
- for (let i = 1; i < nodeList.length; i++) {
65
- const lastIndex = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
66
- if (nodeList[i].nodeUrl) {
67
- const newSpan = document.createElement('span');
68
- newSpan.appendChild(this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses));
69
- const emptySpan = document.createElement('span');
70
- lastIndex === null || lastIndex === void 0 ? void 0 : lastIndex.after(...[emptySpan, newSpan]);
71
- }
72
- else {
73
- const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);
74
- const emptySpan = document.createElement('span');
75
- lastIndex.after(...[emptySpan, newSpan]);
76
- }
77
- }
78
- }
79
- removeLastBreadcrumb() {
80
- var _a, _b, _c;
81
- const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
82
- (_b = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1)) === null || _b === void 0 ? void 0 : _b.remove();
83
- (_c = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1)) === null || _c === void 0 ? void 0 : _c.remove();
84
- this.setCurrentNode(spans);
85
- }
86
- removeBreadcrumbByNodeName(nodeName) {
87
- var _a, _b, _c, _d, _e, _f;
88
- const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
89
- let index = -1;
90
- for (let i = 0; i < spans.length; i++) {
91
- const span = spans.item(i);
92
- if (((_b = span === null || span === void 0 ? void 0 : span.textContent) === null || _b === void 0 ? void 0 : _b.trim()) === nodeName) {
93
- index = i;
94
- break;
95
- }
96
- }
97
- const lastNode = spans.length - 1 === index;
98
- if (index !== -1 && !lastNode) {
99
- (_c = spans === null || spans === void 0 ? void 0 : spans.item(index)) === null || _c === void 0 ? void 0 : _c.remove();
100
- (_d = spans === null || spans === void 0 ? void 0 : spans.item(index)) === null || _d === void 0 ? void 0 : _d.remove();
101
- }
102
- else {
103
- (_e = spans === null || spans === void 0 ? void 0 : spans.item(index)) === null || _e === void 0 ? void 0 : _e.remove();
104
- (_f = spans === null || spans === void 0 ? void 0 : spans.item(index - 1)) === null || _f === void 0 ? void 0 : _f.remove();
105
- }
106
- if (lastNode) {
107
- this.setCurrentNode(spans);
108
- }
109
- }
110
- removeLastBreadcrumbsByLength(length) {
111
- var _a, _b, _c;
112
- const spans = (_a = document.getElementById('ctl00_path')) === null || _a === void 0 ? void 0 : _a.children;
113
- while (length > 0) {
114
- (_b = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1)) === null || _b === void 0 ? void 0 : _b.remove();
115
- (_c = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1)) === null || _c === void 0 ? void 0 : _c.remove();
116
- length--;
117
- }
118
- if (spans.length > 0) {
119
- this.setCurrentNode(spans);
120
- }
121
- }
122
- createLink(innerHTML, href, classes) {
123
- const link = document.createElement('a');
124
- link.innerHTML = ' ' + innerHTML;
125
- link.href = href !== null && href !== void 0 ? href : '';
126
- link.classList.add(...[classes]);
127
- return link;
128
- }
129
- createSpan(innerHTML, classes) {
130
- const span = document.createElement('span');
131
- span.classList.add(...[classes]);
132
- span.innerHTML = ' ' + innerHTML;
133
- return span;
134
- }
135
- setCurrentNode(spans) {
136
- var _a;
137
- const lastSpan = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1);
138
- const lastSpanLink = (_a = spans === null || spans === void 0 ? void 0 : spans.item(spans.length - 1)) === null || _a === void 0 ? void 0 : _a.children.item(0);
139
- lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.classList.add(...['bc-current']);
140
- lastSpan.innerHTML = lastSpanLink.innerHTML;
141
- }
142
- }
143
- BreadcrumbsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
144
- BreadcrumbsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, providedIn: 'root' });
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: BreadcrumbsService, decorators: [{
146
- type: Injectable,
147
- args: [{
148
- providedIn: 'root',
149
- }]
150
- }], ctorParameters: function () { return []; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDeEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRywwQkFBMEIsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FDWCxRQUFnQixFQUNoQixXQUFXLEdBQUcsWUFBWSxFQUMxQixXQUFXLEdBQUcsU0FBUzs7UUFFdkIsTUFBTSxLQUFLLEdBQUcsTUFBQSxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQywwQ0FBRSxRQUFRLENBQUM7UUFDOUQsZ0JBQWdCO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQW9CLENBQUM7UUFDbkUsTUFBTSxT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Q0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBb0IsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLDBDQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUMxQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMzQyxRQUFRLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDOUMsQ0FBQzs7K0dBckxVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYnMgfSBmcm9tICcuLi9tb2RlbHMvYnJlYWRjcnVtYnMubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBzZXRQYWdlVGl0bGUodGV4dDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0aXRsZUVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN1Yi1zZWN0aW9uLXRpdGxlJyk7XHJcbiAgICBpZiAodGl0bGVFbCkge1xyXG4gICAgICB0aXRsZUVsLnRleHRDb250ZW50ID0gdGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1haW5QYWdlVGl0bGUodGV4dDogc3RyaW5nLCB1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWFpbi1zZWN0aW9uLXRpdGxlJyk7XHJcbiAgICBpZiAoZGl2ICYmIGRpdi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRpdlswXS5pbm5lckhUTUwgPSBgPGEgaWQ9XCJzaXRlLXVybFwiIGhyZWY9XCIke3VybH1cIj4ke3RleHR9PC9hPmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRCcmVhZGNydW1iKFxyXG4gICAgbm9kZU5hbWU6IHN0cmluZyxcclxuICAgIHNwYW5DbGFzc2VzID0gJ2JjLWN1cnJlbnQnLFxyXG4gICAgbGlua0NsYXNzZXMgPSAnYmMtbm9kZSdcclxuICApIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGRyZW47XHJcbiAgICAvL2dldCBsYXN0IGNoaWxkXHJcbiAgICBjb25zdCBsYXN0SW5kZXggPSBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBjb25zdCBpbm5lckhUTUwgPSBsYXN0SW5kZXguaW5uZXJIVE1MO1xyXG4gICAgbGFzdEluZGV4LmlubmVySFRNTCA9ICcnO1xyXG4gICAgbGFzdEluZGV4LmNsYXNzTGlzdC5yZW1vdmUoLi4uWydiYy1jdXJyZW50J10pO1xyXG4gICAgLy9hZGQgbmV3IGxpbmtcclxuICAgIGxhc3RJbmRleC5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKGlubmVySFRNTCwgbG9jYXRpb24ucGF0aG5hbWUsIGxpbmtDbGFzc2VzKVxyXG4gICAgKTtcclxuICAgIC8vYWRkIG5ldyBzcGFuIGFuZCBlbXB0eSBzcGFuXHJcbiAgICBjb25zdCBuZXdTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG5vZGVOYW1lLCBzcGFuQ2xhc3Nlcyk7XHJcbiAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQnJlYWRjcnVtYkxpc3QoXHJcbiAgICBub2RlTGlzdDogQnJlYWRjcnVtYnNbXSxcclxuICAgIHNwYW5DbGFzc2VzID0gJ2JjLWN1cnJlbnQnLFxyXG4gICAgbGlua0NsYXNzZXMgPSAnYmMtbm9kZSdcclxuICApIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGROb2RlcztcclxuICAgIC8vZ2V0IGxhc3QgY2hpbGRcclxuICAgIGNvbnN0IGxhc3RTcGFuID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY29uc3QgaW5uZXJIVE1MID0gbGFzdFNwYW4uaW5uZXJIVE1MO1xyXG4gICAgbGFzdFNwYW4uY2xhc3NMaXN0LnJlbW92ZSguLi5bc3BhbkNsYXNzZXNdKTtcclxuICAgIGxhc3RTcGFuLmlubmVySFRNTCA9ICcnO1xyXG4gICAgLy9hZGQgbmV3IGxpbmtcclxuICAgIGxhc3RTcGFuLmFwcGVuZENoaWxkKFxyXG4gICAgICB0aGlzLmNyZWF0ZUxpbmsoaW5uZXJIVE1MLCBsb2NhdGlvbi5wYXRobmFtZSwgbGlua0NsYXNzZXMpXHJcbiAgICApO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgICBpZiAobm9kZUxpc3RbaV0ubm9kZVVybCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTGluayhcclxuICAgICAgICAgICAgbm9kZUxpc3RbaV0ubm9kZU5hbWUsXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVVcmwsXHJcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4LmFmdGVyKC4uLltlbXB0eVNwYW4sIG5ld1NwYW5dKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBuZXdTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG5vZGVMaXN0W2ldLm5vZGVOYW1lLCBzcGFuQ2xhc3Nlcyk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhc3RJbmRleC5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZUJyZWFkY3J1bWJzKFxyXG4gICAgbm9kZUxpc3Q6IEJyZWFkY3J1bWJzW10sXHJcbiAgICBzcGFuQ2xhc3NlcyA9ICdiYy1jdXJyZW50JyxcclxuICAgIGxpbmtDbGFzc2VzID0gJ2JjLW5vZGUnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjdXJyZW50U3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAnY3RsMDBfcGF0aCdcclxuICAgICkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgY3VycmVudFNwYW4uaW5uZXJIVE1MID0gJyc7XHJcbiAgICBjb25zdCBuZXdTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgY3VycmVudFNwYW4/LmFwcGVuZENoaWxkKG5ld1NwYW4pO1xyXG4gICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgdGhpcy5jcmVhdGVMaW5rKG5vZGVMaXN0WzBdLm5vZGVOYW1lLCBub2RlTGlzdFswXS5ub2RlVXJsLCBsaW5rQ2xhc3NlcylcclxuICAgICk7XHJcbiAgICBjb25zdCBzcGFucyA9IGN1cnJlbnRTcGFuPy5jaGlsZHJlbjtcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgbGFzdEluZGV4ID0gc3BhbnM/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSkgYXMgSFRNTFNwYW5FbGVtZW50O1xyXG4gICAgICBpZiAobm9kZUxpc3RbaV0ubm9kZVVybCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1NwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbmV3U3Bhbi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTGluayhcclxuICAgICAgICAgICAgbm9kZUxpc3RbaV0ubm9kZU5hbWUsXHJcbiAgICAgICAgICAgIG5vZGVMaXN0W2ldLm5vZGVVcmwsXHJcbiAgICAgICAgICAgIGxpbmtDbGFzc2VzXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBlbXB0eVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgbGFzdEluZGV4Py5hZnRlciguLi5bZW1wdHlTcGFuLCBuZXdTcGFuXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3BhbiA9IHRoaXMuY3JlYXRlU3Bhbihub2RlTGlzdFtpXS5ub2RlTmFtZSwgc3BhbkNsYXNzZXMpO1xyXG4gICAgICAgIGNvbnN0IGVtcHR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBsYXN0SW5kZXguYWZ0ZXIoLi4uW2VtcHR5U3BhbiwgbmV3U3Bhbl0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVMYXN0QnJlYWRjcnVtYigpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKT8uY2hpbGRyZW47XHJcbiAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnROb2RlKHNwYW5zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJyZWFkY3J1bWJCeU5vZGVOYW1lKG5vZGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNwYW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0bDAwX3BhdGgnKVxyXG4gICAgICA/LmNoaWxkcmVuIGFzIEhUTUxDb2xsZWN0aW9uO1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHNwYW4gPSBzcGFucy5pdGVtKGkpO1xyXG4gICAgICBpZiAoc3Bhbj8udGV4dENvbnRlbnQ/LnRyaW0oKSA9PT0gbm9kZU5hbWUpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxhc3ROb2RlID0gc3BhbnMubGVuZ3RoIC0gMSA9PT0gaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggIT09IC0xICYmICFsYXN0Tm9kZSkge1xyXG4gICAgICBzcGFucz8uaXRlbShpbmRleCk/LnJlbW92ZSgpO1xyXG4gICAgICBzcGFucz8uaXRlbShpbmRleCk/LnJlbW92ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXgpPy5yZW1vdmUoKTtcclxuICAgICAgc3BhbnM/Lml0ZW0oaW5kZXggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAobGFzdE5vZGUpIHtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Tm9kZShzcGFucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVMYXN0QnJlYWRjcnVtYnNCeUxlbmd0aChsZW5ndGg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc3BhbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3RsMDBfcGF0aCcpXHJcbiAgICAgID8uY2hpbGRyZW4gYXMgSFRNTENvbGxlY3Rpb247XHJcbiAgICB3aGlsZSAobGVuZ3RoID4gMCkge1xyXG4gICAgICBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKT8ucmVtb3ZlKCk7XHJcbiAgICAgIHNwYW5zPy5pdGVtKHNwYW5zLmxlbmd0aCAtIDEpPy5yZW1vdmUoKTtcclxuICAgICAgbGVuZ3RoLS07XHJcbiAgICB9XHJcbiAgICBpZiAoc3BhbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNldEN1cnJlbnROb2RlKHNwYW5zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGluayhcclxuICAgIGlubmVySFRNTDogc3RyaW5nLFxyXG4gICAgaHJlZjogc3RyaW5nIHwgbnVsbCxcclxuICAgIGNsYXNzZXM6IHN0cmluZ1xyXG4gICk6IEhUTUxBbmNob3JFbGVtZW50IHtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmlubmVySFRNTCA9ICcgJyArIGlubmVySFRNTDtcclxuICAgIGxpbmsuaHJlZiA9IGhyZWYgPz8gJyc7XHJcbiAgICBsaW5rLmNsYXNzTGlzdC5hZGQoLi4uW2NsYXNzZXNdKTtcclxuICAgIHJldHVybiBsaW5rO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTcGFuKGlubmVySFRNTDogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmcpOiBIVE1MU3BhbkVsZW1lbnQge1xyXG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uY2xhc3NMaXN0LmFkZCguLi5bY2xhc3Nlc10pO1xyXG4gICAgc3Bhbi5pbm5lckhUTUwgPSAnICcgKyBpbm5lckhUTUw7XHJcbiAgICByZXR1cm4gc3BhbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudE5vZGUoc3BhbnM/OiBIVE1MQ29sbGVjdGlvbikge1xyXG4gICAgY29uc3QgbGFzdFNwYW4gPSBzcGFucz8uaXRlbShzcGFucy5sZW5ndGggLSAxKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XHJcbiAgICBjb25zdCBsYXN0U3BhbkxpbmsgPSBzcGFuc1xyXG4gICAgICA/Lml0ZW0oc3BhbnMubGVuZ3RoIC0gMSlcclxuICAgICAgPy5jaGlsZHJlbi5pdGVtKDApIGFzIEhUTUxBbmNob3JFbGVtZW50O1xyXG4gICAgbGFzdFNwYW4/LmNsYXNzTGlzdC5hZGQoLi4uWydiYy1jdXJyZW50J10pO1xyXG4gICAgbGFzdFNwYW4uaW5uZXJIVE1MID0gbGFzdFNwYW5MaW5rLmlubmVySFRNTDtcclxuICB9XHJcbn1cclxuIl19