@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,62 @@
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 SameDirective {
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, 'same');
23
+ this.wireSiblingWatchers(control);
24
+ return this.isValid(control, this.same);
25
+ }
26
+ isValid(control, args) {
27
+ if (!this.utl.same(control, args) && !!control.value) {
28
+ return { 'same': this.mb.call('same', this.fieldName, this.same, this.vmessage) };
29
+ }
30
+ return null;
31
+ }
32
+ wireSiblingWatchers(control) {
33
+ if (this.wired)
34
+ return;
35
+ let sibling = control.root.get(this.same);
36
+ if (!sibling)
37
+ return;
38
+ this.wired = true;
39
+ sibling.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$))
40
+ .subscribe(() => control.updateValueAndValidity({ onlySelf: true }));
41
+ }
42
+ ngOnDestroy() {
43
+ this.destroy$.next();
44
+ this.destroy$.complete();
45
+ }
46
+ }
47
+ SameDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SameDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
48
+ SameDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: SameDirective, selector: "[same]", inputs: { same: "same", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: SameDirective, multi: true }], ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SameDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[same]',
53
+ providers: [{ provide: NG_VALIDATORS, useExisting: SameDirective, multi: true }]
54
+ }]
55
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { same: [{
56
+ type: Input,
57
+ args: ['same']
58
+ }], message: [{
59
+ type: Input,
60
+ args: ['message']
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3NhbWUvc2FtZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBOEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFPeEQsTUFBTSxPQUFPLGFBQWE7SUFhekIsWUFDUyxFQUEwQixFQUMxQixFQUFnQixFQUNoQixHQUFpQjtRQUZqQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFkZixhQUFRLEdBQXVCLEVBQUUsQ0FBQTtRQUNqQyxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDakQsVUFBSyxHQUFpQixLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFhLE9BQU8sQ0FBQztRQVl2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUFBLENBQUM7SUFUL0MsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVNELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUF3QixFQUFFLElBQVk7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDcEY7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzswR0EvQ1EsYUFBYTs4RkFBYixhQUFhLCtFQUZYLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUV2RSxhQUFhO2tCQUp6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUNuRjsrSkFRZSxJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBRU4sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZixJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3NhbWVdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFNhbWVEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYW1lRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkRlc3Ryb3l7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSAgOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZGVzdHJveSQgIDogU3ViamVjdDx2b2lkPiAgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSB3aXJlZCAgICAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyAgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ3NhbWUnKSBzYW1lICE6IHN0cmluZztcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWU7fVxyXG5cclxuXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgdGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsICdzYW1lJyk7XHJcbiAgICAgICAgdGhpcy53aXJlU2libGluZ1dhdGNoZXJzKGNvbnRyb2wpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZChjb250cm9sLCB0aGlzLnNhbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGFyZ3M6IHN0cmluZyk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBpZiAoIXRoaXMudXRsLnNhbWUoY29udHJvbCwgYXJncykgJiYgISFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdzYW1lJzogdGhpcy5tYi5jYWxsKCdzYW1lJywgdGhpcy5maWVsZE5hbWUsIHRoaXMuc2FtZSwgdGhpcy52bWVzc2FnZSkgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHdpcmVTaWJsaW5nV2F0Y2hlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud2lyZWQpIHJldHVybjtcclxuICAgICAgICBsZXQgc2libGluZyA9IGNvbnRyb2wucm9vdC5nZXQodGhpcy5zYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKCFzaWJsaW5nKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy53aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHNpYmxpbmcudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,44 @@
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 SizeDirective {
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, 'mimes');
20
+ return this.isValid(this.el.nativeElement.files, this.size);
21
+ }
22
+ isValid(fileInstance, mimes) {
23
+ if (!!fileInstance && fileInstance.length > 0 && !this.utl.size(fileInstance, mimes)) {
24
+ return { 'size': this.mb.call('size', this.fieldName, mimes, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ SizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SizeDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ SizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: SizeDirective, selector: "[size]", inputs: { size: "size", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: SizeDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SizeDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[size]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: SizeDirective, multi: true }]
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { size: [{
38
+ type: Input,
39
+ args: ['size']
40
+ }], message: [{
41
+ type: Input,
42
+ args: ['message']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3NpemUvc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sYUFBYTtJQVd6QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVpmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFZdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVPLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEtBQWE7UUFDL0MsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFBO1NBQ2hGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7MEdBM0JRLGFBQWE7OEZBQWIsYUFBYSwrRUFGWCxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFdkUsYUFBYTtrQkFKekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDbkY7K0pBTWUsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUVOLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvcixBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2VzLWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tzaXplXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBTaXplRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2l6ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ3NpemUnKSBzaXplICE6bnVtYmVyO1xyXG5cdEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgdGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsICdtaW1lcycpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQodGhpcy5lbC5uYXRpdmVFbGVtZW50LmZpbGVzLCB0aGlzLnNpemUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGZpbGVJbnN0YW5jZTogRmlsZVtdLCBtaW1lczogbnVtYmVyKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIWZpbGVJbnN0YW5jZSAmJiBmaWxlSW5zdGFuY2UubGVuZ3RoID4gMCAmJiAhdGhpcy51dGwuc2l6ZShmaWxlSW5zdGFuY2UsIG1pbWVzKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyAnc2l6ZSc6IHRoaXMubWIuY2FsbCgnc2l6ZScsIHRoaXMuZmllbGROYW1lLCBtaW1lcywgdGhpcy52bWVzc2FnZSkgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -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 StartsWithDirective {
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.startsWith = [];
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, 'starts_with');
21
+ return this.isValid(control.value);
22
+ }
23
+ isValid(value) {
24
+ if (!!value && !this.utl.startsWith(value, this.startsWith)) {
25
+ return { 'starts_with': this.mb.call('starts_with', this.fieldName, this.startsWith, this.vmessage) };
26
+ }
27
+ return null;
28
+ }
29
+ }
30
+ StartsWithDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StartsWithDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
31
+ StartsWithDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: StartsWithDirective, selector: "[startsWith]", inputs: { startsWith: "startsWith", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: StartsWithDirective, multi: true }], ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StartsWithDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[startsWith]',
36
+ providers: [{ provide: NG_VALIDATORS, useExisting: StartsWithDirective, multi: true }]
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { startsWith: [{
39
+ type: Input,
40
+ args: ['startsWith']
41
+ }], message: [{
42
+ type: Input,
43
+ args: ['message']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRzLXdpdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9zdGFydHNfd2l0aC9zdGFydHMtd2l0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sbUJBQW1CO0lBVy9CLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWmYsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsY0FBUyxHQUFZLE9BQU8sQ0FBQztRQUVuQixlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQVV2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUFBLENBQUM7SUFUL0MsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVNELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUN4RztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O2dIQTVCUSxtQkFBbUI7b0dBQW5CLG1CQUFtQixpR0FGakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFN0UsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3pGOytKQU1xQixVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBRVosT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZixJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlcy1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbc3RhcnRzV2l0aF0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogU3RhcnRzV2l0aERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXJ0c1dpdGhEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3J7XHJcblxyXG4gICAgcHJpdmF0ZSB2bWVzc2FnZSAgOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZmllbGROYW1lIDogc3RyaW5nID0gJ2ZpZWxkJztcclxuXHJcblx0QElucHV0KCdzdGFydHNXaXRoJykgc3RhcnRzV2l0aCA6IHN0cmluZyB8IHN0cmluZ1tdID0gW107XHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1iXHQ6IE1lc3NhZ2VCdWlsZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgZWwgXHQ6IEVsZW1lbnRSZWYsXHJcblx0XHRwcml2YXRlIHV0bCA6IFV0aWxTZXJ2aWNlXHJcblx0KXt0aGlzLmZpZWxkTmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5uYW1lO31cclxuXHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAnc3RhcnRzX3dpdGgnKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIXZhbHVlICYmICF0aGlzLnV0bC5zdGFydHNXaXRoKHZhbHVlLCB0aGlzLnN0YXJ0c1dpdGgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdzdGFydHNfd2l0aCc6IHRoaXMubWIuY2FsbCgnc3RhcnRzX3dpdGgnLCB0aGlzLmZpZWxkTmFtZSwgdGhpcy5zdGFydHNXaXRoLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,47 @@
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 StrengthDirective {
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.strength = [];
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, 'strength', {
21
+ strength: this.utl.getStrengthData(control.value, this.strength)
22
+ });
23
+ return this.isValid(control.value);
24
+ }
25
+ isValid(value) {
26
+ if (!!value && !this.utl.strength(value, this.strength)) {
27
+ return { 'strength': this.mb.call('strength', this.fieldName, this.vmessage) };
28
+ }
29
+ return null;
30
+ }
31
+ }
32
+ StrengthDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StrengthDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
33
+ StrengthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: StrengthDirective, selector: "[strength]", inputs: { strength: "strength", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: StrengthDirective, multi: true }], ngImport: i0 });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StrengthDirective, decorators: [{
35
+ type: Directive,
36
+ args: [{
37
+ selector: '[strength]',
38
+ providers: [{ provide: NG_VALIDATORS, useExisting: StrengthDirective, multi: true }]
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { strength: [{
41
+ type: Input,
42
+ args: ['strength']
43
+ }], message: [{
44
+ type: Input,
45
+ args: ['message']
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZW5ndGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS9zdHJlbmd0aC9zdHJlbmd0aC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8saUJBQWlCO0lBVzdCLFlBQ1MsRUFBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsR0FBaUI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBWmYsYUFBUSxHQUF1QixFQUFFLENBQUE7UUFDakMsY0FBUyxHQUFZLE9BQU8sQ0FBQTtRQUVwQixhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQVVuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQTtJQUFBLENBQUM7SUFUOUMsSUFDTyxPQUFPLENBQUMsSUFBcUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDeEIsQ0FBQztJQVFELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUE7U0FDakY7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs4R0E3QlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkZBRmYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFM0UsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3ZGOytKQU1tQixRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBRVYsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3N0cmVuZ3RoXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBTdHJlbmd0aERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0cmVuZ3RoRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCdcclxuXHJcblx0QElucHV0KCdzdHJlbmd0aCcpIHN0cmVuZ3RoIDogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTtcclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWV9XHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAnc3RyZW5ndGgnLCB7XHJcbiAgICAgICAgICAgIHN0cmVuZ3RoOiB0aGlzLnV0bC5nZXRTdHJlbmd0aERhdGEoY29udHJvbC52YWx1ZSwgdGhpcy5zdHJlbmd0aClcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIXZhbHVlICYmICF0aGlzLnV0bC5zdHJlbmd0aCh2YWx1ZSwgdGhpcy5zdHJlbmd0aCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3N0cmVuZ3RoJzogdGhpcy5tYi5jYWxsKCdzdHJlbmd0aCcsIHRoaXMuZmllbGROYW1lLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -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 StringDirective {
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, 'string');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!this.utl.string(value) && !!value) {
24
+ return { 'string': this.mb.call('string', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ StringDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StringDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ StringDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: StringDirective, selector: "[string]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: StringDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StringDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[string]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: StringDirective, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvc3RyaW5nL3N0cmluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sZUFBZTtJQVUzQixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFRRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUM3RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzRHQTFCUSxlQUFlO2dHQUFmLGVBQWUsbUVBRmIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXpFLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDckY7K0pBT08sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3N0cmluZ10nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogU3RyaW5nRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RyaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG5cdEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgdGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsICdzdHJpbmcnKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy51dGwuc3RyaW5nKHZhbHVlKSAmJiAhIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdzdHJpbmcnOiB0aGlzLm1iLmNhbGwoJ3N0cmluZycsIHRoaXMuZmllbGROYW1lLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,44 @@
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 UnderDirective {
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, 'under');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!!value && !this.utl.under(value, this.under)) {
24
+ return { 'under': this.mb.call('under', this.fieldName, this.under, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ UnderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UnderDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ UnderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: UnderDirective, selector: "[under]", inputs: { under: "under", message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: UnderDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UnderDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[under]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: UnderDirective, multi: true }]
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.MessageBuilderService }, { type: i0.ElementRef }, { type: i2.UtilService }]; }, propDecorators: { under: [{
38
+ type: Input,
39
+ args: ['under']
40
+ }], message: [{
41
+ type: Input,
42
+ args: ['message']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS91bmRlci91bmRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBZ0QsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM3RixNQUFNLE9BQU8sY0FBYztJQVd2QixZQUNZLEVBQTBCLEVBQzFCLEVBQWUsRUFDZixHQUFnQjtRQUZoQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQVpwQixhQUFRLEdBQXFCLEVBQUUsQ0FBQTtRQUMvQixjQUFTLEdBQVcsT0FBTyxDQUFDO1FBWWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFBO0lBQUMsQ0FBQztJQVRqRCxJQUNJLE9BQU8sQ0FBQyxJQUFzQjtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBUUQsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFBO1NBQ3ZGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7MkdBM0JRLGNBQWM7K0ZBQWQsY0FBYyxrRkFGWixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFeEUsY0FBYztrQkFKMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUNwRjsrSkFNbUIsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUVWLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3VuZGVyXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBVbmRlckRpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVuZGVyRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlOiBMb2NhbGl6ZWRNZXNzYWdlID0ge31cclxuICAgIHByaXZhdGUgZmllbGROYW1lOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuICAgIEBJbnB1dCgndW5kZXInKSB1bmRlcjogYW55O1xyXG4gICAgQElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6IExvY2FsaXplZE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbWIgOiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlbCA6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSB1dGw6IFV0aWxTZXJ2aWNlXHJcbiAgICApIHsgdGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZSB9XHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAndW5kZXInKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIXZhbHVlICYmICF0aGlzLnV0bC51bmRlcih2YWx1ZSwgdGhpcy51bmRlcikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3VuZGVyJzogdGhpcy5tYi5jYWxsKCd1bmRlcicsIHRoaXMuZmllbGROYW1lLCB0aGlzLnVuZGVyLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_ASYNC_VALIDATORS } from '@angular/forms';
3
+ import { debounceTime, distinctUntilChanged, first, map, of, switchMap } from 'rxjs';
4
+ import { cloneDeep } from '../../common.utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/utils.service";
7
+ import * as i2 from "../../services/messages-builder.service";
8
+ export class UniqueDirective {
9
+ constructor(el, utl, mb) {
10
+ this.el = el;
11
+ this.utl = utl;
12
+ this.mb = mb;
13
+ this.vmessage = {};
14
+ this.fieldName = 'field';
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, 'unique');
22
+ return control.valueChanges.pipe(debounceTime(200), distinctUntilChanged(), switchMap((value) => value ? this.isValid(value) : of(null)), first());
23
+ }
24
+ isValid(value) {
25
+ let cloned = cloneDeep(this.unique);
26
+ let request = { ...{ [this.unique.field || this.fieldName]: value }, ...cloned['request'] };
27
+ let unique = Object.assign(cloned, { request });
28
+ return this.utl.unique(unique).pipe(map((isValid) => {
29
+ return !isValid ? { 'unique': this.mb.call('unique', this.fieldName, this.vmessage) } : null;
30
+ }));
31
+ }
32
+ }
33
+ UniqueDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UniqueDirective, deps: [{ token: i0.ElementRef }, { token: i1.UtilService }, { token: i2.MessageBuilderService }], target: i0.ɵɵFactoryTarget.Directive });
34
+ UniqueDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: UniqueDirective, selector: "[unique]", inputs: { unique: "unique", message: "message" }, providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: UniqueDirective, multi: true }], ngImport: i0 });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UniqueDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[unique]',
39
+ providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: UniqueDirective, multi: true }]
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.UtilService }, { type: i2.MessageBuilderService }]; }, propDecorators: { unique: [{
42
+ type: Input,
43
+ args: ['unique']
44
+ }], message: [{
45
+ type: Input,
46
+ args: ['message']
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvdW5pcXVlL3VuaXF1ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFxRCxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU0vQyxNQUFNLE9BQU8sZUFBZTtJQVczQixZQUNTLEVBQWdCLEVBQ2hCLEdBQWlCLEVBQ2pCLEVBQTBCO1FBRjFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQVp4QixhQUFRLEdBQXVCLEVBQUUsQ0FBQTtRQUNqQyxjQUFTLEdBQVksT0FBTyxDQUFDO1FBWXRDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFBO0lBQUEsQ0FBQztJQVQ5QyxJQUNPLE9BQU8sQ0FBQyxJQUFxQjtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBU0QsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM1RCxLQUFLLEVBQUUsQ0FDVixDQUFBO0lBQ0wsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFhO1FBQ3pCLElBQUksTUFBTSxHQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQTtRQUMzRixJQUFJLE1BQU0sR0FBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUE7UUFFN0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNyQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQ2hHLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzs0R0F0Q1EsZUFBZTtnR0FBZixlQUFlLHFGQUZiLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRS9FLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUMzRjsrSkFNaUIsTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUVSLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX0FTWU5DX1ZBTElEQVRPUlMsIEFzeW5jVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RBcmdzLCBMb2NhbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uLnV0aWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbdW5pcXVlXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBVbmlxdWVEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmlxdWVEaXJlY3RpdmUgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ3VuaXF1ZScpIHVuaXF1ZSAhOiBIdHRwUmVxdWVzdEFyZ3M7XHJcblx0QElucHV0KCdtZXNzYWdlJylcclxuICAgIHNldCBtZXNzYWdlKGRhdGE6TG9jYWxpemVkTWVzc2FnZSl7XHJcbiAgICAgICAgdGhpcy52bWVzc2FnZSA9IGRhdGFcclxuICAgIH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZSxcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XHJcbiAgICAgICAgdGhpcy51dGwuc2V0VmFsaWRhdGlvblJ1bGVzKGNvbnRyb2wsICd1bmlxdWUnKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHZhbHVlID8gdGhpcy5pc1ZhbGlkKHZhbHVlKSA6IG9mKG51bGwpKSxcclxuICAgICAgICAgICAgZmlyc3QoKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xyXG4gICAgICAgIGxldCBjbG9uZWQgID0gY2xvbmVEZWVwKHRoaXMudW5pcXVlKVxyXG4gICAgICAgIGxldCByZXF1ZXN0ID0geyAuLi57IFt0aGlzLnVuaXF1ZS5maWVsZCB8fCB0aGlzLmZpZWxkTmFtZV06IHZhbHVlIH0sIC4uLmNsb25lZFsncmVxdWVzdCddIH1cclxuICAgICAgICBsZXQgdW5pcXVlICA9IE9iamVjdC5hc3NpZ24oY2xvbmVkLHtyZXF1ZXN0fSlcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXRsLnVuaXF1ZSh1bmlxdWUpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoaXNWYWxpZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc1ZhbGlkID8geyAndW5pcXVlJzogdGhpcy5tYi5jYWxsKCd1bmlxdWUnLCB0aGlzLmZpZWxkTmFtZSwgdGhpcy52bWVzc2FnZSkgfSA6IG51bGxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -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 UrlDirective {
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, 'url');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!!value && !this.utl.url(value)) {
24
+ return { 'url': this.mb.call('url', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ UrlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UrlDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ UrlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: UrlDirective, selector: "[url]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: UrlDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UrlDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[url]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: UrlDirective, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWFic29sdXRlLXZhbGlkYXRvci9zcmMvbGliL3J1bGUvdXJsL3VybC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sWUFBWTtJQVV4QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFTRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUN2RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3lHQTNCUSxZQUFZOzZGQUFaLFlBQVksZ0VBRlYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXRFLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ2xGOytKQU9PLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCxFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvcixBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2VzLWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1t1cmxdJyxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFVybERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVybERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWV9XHJcblxyXG5cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICB0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwgJ3VybCcpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoY29udHJvbC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCEhdmFsdWUgJiYgIXRoaXMudXRsLnVybCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgJ3VybCc6IHRoaXMubWIuY2FsbCgndXJsJywgdGhpcy5maWVsZE5hbWUsIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -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 UuidDirective {
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, 'uuid');
20
+ return this.isValid(control.value);
21
+ }
22
+ isValid(value) {
23
+ if (!!value && !this.utl.uuid(value)) {
24
+ return { 'uuid': this.mb.call('uuid', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ UuidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UuidDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ UuidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: UuidDirective, selector: "[uuid]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: UuidDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UuidDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[uuid]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: UuidDirective, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9ydWxlL3V1aWQvdXVpZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sYUFBYTtJQVV6QixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFTRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUN6RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzBHQTNCUSxhQUFhOzhGQUFiLGFBQWEsaUVBRlgsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXZFLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ25GOytKQU9PLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCxFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvcixBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2VzLWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1t1dWlkXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBVdWlkRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXVpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvcntcclxuXHJcbiAgICBwcml2YXRlIHZtZXNzYWdlICA6IExvY2FsaXplZE1lc3NhZ2UgPSB7fVxyXG4gICAgcHJpdmF0ZSBmaWVsZE5hbWUgOiBzdHJpbmcgPSAnZmllbGQnO1xyXG5cclxuXHRASW5wdXQoJ21lc3NhZ2UnKVxyXG4gICAgc2V0IG1lc3NhZ2UoZGF0YTpMb2NhbGl6ZWRNZXNzYWdlKXtcclxuICAgICAgICB0aGlzLnZtZXNzYWdlID0gZGF0YVxyXG4gICAgfVxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWJcdDogTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBlbCBcdDogRWxlbWVudFJlZixcclxuXHRcdHByaXZhdGUgdXRsIDogVXRpbFNlcnZpY2VcclxuXHQpe3RoaXMuZmllbGROYW1lID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5hbWV9XHJcblxyXG5cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICB0aGlzLnV0bC5zZXRWYWxpZGF0aW9uUnVsZXMoY29udHJvbCwgJ3V1aWQnKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIXZhbHVlICYmICF0aGlzLnV0bC51dWlkKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyAndXVpZCc6IHRoaXMubWIuY2FsbCgndXVpZCcsIHRoaXMuZmllbGROYW1lLCB0aGlzLnZtZXNzYWdlKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -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 VideoDirective {
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, 'video');
20
+ return this.isValid(this.el.nativeElement.files);
21
+ }
22
+ isValid(fileInstance) {
23
+ if (!!fileInstance && fileInstance.length > 0 && !this.utl.video(fileInstance)) {
24
+ return { 'video': this.mb.call('video', this.fieldName, this.vmessage) };
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ VideoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VideoDirective, deps: [{ token: i1.MessageBuilderService }, { token: i0.ElementRef }, { token: i2.UtilService }], target: i0.ɵɵFactoryTarget.Directive });
30
+ VideoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: VideoDirective, selector: "[video]", inputs: { message: "message" }, providers: [{ provide: NG_VALIDATORS, useExisting: VideoDirective, multi: true }], ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: VideoDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[video]',
35
+ providers: [{ provide: NG_VALIDATORS, useExisting: VideoDirective, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvcnVsZS92aWRlby92aWRlby5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBK0MsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM1RixNQUFNLE9BQU8sY0FBYztJQVUxQixZQUNTLEVBQTBCLEVBQzFCLEVBQWdCLEVBQ2hCLEdBQWlCO1FBRmpCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBYztRQVhmLGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBQ2pDLGNBQVMsR0FBWSxPQUFPLENBQUM7UUFXdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUE7SUFBQSxDQUFDO0lBVDlDLElBQ08sT0FBTyxDQUFDLElBQXFCO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO0lBQ3hCLENBQUM7SUFTRCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxPQUFPLENBQUMsWUFBb0I7UUFDaEMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtTQUMzRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzJHQTNCUSxjQUFjOytGQUFkLGNBQWMsa0VBRlosQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7MkZBRXhFLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDcEY7K0pBT08sT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3ZpZGVvXScsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBWaWRlb0RpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZGVvRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9ye1xyXG5cclxuICAgIHByaXZhdGUgdm1lc3NhZ2UgIDogTG9jYWxpemVkTWVzc2FnZSA9IHt9XHJcbiAgICBwcml2YXRlIGZpZWxkTmFtZSA6IHN0cmluZyA9ICdmaWVsZCc7XHJcblxyXG5cdEBJbnB1dCgnbWVzc2FnZScpXHJcbiAgICBzZXQgbWVzc2FnZShkYXRhOkxvY2FsaXplZE1lc3NhZ2Upe1xyXG4gICAgICAgIHRoaXMudm1lc3NhZ2UgPSBkYXRhXHJcbiAgICB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtYlx0OiBNZXNzYWdlQnVpbGRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGVsIFx0OiBFbGVtZW50UmVmLFxyXG5cdFx0cHJpdmF0ZSB1dGwgOiBVdGlsU2VydmljZVxyXG5cdCl7dGhpcy5maWVsZE5hbWUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZX1cclxuXHJcblxyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIHRoaXMudXRsLnNldFZhbGlkYXRpb25SdWxlcyhjb250cm9sLCAndmlkZW8nKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5maWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGZpbGVJbnN0YW5jZTogRmlsZVtdKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGlmICghIWZpbGVJbnN0YW5jZSAmJiBmaWxlSW5zdGFuY2UubGVuZ3RoID4gMCAmJiAhdGhpcy51dGwudmlkZW8oZmlsZUluc3RhbmNlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyAndmlkZW8nOiB0aGlzLm1iLmNhbGwoJ3ZpZGVvJywgdGhpcy5maWVsZE5hbWUsIHRoaXMudm1lc3NhZ2UpIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class HttpRequestService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ get(action_url, params = {}) {
9
+ return this.http.get(action_url, { params });
10
+ }
11
+ post(action_url, data = {}, params = {}) {
12
+ return this.http.post(action_url, data, { params });
13
+ }
14
+ }
15
+ HttpRequestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpRequestService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ HttpRequestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpRequestService });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpRequestService, decorators: [{
18
+ type: Injectable
19
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5yZXF1ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hYnNvbHV0ZS12YWxpZGF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9odHRwLnJlcXVlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNjLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDMUIsQ0FBQztJQUVMLEdBQUcsQ0FBQyxVQUFrQixFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQWtCLEVBQUUsT0FBWSxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOzsrR0FaUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBnZXQoYWN0aW9uX3VybDogc3RyaW5nLCBwYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KGFjdGlvbl91cmwsIHsgcGFyYW1zIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc3QoYWN0aW9uX3VybDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSwgcGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4oYWN0aW9uX3VybCwgZGF0YSwgeyBwYXJhbXMgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,46 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { toArray } from '../common.utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class MessageBuilderService {
6
+ constructor(ts) {
7
+ this.ts = ts;
8
+ }
9
+ call(langAttr, attribute, ...args) {
10
+ let message = '';
11
+ let [lastElement] = args.slice(-1);
12
+ let template = this.ts.instant(langAttr) || '';
13
+ let hasCustomTemplate = typeof lastElement === 'object' && Object.keys(lastElement).length > 0;
14
+ if (hasCustomTemplate && lastElement[langAttr] && lastElement[langAttr][this.ts.currentLang]) {
15
+ template = lastElement[langAttr][this.ts.currentLang];
16
+ }
17
+ if (hasCustomTemplate && lastElement[this.ts.currentLang]) {
18
+ template = lastElement[this.ts.currentLang];
19
+ }
20
+ if (attribute && template) {
21
+ message = template.replace(':attribute', attribute);
22
+ }
23
+ if (args.length === 0) {
24
+ return message;
25
+ }
26
+ args.forEach((v, index) => {
27
+ let replaceWithOne = `:arg${index}`;
28
+ let replaceWithMulti = `:arg${index}:`;
29
+ if (message.includes(replaceWithMulti)) {
30
+ args = args.splice(index);
31
+ let argString = toArray(args) ? toArray(args).join(',') : args;
32
+ message = message.replace(replaceWithMulti, argString);
33
+ }
34
+ if (message.includes(replaceWithOne)) {
35
+ message = message.replace(replaceWithOne, v);
36
+ }
37
+ });
38
+ return message;
39
+ }
40
+ }
41
+ MessageBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageBuilderService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
42
+ MessageBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageBuilderService });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MessageBuilderService, decorators: [{
44
+ type: Injectable
45
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYWJzb2x1dGUtdmFsaWRhdG9yL3NyYy9saWIvc2VydmljZXMvbWVzc2FnZXMtYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFJMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUNZLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQy9CLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLEdBQUcsSUFBUztRQUNsRCxJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLFFBQVEsR0FBWSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDdkQsSUFBSSxpQkFBaUIsR0FBRyxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRS9GLElBQUcsaUJBQWlCLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFDO1lBQ3hGLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUN4RDtRQUNELElBQUcsaUJBQWlCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUM7WUFDckQsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQzlDO1FBQ0QsSUFBSSxTQUFTLElBQUksUUFBUSxFQUFFO1lBQ3ZCLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLE9BQU8sQ0FBQztTQUFFO1FBRTFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFRLEVBQUUsS0FBWSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxjQUFjLEdBQUssT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxJQUFJLGdCQUFnQixHQUFHLE9BQU8sS0FBSyxHQUFHLENBQUM7WUFFdkMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDL0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsU0FBbUIsQ0FBQyxDQUFBO2FBQ25FO1lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNsQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFDL0M7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7O2tIQXhDUSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vY29tbW9uLnV0aWxzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJ1aWxkZXJTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHRzIDogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICl7fVxyXG5cclxuICAgIGNhbGwobGFuZ0F0dHI6IHN0cmluZywgYXR0cmlidXRlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSkgOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBtZXNzYWdlICAgICAgICAgICA9ICcnO1xyXG4gICAgICAgIGxldCBbbGFzdEVsZW1lbnRdICAgICA9IGFyZ3Muc2xpY2UoLTEpO1xyXG4gICAgICAgIGxldCB0ZW1wbGF0ZSAgICAgICAgICA9IHRoaXMudHMuaW5zdGFudChsYW5nQXR0cikgfHwgJydcclxuICAgICAgICBsZXQgaGFzQ3VzdG9tVGVtcGxhdGUgPSB0eXBlb2YgbGFzdEVsZW1lbnQgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKGxhc3RFbGVtZW50KS5sZW5ndGggPiAwO1xyXG5cclxuICAgICAgICBpZihoYXNDdXN0b21UZW1wbGF0ZSAmJiBsYXN0RWxlbWVudFtsYW5nQXR0cl0gJiYgbGFzdEVsZW1lbnRbbGFuZ0F0dHJdW3RoaXMudHMuY3VycmVudExhbmddKXtcclxuICAgICAgICAgICAgdGVtcGxhdGUgPSBsYXN0RWxlbWVudFtsYW5nQXR0cl1bdGhpcy50cy5jdXJyZW50TGFuZ11cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGFzQ3VzdG9tVGVtcGxhdGUgJiYgbGFzdEVsZW1lbnRbdGhpcy50cy5jdXJyZW50TGFuZ10pe1xyXG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IGxhc3RFbGVtZW50W3RoaXMudHMuY3VycmVudExhbmddXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhdHRyaWJ1dGUgJiYgdGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHRlbXBsYXRlLnJlcGxhY2UoJzphdHRyaWJ1dGUnLCBhdHRyaWJ1dGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAwKSB7IHJldHVybiBtZXNzYWdlOyB9XHJcblxyXG4gICAgICAgIGFyZ3MuZm9yRWFjaCgodjpzdHJpbmcsIGluZGV4Om51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcmVwbGFjZVdpdGhPbmUgICA9IGA6YXJnJHtpbmRleH1gO1xyXG4gICAgICAgICAgICBsZXQgcmVwbGFjZVdpdGhNdWx0aSA9IGA6YXJnJHtpbmRleH06YDtcclxuXHJcbiAgICAgICAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKHJlcGxhY2VXaXRoTXVsdGkpKSB7XHJcbiAgICAgICAgICAgICAgICBhcmdzID0gYXJncy5zcGxpY2UoaW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGFyZ1N0cmluZyA9IHRvQXJyYXkoYXJncykgPyB0b0FycmF5KGFyZ3MpLmpvaW4oJywnKSA6IGFyZ3M7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlcGxhY2VXaXRoTXVsdGksIGFyZ1N0cmluZyBhcyBzdHJpbmcpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKHJlcGxhY2VXaXRoT25lKSkge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZXBsYWNlV2l0aE9uZSwgdilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxufVxyXG4iXX0=