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