@sbcore/ng-absolute-validator 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +257 -0
  2. package/esm2020/i18n/bn.mjs +68 -0
  3. package/esm2020/i18n/de.mjs +68 -0
  4. package/esm2020/i18n/en.mjs +68 -0
  5. package/esm2020/i18n/es.mjs +68 -0
  6. package/esm2020/i18n/fr.mjs +68 -0
  7. package/esm2020/i18n/hi.mjs +68 -0
  8. package/esm2020/i18n/ja.mjs +68 -0
  9. package/esm2020/i18n/pt.mjs +68 -0
  10. package/esm2020/i18n/ru.mjs +68 -0
  11. package/esm2020/i18n/zh.mjs +68 -0
  12. package/esm2020/lib/common.utils.mjs +49 -0
  13. package/esm2020/lib/config-interface.mjs +3 -0
  14. package/esm2020/lib/constant.mjs +87 -0
  15. package/esm2020/lib/directive/error-trigger/error-trigger-on.directive.mjs +35 -0
  16. package/esm2020/lib/directive/index.mjs +3 -0
  17. package/esm2020/lib/directive/native-element/native-element.directive.mjs +34 -0
  18. package/esm2020/lib/interface.mjs +14 -0
  19. package/esm2020/lib/ng-absolute-validator.component.mjs +194 -0
  20. package/esm2020/lib/ng-absolute-validator.module.mjs +125 -0
  21. package/esm2020/lib/ng-absolute-validator.service.mjs +67 -0
  22. package/esm2020/lib/rule/above/above.directive.mjs +45 -0
  23. package/esm2020/lib/rule/accepted/accepted.directive.mjs +44 -0
  24. package/esm2020/lib/rule/after/after.directive.mjs +46 -0
  25. package/esm2020/lib/rule/alpha/alpha.directive.mjs +41 -0
  26. package/esm2020/lib/rule/alpha_dash/alpha-dash.directive.mjs +41 -0
  27. package/esm2020/lib/rule/alpha_numeric/alpha-numeric.directive.mjs +41 -0
  28. package/esm2020/lib/rule/array/array.directive.mjs +41 -0
  29. package/esm2020/lib/rule/before/before.directive.mjs +46 -0
  30. package/esm2020/lib/rule/between/between.directive.mjs +46 -0
  31. package/esm2020/lib/rule/boolean/boolean.directive.mjs +41 -0
  32. package/esm2020/lib/rule/confirmed/confirmed.directive.mjs +64 -0
  33. package/esm2020/lib/rule/credit_card/credit-card.directive.mjs +43 -0
  34. package/esm2020/lib/rule/cvv/cvv.directive.mjs +41 -0
  35. package/esm2020/lib/rule/date/date.directive.mjs +46 -0
  36. package/esm2020/lib/rule/date_format/date-format.directive.mjs +46 -0
  37. package/esm2020/lib/rule/debit_card/debit-card.directive.mjs +43 -0
  38. package/esm2020/lib/rule/different/different.directive.mjs +63 -0
  39. package/esm2020/lib/rule/dimension/dimension.directive.mjs +49 -0
  40. package/esm2020/lib/rule/email/email.directive.mjs +41 -0
  41. package/esm2020/lib/rule/ends_with/ends-with.directive.mjs +45 -0
  42. package/esm2020/lib/rule/equals/equals.directive.mjs +45 -0
  43. package/esm2020/lib/rule/exists/exists.directive.mjs +49 -0
  44. package/esm2020/lib/rule/image/image.directive.mjs +41 -0
  45. package/esm2020/lib/rule/in/in.directive.mjs +45 -0
  46. package/esm2020/lib/rule/includes/includes.directive.mjs +45 -0
  47. package/esm2020/lib/rule/index.mjs +60 -0
  48. package/esm2020/lib/rule/integer/integer.directive.mjs +41 -0
  49. package/esm2020/lib/rule/ip/ip.directive.mjs +41 -0
  50. package/esm2020/lib/rule/ipv4/ipv4.directive.mjs +41 -0
  51. package/esm2020/lib/rule/ipv6/ipv6.directive.mjs +41 -0
  52. package/esm2020/lib/rule/json/json.directive.mjs +41 -0
  53. package/esm2020/lib/rule/max/max.directive.mjs +51 -0
  54. package/esm2020/lib/rule/mimes/mimes.directive.mjs +47 -0
  55. package/esm2020/lib/rule/min/min.directive.mjs +51 -0
  56. package/esm2020/lib/rule/not_equals/not-equals.directive.mjs +44 -0
  57. package/esm2020/lib/rule/not_in/not-in.directive.mjs +45 -0
  58. package/esm2020/lib/rule/not_regex/not-regex.directive.mjs +45 -0
  59. package/esm2020/lib/rule/number/number.directive.mjs +41 -0
  60. package/esm2020/lib/rule/phone_no/phone-no.directive.mjs +45 -0
  61. package/esm2020/lib/rule/range/range.directive.mjs +46 -0
  62. package/esm2020/lib/rule/regex/regex.directive.mjs +45 -0
  63. package/esm2020/lib/rule/required/required.directive.mjs +41 -0
  64. package/esm2020/lib/rule/required_if/required-if.directive.mjs +66 -0
  65. package/esm2020/lib/rule/required_unless/required-unless.directive.mjs +65 -0
  66. package/esm2020/lib/rule/required_with/required-with.directive.mjs +67 -0
  67. package/esm2020/lib/rule/required_with_all/required-with-all.directive.mjs +67 -0
  68. package/esm2020/lib/rule/required_without/required-without.directive.mjs +67 -0
  69. package/esm2020/lib/rule/required_without_all/required-without-all.directive.mjs +67 -0
  70. package/esm2020/lib/rule/rule.directive.mjs +35 -0
  71. package/esm2020/lib/rule/rule.module.mjs +141 -0
  72. package/esm2020/lib/rule/same/same.directive.mjs +62 -0
  73. package/esm2020/lib/rule/size/size.directive.mjs +44 -0
  74. package/esm2020/lib/rule/starts_with/starts-with.directive.mjs +45 -0
  75. package/esm2020/lib/rule/strength/strength.directive.mjs +47 -0
  76. package/esm2020/lib/rule/string/string.directive.mjs +41 -0
  77. package/esm2020/lib/rule/under/under.directive.mjs +44 -0
  78. package/esm2020/lib/rule/unique/unique.directive.mjs +48 -0
  79. package/esm2020/lib/rule/url/url.directive.mjs +41 -0
  80. package/esm2020/lib/rule/uuid/uuid.directive.mjs +41 -0
  81. package/esm2020/lib/rule/video/video.directive.mjs +41 -0
  82. package/esm2020/lib/services/http.request.service.mjs +20 -0
  83. package/esm2020/lib/services/messages-builder.service.mjs +46 -0
  84. package/esm2020/lib/services/reactive.validate.mjs +69 -0
  85. package/esm2020/lib/services/utils.service.mjs +476 -0
  86. package/esm2020/lib/services/validate-rule.service.mjs +103 -0
  87. package/esm2020/lib/transator.loader.mjs +38 -0
  88. package/esm2020/public-api.mjs +11 -0
  89. package/esm2020/sbcore-ng-absolute-validator.mjs +5 -0
  90. package/fesm2015/sbcore-ng-absolute-validator.mjs +4488 -0
  91. package/fesm2015/sbcore-ng-absolute-validator.mjs.map +1 -0
  92. package/fesm2020/sbcore-ng-absolute-validator.mjs +4480 -0
  93. package/fesm2020/sbcore-ng-absolute-validator.mjs.map +1 -0
  94. package/i18n/bn.d.ts +68 -0
  95. package/i18n/de.d.ts +68 -0
  96. package/i18n/en.d.ts +68 -0
  97. package/i18n/es.d.ts +68 -0
  98. package/i18n/fr.d.ts +68 -0
  99. package/i18n/hi.d.ts +68 -0
  100. package/i18n/ja.d.ts +68 -0
  101. package/i18n/pt.d.ts +68 -0
  102. package/i18n/ru.d.ts +68 -0
  103. package/i18n/zh.d.ts +68 -0
  104. package/index.d.ts +5 -0
  105. package/lib/directive/error-trigger/error-trigger-on.directive.d.ts +10 -0
  106. package/lib/directive/index.d.ts +2 -0
  107. package/lib/directive/native-element/native-element.directive.d.ts +12 -0
  108. package/lib/ng-absolute-validator.module.d.ts +20 -0
  109. package/lib/rule/above/above.directive.d.ts +20 -0
  110. package/lib/rule/accepted/accepted.directive.d.ts +20 -0
  111. package/lib/rule/after/after.directive.d.ts +20 -0
  112. package/lib/rule/alpha/alpha.directive.d.ts +19 -0
  113. package/lib/rule/alpha_dash/alpha-dash.directive.d.ts +19 -0
  114. package/lib/rule/alpha_numeric/alpha-numeric.directive.d.ts +19 -0
  115. package/lib/rule/array/array.directive.d.ts +19 -0
  116. package/lib/rule/before/before.directive.d.ts +20 -0
  117. package/lib/rule/between/between.directive.d.ts +20 -0
  118. package/lib/rule/boolean/boolean.directive.d.ts +19 -0
  119. package/lib/rule/confirmed/confirmed.directive.d.ts +24 -0
  120. package/lib/rule/credit_card/credit-card.directive.d.ts +19 -0
  121. package/lib/rule/cvv/cvv.directive.d.ts +19 -0
  122. package/lib/rule/date/date.directive.d.ts +20 -0
  123. package/lib/rule/date_format/date-format.directive.d.ts +20 -0
  124. package/lib/rule/debit_card/debit-card.directive.d.ts +19 -0
  125. package/lib/rule/different/different.directive.d.ts +24 -0
  126. package/lib/rule/dimension/dimension.directive.d.ts +21 -0
  127. package/lib/rule/email/email.directive.d.ts +19 -0
  128. package/lib/rule/ends_with/ends-with.directive.d.ts +20 -0
  129. package/lib/rule/equals/equals.directive.d.ts +20 -0
  130. package/lib/rule/exists/exists.directive.d.ts +21 -0
  131. package/lib/rule/image/image.directive.d.ts +19 -0
  132. package/lib/rule/in/in.directive.d.ts +20 -0
  133. package/lib/rule/includes/includes.directive.d.ts +20 -0
  134. package/lib/rule/index.d.ts +59 -0
  135. package/lib/rule/integer/integer.directive.d.ts +19 -0
  136. package/lib/rule/ip/ip.directive.d.ts +19 -0
  137. package/lib/rule/ipv4/ipv4.directive.d.ts +19 -0
  138. package/lib/rule/ipv6/ipv6.directive.d.ts +19 -0
  139. package/lib/rule/json/json.directive.d.ts +19 -0
  140. package/lib/rule/max/max.directive.d.ts +20 -0
  141. package/lib/rule/mimes/mimes.directive.d.ts +20 -0
  142. package/lib/rule/min/min.directive.d.ts +20 -0
  143. package/lib/rule/not_equals/not-equals.directive.d.ts +20 -0
  144. package/lib/rule/not_in/not-in.directive.d.ts +20 -0
  145. package/lib/rule/not_regex/not-regex.directive.d.ts +20 -0
  146. package/lib/rule/number/number.directive.d.ts +19 -0
  147. package/lib/rule/phone_no/phone-no.directive.d.ts +20 -0
  148. package/lib/rule/range/range.directive.d.ts +20 -0
  149. package/lib/rule/regex/regex.directive.d.ts +20 -0
  150. package/lib/rule/required/required.directive.d.ts +19 -0
  151. package/lib/rule/required_if/required-if.directive.d.ts +24 -0
  152. package/lib/rule/required_unless/required-unless.directive.d.ts +24 -0
  153. package/lib/rule/required_with/required-with.directive.d.ts +24 -0
  154. package/lib/rule/required_with_all/required-with-all.directive.d.ts +24 -0
  155. package/lib/rule/required_without/required-without.directive.d.ts +24 -0
  156. package/lib/rule/required_without_all/required-without-all.directive.d.ts +24 -0
  157. package/lib/rule/rule.module.d.ts +65 -0
  158. package/lib/rule/same/same.directive.d.ts +24 -0
  159. package/lib/rule/size/size.directive.d.ts +20 -0
  160. package/lib/rule/starts_with/starts-with.directive.d.ts +20 -0
  161. package/lib/rule/strength/strength.directive.d.ts +20 -0
  162. package/lib/rule/string/string.directive.d.ts +19 -0
  163. package/lib/rule/under/under.directive.d.ts +20 -0
  164. package/lib/rule/unique/unique.directive.d.ts +21 -0
  165. package/lib/rule/url/url.directive.d.ts +19 -0
  166. package/lib/rule/uuid/uuid.directive.d.ts +19 -0
  167. package/lib/rule/video/video.directive.d.ts +19 -0
  168. package/lib/services/reactive.validate.d.ts +21 -0
  169. package/lib/transator.loader.d.ts +10 -0
  170. package/package.json +66 -0
  171. package/public-api.d.ts +7 -0
