@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,64 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { Subject, takeUntil, debounceTime } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/messages-builder.service";
6
+ import * as i2 from "../../services/utils.service";
7
+ export class ConfirmedDirective {
8
+ constructor(mb, el, utl) {
9
+ this.mb = mb;
10
+ this.el = el;
11
+ this.utl = utl;
12
+ this.vmessage = {};
13
+ this.destroy$ = new Subject();
14
+ this.wired = false;
15
+ this.fieldName = 'field';
16
+ this.confirmed = '';
17
+ this.fieldName = this.el.nativeElement.name;
18
+ }
19
+ set message(data) {
20
+ this.vmessage = data;
21
+ }
22
+ validate(control) {
23
+ this.utl.setValidationRules(control, 'confirmed');
24
+ this.wireSiblingWatchers(control);
25
+ return this.isValid(control, this.confirmed, this.fieldName);
26
+ }
27
+ isValid(control, args, fieldName) {
28
+ if (!!control.value && !this.utl.confirmed(control, args, fieldName)) {
29
+ return { 'confirmed': this.mb.call('confirmed', this.fieldName, this.vmessage) };
30
+ }
31
+ return null;
32
+ }
33
+ wireSiblingWatchers(control) {
34
+ if (this.wired)
35
+ return;
36
+ let ctrlName = this.confirmed || (`${this.fieldName}_confirmation`);
37
+ let sibling = control.root.get(ctrlName);
38
+ if (!sibling)
39
+ return;
40
+ this.wired = true;
41
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
42
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
43
+ }
44
+ ngOnDestroy() {
45
+ this.destroy$.next();
46
+ this.destroy$.complete();
47
+ }
48
+ }
49
+ ConfirmedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfirmedDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
50
+ ConfirmedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: ConfirmedDirective, selector: "[confirmed]", inputs: { confirmed: "confirmed", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: ConfirmedDirective, multi: true }], ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfirmedDirective, decorators: [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: '[confirmed]',
55
+ providers: [{ provide: NG_VALIDATORS, useExisting: ConfirmedDirective, multi: true }]
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { confirmed: [{
58
+ type: Input,
59
+ args: ['confirmed']
60
+ }], message: [{
61
+ type: Input,
62
+ args: ['message']
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvY29uZmlybWVkL2NvbmZpcm1lZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBMkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFPeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWE5QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQWRmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNqRCxVQUFLLEdBQWlCLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQWEsT0FBTyxDQUFDO1FBRXJCLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFVMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFBQSxDQUFDO0lBVC9DLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFTSixRQUFRLENBQUMsT0FBd0I7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVVLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQVksRUFBRSxTQUFjO1FBQ3hFLElBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQ2pFLE9BQU8sRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUE7U0FDNUU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFVSxtQkFBbUIsQ0FBQyxPQUF3QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUN2QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxlQUFlLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQWdCLENBQUM7UUFFeEQsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OytHQWhEUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4RkFGaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFNUUsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3hGOytKQVFvQixTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBRVgsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZixJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2VzLWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjb25maXJtZWRdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IENvbmZpcm1lZERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1lZERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25EZXN0cm95e1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkICA6IFN1YmplY3Q8dm9pZD4gID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgd2lyZWQgICAgIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdjb25maXJtZWQnKSBjb25maXJtZWQgOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWU7fVxyXG5cclxuXHJcblx0dmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGx7XHJcblx0XHR0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwnY29uZmlybWVkJyk7XHJcbiAgICAgICAgdGhpcy53aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2wpXHJcblx0XHRyZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wsdGhpcy5jb25maXJtZWQsdGhpcy5maWVsZE5hbWUpO1xyXG5cdH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWQoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBhcmdzOiBzdHJpbmcsIGZpZWxkTmFtZTogYW55KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG5cdFx0aWYoISFjb250cm9sLnZhbHVlICYmICF0aGlzLnV0bC5jb25maXJtZWQoY29udHJvbCxhcmdzLGZpZWxkTmFtZSkpe1xyXG5cdFx0XHRyZXR1cm4geydjb25maXJtZWQnOiB0aGlzLm1iLmNhbGwoJ2NvbmZpcm1lZCcsdGhpcy5maWVsZE5hbWUsdGhpcy52bWVzc2FnZSl9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG4gICAgcHJpdmF0ZSB3aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLndpcmVkKSByZXR1cm47XHJcbiAgICAgICAgbGV0IGN0cmxOYW1lID0gdGhpcy5jb25maXJtZWQgfHwgKGAke3RoaXMuZmllbGROYW1lfV9jb25maXJtYXRpb25gKTtcclxuICAgICAgICBsZXQgc2libGluZyA9IGNvbnRyb2wucm9vdC5nZXQoY3RybE5hbWUpIGFzIEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgICBpZiAoIXNpYmxpbmcpIHJldHVybjtcclxuICAgICAgICB0aGlzLndpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgc2libGluZy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSx0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,43 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class CreditCardDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.fieldName = this.el.nativeElement.name;
14
+ }
15
+ set message(data) {
16
+ this.vmessage = data;
17
+ }
18
+ validate(control) {
19
+ this.utl.setValidationRules(control, 'credit_card', {
20
+ credit_card: this.utl.getCreditCardData(control.value)
21
+ });
22
+ return this.isValid(control.value);
23
+ }
24
+ isValid(value) {
25
+ if (!!value && !this.utl.creditCard(value)) {
26
+ return { 'credit_card': this.mb.call('credit_card', this.fieldName, this.vmessage) };
27
+ }
28
+ return null;
29
+ }
30
+ }
31
+ CreditCardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreditCardDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
32
+ CreditCardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: CreditCardDirective, selector: "[creditCard]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: CreditCardDirective, multi: true }], ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreditCardDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ selector: '[creditCard]',
37
+ providers: [{ provide: NG_VALIDATORS, useExisting: CreditCardDirective, multi: true }]
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { message: [{
40
+ type: Input,
41
+ args: ['message']
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWNhcmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9jcmVkaXRfY2FyZC9jcmVkaXQtY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sbUJBQW1CO0lBVS9CLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWGxCLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQzlCLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFBQSxDQUFDO0lBVDVDLElBQ0ksT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRixRQUFRLENBQUMsT0FBdUI7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDO1lBQ2pELFdBQVcsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDckQsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQVk7UUFDM0IsSUFBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUM7WUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQTtTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs7Z0hBNUJXLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVFQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUU3RSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDekY7K0pBT08sT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2NyZWRpdENhcmRdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IENyZWRpdENhcmREaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVkaXRDYXJkRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuXHRwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuICAgIEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZTt9XHJcblxyXG4gIFx0dmFsaWRhdGUoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCdjcmVkaXRfY2FyZCcse1xyXG5cdFx0XHRjcmVkaXRfY2FyZDp0aGlzLnV0bC5nZXRDcmVkaXRDYXJkRGF0YShjb250cm9sLnZhbHVlKVxyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc1ZhbGlkKHZhbHVlOnN0cmluZyk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xyXG5cdFx0aWYoISF2YWx1ZSAmJiAhdGhpcy51dGwuY3JlZGl0Q2FyZCh2YWx1ZSkpe1xyXG5cdFx0XHRyZXR1cm4geydjcmVkaXRfY2FyZCc6IHRoaXMubWIuY2FsbCgnY3JlZGl0X2NhcmQnLHRoaXMuZmllbGROYW1lLHRoaXMudm1lc3NhZ2UpfVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,41 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class CvvDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.fieldName = this.el.nativeElement.name;
14
+ }
15
+ set message(data) {
16
+ this.vmessage = data;
17
+ }
18
+ validate(control) {
19
+ this.utl.setValidationRules(control, 'cvv');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!!value && !this.utl.cvv(value)) {
24
+ return { 'cvv': this.mb.call('cvv', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ CvvDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CvvDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ CvvDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: CvvDirective, selector: "[cvv]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: CvvDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CvvDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[cvv]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: CvvDirective, multi: true }]
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { message: [{
38
+ type: Input,
39
+ args: ['message']
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Z2LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvY3Z2L2N2di5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sWUFBWTtJQVV4QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRixRQUFRLENBQUMsT0FBdUI7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQVk7UUFDM0IsSUFBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUM7WUFDbEMsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQTtTQUNoRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs7eUdBMUJXLFlBQVk7NkZBQVosWUFBWSxnRUFGVixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFdEUsWUFBWTtrQkFKeEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsT0FBTztvQkFDakIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDbEY7K0pBT08sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2N2dl0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQ3Z2RGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3Z2RGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG5cdEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcbiAgXHR2YWxpZGF0ZShjb250cm9sOkFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xyXG5cdFx0dGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsJ2N2dicpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLnZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaXNWYWxpZCh2YWx1ZTpzdHJpbmcpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdGlmKCEhdmFsdWUgJiYgIXRoaXMudXRsLmN2dih2YWx1ZSkpe1xyXG5cdFx0XHRyZXR1cm4geydjdnYnOiB0aGlzLm1iLmNhbGwoJ2N2dicsdGhpcy5maWVsZE5hbWUsdGhpcy52bWVzc2FnZSl9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,46 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { DEFAULT_DATE_FORMAT } from '../../constant';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/messages-builder.service";
6
+ import * as i2 from "../../services/utils.service";
7
+ export class DateDirective {
8
+ constructor(mb, el, utl) {
9
+ this.mb = mb;
10
+ this.el = el;
11
+ this.utl = utl;
12
+ this.vmessage = {};
13
+ this.fieldName = 'field';
14
+ this.date = '';
15
+ this.fieldName = this.el.nativeElement.name;
16
+ }
17
+ set message(data) {
18
+ this.vmessage = data;
19
+ }
20
+ validate(control) {
21
+ this.utl.setValidationRules(control, 'date');
22
+ return this.isValid(control.value, this.date || DEFAULT_DATE_FORMAT);
23
+ }
24
+ isValid(value, format) {
25
+ if (!!value && !this.utl.date(value, format)) {
26
+ return { 'date': this.mb.call('date', this.fieldName, this.vmessage) };
27
+ }
28
+ return null;
29
+ }
30
+ }
31
+ DateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
32
+ DateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DateDirective, selector: "[date]", inputs: { date: "date", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: DateDirective, multi: true }], ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ selector: '[date]',
37
+ providers: [{ provide: NG_VALIDATORS, useExisting: DateDirective, multi: true }]
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { date: [{
40
+ type: Input,
41
+ args: ['date']
42
+ }], message: [{
43
+ type: Input,
44
+ args: ['message']
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL2RhdGUvZGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVFyRCxNQUFNLE9BQU8sYUFBYTtJQVd6QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVpmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFFdEIsU0FBSSxHQUFZLEVBQUUsQ0FBQTtRQVVsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUFBLENBQUM7SUFUL0MsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVNGLFFBQVEsQ0FBQyxPQUF1QjtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsSUFBSSxJQUFJLG1CQUFtQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFZLEVBQUMsTUFBYTtRQUN6QyxJQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsTUFBTSxDQUFDLEVBQUM7WUFDMUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQTtTQUNsRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs7MEdBNUJXLGFBQWE7OEZBQWIsYUFBYSwrRUFIWCxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFHdkUsYUFBYTtrQkFMekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDbkY7K0pBT2tCLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFFVCxPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSxFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0RBVEVfRk9STUFUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZGF0ZV0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRGF0ZURpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG4gICAgQElucHV0KCdkYXRlJykgZGF0ZSA6IHN0cmluZyA9ICcnXHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1iXHQ6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcblxyXG4gIFx0dmFsaWRhdGUoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCdkYXRlJyk7XHJcblx0XHRyZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUsdGhpcy5kYXRlIHx8IERFRkFVTFRfREFURV9GT1JNQVQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc1ZhbGlkKHZhbHVlOnN0cmluZyxmb3JtYXQ6c3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGx7XHJcblx0XHRpZighIXZhbHVlICYmICF0aGlzLnV0bC5kYXRlKHZhbHVlLGZvcm1hdCkpe1xyXG5cdFx0XHRyZXR1cm4geydkYXRlJzogdGhpcy5tYi5jYWxsKCdkYXRlJyx0aGlzLmZpZWxkTmFtZSx0aGlzLnZtZXNzYWdlKX1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { DEFAULT_DATE_FORMAT } from '../../constant';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/messages-builder.service";
6
+ import * as i2 from "../../services/utils.service";
7
+ export class DateFormatDirective {
8
+ constructor(mb, el, utl) {
9
+ this.mb = mb;
10
+ this.el = el;
11
+ this.utl = utl;
12
+ this.vmessage = {};
13
+ this.fieldName = 'field';
14
+ this.dateFormat = '';
15
+ this.fieldName = this.el.nativeElement.name;
16
+ }
17
+ set message(data) {
18
+ this.vmessage = data;
19
+ }
20
+ validate(control) {
21
+ this.utl.setValidationRules(control, 'date_format');
22
+ return this.isValid(control.value, this.dateFormat || DEFAULT_DATE_FORMAT);
23
+ }
24
+ isValid(value, format) {
25
+ if (!!value && !this.utl.dateFormat(value, format)) {
26
+ return { 'date_format': this.mb.call('date_format', this.fieldName, this.dateFormat, this.vmessage) };
27
+ }
28
+ return null;
29
+ }
30
+ }
31
+ DateFormatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateFormatDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
32
+ DateFormatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DateFormatDirective, selector: "[dateFormat]", inputs: { dateFormat: "dateFormat", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: DateFormatDirective, multi: true }], ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateFormatDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ selector: '[dateFormat]',
37
+ providers: [{ provide: NG_VALIDATORS, useExisting: DateFormatDirective, multi: true }]
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { dateFormat: [{
40
+ type: Input,
41
+ args: ['dateFormat']
42
+ }], message: [{
43
+ type: Input,
44
+ args: ['message']
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9kYXRlX2Zvcm1hdC9kYXRlLWZvcm1hdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVFyRCxNQUFNLE9BQU8sbUJBQW1CO0lBVy9CLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWmYsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsY0FBUyxHQUFZLE9BQU8sQ0FBQztRQUVuQixlQUFVLEdBQVksRUFBRSxDQUFDO1FBVTVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQUEsQ0FBQztJQVQvQyxJQUNPLE9BQU8sQ0FBQyxJQUFxQjtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBU0QsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksbUJBQW1CLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3pDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDeEc7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztnSEE1QlEsbUJBQW1CO29HQUFuQixtQkFBbUIsaUdBSGpCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRzdFLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUN6RjsrSkFPcUIsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUVaLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLEVsZW1lbnRSZWYsSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF9EQVRFX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50JztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2RhdGVGb3JtYXRdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IERhdGVGb3JtYXREaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUZvcm1hdERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ2RhdGVGb3JtYXQnKSBkYXRlRm9ybWF0IDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1iXHQ6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAnZGF0ZV9mb3JtYXQnKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCB8fCBERUZBVUxUX0RBVEVfRk9STUFUKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWQodmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCEhdmFsdWUgJiYgIXRoaXMudXRsLmRhdGVGb3JtYXQodmFsdWUsIGZvcm1hdCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ2RhdGVfZm9ybWF0JzogdGhpcy5tYi5jYWxsKCdkYXRlX2Zvcm1hdCcsIHRoaXMuZmllbGROYW1lLCB0aGlzLmRhdGVGb3JtYXQsIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,43 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class DebitCardDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.fieldName = this.el.nativeElement.name;
14
+ }
15
+ set message(data) {
16
+ this.vmessage = data;
17
+ }
18
+ validate(control) {
19
+ this.utl.setValidationRules(control, 'debit_card', {
20
+ debit_card: this.utl.getCreditCardData(control.value)
21
+ });
22
+ return this.isValid(control.value);
23
+ }
24
+ isValid(value) {
25
+ if (!!value && !this.utl.debitCard(value)) {
26
+ return { 'debit_card': this.mb.call('debit_card', this.fieldName, this.vmessage) };
27
+ }
28
+ return null;
29
+ }
30
+ }
31
+ DebitCardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DebitCardDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
32
+ DebitCardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DebitCardDirective, selector: "[debitCard]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: DebitCardDirective, multi: true }], ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DebitCardDirective, decorators: [{
34
+ type: Directive,
35
+ args: [{
36
+ selector: '[debitCard]',
37
+ providers: [{ provide: NG_VALIDATORS, useExisting: DebitCardDirective, multi: true }]
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { message: [{
40
+ type: Input,
41
+ args: ['message']
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGViaXQtY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL2RlYml0X2NhcmQvZGViaXQtY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sa0JBQWtCO0lBVTlCLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWGYsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsY0FBUyxHQUFZLE9BQU8sQ0FBQztRQVd0QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUFBLENBQUM7SUFUL0MsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVFGLFFBQVEsQ0FBQyxPQUF1QjtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBQyxZQUFZLEVBQUM7WUFDaEQsVUFBVSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNwRCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFVSxPQUFPLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFBO1NBQ3JGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7K0dBNUJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNFQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUU1RSxrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDeEY7K0pBT08sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2RlYml0Q2FyZF0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRGViaXRDYXJkRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGViaXRDYXJkRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG5cdEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZTt9XHJcblxyXG4gIFx0dmFsaWRhdGUoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCdkZWJpdF9jYXJkJyx7XHJcblx0XHRcdGRlYml0X2NhcmQ6dGhpcy51dGwuZ2V0Q3JlZGl0Q2FyZERhdGEoY29udHJvbC52YWx1ZSlcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLnZhbHVlKTtcclxuXHR9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKHZhbHVlOiBudW1iZXIpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCEhdmFsdWUgJiYgIXRoaXMudXRsLmRlYml0Q2FyZCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ2RlYml0X2NhcmQnOiB0aGlzLm1iLmNhbGwoJ2RlYml0X2NhcmQnLCB0aGlzLmZpZWxkTmFtZSwgdGhpcy52bWVzc2FnZSkgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { debounceTime, Subject, takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/messages-builder.service";
6
+ import * as i2 from "../../services/utils.service";
7
+ export class DifferentDirective {
8
+ constructor(mb, el, utl) {
9
+ this.mb = mb;
10
+ this.el = el;
11
+ this.utl = utl;
12
+ this.vmessage = {};
13
+ this.destroy$ = new Subject();
14
+ this.wired = false;
15
+ this.fieldName = 'field';
16
+ this.fieldName = this.el.nativeElement.name;
17
+ }
18
+ set message(data) {
19
+ this.vmessage = data;
20
+ }
21
+ validate(control) {
22
+ this.utl.setValidationRules(control, 'different');
23
+ this.wireSiblingWatchers(control);
24
+ return this.isValid(control, this.different);
25
+ }
26
+ isValid(control, compared_value) {
27
+ if (!!control.value && !this.utl.different(control, compared_value)) {
28
+ return { 'different': this.mb.call('different', this.fieldName, this.different, this.vmessage) };
29
+ }
30
+ return null;
31
+ }
32
+ wireSiblingWatchers(control) {
33
+ if (this.wired)
34
+ return;
35
+ let sibling = control.root.get(this.different);
36
+ if (!sibling)
37
+ return;
38
+ this.wired = true;
39
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$)).subscribe(() => {
40
+ control.updateValueAndValidity({ onlySelf: true });
41
+ });
42
+ }
43
+ ngOnDestroy() {
44
+ this.destroy$.next();
45
+ this.destroy$.complete();
46
+ }
47
+ }
48
+ DifferentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DifferentDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
49
+ DifferentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DifferentDirective, selector: "[different]", inputs: { different: "different", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: DifferentDirective, multi: true }], ngImport: i0 });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DifferentDirective, decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: '[different]',
54
+ providers: [{ provide: NG_VALIDATORS, useExisting: DifferentDirective, multi: true }]
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { different: [{
57
+ type: Input,
58
+ args: ['different']
59
+ }], message: [{
60
+ type: Input,
61
+ args: ['message']
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvZGlmZmVyZW50L2RpZmZlcmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBMkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFPeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWE5QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQWRmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNqRCxVQUFLLEdBQWlCLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQWEsT0FBTyxDQUFDO1FBWXZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQUEsQ0FBQztJQVQvQyxJQUNPLE9BQU8sQ0FBQyxJQUFxQjtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBU0osUUFBUSxDQUFDLE9BQXdCO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBR1UsT0FBTyxDQUFDLE9BQXdCLEVBQUUsY0FBc0I7UUFDNUQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRTtZQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDbkc7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBZ0IsQ0FBQztRQUU5RCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pGLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7K0dBakRRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhGQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUU1RSxrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDeEY7K0pBUW9CLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFFWCxPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSxFbGVtZW50UmVmLElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUyxWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2RpZmZlcmVudF0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRGlmZmVyZW50RGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlmZmVyZW50RGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkRlc3Ryb3l7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSAgOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZGVzdHJveSQgIDogU3ViamVjdDx2b2lkPiAgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSB3aXJlZCAgICAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyAgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ2RpZmZlcmVudCcpIGRpZmZlcmVudCA6IGFueTtcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWU7fVxyXG5cclxuXHJcblx0dmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGx7XHJcblx0XHR0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwnZGlmZmVyZW50Jyk7XHJcbiAgICAgICAgdGhpcy53aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2wpXHJcblx0XHRyZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wsdGhpcy5kaWZmZXJlbnQpO1xyXG5cdH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgY29tcGFyZWRfdmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBpZiAoISFjb250cm9sLnZhbHVlICYmICF0aGlzLnV0bC5kaWZmZXJlbnQoY29udHJvbCwgY29tcGFyZWRfdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdkaWZmZXJlbnQnOiB0aGlzLm1iLmNhbGwoJ2RpZmZlcmVudCcsIHRoaXMuZmllbGROYW1lLCB0aGlzLmRpZmZlcmVudCwgdGhpcy52bWVzc2FnZSkgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHdpcmVTaWJsaW5nV2F0Y2hlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud2lyZWQpIHJldHVybjtcclxuICAgICAgICBsZXQgc2libGluZyA9IGNvbnRyb2wucm9vdC5nZXQodGhpcy5kaWZmZXJlbnQpIGFzIEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgICBpZiAoIXNpYmxpbmcpIHJldHVybjtcclxuICAgICAgICB0aGlzLndpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgc2libGluZy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSx0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_ASYNC_VALIDATORS } from '@angular/forms';
3
+ import { map, of } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/utils.service";
6
+ import * as i2 from "../../services/messages-builder.service";
7
+ export class DimensionDirective {
8
+ constructor(el, utl, mb) {
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.mb = mb;
12
+ this.vmessage = {};
13
+ this.fieldName = 'field';
14
+ this.dimension = [];
15
+ this.fieldName = this.el.nativeElement.name;
16
+ }
17
+ set message(data) {
18
+ this.vmessage = data;
19
+ }
20
+ validate(control) {
21
+ this.utl.setValidationRules(control, 'dimension');
22
+ return this.isValid();
23
+ }
24
+ isValid() {
25
+ let files = this.el.nativeElement.files;
26
+ if (files.length === 0) {
27
+ return of(null);
28
+ }
29
+ return this.utl.dimension(files, this.dimension).pipe(map((isValid) => {
30
+ return !isValid ? { 'dimension': this.mb.call('dimension', this.fieldName, this.dimension, this.vmessage) } : null;
31
+ }));
32
+ }
33
+ }
34
+ DimensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DimensionDirective, deps: [{ token: i0.ElementRef }, { token: i1.UtilService }, { token: i2.MessageBuilderService }], target: i0.ɵɵFactoryTarget.Directive });
35
+ DimensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DimensionDirective, selector: "[dimension]", inputs: { dimension: "dimension", message: "message" }, providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: DimensionDirective, multi: true }], ngImport: i0 });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DimensionDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[dimension]',
40
+ providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: DimensionDirective, multi: true }]
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.UtilService }, { type: i2.MessageBuilderService }]; }, propDecorators: { dimension: [{
43
+ type: Input,
44
+ args: ['dimension']
45
+ }], message: [{
46
+ type: Input,
47
+ args: ['message']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvZGltZW5zaW9uL2RpbWVuc2lvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFxRCxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFXOUIsWUFDUyxFQUFnQixFQUNoQixHQUFpQixFQUNYLEVBQTBCO1FBRmhDLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNYLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBWjlCLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFFcEIsY0FBUyxHQUFjLEVBQUUsQ0FBQztRQVU1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQTtJQUFBLENBQUM7SUFUM0MsSUFDSSxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVNELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRU8sT0FBTztRQUNYLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQWUsQ0FBQztRQUNsRCxJQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2xCO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDakQsR0FBRyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN0SCxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQzs7K0dBakNRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhGQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRWxGLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzlGOytKQU1vQixTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBRVgsT0FBTztzQkFEVixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfQVNZTkNfVkFMSURBVE9SUywgQXN5bmNWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZGltZW5zaW9uXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBEaW1lbnNpb25EaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaW1lbnNpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ2RpbWVuc2lvbicpIGRpbWVuc2lvbiA6IHN0cmluZ1tdID0gW107XHJcbiAgICBASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XHJcbiAgICAgICAgdGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsICdkaW1lbnNpb24nKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKClcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWQoKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XHJcbiAgICAgICAgbGV0IGZpbGVzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZpbGVzIGFzIEZpbGVbXTtcclxuICAgICAgICBpZihmaWxlcy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXRsLmRpbWVuc2lvbihmaWxlcywgdGhpcy5kaW1lbnNpb24pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoaXNWYWxpZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc1ZhbGlkID8geyAnZGltZW5zaW9uJzogdGhpcy5tYi5jYWxsKCdkaW1lbnNpb24nLCB0aGlzLmZpZWxkTmFtZSwgdGhpcy5kaW1lbnNpb24sIHRoaXMudm1lc3NhZ2UpIH0gOiBudWxsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,41 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class EmailDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.fieldName = this.el.nativeElement.name;
14
+ }
15
+ set message(data) {
16
+ this.vmessage = data;
17
+ }
18
+ validate(control) {
19
+ this.utl.setValidationRules(control, 'email');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!!value && !this.utl.email(value)) {
24
+ return { 'email': this.mb.call('email', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ EmailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EmailDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ EmailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: EmailDirective, selector: "[email]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: EmailDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EmailDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[email]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: EmailDirective, multi: true }]
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { message: [{
38
+ type: Input,
39
+ args: ['message']
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9lbWFpbC9lbWFpbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sY0FBYztJQVUxQixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFBQSxDQUFDO0lBVC9DLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFTRixRQUFRLENBQUMsT0FBdUI7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVUsT0FBTyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUMzRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzJHQTNCUSxjQUFjOytGQUFkLGNBQWMsa0VBRlosQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXhFLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDcEY7K0pBT08sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZixJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZW1haWxdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IEVtYWlsRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1haWxEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3J7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSAgOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1iXHQ6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcblxyXG4gIFx0dmFsaWRhdGUoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCdlbWFpbCcpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLnZhbHVlKTtcclxuXHR9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCEhdmFsdWUgJiYgIXRoaXMudXRsLmVtYWlsKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyAnZW1haWwnOiB0aGlzLm1iLmNhbGwoJ2VtYWlsJywgdGhpcy5maWVsZE5hbWUsIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,45 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class EndsWithDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.endsWith = [];
14
+ this.fieldName = this.el.nativeElement.name;
15
+ }
16
+ set message(data) {
17
+ this.vmessage = data;
18
+ }
19
+ validate(control) {
20
+ this.utl.setValidationRules(control, 'ends_with');
21
+ return this.isValid(control.value);
22
+ }
23
+ isValid(value) {
24
+ if (!!value && !this.utl.endsWith(value, this.endsWith)) {
25
+ return { 'ends_with': this.mb.call('ends_with', this.fieldName, this.endsWith, this.vmessage) };
26
+ }
27
+ return null;
28
+ }
29
+ }
30
+ EndsWithDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EndsWithDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
31
+ EndsWithDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: EndsWithDirective, selector: "[endsWith]", inputs: { endsWith: "endsWith", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: EndsWithDirective, multi: true }], ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EndsWithDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[endsWith]',
36
+ providers: [{ provide: NG_VALIDATORS, useExisting: EndsWithDirective, multi: true }]
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { endsWith: [{
39
+ type: Input,
40
+ args: ['endsWith']
41
+ }], message: [{
42
+ type: Input,
43
+ args: ['message']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcy13aXRoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvZW5kc193aXRoL2VuZHMtd2l0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8saUJBQWlCO0lBVzdCLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWmYsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsY0FBUyxHQUFZLE9BQU8sQ0FBQztRQUVyQixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBVTFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQUEsQ0FBQztJQVQvQyxJQUNPLE9BQU8sQ0FBQyxJQUFxQjtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBU0YsUUFBUSxDQUFDLE9BQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFZO1FBQzNCLElBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUM7WUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFBO1NBQzFGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDOzs4R0E1QlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkZBRmYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFM0UsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3ZGOytKQU1tQixRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBRVYsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZixJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZW5kc1dpdGhdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IEVuZHNXaXRoRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW5kc1dpdGhEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3J7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSAgOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdlbmRzV2l0aCcpIGVuZHNXaXRoIDogc3RyaW5nW10gPSBbXTtcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWU7fVxyXG5cclxuXHJcbiAgXHR2YWxpZGF0ZShjb250cm9sOkFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xyXG5cdFx0dGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsJ2VuZHNfd2l0aCcpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLnZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaXNWYWxpZCh2YWx1ZTpzdHJpbmcpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdGlmKCEhdmFsdWUgJiYgIXRoaXMudXRsLmVuZHNXaXRoKHZhbHVlLHRoaXMuZW5kc1dpdGgpKXtcclxuXHRcdFx0cmV0dXJuIHsnZW5kc193aXRoJzogdGhpcy5tYi5jYWxsKCdlbmRzX3dpdGgnLHRoaXMuZmllbGROYW1lLHRoaXMuZW5kc1dpdGgsdGhpcy52bWVzc2FnZSl9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,45 @@
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/messages-builder.service";
5
+ import * as i2 from "../../services/utils.service";
6
+ export class EqualsDirective {
7
+ constructor(mb, el, utl) {
8
+ this.mb = mb;
9
+ this.el = el;
10
+ this.utl = utl;
11
+ this.vmessage = {};
12
+ this.fieldName = 'field';
13
+ this.equals = '';
14
+ this.fieldName = this.el.nativeElement.name;
15
+ }
16
+ set message(data) {
17
+ this.vmessage = data;
18
+ }
19
+ validate(control) {
20
+ this.utl.setValidationRules(control, 'equals');
21
+ return this.isValid(control.value);
22
+ }
23
+ isValid(value) {
24
+ if (!!value && !this.utl.equals(value, this.equals)) {
25
+ return { 'equals': this.mb.call('equals', this.fieldName, this.equals, this.vmessage) };
26
+ }
27
+ return null;
28
+ }
29
+ }
30
+ EqualsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EqualsDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
31
+ EqualsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: EqualsDirective, selector: "[equals]", inputs: { equals: "equals", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: EqualsDirective, multi: true }], ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EqualsDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[equals]',
36
+ providers: [{ provide: NG_VALIDATORS, useExisting: EqualsDirective, multi: true }]
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { equals: [{
39
+ type: Input,
40
+ args: ['equals']
41
+ }], message: [{
42
+ type: Input,
43
+ args: ['message']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvZXF1YWxzL2VxdWFscy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sZUFBZTtJQVczQixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVpmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFFdkIsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQVVwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUFBLENBQUM7SUFUL0MsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVFGLFFBQVEsQ0FBQyxPQUF1QjtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBWTtRQUMzQixJQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDO1lBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQTtTQUNsRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs7NEdBM0JXLGVBQWU7Z0dBQWYsZUFBZSxxRkFGYixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFekUsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUNyRjsrSkFNaUIsTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUVSLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLEVsZW1lbnRSZWYsSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2VxdWFsc10nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRXF1YWxzRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXF1YWxzRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG5cdEBJbnB1dCgnZXF1YWxzJykgZXF1YWxzIDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1iXHQ6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcbiAgXHR2YWxpZGF0ZShjb250cm9sOkFic3RyYWN0Q29udHJvbCkgOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcclxuXHRcdHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCdlcXVhbHMnKTtcclxuXHRcdHJldHVybiB0aGlzLmlzVmFsaWQoY29udHJvbC52YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGlzVmFsaWQodmFsdWU6c3RyaW5nKSA6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xyXG5cdFx0aWYoISF2YWx1ZSAmJiAhdGhpcy51dGwuZXF1YWxzKHZhbHVlLHRoaXMuZXF1YWxzKSl7XHJcblx0XHRcdHJldHVybiB7J2VxdWFscyc6IHRoaXMubWIuY2FsbCgnZXF1YWxzJyx0aGlzLmZpZWxkTmFtZSx0aGlzLmVxdWFscyx0aGlzLnZtZXNzYWdlKX1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxufVxyXG4iXX0=