@@ -0,0 +1,65 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { Subject, takeUntil, debounceTime } from 'rxjs';
4
+ import { toArray } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/messages-builder.service";
7
+ import * as i2 from "../../services/utils.service";
8
+ export class RequiredUnlessDirective {
9
+ constructor(mb, el, utl) {
10
+ this.mb = mb;
11
+ this.el = el;
12
+ this.utl = utl;
13
+ this.vmessage = {};
14
+ this.destroy$ = new Subject();
15
+ this.wired = false;
16
+ this.fieldName = 'field';
17
+ this.requiredUnless = [];
18
+ this.fieldName = this.el.nativeElement.name;
19
+ }
20
+ set message(data) {
21
+ this.vmessage = data;
22
+ }
23
+ validate(control) {
24
+ this.utl.setValidationRules(control, 'required_unless');
25
+ this.wireSiblingWatchers(control);
26
+ return this.isValid(control, this.requiredUnless);
27
+ }
28
+ isValid(control, args) {
29
+ if (!this.utl.requiredUnless(control, args)) {
30
+ return { 'required_unless': this.mb.call('required_unless', this.fieldName, ...toArray(args), this.vmessage) };
31
+ }
32
+ return null;
33
+ }
34
+ wireSiblingWatchers(control) {
35
+ if (this.wired)
36
+ return;
37
+ let [name, ...args] = toArray(this.requiredUnless);
38
+ let sibling = control.root.get(name);
39
+ if (!sibling)
40
+ return;
41
+ this.wired = true;
42
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
43
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
44
+ }
45
+ ngOnDestroy() {
46
+ this.destroy$.next();
47
+ this.destroy$.complete();
48
+ }
49
+ }
50
+ RequiredUnlessDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredUnlessDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
51
+ RequiredUnlessDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RequiredUnlessDirective, selector: "[requiredUnless]", inputs: { requiredUnless: "requiredUnless", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RequiredUnlessDirective, multi: true }], ngImport: i0 });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredUnlessDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: '[requiredUnless]',
56
+ providers: [{ provide: NG_VALIDATORS, useExisting: RequiredUnlessDirective, multi: true }]
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { requiredUnless: [{
59
+ type: Input,
60
+ args: ['requiredUnless']
61
+ }], message: [{
62
+ type: Input,
63
+ args: ['message']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtdW5sZXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvcmVxdWlyZWRfdW5sZXNzL3JlcXVpcmVkLXVubGVzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBNEQsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFhbkMsWUFDUyxFQUEwQixFQUMxQixFQUFnQixFQUNoQixHQUFpQjtRQUZqQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFkZixhQUFRLEdBQXVCLEVBQUUsQ0FBQTtRQUNqQyxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDakQsVUFBSyxHQUFpQixLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFhLE9BQU8sQ0FBQztRQUVoQixtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFVL0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDNDLElBQ0ksT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRixRQUFRLENBQUMsT0FBdUI7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVVLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQXVCO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDakg7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDbEQsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFBO1FBRW5ELElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNoRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztvSEEvQ1EsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNkdBRnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRWpGLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzdGOytKQVF5QixjQUFjO3NCQUF0QyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFFaEIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uL2NvbW1vbi51dGlscyc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tyZXF1aXJlZFVubGVzc10nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogUmVxdWlyZWRVbmxlc3NEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFVubGVzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25EZXN0cm95e1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkICA6IFN1YmplY3Q8dm9pZD4gID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgd2lyZWQgICAgIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdyZXF1aXJlZFVubGVzcycpIHJlcXVpcmVkVW5sZXNzIDogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTtcclxuICAgIEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcbiAgXHR2YWxpZGF0ZShjb250cm9sOkFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xyXG5cdFx0dGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsJ3JlcXVpcmVkX3VubGVzcycpO1xyXG4gICAgICAgIHRoaXMud2lyZVNpYmxpbmdXYXRjaGVycyhjb250cm9sKVxyXG5cdFx0cmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLHRoaXMucmVxdWlyZWRVbmxlc3MpXHJcblx0fVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGFyZ3M6IHN0cmluZyB8IHN0cmluZ1tdKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy51dGwucmVxdWlyZWRVbmxlc3MoY29udHJvbCwgYXJncykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3JlcXVpcmVkX3VubGVzcyc6IHRoaXMubWIuY2FsbCgncmVxdWlyZWRfdW5sZXNzJywgdGhpcy5maWVsZE5hbWUsIC4uLnRvQXJyYXkoYXJncyksIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLndpcmVkKSByZXR1cm47XHJcbiAgICAgICAgbGV0IFtuYW1lLCAuLi5hcmdzXSA9IHRvQXJyYXkodGhpcy5yZXF1aXJlZFVubGVzcylcclxuICAgICAgICBsZXQgc2libGluZyA9IGNvbnRyb2wucm9vdC5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2xcclxuXHJcbiAgICAgICAgaWYgKCFzaWJsaW5nKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy53aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHNpYmxpbmcudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,67 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { Subject, takeUntil, debounceTime } from 'rxjs';
4
+ import { toArray } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/messages-builder.service";
7
+ import * as i2 from "../../services/utils.service";
8
+ export class RequiredWithDirective {
9
+ constructor(mb, el, utl) {
10
+ this.mb = mb;
11
+ this.el = el;
12
+ this.utl = utl;
13
+ this.vmessage = {};
14
+ this.destroy$ = new Subject();
15
+ this.wired = false;
16
+ this.fieldName = 'field';
17
+ this.requiredWith = [];
18
+ this.fieldName = this.el.nativeElement.name;
19
+ }
20
+ set message(data) {
21
+ this.vmessage = data;
22
+ }
23
+ validate(control) {
24
+ this.utl.setValidationRules(control, 'required_with');
25
+ this.wireSiblingWatchers(control);
26
+ return this.isValid(control, this.requiredWith);
27
+ }
28
+ isValid(control, args) {
29
+ if (!this.utl.requiredWith(control, args)) {
30
+ return { 'required_with': this.mb.call('required_with', this.fieldName, ...toArray(args), this.vmessage) };
31
+ }
32
+ return null;
33
+ }
34
+ wireSiblingWatchers(control) {
35
+ if (this.wired)
36
+ return;
37
+ let names = toArray(this.requiredWith);
38
+ let siblings = names.map(name => control.root.get(name));
39
+ if (siblings.filter(Boolean).length !== names.length)
40
+ return;
41
+ this.wired = true;
42
+ siblings.forEach(sibling => {
43
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
44
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
45
+ });
46
+ }
47
+ ngOnDestroy() {
48
+ this.destroy$.next();
49
+ this.destroy$.complete();
50
+ }
51
+ }
52
+ RequiredWithDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
53
+ RequiredWithDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RequiredWithDirective, selector: "[requiredWith]", inputs: { requiredWith: "requiredWith", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithDirective, multi: true }], ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithDirective, decorators: [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: '[requiredWith]',
58
+ providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithDirective, multi: true }]
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { requiredWith: [{
61
+ type: Input,
62
+ args: ['requiredWith']
63
+ }], message: [{
64
+ type: Input,
65
+ args: ['message']
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtd2l0aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3JlcXVpcmVkX3dpdGgvcmVxdWlyZWQtd2l0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFhOUIsWUFDWSxFQUEyQixFQUMzQixFQUFnQixFQUNoQixHQUFpQjtRQUZqQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUMzQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFkckIsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELFVBQUssR0FBaUIsS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBYSxPQUFPLENBQUM7UUFFZixpQkFBWSxHQUF1QixFQUFFLENBQUM7UUFVekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQyxDQUFDO0lBVGpELElBQ0ksT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFTyxPQUFPLENBQUMsT0FBd0IsRUFBRSxJQUF1QjtRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDN0c7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN0QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDLENBQUE7UUFFdkUsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDN0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDakUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztrSEFqRFEscUJBQXFCO3NHQUFyQixxQkFBcUIsdUdBRm5CLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRS9FLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzNGOytKQVEwQixZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBRWpCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uL2NvbW1vbi51dGlscyc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tyZXF1aXJlZFdpdGhdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFJlcXVpcmVkV2l0aERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkV2l0aERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCAgOiBTdWJqZWN0PHZvaWQ+ICA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIHdpcmVkICAgICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nICA9ICdmaWVsZCc7XHJcblxyXG4gICAgQElucHV0KCdyZXF1aXJlZFdpdGgnKSByZXF1aXJlZFdpdGggOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdO1xyXG4gICAgQElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG1iICA6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGVsICA6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG4gICAgKSB7IHRoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWUgfVxyXG5cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICB0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwgJ3JlcXVpcmVkX3dpdGgnKTtcclxuICAgICAgICB0aGlzLndpcmVTaWJsaW5nV2F0Y2hlcnMoY29udHJvbClcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wsIHRoaXMucmVxdWlyZWRXaXRoKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGFyZ3M6IHN0cmluZyB8IHN0cmluZ1tdKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy51dGwucmVxdWlyZWRXaXRoKGNvbnRyb2wsIGFyZ3MpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdyZXF1aXJlZF93aXRoJzogdGhpcy5tYi5jYWxsKCdyZXF1aXJlZF93aXRoJywgdGhpcy5maWVsZE5hbWUsIC4uLnRvQXJyYXkoYXJncyksIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLndpcmVkKSByZXR1cm47XHJcbiAgICAgICAgbGV0IG5hbWVzID0gdG9BcnJheSh0aGlzLnJlcXVpcmVkV2l0aClcclxuICAgICAgICBsZXQgc2libGluZ3MgPSBuYW1lcy5tYXAobmFtZSA9PiBjb250cm9sLnJvb3QuZ2V0KG5hbWUpIGFzIEZvcm1Db250cm9sKVxyXG5cclxuICAgICAgICBpZiAoc2libGluZ3MuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCAhPT0gbmFtZXMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy53aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHNpYmxpbmdzLmZvckVhY2goc2libGluZyA9PiB7XHJcbiAgICAgICAgICAgIHNpYmxpbmcudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { Subject, takeUntil, debounceTime } from 'rxjs';
4
+ import { toArray } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/messages-builder.service";
7
+ import * as i2 from "../../services/utils.service";
8
+ export class RequiredWithAllDirective {
9
+ constructor(mb, el, utl) {
10
+ this.mb = mb;
11
+ this.el = el;
12
+ this.utl = utl;
13
+ this.vmessage = {};
14
+ this.destroy$ = new Subject();
15
+ this.wired = false;
16
+ this.fieldName = 'field';
17
+ this.requiredWithAll = [];
18
+ this.fieldName = this.el.nativeElement.name;
19
+ }
20
+ set message(data) {
21
+ this.vmessage = data;
22
+ }
23
+ validate(control) {
24
+ this.utl.setValidationRules(control, 'required_with_all');
25
+ this.wireSiblingWatchers(control);
26
+ return this.isValid(control, this.requiredWithAll);
27
+ }
28
+ isValid(control, args) {
29
+ if (!this.utl.requiredWithAll(control, args)) {
30
+ return { 'required_with_all': this.mb.call('required_with_all', this.fieldName, ...toArray(args), this.vmessage) };
31
+ }
32
+ return null;
33
+ }
34
+ wireSiblingWatchers(control) {
35
+ if (this.wired)
36
+ return;
37
+ let names = toArray(this.requiredWithAll);
38
+ let siblings = names.map(name => control.root.get(name));
39
+ if (siblings.filter(Boolean).length !== names.length)
40
+ return;
41
+ this.wired = true;
42
+ siblings.forEach(sibling => {
43
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
44
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
45
+ });
46
+ }
47
+ ngOnDestroy() {
48
+ this.destroy$.next();
49
+ this.destroy$.complete();
50
+ }
51
+ }
52
+ RequiredWithAllDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithAllDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
53
+ RequiredWithAllDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RequiredWithAllDirective, selector: "[requiredWithAll]", inputs: { requiredWithAll: "requiredWithAll", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithAllDirective, multi: true }], ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithAllDirective, decorators: [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: '[requiredWithAll]',
58
+ providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithAllDirective, multi: true }]
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { requiredWithAll: [{
61
+ type: Input,
62
+ args: ['requiredWithAll']
63
+ }], message: [{
64
+ type: Input,
65
+ args: ['message']
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtd2l0aC1hbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9yZXF1aXJlZF93aXRoX2FsbC9yZXF1aXJlZC13aXRoLWFsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBUTdDLE1BQU0sT0FBTyx3QkFBd0I7SUFhakMsWUFDWSxFQUF5QixFQUN6QixFQUFjLEVBQ2QsR0FBZ0I7UUFGaEIsT0FBRSxHQUFGLEVBQUUsQ0FBdUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFkcEIsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELFVBQUssR0FBaUIsS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBYSxPQUFPLENBQUM7UUFFWixvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFVOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQyxDQUFDO0lBVGpELElBQ0ksT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQXVCO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDckg7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN6QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDLENBQUE7UUFFdkUsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDN0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDakUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztxSEFqRFEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsZ0hBRnRCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRWxGLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzlGOytKQVE2QixlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFFcEIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vY29tbW9uLnV0aWxzJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tyZXF1aXJlZFdpdGhBbGxdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFJlcXVpcmVkV2l0aEFsbERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkV2l0aEFsbERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCAgOiBTdWJqZWN0PHZvaWQ+ICA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIHdpcmVkICAgICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nICA9ICdmaWVsZCc7XHJcblxyXG4gICAgQElucHV0KCdyZXF1aXJlZFdpdGhBbGwnKSByZXF1aXJlZFdpdGhBbGw6IHN0cmluZyB8IHN0cmluZ1tdID0gW107XHJcbiAgICBASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbWI6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgdXRsOiBVdGlsU2VydmljZVxyXG4gICAgKSB7IHRoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWUgfVxyXG5cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICB0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwgJ3JlcXVpcmVkX3dpdGhfYWxsJyk7XHJcbiAgICAgICAgdGhpcy53aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2wpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLCB0aGlzLnJlcXVpcmVkV2l0aEFsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgYXJnczogc3RyaW5nIHwgc3RyaW5nW10pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnV0bC5yZXF1aXJlZFdpdGhBbGwoY29udHJvbCwgYXJncykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3JlcXVpcmVkX3dpdGhfYWxsJzogdGhpcy5tYi5jYWxsKCdyZXF1aXJlZF93aXRoX2FsbCcsIHRoaXMuZmllbGROYW1lLCAuLi50b0FycmF5KGFyZ3MpLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgd2lyZVNpYmxpbmdXYXRjaGVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy53aXJlZCkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBuYW1lcyA9IHRvQXJyYXkodGhpcy5yZXF1aXJlZFdpdGhBbGwpXHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gbmFtZXMubWFwKG5hbWUgPT4gY29udHJvbC5yb290LmdldChuYW1lKSBhcyBGb3JtQ29udHJvbClcclxuXHJcbiAgICAgICAgaWYgKHNpYmxpbmdzLmZpbHRlcihCb29sZWFuKS5sZW5ndGggIT09IG5hbWVzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMud2lyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBzaWJsaW5ncy5mb3JFYWNoKHNpYmxpbmcgPT4ge1xyXG4gICAgICAgICAgICBzaWJsaW5nLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,67 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { debounceTime, Subject, takeUntil } from 'rxjs';
4
+ import { toArray } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/messages-builder.service";
7
+ import * as i2 from "../../services/utils.service";
8
+ export class RequiredWithoutDirective {
9
+ constructor(mb, el, utl) {
10
+ this.mb = mb;
11
+ this.el = el;
12
+ this.utl = utl;
13
+ this.vmessage = {};
14
+ this.destroy$ = new Subject();
15
+ this.wired = false;
16
+ this.fieldName = 'field';
17
+ this.requiredWithout = [];
18
+ this.fieldName = this.el.nativeElement.name;
19
+ }
20
+ set message(data) {
21
+ this.vmessage = data;
22
+ }
23
+ validate(control) {
24
+ this.utl.setValidationRules(control, 'required_without');
25
+ this.wireSiblingWatchers(control);
26
+ return this.isValid(control, this.requiredWithout);
27
+ }
28
+ isValid(control, args) {
29
+ if (!this.utl.requiredWithout(control, args)) {
30
+ return { 'required_without': this.mb.call('required_without', this.fieldName, ...toArray(args), this.vmessage) };
31
+ }
32
+ return null;
33
+ }
34
+ wireSiblingWatchers(control) {
35
+ if (this.wired)
36
+ return;
37
+ let names = toArray(this.requiredWithout);
38
+ let siblings = names.map(name => control.root.get(name));
39
+ if (siblings.filter(Boolean).length !== names.length)
40
+ return;
41
+ this.wired = true;
42
+ siblings.forEach(sibling => {
43
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
44
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
45
+ });
46
+ }
47
+ ngOnDestroy() {
48
+ this.destroy$.next();
49
+ this.destroy$.complete();
50
+ }
51
+ }
52
+ RequiredWithoutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithoutDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
53
+ RequiredWithoutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RequiredWithoutDirective, selector: "[requiredWithout]", inputs: { requiredWithout: "requiredWithout", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithoutDirective, multi: true }], ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithoutDirective, decorators: [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: '[requiredWithout]',
58
+ providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithoutDirective, multi: true }]
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { requiredWithout: [{
61
+ type: Input,
62
+ args: ['requiredWithout']
63
+ }], message: [{
64
+ type: Input,
65
+ args: ['message']
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtd2l0aG91dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3JlcXVpcmVkX3dpdGhvdXQvcmVxdWlyZWQtd2l0aG91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBUTdDLE1BQU0sT0FBTyx3QkFBd0I7SUFhakMsWUFDWSxFQUF5QixFQUN6QixFQUFjLEVBQ2QsR0FBZ0I7UUFGaEIsT0FBRSxHQUFGLEVBQUUsQ0FBdUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFkcEIsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELFVBQUssR0FBaUIsS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBYSxPQUFPLENBQUM7UUFFWixvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFVOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQyxDQUFDO0lBVGpELElBQ0ksT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQXVCO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDbkg7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxLQUFLLEdBQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM1QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDLENBQUE7UUFFdkUsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDN0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDaEUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztxSEFqRFEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsZ0hBRnRCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRWxGLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzlGOytKQVE2QixlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFFcEIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uL2NvbW1vbi51dGlscyc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbcmVxdWlyZWRXaXRob3V0XScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBSZXF1aXJlZFdpdGhvdXREaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFdpdGhvdXREaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkICA6IFN1YmplY3Q8dm9pZD4gID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgd2lyZWQgICAgIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgID0gJ2ZpZWxkJztcclxuXHJcbiAgICBASW5wdXQoJ3JlcXVpcmVkV2l0aG91dCcpIHJlcXVpcmVkV2l0aG91dDogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTtcclxuICAgIEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBtYjogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSB1dGw6IFV0aWxTZXJ2aWNlXHJcbiAgICApIHsgdGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZSB9XHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAncmVxdWlyZWRfd2l0aG91dCcpO1xyXG4gICAgICAgIHRoaXMud2lyZVNpYmxpbmdXYXRjaGVycyhjb250cm9sKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoY29udHJvbCwgdGhpcy5yZXF1aXJlZFdpdGhvdXQpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgYXJnczogc3RyaW5nIHwgc3RyaW5nW10pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnV0bC5yZXF1aXJlZFdpdGhvdXQoY29udHJvbCwgYXJncykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3JlcXVpcmVkX3dpdGhvdXQnOiB0aGlzLm1iLmNhbGwoJ3JlcXVpcmVkX3dpdGhvdXQnLCB0aGlzLmZpZWxkTmFtZSwgLi4udG9BcnJheShhcmdzKSwgdGhpcy52bWVzc2FnZSkgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHdpcmVTaWJsaW5nV2F0Y2hlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud2lyZWQpIHJldHVybjtcclxuICAgICAgICBsZXQgbmFtZXMgICAgPSB0b0FycmF5KHRoaXMucmVxdWlyZWRXaXRob3V0KVxyXG4gICAgICAgIGxldCBzaWJsaW5ncyA9IG5hbWVzLm1hcChuYW1lID0+IGNvbnRyb2wucm9vdC5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2wpXHJcblxyXG4gICAgICAgIGlmIChzaWJsaW5ncy5maWx0ZXIoQm9vbGVhbikubGVuZ3RoICE9PSBuYW1lcy5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICB0aGlzLndpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgc2libGluZ3MuZm9yRWFjaChzaWJsaW5nID0+IHtcclxuICAgICAgICAgICAgc2libGluZy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSx0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,67 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { Subject, takeUntil, debounceTime } from 'rxjs';
4
+ import { toArray } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/messages-builder.service";
7
+ import * as i2 from "../../services/utils.service";
8
+ export class RequiredWithoutAllDirective {
9
+ constructor(mb, el, utl) {
10
+ this.mb = mb;
11
+ this.el = el;
12
+ this.utl = utl;
13
+ this.vmessage = {};
14
+ this.destroy$ = new Subject();
15
+ this.wired = false;
16
+ this.fieldName = 'field';
17
+ this.requiredWithoutAll = [];
18
+ this.fieldName = this.el.nativeElement.name;
19
+ }
20
+ set message(data) {
21
+ this.vmessage = data;
22
+ }
23
+ validate(control) {
24
+ this.utl.setValidationRules(control, 'required_without_all');
25
+ this.wireSiblingWatchers(control);
26
+ return this.isValid(control, this.requiredWithoutAll);
27
+ }
28
+ isValid(control, args) {
29
+ if (!this.utl.requiredWithoutAll(control, args)) {
30
+ return { 'required_without_all': this.mb.call('required_without_all', this.fieldName, ...toArray(args), this.vmessage) };
31
+ }
32
+ return null;
33
+ }
34
+ wireSiblingWatchers(control) {
35
+ if (this.wired)
36
+ return;
37
+ let names = toArray(this.requiredWithoutAll);
38
+ let siblings = names.map(name => control.root.get(name));
39
+ if (siblings.filter(Boolean).length !== names.length)
40
+ return;
41
+ this.wired = true;
42
+ siblings.forEach(sibling => {
43
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
44
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
45
+ });
46
+ }
47
+ ngOnDestroy() {
48
+ this.destroy$.next();
49
+ this.destroy$.complete();
50
+ }
51
+ }
52
+ RequiredWithoutAllDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithoutAllDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
53
+ RequiredWithoutAllDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RequiredWithoutAllDirective, selector: "[requiredWithoutAll]", inputs: { requiredWithoutAll: "requiredWithoutAll", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithoutAllDirective, multi: true }], ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RequiredWithoutAllDirective, decorators: [{
55
+ type: Directive,
56
+ args: [{
57
+ selector: '[requiredWithoutAll]',
58
+ providers: [{ provide: NG_VALIDATORS, useExisting: RequiredWithoutAllDirective, multi: true }]
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { requiredWithoutAll: [{
61
+ type: Input,
62
+ args: ['requiredWithoutAll']
63
+ }], message: [{
64
+ type: Input,
65
+ args: ['message']
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtd2l0aG91dC1hbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9yZXF1aXJlZF93aXRob3V0X2FsbC9yZXF1aXJlZC13aXRob3V0LWFsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBUTdDLE1BQU0sT0FBTywyQkFBMkI7SUFhcEMsWUFDWSxFQUF5QixFQUN6QixFQUFjLEVBQ2QsR0FBZ0I7UUFGaEIsT0FBRSxHQUFGLEVBQUUsQ0FBdUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFkcEIsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELFVBQUssR0FBaUIsS0FBSyxDQUFDO1FBQzVCLGNBQVMsR0FBYSxPQUFPLENBQUM7UUFFVCx1QkFBa0IsR0FBc0IsRUFBRSxDQUFDO1FBVXBFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFBO0lBQUMsQ0FBQztJQVRqRCxJQUNJLE9BQU8sQ0FBQyxJQUFxQjtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBUUQsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQXVCO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUMzSDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUF3QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUN2QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDNUMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBZ0IsQ0FBQyxDQUFBO1FBRXZFLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQzdELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7d0hBakRRLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHlIQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUVyRiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsNkJBQTZCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUNqRzsrSkFRZ0Msa0JBQWtCO3NCQUE5QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFFdkIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vY29tbW9uLnV0aWxzJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tyZXF1aXJlZFdpdGhvdXRBbGxdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFJlcXVpcmVkV2l0aG91dEFsbERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkV2l0aG91dEFsbERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCAgOiBTdWJqZWN0PHZvaWQ+ICA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIHdpcmVkICAgICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nICA9ICdmaWVsZCc7XHJcblxyXG4gICAgQElucHV0KCdyZXF1aXJlZFdpdGhvdXRBbGwnKSByZXF1aXJlZFdpdGhvdXRBbGw6IHN0cmluZyB8IHN0cmluZ1tdID0gW107XHJcbiAgICBASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbWI6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgdXRsOiBVdGlsU2VydmljZVxyXG4gICAgKSB7IHRoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWUgfVxyXG5cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICB0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwgJ3JlcXVpcmVkX3dpdGhvdXRfYWxsJyk7XHJcbiAgICAgICAgdGhpcy53aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2wpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLCB0aGlzLnJlcXVpcmVkV2l0aG91dEFsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgYXJnczogc3RyaW5nIHwgc3RyaW5nW10pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnV0bC5yZXF1aXJlZFdpdGhvdXRBbGwoY29udHJvbCwgYXJncykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3JlcXVpcmVkX3dpdGhvdXRfYWxsJzogdGhpcy5tYi5jYWxsKCdyZXF1aXJlZF93aXRob3V0X2FsbCcsIHRoaXMuZmllbGROYW1lLCAuLi50b0FycmF5KGFyZ3MpLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgd2lyZVNpYmxpbmdXYXRjaGVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy53aXJlZCkgcmV0dXJuO1xyXG4gICAgICAgIGxldCBuYW1lcyA9IHRvQXJyYXkodGhpcy5yZXF1aXJlZFdpdGhvdXRBbGwpXHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gbmFtZXMubWFwKG5hbWUgPT4gY29udHJvbC5yb290LmdldChuYW1lKSBhcyBGb3JtQ29udHJvbClcclxuXHJcbiAgICAgICAgaWYgKHNpYmxpbmdzLmZpbHRlcihCb29sZWFuKS5sZW5ndGggIT09IG5hbWVzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMud2lyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBzaWJsaW5ncy5mb3JFYWNoKHNpYmxpbmcgPT4ge1xyXG4gICAgICAgICAgICBzaWJsaW5nLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../services/validate-rule.service";
5
+ export class RuleDirective {
6
+ constructor(ruleValidate, el) {
7
+ this.ruleValidate = ruleValidate;
8
+ this.el = el;
9
+ this.vmessage = {};
10
+ this.fieldName = 'field';
11
+ this.fieldName = this.el.nativeElement.name;
12
+ }
13
+ set message(data) {
14
+ this.vmessage = data;
15
+ }
16
+ validate(control) {
17
+ return this.ruleValidate.gererateRuleAndValidate(this.fieldName, control, this.rule, this.vmessage);
18
+ }
19
+ }
20
+ RuleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RuleDirective, deps: [{ token: i1.ValidateRuleService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
21
+ RuleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: RuleDirective, selector: "[Rule], [rule]", inputs: { rule: ["Rule", "rule"], message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: RuleDirective, multi: true }], ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RuleDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[Rule], [rule]',
26
+ providers: [{ provide: NG_VALIDATORS, useExisting: RuleDirective, multi: true }]
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.ValidateRuleService }, { type: i0.ElementRef }]; }, propDecorators: { rule: [{
29
+ type: Input,
30
+ args: ['Rule']
31
+ }], message: [{
32
+ type: Input,
33
+ args: ['message']
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3J1bGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQStDLE1BQU0sZ0JBQWdCLENBQUM7OztBQVE1RixNQUFNLE9BQU8sYUFBYTtJQVd6QixZQUNTLFlBQWtDLEVBQ2xDLEVBQW1CO1FBRG5CLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxPQUFFLEdBQUYsRUFBRSxDQUFpQjtRQVhqQixhQUFRLEdBQTJCLEVBQUUsQ0FBQTtRQUNyQyxjQUFTLEdBQVcsT0FBTyxDQUFDO1FBV3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQUEsQ0FBQztJQVIvQyxJQUNPLE9BQU8sQ0FBQyxJQUEyQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBUUosUUFBUSxDQUFDLE9BQXVCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRyxDQUFDOzswR0FuQlcsYUFBYTs4RkFBYixhQUFhLGlHQUZkLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUVwRSxhQUFhO2tCQUp6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ2hGO21JQU1lLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFFTixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvcixBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRlUnVsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZGF0ZS1ydWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbUnVsZV0sIFtydWxlXScsXHJcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogUnVsZURpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1bGVEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3J7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSA6IExvY2FsaXplZE1lc3NhZ2VHcm91cCA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZTogc3RyaW5nID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdSdWxlJykgcnVsZSAhOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTogTG9jYWxpemVkTWVzc2FnZUdyb3VwKSB7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJ1bGVWYWxpZGF0ZSA6IFZhbGlkYXRlUnVsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0XHRcdCA6IEVsZW1lbnRSZWYsXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcblxyXG5cdHZhbGlkYXRlKGNvbnRyb2w6QWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGx7XHJcblx0XHRyZXR1cm4gdGhpcy5ydWxlVmFsaWRhdGUuZ2VyZXJhdGVSdWxlQW5kVmFsaWRhdGUodGhpcy5maWVsZE5hbWUsY29udHJvbCx0aGlzLnJ1bGUsdGhpcy52bWVzc2FnZSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,141 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MessageBuilderService } from '../services/messages-builder.service';
4
+ import { ValidateRuleService } from '../services/validate-rule.service';
5
+ import { UtilService } from '../services/utils.service';
6
+ import { RuleDirective } from './rule.directive';
7
+ import { AboveDirective } from './above/above.directive';
8
+ import { AcceptedDirective } from './accepted/accepted.directive';
9
+ import { AfterDirective } from './after/after.directive';
10
+ import { AlphaDirective } from './alpha/alpha.directive';
11
+ import { AlphaNumericDirective } from './alpha_numeric/alpha-numeric.directive';
12
+ import { ArrayDirective } from './array/array.directive';
13
+ import { BeforeDirective } from './before/before.directive';
14
+ import { BooleanDirective } from './boolean/boolean.directive';
15
+ import { ConfirmedDirective } from './confirmed/confirmed.directive';
16
+ import { DateDirective } from './date/date.directive';
17
+ import { DateFormatDirective } from './date_format/date-format.directive';
18
+ import { DifferentDirective } from './different/different.directive';
19
+ import { EmailDirective } from './email/email.directive';
20
+ import { EndsWithDirective } from './ends_with/ends-with.directive';
21
+ import { EqualsDirective } from './equals/equals.directive';
22
+ import { InDirective } from './in/in.directive';
23
+ import { IncludesDirective } from './includes/includes.directive';
24
+ import { IntegerDirective } from './integer/integer.directive';
25
+ import { IpDirective } from './ip/ip.directive';
26
+ import { Ipv4Directive } from './ipv4/ipv4.directive';
27
+ import { Ipv6Directive } from './ipv6/ipv6.directive';
28
+ import { JsonDirective } from './json/json.directive';
29
+ import { MaxDirective } from './max/max.directive';
30
+ import { MinDirective } from './min/min.directive';
31
+ import { NotEqualsDirective } from './not_equals/not-equals.directive';
32
+ import { NotInDirective } from './not_in/not-in.directive';
33
+ import { NumberDirective } from './number/number.directive';
34
+ import { RangeDirective } from './range/range.directive';
35
+ import { BetweenDirective } from './between/between.directive';
36
+ import { RegexDirective } from './regex/regex.directive';
37
+ import { SameDirective } from './same/same.directive';
38
+ import { StartsWithDirective } from './starts_with/starts-with.directive';
39
+ import { StringDirective } from './string/string.directive';
40
+ import { UnderDirective } from './under/under.directive';
41
+ import { UrlDirective } from './url/url.directive';
42
+ import { AlphaDashDirective } from './alpha_dash/alpha-dash.directive';
43
+ import { NotRegexDirective } from './not_regex/not-regex.directive';
44
+ import { UuidDirective } from './uuid/uuid.directive';
45
+ import { UniqueDirective } from './unique/unique.directive';
46
+ import { CreditCardDirective } from './credit_card/credit-card.directive';
47
+ import { DebitCardDirective } from './debit_card/debit-card.directive';
48
+ import { CvvDirective } from './cvv/cvv.directive';
49
+ import { StrengthDirective } from './strength/strength.directive';
50
+ import { PhoneNoDirective } from './phone_no/phone-no.directive';
51
+ import { RequiredDirective } from '../rule/required/required.directive';
52
+ import { RequiredIfDirective } from './required_if/required-if.directive';
53
+ import { RequiredUnlessDirective } from './required_unless/required-unless.directive';
54
+ import { RequiredWithDirective } from './required_with/required-with.directive';
55
+ import { RequiredWithAllDirective } from './required_with_all/required-with-all.directive';
56
+ import { RequiredWithoutDirective } from './required_without/required-without.directive';
57
+ import { RequiredWithoutAllDirective } from './required_without_all/required-without-all.directive';
58
+ import { MimesDirective } from './mimes/mimes.directive';
59
+ import { SizeDirective } from './size/size.directive';
60
+ import { DimensionDirective } from './dimension/dimension.directive';
61
+ import { ImageDirective } from './image/image.directive';
62
+ import { VideoDirective } from './video/video.directive';
63
+ import { ExistsDirective } from './exists/exists.directive';
64
+ import * as i0 from "@angular/core";
65
+ const rulesDirectives = [
66
+ RuleDirective,
67
+ RequiredDirective, AboveDirective, AcceptedDirective, AfterDirective,
68
+ AlphaDirective, AlphaNumericDirective, ArrayDirective, UrlDirective,
69
+ DateDirective, BeforeDirective, BooleanDirective, ConfirmedDirective,
70
+ DateFormatDirective, DifferentDirective, EmailDirective, InDirective,
71
+ EqualsDirective, EndsWithDirective, IncludesDirective, Ipv4Directive,
72
+ SameDirective, IpDirective, Ipv6Directive, JsonDirective, MaxDirective,
73
+ MinDirective, NotEqualsDirective, NotInDirective, StartsWithDirective,
74
+ RangeDirective, BetweenDirective, RegexDirective, IntegerDirective,
75
+ NumberDirective, StringDirective, UnderDirective, NotRegexDirective,
76
+ UuidDirective, UniqueDirective, CreditCardDirective, DebitCardDirective,
77
+ CvvDirective, StrengthDirective, PhoneNoDirective, RequiredIfDirective,
78
+ RequiredUnlessDirective, RequiredWithDirective, RequiredWithAllDirective,
79
+ RequiredWithoutDirective, RequiredWithoutAllDirective, MimesDirective,
80
+ SizeDirective, DimensionDirective, ImageDirective, VideoDirective,
81
+ ExistsDirective, AlphaDashDirective
82
+ ];
83
+ export class RuleModule {
84
+ }
85
+ RuleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RuleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
+ RuleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: RuleModule, declarations: [RuleDirective,
87
+ RequiredDirective, AboveDirective, AcceptedDirective, AfterDirective,
88
+ AlphaDirective, AlphaNumericDirective, ArrayDirective, UrlDirective,
89
+ DateDirective, BeforeDirective, BooleanDirective, ConfirmedDirective,
90
+ DateFormatDirective, DifferentDirective, EmailDirective, InDirective,
91
+ EqualsDirective, EndsWithDirective, IncludesDirective, Ipv4Directive,
92
+ SameDirective, IpDirective, Ipv6Directive, JsonDirective, MaxDirective,
93
+ MinDirective, NotEqualsDirective, NotInDirective, StartsWithDirective,
94
+ RangeDirective, BetweenDirective, RegexDirective, IntegerDirective,
95
+ NumberDirective, StringDirective, UnderDirective, NotRegexDirective,
96
+ UuidDirective, UniqueDirective, CreditCardDirective, DebitCardDirective,
97
+ CvvDirective, StrengthDirective, PhoneNoDirective, RequiredIfDirective,
98
+ RequiredUnlessDirective, RequiredWithDirective, RequiredWithAllDirective,
99
+ RequiredWithoutDirective, RequiredWithoutAllDirective, MimesDirective,
100
+ SizeDirective, DimensionDirective, ImageDirective, VideoDirective,
101
+ ExistsDirective, AlphaDashDirective], imports: [CommonModule], exports: [RuleDirective,
102
+ RequiredDirective, AboveDirective, AcceptedDirective, AfterDirective,
103
+ AlphaDirective, AlphaNumericDirective, ArrayDirective, UrlDirective,
104
+ DateDirective, BeforeDirective, BooleanDirective, ConfirmedDirective,
105
+ DateFormatDirective, DifferentDirective, EmailDirective, InDirective,
106
+ EqualsDirective, EndsWithDirective, IncludesDirective, Ipv4Directive,
107
+ SameDirective, IpDirective, Ipv6Directive, JsonDirective, MaxDirective,
108
+ MinDirective, NotEqualsDirective, NotInDirective, StartsWithDirective,
109
+ RangeDirective, BetweenDirective, RegexDirective, IntegerDirective,
110
+ NumberDirective, StringDirective, UnderDirective, NotRegexDirective,
111
+ UuidDirective, UniqueDirective, CreditCardDirective, DebitCardDirective,
112
+ CvvDirective, StrengthDirective, PhoneNoDirective, RequiredIfDirective,
113
+ RequiredUnlessDirective, RequiredWithDirective, RequiredWithAllDirective,
114
+ RequiredWithoutDirective, RequiredWithoutAllDirective, MimesDirective,
115
+ SizeDirective, DimensionDirective, ImageDirective, VideoDirective,
116
+ ExistsDirective, AlphaDashDirective] });
117
+ RuleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RuleModule, providers: [
118
+ UtilService,
119
+ ValidateRuleService,
120
+ MessageBuilderService,
121
+ ], imports: [CommonModule] });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: RuleModule, decorators: [{
123
+ type: NgModule,
124
+ args: [{
125
+ declarations: [
126
+ ...rulesDirectives
127
+ ],
128
+ imports: [
129
+ CommonModule
130
+ ],
131
+ providers: [
132
+ UtilService,
133
+ ValidateRuleService,
134
+ MessageBuilderService,
135
+ ],
136
+ exports: [
137
+ ...rulesDirectives
138
+ ],
139
+ }]
140
+ }] });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3J1bGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFD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QUNwRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTtRQUNwRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWTtRQUN0RSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQjtRQUNyRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQjtRQUNsRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUI7UUFDbkUsYUFBYSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0I7UUFDdkUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQjtRQUN0RSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0I7UUFDeEUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsY0FBYztRQUNyRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWM7UUFDakUsZUFBZSxFQUFFLGtCQUFrQjt3R0FvQjFCLFVBQVUsYUFWUjtRQUNQLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIscUJBQXFCO0tBQ3hCLFlBTkcsWUFBWTsyRkFZUCxVQUFVO2tCQWpCdEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxlQUFlO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTtxQkFDZjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsZUFBZTtxQkFDckI7aUJBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0ZVJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFsaWRhdGUtcnVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUnVsZURpcmVjdGl2ZSB9IGZyb20gJy4vcnVsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBYm92ZURpcmVjdGl2ZSB9IGZyb20gJy4vYWJvdmUvYWJvdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQWNjZXB0ZWREaXJlY3RpdmUgfSBmcm9tICcuL2FjY2VwdGVkL2FjY2VwdGVkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFmdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9hZnRlci9hZnRlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbHBoYURpcmVjdGl2ZSB9IGZyb20gJy4vYWxwaGEvYWxwaGEuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQWxwaGFOdW1lcmljRGlyZWN0aXZlIH0gZnJvbSAnLi9hbHBoYV9udW1lcmljL2FscGhhLW51bWVyaWMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXJyYXlEaXJlY3RpdmUgfSBmcm9tICcuL2FycmF5L2FycmF5LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJlZm9yZURpcmVjdGl2ZSB9IGZyb20gJy4vYmVmb3JlL2JlZm9yZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb29sZWFuRGlyZWN0aXZlIH0gZnJvbSAnLi9ib29sZWFuL2Jvb2xlYW4uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29uZmlybWVkRGlyZWN0aXZlIH0gZnJvbSAnLi9jb25maXJtZWQvY29uZmlybWVkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RhdGUvZGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEYXRlRm9ybWF0RGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRlX2Zvcm1hdC9kYXRlLWZvcm1hdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEaWZmZXJlbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpZmZlcmVudC9kaWZmZXJlbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRW1haWxEaXJlY3RpdmUgfSBmcm9tICcuL2VtYWlsL2VtYWlsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEVuZHNXaXRoRGlyZWN0aXZlIH0gZnJvbSAnLi9lbmRzX3dpdGgvZW5kcy13aXRoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEVxdWFsc0RpcmVjdGl2ZSB9IGZyb20gJy4vZXF1YWxzL2VxdWFscy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbkRpcmVjdGl2ZSB9IGZyb20gJy4vaW4vaW4uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5jbHVkZXNEaXJlY3RpdmUgfSBmcm9tICcuL2luY2x1ZGVzL2luY2x1ZGVzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEludGVnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2ludGVnZXIvaW50ZWdlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJcERpcmVjdGl2ZSB9IGZyb20gJy4vaXAvaXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSXB2NERpcmVjdGl2ZSB9IGZyb20gJy4vaXB2NC9pcHY0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElwdjZEaXJlY3RpdmUgfSBmcm9tICcuL2lwdjYvaXB2Ni5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBKc29uRGlyZWN0aXZlIH0gZnJvbSAnLi9qc29uL2pzb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF4RGlyZWN0aXZlIH0gZnJvbSAnLi9tYXgvbWF4LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1pbkRpcmVjdGl2ZSB9IGZyb20gJy4vbWluL21pbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOb3RFcXVhbHNEaXJlY3RpdmUgfSBmcm9tICcuL25vdF9lcXVhbHMvbm90LWVxdWFscy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOb3RJbkRpcmVjdGl2ZSB9IGZyb20gJy4vbm90X2luL25vdC1pbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOdW1iZXJEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci9udW1iZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmFuZ2VEaXJlY3RpdmUgfSBmcm9tICcuL3JhbmdlL3JhbmdlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJldHdlZW5EaXJlY3RpdmUgfSBmcm9tICcuL2JldHdlZW4vYmV0d2Vlbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZWdleERpcmVjdGl2ZSB9IGZyb20gJy4vcmVnZXgvcmVnZXguZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2FtZURpcmVjdGl2ZSB9IGZyb20gJy4vc2FtZS9zYW1lLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN0YXJ0c1dpdGhEaXJlY3RpdmUgfSBmcm9tICcuL3N0YXJ0c193aXRoL3N0YXJ0cy13aXRoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN0cmluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vc3RyaW5nL3N0cmluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBVbmRlckRpcmVjdGl2ZSB9IGZyb20gJy4vdW5kZXIvdW5kZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVXJsRGlyZWN0aXZlIH0gZnJvbSAnLi91cmwvdXJsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFscGhhRGFzaERpcmVjdGl2ZSB9IGZyb20gJy4vYWxwaGFfZGFzaC9hbHBoYS1kYXNoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5vdFJlZ2V4RGlyZWN0aXZlIH0gZnJvbSAnLi9ub3RfcmVnZXgvbm90LXJlZ2V4LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFV1aWREaXJlY3RpdmUgfSBmcm9tICcuL3V1aWQvdXVpZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBVbmlxdWVEaXJlY3RpdmUgfSBmcm9tICcuL3VuaXF1ZS91bmlxdWUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ3JlZGl0Q2FyZERpcmVjdGl2ZSB9IGZyb20gJy4vY3JlZGl0X2NhcmQvY3JlZGl0LWNhcmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGViaXRDYXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9kZWJpdF9jYXJkL2RlYml0LWNhcmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ3Z2RGlyZWN0aXZlIH0gZnJvbSAnLi9jdnYvY3Z2LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN0cmVuZ3RoRGlyZWN0aXZlIH0gZnJvbSAnLi9zdHJlbmd0aC9zdHJlbmd0aC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQaG9uZU5vRGlyZWN0aXZlIH0gZnJvbSAnLi9waG9uZV9uby9waG9uZS1uby5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4uL3J1bGUvcmVxdWlyZWQvcmVxdWlyZWQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVxdWlyZWRJZkRpcmVjdGl2ZSB9IGZyb20gJy4vcmVxdWlyZWRfaWYvcmVxdWlyZWQtaWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVxdWlyZWRVbmxlc3NEaXJlY3RpdmUgfSBmcm9tICcuL3JlcXVpcmVkX3VubGVzcy9yZXF1aXJlZC11bmxlc3MuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVxdWlyZWRXaXRoRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXF1aXJlZF93aXRoL3JlcXVpcmVkLXdpdGguZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVxdWlyZWRXaXRoQWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXF1aXJlZF93aXRoX2FsbC9yZXF1aXJlZC13aXRoLWFsbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZFdpdGhvdXREaXJlY3RpdmUgfSBmcm9tICcuL3JlcXVpcmVkX3dpdGhvdXQvcmVxdWlyZWQtd2l0aG91dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZFdpdGhvdXRBbGxEaXJlY3RpdmUgfSBmcm9tICcuL3JlcXVpcmVkX3dpdGhvdXRfYWxsL3JlcXVpcmVkLXdpdGhvdXQtYWxsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1pbWVzRGlyZWN0aXZlIH0gZnJvbSAnLi9taW1lcy9taW1lcy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaXplRGlyZWN0aXZlIH0gZnJvbSAnLi9zaXplL3NpemUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGltZW5zaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaW1lbnNpb24vZGltZW5zaW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlIH0gZnJvbSAnLi9pbWFnZS9pbWFnZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBWaWRlb0RpcmVjdGl2ZSB9IGZyb20gJy4vdmlkZW8vdmlkZW8uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXhpc3RzRGlyZWN0aXZlIH0gZnJvbSAnLi9leGlzdHMvZXhpc3RzLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuY29uc3QgcnVsZXNEaXJlY3RpdmVzID0gW1xyXG4gICAgUnVsZURpcmVjdGl2ZSxcclxuICAgIFJlcXVpcmVkRGlyZWN0aXZlLCBBYm92ZURpcmVjdGl2ZSwgQWNjZXB0ZWREaXJlY3RpdmUsIEFmdGVyRGlyZWN0aXZlLFxyXG4gICAgQWxwaGFEaXJlY3RpdmUsIEFscGhhTnVtZXJpY0RpcmVjdGl2ZSwgQXJyYXlEaXJlY3RpdmUsIFVybERpcmVjdGl2ZSxcclxuICAgIERhdGVEaXJlY3RpdmUsIEJlZm9yZURpcmVjdGl2ZSwgQm9vbGVhbkRpcmVjdGl2ZSwgQ29uZmlybWVkRGlyZWN0aXZlLFxyXG4gICAgRGF0ZUZvcm1hdERpcmVjdGl2ZSwgRGlmZmVyZW50RGlyZWN0aXZlLCBFbWFpbERpcmVjdGl2ZSwgSW5EaXJlY3RpdmUsXHJcbiAgICBFcXVhbHNEaXJlY3RpdmUsIEVuZHNXaXRoRGlyZWN0aXZlLCBJbmNsdWRlc0RpcmVjdGl2ZSwgSXB2NERpcmVjdGl2ZSxcclxuICAgIFNhbWVEaXJlY3RpdmUsIElwRGlyZWN0aXZlLCBJcHY2RGlyZWN0aXZlLCBKc29uRGlyZWN0aXZlLCBNYXhEaXJlY3RpdmUsXHJcbiAgICBNaW5EaXJlY3RpdmUsIE5vdEVxdWFsc0RpcmVjdGl2ZSwgTm90SW5EaXJlY3RpdmUsIFN0YXJ0c1dpdGhEaXJlY3RpdmUsXHJcbiAgICBSYW5nZURpcmVjdGl2ZSwgQmV0d2VlbkRpcmVjdGl2ZSwgUmVnZXhEaXJlY3RpdmUsIEludGVnZXJEaXJlY3RpdmUsXHJcbiAgICBOdW1iZXJEaXJlY3RpdmUsIFN0cmluZ0RpcmVjdGl2ZSwgVW5kZXJEaXJlY3RpdmUsIE5vdFJlZ2V4RGlyZWN0aXZlLFxyXG4gICAgVXVpZERpcmVjdGl2ZSwgVW5pcXVlRGlyZWN0aXZlLCBDcmVkaXRDYXJkRGlyZWN0aXZlLCBEZWJpdENhcmREaXJlY3RpdmUsXHJcbiAgICBDdnZEaXJlY3RpdmUsIFN0cmVuZ3RoRGlyZWN0aXZlLCBQaG9uZU5vRGlyZWN0aXZlLCBSZXF1aXJlZElmRGlyZWN0aXZlLFxyXG4gICAgUmVxdWlyZWRVbmxlc3NEaXJlY3RpdmUsIFJlcXVpcmVkV2l0aERpcmVjdGl2ZSwgUmVxdWlyZWRXaXRoQWxsRGlyZWN0aXZlLFxyXG4gICAgUmVxdWlyZWRXaXRob3V0RGlyZWN0aXZlLCBSZXF1aXJlZFdpdGhvdXRBbGxEaXJlY3RpdmUsIE1pbWVzRGlyZWN0aXZlLFxyXG4gICAgU2l6ZURpcmVjdGl2ZSwgRGltZW5zaW9uRGlyZWN0aXZlLCBJbWFnZURpcmVjdGl2ZSwgVmlkZW9EaXJlY3RpdmUsXHJcbiAgICBFeGlzdHNEaXJlY3RpdmUsIEFscGhhRGFzaERpcmVjdGl2ZVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIC4uLnJ1bGVzRGlyZWN0aXZlc1xyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBVdGlsU2VydmljZSxcclxuICAgICAgICBWYWxpZGF0ZVJ1bGVTZXJ2aWNlLFxyXG4gICAgICAgIE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgLi4ucnVsZXNEaXJlY3RpdmVzXHJcbiAgICBdLFxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1bGVNb2R1bGUgeyB9XHJcbiJdfQ==