@firestitch/form 9.7.3 → 9.7.7
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/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +18 -15
- package/app/consts/error-messages.const.d.ts +19 -19
- package/app/directives/form/form.directive.d.ts +102 -100
- package/app/directives/form-dialog-close.directive.d.ts +9 -9
- package/app/directives/submit-button.directive.d.ts +28 -28
- package/app/directives/validators/compare.directive.d.ts +12 -12
- package/app/directives/validators/control.directive.d.ts +45 -45
- package/app/directives/validators/daterange.directive.d.ts +10 -10
- package/app/directives/validators/email.directive.d.ts +10 -10
- package/app/directives/validators/emails.directive.d.ts +10 -10
- package/app/directives/validators/function.directive.d.ts +11 -11
- package/app/directives/validators/greater.directive.d.ts +10 -10
- package/app/directives/validators/integer.directive.d.ts +10 -10
- package/app/directives/validators/lesser.directive.d.ts +10 -10
- package/app/directives/validators/max.directive.d.ts +10 -10
- package/app/directives/validators/maxlength.directive.d.ts +10 -10
- package/app/directives/validators/min.directive.d.ts +10 -10
- package/app/directives/validators/minlength.directive.d.ts +10 -10
- package/app/directives/validators/numeric.directive.d.ts +10 -10
- package/app/directives/validators/pattern.directive.d.ts +10 -10
- package/app/directives/validators/phone.directive.d.ts +10 -10
- package/app/directives/validators/required.directive.d.ts +13 -13
- package/app/directives/validators/url.directive.d.ts +11 -11
- package/app/directives/validators/validate.directive.d.ts +11 -11
- package/app/enums/confirm-result.d.ts +7 -7
- package/app/enums/form-status.d.ts +9 -9
- package/app/fs-form.module.d.ts +4 -4
- package/app/guards/form-deactivate.guard.d.ts +9 -9
- package/app/helpers/confirm-result-continue.d.ts +1 -1
- package/app/helpers/confirm-unsaved.d.ts +5 -5
- package/app/helpers/get-form-errors.d.ts +2 -2
- package/app/helpers/index.d.ts +2 -2
- package/app/helpers/is-enabled.d.ts +1 -1
- package/app/interfaces/async-validator.d.ts +14 -14
- package/app/interfaces/confirm-config.d.ts +7 -7
- package/app/interfaces/confirm-tab-group.d.ts +10 -10
- package/app/interfaces/form-deactivate.d.ts +4 -4
- package/app/interfaces/index.d.ts +4 -4
- package/app/interfaces/submit-event.d.ts +5 -5
- package/app/interfaces/submitted-event.d.ts +6 -6
- package/app/interfaces/validator.d.ts +13 -13
- package/app/providers/validate-messages.provider.d.ts +25 -25
- package/app/services/fsform.service.d.ts +7 -7
- package/app/validators/validators.d.ts +12 -12
- package/bundles/firestitch-form.umd.js +2300 -2267
- package/bundles/firestitch-form.umd.js.map +1 -1
- package/bundles/firestitch-form.umd.min.js +2 -2
- package/bundles/firestitch-form.umd.min.js.map +1 -1
- package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +93 -67
- package/esm2015/app/consts/error-messages.const.js +19 -19
- package/esm2015/app/directives/form/form.directive.js +665 -656
- package/esm2015/app/directives/form-dialog-close.directive.js +32 -32
- package/esm2015/app/directives/submit-button.directive.js +137 -137
- package/esm2015/app/directives/validators/compare.directive.js +48 -48
- package/esm2015/app/directives/validators/control.directive.js +272 -272
- package/esm2015/app/directives/validators/daterange.directive.js +40 -40
- package/esm2015/app/directives/validators/email.directive.js +40 -40
- package/esm2015/app/directives/validators/emails.directive.js +40 -40
- package/esm2015/app/directives/validators/function.directive.js +30 -30
- package/esm2015/app/directives/validators/greater.directive.js +39 -39
- package/esm2015/app/directives/validators/integer.directive.js +40 -40
- package/esm2015/app/directives/validators/lesser.directive.js +39 -39
- package/esm2015/app/directives/validators/max.directive.js +35 -35
- package/esm2015/app/directives/validators/maxlength.directive.js +34 -34
- package/esm2015/app/directives/validators/min.directive.js +35 -35
- package/esm2015/app/directives/validators/minlength.directive.js +34 -34
- package/esm2015/app/directives/validators/numeric.directive.js +40 -40
- package/esm2015/app/directives/validators/pattern.directive.js +34 -34
- package/esm2015/app/directives/validators/phone.directive.js +40 -40
- package/esm2015/app/directives/validators/required.directive.js +72 -72
- package/esm2015/app/directives/validators/url.directive.js +48 -48
- package/esm2015/app/directives/validators/validate.directive.js +30 -30
- package/esm2015/app/enums/confirm-result.js +8 -8
- package/esm2015/app/enums/form-status.js +10 -10
- package/esm2015/app/fs-form.module.js +106 -106
- package/esm2015/app/guards/form-deactivate.guard.js +43 -43
- package/esm2015/app/helpers/confirm-result-continue.js +4 -4
- package/esm2015/app/helpers/confirm-unsaved.js +70 -70
- package/esm2015/app/helpers/get-form-errors.js +24 -24
- package/esm2015/app/helpers/index.js +2 -2
- package/esm2015/app/helpers/is-enabled.js +3 -3
- package/esm2015/app/providers/validate-messages.provider.js +10 -10
- package/esm2015/app/services/fsform.service.js +25 -25
- package/esm2015/app/validators/validators.js +96 -96
- package/esm2015/firestitch-form.js +27 -28
- package/esm2015/public_api.js +13 -13
- package/esm5/app/components/form-dialog-actions/form-dialog-actions.component.js +96 -69
- package/esm5/app/consts/error-messages.const.js +19 -19
- package/esm5/app/directives/form/form.directive.js +706 -697
- package/esm5/app/directives/form-dialog-close.directive.js +33 -33
- package/esm5/app/directives/submit-button.directive.js +143 -143
- package/esm5/app/directives/validators/compare.directive.js +59 -59
- package/esm5/app/directives/validators/control.directive.js +278 -278
- package/esm5/app/directives/validators/daterange.directive.js +49 -49
- package/esm5/app/directives/validators/email.directive.js +49 -49
- package/esm5/app/directives/validators/emails.directive.js +49 -49
- package/esm5/app/directives/validators/function.directive.js +35 -35
- package/esm5/app/directives/validators/greater.directive.js +48 -48
- package/esm5/app/directives/validators/integer.directive.js +49 -49
- package/esm5/app/directives/validators/lesser.directive.js +48 -48
- package/esm5/app/directives/validators/max.directive.js +44 -44
- package/esm5/app/directives/validators/maxlength.directive.js +43 -43
- package/esm5/app/directives/validators/min.directive.js +44 -44
- package/esm5/app/directives/validators/minlength.directive.js +43 -43
- package/esm5/app/directives/validators/numeric.directive.js +49 -49
- package/esm5/app/directives/validators/pattern.directive.js +43 -43
- package/esm5/app/directives/validators/phone.directive.js +49 -49
- package/esm5/app/directives/validators/required.directive.js +87 -87
- package/esm5/app/directives/validators/url.directive.js +55 -55
- package/esm5/app/directives/validators/validate.directive.js +35 -35
- package/esm5/app/enums/confirm-result.js +8 -8
- package/esm5/app/enums/form-status.js +10 -10
- package/esm5/app/fs-form.module.js +110 -110
- package/esm5/app/guards/form-deactivate.guard.js +44 -44
- package/esm5/app/helpers/confirm-result-continue.js +4 -4
- package/esm5/app/helpers/confirm-unsaved.js +70 -70
- package/esm5/app/helpers/get-form-errors.js +27 -27
- package/esm5/app/helpers/index.js +2 -2
- package/esm5/app/helpers/is-enabled.js +3 -3
- package/esm5/app/providers/validate-messages.provider.js +11 -11
- package/esm5/app/services/fsform.service.js +26 -26
- package/esm5/app/validators/validators.js +101 -101
- package/esm5/firestitch-form.js +27 -28
- package/esm5/public_api.js +13 -13
- package/fesm2015/firestitch-form.js +2075 -2042
- package/fesm2015/firestitch-form.js.map +1 -1
- package/fesm5/firestitch-form.js +2304 -2270
- package/fesm5/firestitch-form.js.map +1 -1
- package/firestitch-form.d.ts +26 -27
- package/firestitch-form.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +12 -12
- package/app/components/form-dialog-actions/index.d.ts +0 -1
- package/esm2015/app/components/form-dialog-actions/index.js +0 -2
- package/esm5/app/components/form-dialog-actions/index.js +0 -2
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Directive, HostListener, HostBinding } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
let FsFormDialogCloseDirective = class FsFormDialogCloseDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.clicked$ = new Subject();
|
|
7
|
-
this.registered = false;
|
|
8
|
-
this.type = 'button';
|
|
9
|
-
}
|
|
10
|
-
click() {
|
|
11
|
-
this.clicked$.next();
|
|
12
|
-
}
|
|
13
|
-
ngOnDestroy() {
|
|
14
|
-
this.clicked$.complete();
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
__decorate([
|
|
18
|
-
HostBinding('attr.type'),
|
|
19
|
-
__metadata("design:type", Object)
|
|
20
|
-
], FsFormDialogCloseDirective.prototype, "type", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
HostListener('click', ['$event.target']),
|
|
23
|
-
__metadata("design:type", Function),
|
|
24
|
-
__metadata("design:paramtypes", []),
|
|
25
|
-
__metadata("design:returntype", void 0)
|
|
26
|
-
], FsFormDialogCloseDirective.prototype, "click", null);
|
|
27
|
-
FsFormDialogCloseDirective = __decorate([
|
|
28
|
-
Directive({
|
|
29
|
-
selector: '[fsFormDialogClose],[fs-form-dialog-close]'
|
|
30
|
-
})
|
|
31
|
-
], FsFormDialogCloseDirective);
|
|
32
|
-
export { FsFormDialogCloseDirective };
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Directive, HostListener, HostBinding } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
let FsFormDialogCloseDirective = class FsFormDialogCloseDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.clicked$ = new Subject();
|
|
7
|
+
this.registered = false;
|
|
8
|
+
this.type = 'button';
|
|
9
|
+
}
|
|
10
|
+
click() {
|
|
11
|
+
this.clicked$.next();
|
|
12
|
+
}
|
|
13
|
+
ngOnDestroy() {
|
|
14
|
+
this.clicked$.complete();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
__decorate([
|
|
18
|
+
HostBinding('attr.type'),
|
|
19
|
+
__metadata("design:type", Object)
|
|
20
|
+
], FsFormDialogCloseDirective.prototype, "type", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
HostListener('click', ['$event.target']),
|
|
23
|
+
__metadata("design:type", Function),
|
|
24
|
+
__metadata("design:paramtypes", []),
|
|
25
|
+
__metadata("design:returntype", void 0)
|
|
26
|
+
], FsFormDialogCloseDirective.prototype, "click", null);
|
|
27
|
+
FsFormDialogCloseDirective = __decorate([
|
|
28
|
+
Directive({
|
|
29
|
+
selector: '[fsFormDialogClose],[fs-form-dialog-close]'
|
|
30
|
+
})
|
|
31
|
+
], FsFormDialogCloseDirective);
|
|
32
|
+
export { FsFormDialogCloseDirective };
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2ctY2xvc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZm9ybS8iLCJzb3VyY2VzIjpbImFwcC9kaXJlY3RpdmVzL2Zvcm0tZGlhbG9nLWNsb3NlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNL0IsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7SUFBdkM7UUFFUyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRUEsU0FBSSxHQUFHLFFBQVEsQ0FBQztJQVU1QyxDQUFDO0lBUFEsS0FBSztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YsQ0FBQTtBQVYyQjtJQUF6QixXQUFXLENBQUMsV0FBVyxDQUFDOzt3REFBaUI7QUFHMUM7SUFEQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7Ozs7dURBR3hDO0FBVlUsMEJBQTBCO0lBSHRDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSw0Q0FBNEM7S0FDdkQsQ0FBQztHQUNXLDBCQUEwQixDQWV0QztTQWZZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzRm9ybURpYWxvZ0Nsb3NlXSxbZnMtZm9ybS1kaWFsb2ctY2xvc2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBGc0Zvcm1EaWFsb2dDbG9zZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGNsaWNrZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHR5cGUgPSAnYnV0dG9uJztcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICBwdWJsaWMgY2xpY2soKSB7XG4gICAgdGhpcy5jbGlja2VkJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jbGlja2VkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
-
import { Directive, OnInit, Host, ElementRef, HostBinding, Optional, Input, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
3
|
-
import { MatButton } from '@angular/material/button';
|
|
4
|
-
import { FsFormDirective } from '../directives/form/form.directive';
|
|
5
|
-
import { fromEvent, Subject } from 'rxjs';
|
|
6
|
-
import { takeUntil } from 'rxjs/operators';
|
|
7
|
-
let FsSubmitButtonDirective = class FsSubmitButtonDirective {
|
|
8
|
-
constructor(_matButton, _form, _elementRef, _cdRef) {
|
|
9
|
-
this._matButton = _matButton;
|
|
10
|
-
this._form = _form;
|
|
11
|
-
this._elementRef = _elementRef;
|
|
12
|
-
this._cdRef = _cdRef;
|
|
13
|
-
this.dirtySubmit = true;
|
|
14
|
-
this.transitionStyle = null;
|
|
15
|
-
this.active = false;
|
|
16
|
-
this._destroy$ = new Subject();
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
if (this._form) {
|
|
20
|
-
this._form.addSubmitButton(this);
|
|
21
|
-
fromEvent(this.element, 'click')
|
|
22
|
-
.pipe(takeUntil(this._destroy$))
|
|
23
|
-
.subscribe(() => {
|
|
24
|
-
this.active = true;
|
|
25
|
-
});
|
|
26
|
-
if (this.dirtySubmit) {
|
|
27
|
-
if (this._form.dirtySubmitButton) {
|
|
28
|
-
if (!this._form.ngForm.dirty) {
|
|
29
|
-
this.disable();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.transitionStyle = 'none';
|
|
34
|
-
setTimeout(() => {
|
|
35
|
-
this.transitionStyle = null;
|
|
36
|
-
}, 500);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
disable() {
|
|
40
|
-
if (this._matButton) {
|
|
41
|
-
this._matButton.disabled = true;
|
|
42
|
-
this._cdRef.markForCheck();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
enable() {
|
|
46
|
-
if (this._matButton) {
|
|
47
|
-
this._matButton.disabled = false;
|
|
48
|
-
this._matButton.disableRipple = true;
|
|
49
|
-
this._cdRef.markForCheck();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
process() {
|
|
53
|
-
this.setClass('process');
|
|
54
|
-
this._matButton.disableRipple = true;
|
|
55
|
-
}
|
|
56
|
-
success() {
|
|
57
|
-
this.setClass('success');
|
|
58
|
-
this._matButton.disableRipple = false;
|
|
59
|
-
}
|
|
60
|
-
error() {
|
|
61
|
-
this.setClass('error');
|
|
62
|
-
this._matButton.disableRipple = false;
|
|
63
|
-
}
|
|
64
|
-
setClass(cls) {
|
|
65
|
-
const svg = this._getSvg(cls);
|
|
66
|
-
this._resetClass();
|
|
67
|
-
this._disableShadowAnimation();
|
|
68
|
-
this.element.classList.add(`submit-${cls}`);
|
|
69
|
-
this.element.append(svg);
|
|
70
|
-
}
|
|
71
|
-
get element() {
|
|
72
|
-
return this._elementRef.nativeElement;
|
|
73
|
-
}
|
|
74
|
-
reset() {
|
|
75
|
-
this.active = false;
|
|
76
|
-
this.enable();
|
|
77
|
-
this.element.querySelectorAll('.svg-icon')
|
|
78
|
-
.forEach((el) => {
|
|
79
|
-
el.remove();
|
|
80
|
-
});
|
|
81
|
-
this._matButton.disableRipple = false;
|
|
82
|
-
this._resetClass();
|
|
83
|
-
}
|
|
84
|
-
ngOnDestroy() {
|
|
85
|
-
this._destroy$.next();
|
|
86
|
-
this._destroy$.complete();
|
|
87
|
-
this._form.removeSubmitButton(this);
|
|
88
|
-
}
|
|
89
|
-
_disableShadowAnimation() {
|
|
90
|
-
// .mat-elevation-z2 removes the click shadow animation
|
|
91
|
-
//this.element.classList.add('mat-elevation-z2');
|
|
92
|
-
}
|
|
93
|
-
_resetClass() {
|
|
94
|
-
this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');
|
|
95
|
-
}
|
|
96
|
-
_getSvg(type) {
|
|
97
|
-
if (type === 'success') {
|
|
1
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
+
import { Directive, OnInit, Host, ElementRef, HostBinding, Optional, Input, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
3
|
+
import { MatButton } from '@angular/material/button';
|
|
4
|
+
import { FsFormDirective } from '../directives/form/form.directive';
|
|
5
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
6
|
+
import { takeUntil } from 'rxjs/operators';
|
|
7
|
+
let FsSubmitButtonDirective = class FsSubmitButtonDirective {
|
|
8
|
+
constructor(_matButton, _form, _elementRef, _cdRef) {
|
|
9
|
+
this._matButton = _matButton;
|
|
10
|
+
this._form = _form;
|
|
11
|
+
this._elementRef = _elementRef;
|
|
12
|
+
this._cdRef = _cdRef;
|
|
13
|
+
this.dirtySubmit = true;
|
|
14
|
+
this.transitionStyle = null;
|
|
15
|
+
this.active = false;
|
|
16
|
+
this._destroy$ = new Subject();
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
if (this._form) {
|
|
20
|
+
this._form.addSubmitButton(this);
|
|
21
|
+
fromEvent(this.element, 'click')
|
|
22
|
+
.pipe(takeUntil(this._destroy$))
|
|
23
|
+
.subscribe(() => {
|
|
24
|
+
this.active = true;
|
|
25
|
+
});
|
|
26
|
+
if (this.dirtySubmit) {
|
|
27
|
+
if (this._form.dirtySubmitButton) {
|
|
28
|
+
if (!this._form.ngForm.dirty) {
|
|
29
|
+
this.disable();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
this.transitionStyle = 'none';
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.transitionStyle = null;
|
|
36
|
+
}, 500);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
disable() {
|
|
40
|
+
if (this._matButton) {
|
|
41
|
+
this._matButton.disabled = true;
|
|
42
|
+
this._cdRef.markForCheck();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
enable() {
|
|
46
|
+
if (this._matButton) {
|
|
47
|
+
this._matButton.disabled = false;
|
|
48
|
+
this._matButton.disableRipple = true;
|
|
49
|
+
this._cdRef.markForCheck();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
process() {
|
|
53
|
+
this.setClass('process');
|
|
54
|
+
this._matButton.disableRipple = true;
|
|
55
|
+
}
|
|
56
|
+
success() {
|
|
57
|
+
this.setClass('success');
|
|
58
|
+
this._matButton.disableRipple = false;
|
|
59
|
+
}
|
|
60
|
+
error() {
|
|
61
|
+
this.setClass('error');
|
|
62
|
+
this._matButton.disableRipple = false;
|
|
63
|
+
}
|
|
64
|
+
setClass(cls) {
|
|
65
|
+
const svg = this._getSvg(cls);
|
|
66
|
+
this._resetClass();
|
|
67
|
+
this._disableShadowAnimation();
|
|
68
|
+
this.element.classList.add(`submit-${cls}`);
|
|
69
|
+
this.element.append(svg);
|
|
70
|
+
}
|
|
71
|
+
get element() {
|
|
72
|
+
return this._elementRef.nativeElement;
|
|
73
|
+
}
|
|
74
|
+
reset() {
|
|
75
|
+
this.active = false;
|
|
76
|
+
this.enable();
|
|
77
|
+
this.element.querySelectorAll('.svg-icon')
|
|
78
|
+
.forEach((el) => {
|
|
79
|
+
el.remove();
|
|
80
|
+
});
|
|
81
|
+
this._matButton.disableRipple = false;
|
|
82
|
+
this._resetClass();
|
|
83
|
+
}
|
|
84
|
+
ngOnDestroy() {
|
|
85
|
+
this._destroy$.next();
|
|
86
|
+
this._destroy$.complete();
|
|
87
|
+
this._form.removeSubmitButton(this);
|
|
88
|
+
}
|
|
89
|
+
_disableShadowAnimation() {
|
|
90
|
+
// .mat-elevation-z2 removes the click shadow animation
|
|
91
|
+
//this.element.classList.add('mat-elevation-z2');
|
|
92
|
+
}
|
|
93
|
+
_resetClass() {
|
|
94
|
+
this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');
|
|
95
|
+
}
|
|
96
|
+
_getSvg(type) {
|
|
97
|
+
if (type === 'success') {
|
|
98
98
|
return new DOMParser().parseFromString(`<svg class="svg-icon svg-icon-success" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 38 38" style="enable-background:new 0 0 38 38;" xml:space="preserve" width="38px" height="38px">
|
|
99
99
|
<g>
|
|
100
100
|
<g class="check">
|
|
@@ -103,50 +103,50 @@ let FsSubmitButtonDirective = class FsSubmitButtonDirective {
|
|
|
103
103
|
</g>
|
|
104
104
|
</g>
|
|
105
105
|
</g>
|
|
106
|
-
</svg>`, 'text/xml').firstChild;
|
|
107
|
-
}
|
|
108
|
-
if (type === 'process') {
|
|
106
|
+
</svg>`, 'text/xml').firstChild;
|
|
107
|
+
}
|
|
108
|
+
if (type === 'process') {
|
|
109
109
|
return new DOMParser().parseFromString(`<svg class="svg-icon svg-icon-process" width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg">
|
|
110
110
|
<g fill="none" fill-rule="evenodd">
|
|
111
111
|
<g transform="translate(1 1)" stroke-width="2"><circle stroke-opacity=".5" cx="18" cy="18" r="18"/>
|
|
112
112
|
<path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur=".7s" repeatCount="indefinite"/></path>
|
|
113
113
|
</g>
|
|
114
114
|
</g>
|
|
115
|
-
</svg>`, 'text/xml').firstChild;
|
|
116
|
-
}
|
|
117
|
-
if (type === 'error') {
|
|
118
|
-
return new DOMParser().parseFromString(`<svg class="svg-icon svg-icon-error" xmlns="http://www.w3.org/2000/svg" width="38px" height="38px" viewBox="0 0 16 16"><g><path d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z" data-original="#444444" data-old_color="#444444"/><path d="M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z"/></g> </svg>`, 'text/xml').firstChild;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
FsSubmitButtonDirective.ctorParameters = () => [
|
|
123
|
-
{ type: MatButton, decorators: [{ type: Optional }, { type: Host }] },
|
|
124
|
-
{ type: FsFormDirective, decorators: [{ type: Optional }] },
|
|
125
|
-
{ type: ElementRef },
|
|
126
|
-
{ type: ChangeDetectorRef }
|
|
127
|
-
];
|
|
128
|
-
__decorate([
|
|
129
|
-
Input(),
|
|
130
|
-
__metadata("design:type", Object)
|
|
131
|
-
], FsSubmitButtonDirective.prototype, "name", void 0);
|
|
132
|
-
__decorate([
|
|
133
|
-
Input(),
|
|
134
|
-
__metadata("design:type", Object)
|
|
135
|
-
], FsSubmitButtonDirective.prototype, "dirtySubmit", void 0);
|
|
136
|
-
__decorate([
|
|
137
|
-
HostBinding('style.transition'),
|
|
138
|
-
__metadata("design:type", Object)
|
|
139
|
-
], FsSubmitButtonDirective.prototype, "transitionStyle", void 0);
|
|
140
|
-
FsSubmitButtonDirective = __decorate([
|
|
141
|
-
Directive({
|
|
142
|
-
selector: 'button[type="submit"]',
|
|
143
|
-
}),
|
|
144
|
-
__param(0, Optional()), __param(0, Host()),
|
|
145
|
-
__param(1, Optional()),
|
|
146
|
-
__metadata("design:paramtypes", [MatButton,
|
|
147
|
-
FsFormDirective,
|
|
148
|
-
ElementRef,
|
|
149
|
-
ChangeDetectorRef])
|
|
150
|
-
], FsSubmitButtonDirective);
|
|
151
|
-
export { FsSubmitButtonDirective };
|
|
115
|
+
</svg>`, 'text/xml').firstChild;
|
|
116
|
+
}
|
|
117
|
+
if (type === 'error') {
|
|
118
|
+
return new DOMParser().parseFromString(`<svg class="svg-icon svg-icon-error" xmlns="http://www.w3.org/2000/svg" width="38px" height="38px" viewBox="0 0 16 16"><g><path d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z" data-original="#444444" data-old_color="#444444"/><path d="M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z"/></g> </svg>`, 'text/xml').firstChild;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
FsSubmitButtonDirective.ctorParameters = () => [
|
|
123
|
+
{ type: MatButton, decorators: [{ type: Optional }, { type: Host }] },
|
|
124
|
+
{ type: FsFormDirective, decorators: [{ type: Optional }] },
|
|
125
|
+
{ type: ElementRef },
|
|
126
|
+
{ type: ChangeDetectorRef }
|
|
127
|
+
];
|
|
128
|
+
__decorate([
|
|
129
|
+
Input(),
|
|
130
|
+
__metadata("design:type", Object)
|
|
131
|
+
], FsSubmitButtonDirective.prototype, "name", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
Input(),
|
|
134
|
+
__metadata("design:type", Object)
|
|
135
|
+
], FsSubmitButtonDirective.prototype, "dirtySubmit", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
HostBinding('style.transition'),
|
|
138
|
+
__metadata("design:type", Object)
|
|
139
|
+
], FsSubmitButtonDirective.prototype, "transitionStyle", void 0);
|
|
140
|
+
FsSubmitButtonDirective = __decorate([
|
|
141
|
+
Directive({
|
|
142
|
+
selector: 'button[type="submit"]',
|
|
143
|
+
}),
|
|
144
|
+
__param(0, Optional()), __param(0, Host()),
|
|
145
|
+
__param(1, Optional()),
|
|
146
|
+
__metadata("design:paramtypes", [MatButton,
|
|
147
|
+
FsFormDirective,
|
|
148
|
+
ElementRef,
|
|
149
|
+
ChangeDetectorRef])
|
|
150
|
+
], FsSubmitButtonDirective);
|
|
151
|
+
export { FsSubmitButtonDirective };
|
|
152
152
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvc3VibWl0LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTNDLElBQWEsdUJBQXVCLEdBQXBDLE1BQWEsdUJBQXVCO0lBZWxDLFlBQzhCLFVBQXFCLEVBQzdCLEtBQXNCLEVBQ2xDLFdBQXVCLEVBQ3ZCLE1BQXlCO1FBSEwsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQWI1QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUduQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFPL0IsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqQyxTQUFTLENBQUMsSUFB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Q1QsUUFBUSxFQUFFLHVCQUF1QjtLQUNsQyxDQUFDO0lBaUJHLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBO0lBQ2xCLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBRDZCLFNBQVM7UUFDdEIsZUFBZTtRQUNyQixVQUFVO1FBQ2YsaUJBQWlCO0dBbkJ4Qix1QkFBdUIsQ0FnSm5DO1NBaEpZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0LCBIb3N0LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgT3B0aW9uYWwsIElucHV0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG59KVxuZXhwb3J0IGNsYXNzIEZzU3VibWl0QnV0dG9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXJ0eVN1Ym1pdCA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50cmFuc2l0aW9uJylcbiAgcHVibGljIHRyYW5zaXRpb25TdHlsZSA9IG51bGw7XG5cbiAgcHVibGljIGFjdGl2ZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX21hdEJ1dHRvbjogTWF0QnV0dG9uLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm06IEZzRm9ybURpcmVjdGl2ZSxcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fZm9ybSkge1xuICAgICAgdGhpcy5fZm9ybS5hZGRTdWJtaXRCdXR0b24odGhpcyk7IFxuXG4gICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLmRpcnR5U3VibWl0KSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLmRpcnR5U3VibWl0QnV0dG9uKSB7XG4gICAgICAgICAgaWYoIXRoaXMuX2Zvcm0ubmdGb3JtLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gXG5cbiAgICAgIHRoaXMudHJhbnNpdGlvblN0eWxlID0gJ25vbmUnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvblN0eWxlID0gbnVsbDtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IHRydWU7XG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJvY2VzcygpIHtcbiAgICB0aGlzLnNldENsYXNzKCdwcm9jZXNzJyk7XG4gICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN1Y2Nlc3MoKSB7XG4gICAgdGhpcy5zZXRDbGFzcygnc3VjY2VzcycpO1xuICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZXJyb3IoKSB7XG4gICAgdGhpcy5zZXRDbGFzcygnZXJyb3InKTtcbiAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNldENsYXNzKGNscykge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuX2dldFN2ZyhjbHMpO1xuICAgIHRoaXMuX3Jlc2V0Q2xhc3MoKTtcbiAgICB0aGlzLl9kaXNhYmxlU2hhZG93QW5pbWF0aW9uKCk7XG4gICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoYHN1Ym1pdC0ke2Nsc31gKTtcbiAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN2Zyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdmctaWNvbicpXG4gICAgICAuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgZWwucmVtb3ZlKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuICAgIHRoaXMuX3Jlc2V0Q2xhc3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtLnJlbW92ZVN1Ym1pdEJ1dHRvbih0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVTaGFkb3dBbmltYXRpb24oKSB7XG4gICAgLy8gLm1hdC1lbGV2YXRpb24tejIgcmVtb3ZlcyB0aGUgY2xpY2sgc2hhZG93IGFuaW1hdGlvblxuICAgIC8vdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21hdC1lbGV2YXRpb24tejInKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0Q2xhc3MoKSB7XG4gICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Ym1pdC1zdWNjZXNzJywgJ3N1Ym1pdC1lcnJvcicsICdzdWJtaXQtcHJvY2VzcycsICdtYXQtZWxldmF0aW9uLXoyJyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdmcodHlwZSkge1xuICAgIGlmICh0eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8c3ZnIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tc3VjY2Vzc1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2ZXJzaW9uPVwiMS4xXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM4IDM4O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgd2lkdGg9XCIzOHB4XCIgaGVpZ2h0PVwiMzhweFwiPlxuICAgICAgPGc+XG4gICAgICAgIDxnIGNsYXNzPVwiY2hlY2tcIj5cbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjkuNiwxMS45Yy0wLjUtMC41LTEuMy0wLjUtMS44LDBMMTYuMywyMy40bC02LjEtNi4xYy0wLjUtMC41LTEuMy0wLjUtMS44LDBzLTAuNSwxLjMsMCwxLjhsNyw3YzAuMywwLjMsMC42LDAuNCwwLjksMC40czAuNy0wLjEsMC45LTAuNGwxMi40LTEyLjRDMzAuMSwxMy4yLDMwLjEsMTIuNCwyOS42LDExLjl6XCIvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPC9zdmc+YCwgJ3RleHQveG1sJykuZmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3Byb2Nlc3MnKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPHN2ZyBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByb2Nlc3NcIiB3aWR0aD1cIjM4XCIgaGVpZ2h0PVwiMzhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxIDEpXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPjxjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9XCIuNVwiIGN4PVwiMThcIiBjeT1cIjE4XCIgcj1cIjE4XCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDE4IDE4XCIgdG89XCIzNjAgMTggMThcIiBkdXI9XCIuN3NcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgICA8L3N2Zz5gLCAndGV4dC94bWwnKS5maXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnZXJyb3InKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPHN2ZyBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLWVycm9yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzhweFwiIGhlaWdodD1cIjM4cHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PGc+PHBhdGggZD1cIk04IDFjMy45IDAgNyAzLjEgNyA3cy0zLjEgNy03IDctNy0zLjEtNy03IDMuMS03IDctN3pNOCAwYy00LjQgMC04IDMuNi04IDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh2MHpcIiBkYXRhLW9yaWdpbmFsPVwiIzQ0NDQ0NFwiIGRhdGEtb2xkX2NvbG9yPVwiIzQ0NDQ0NFwiLz48cGF0aCBkPVwiTTEyLjIgMTAuOGwtMi44LTIuOCAyLjgtMi44LTEuNC0xLjQtMi44IDIuOC0yLjgtMi44LTEuNCAxLjQgMi44IDIuOC0yLjggMi44IDEuNCAxLjQgMi44LTIuOCAyLjggMi44elwiLz48L2c+IDwvc3ZnPmAsICd0ZXh0L3htbCcpLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Directive, Input } from '@angular/core';
|
|
3
|
-
import { FsControlDirective } from './control.directive';
|
|
4
|
-
import { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';
|
|
5
|
-
let FsFormCompareDirective = class FsFormCompareDirective extends FsControlDirective {
|
|
6
|
-
set validationMessage(value) {
|
|
7
|
-
this._validateMessages.compare = value;
|
|
8
|
-
}
|
|
9
|
-
ngOnChanges() {
|
|
10
|
-
this._control.updateValueAndValidity();
|
|
11
|
-
}
|
|
12
|
-
validate(control) {
|
|
13
|
-
if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return { compare: true };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ngAfterViewInit() {
|
|
21
|
-
this.fsFormCompare.addEventListener('keyup', () => {
|
|
22
|
-
this._control.updateValueAndValidity();
|
|
23
|
-
}, false);
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this.fsFormCompare.removeEventListener('keyup', () => {
|
|
27
|
-
this._control.updateValueAndValidity();
|
|
28
|
-
}, false);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
__decorate([
|
|
32
|
-
Input(),
|
|
33
|
-
__metadata("design:type", Object)
|
|
34
|
-
], FsFormCompareDirective.prototype, "fsFormCompare", void 0);
|
|
35
|
-
__decorate([
|
|
36
|
-
Input('fsFormCompareMessage'),
|
|
37
|
-
__metadata("design:type", String),
|
|
38
|
-
__metadata("design:paramtypes", [String])
|
|
39
|
-
], FsFormCompareDirective.prototype, "validationMessage", null);
|
|
40
|
-
FsFormCompareDirective = __decorate([
|
|
41
|
-
Directive({
|
|
42
|
-
selector: '[fsFormCompare]',
|
|
43
|
-
providers: [
|
|
44
|
-
VALIDATE_MESSAGE_PROVIDER,
|
|
45
|
-
],
|
|
46
|
-
})
|
|
47
|
-
], FsFormCompareDirective);
|
|
48
|
-
export { FsFormCompareDirective };
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Directive, Input } from '@angular/core';
|
|
3
|
+
import { FsControlDirective } from './control.directive';
|
|
4
|
+
import { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';
|
|
5
|
+
let FsFormCompareDirective = class FsFormCompareDirective extends FsControlDirective {
|
|
6
|
+
set validationMessage(value) {
|
|
7
|
+
this._validateMessages.compare = value;
|
|
8
|
+
}
|
|
9
|
+
ngOnChanges() {
|
|
10
|
+
this._control.updateValueAndValidity();
|
|
11
|
+
}
|
|
12
|
+
validate(control) {
|
|
13
|
+
if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return { compare: true };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewInit() {
|
|
21
|
+
this.fsFormCompare.addEventListener('keyup', () => {
|
|
22
|
+
this._control.updateValueAndValidity();
|
|
23
|
+
}, false);
|
|
24
|
+
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this.fsFormCompare.removeEventListener('keyup', () => {
|
|
27
|
+
this._control.updateValueAndValidity();
|
|
28
|
+
}, false);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
__decorate([
|
|
32
|
+
Input(),
|
|
33
|
+
__metadata("design:type", Object)
|
|
34
|
+
], FsFormCompareDirective.prototype, "fsFormCompare", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Input('fsFormCompareMessage'),
|
|
37
|
+
__metadata("design:type", String),
|
|
38
|
+
__metadata("design:paramtypes", [String])
|
|
39
|
+
], FsFormCompareDirective.prototype, "validationMessage", null);
|
|
40
|
+
FsFormCompareDirective = __decorate([
|
|
41
|
+
Directive({
|
|
42
|
+
selector: '[fsFormCompare]',
|
|
43
|
+
providers: [
|
|
44
|
+
VALIDATE_MESSAGE_PROVIDER,
|
|
45
|
+
],
|
|
46
|
+
})
|
|
47
|
+
], FsFormCompareDirective);
|
|
48
|
+
export { FsFormCompareDirective };
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9jb21wYXJlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBV3ZGLElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsa0JBQWtCO0lBTzVELElBQVcsaUJBQWlCLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUNwRSxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7Q0FDRixDQUFBO0FBOUJDO0lBREMsS0FBSyxFQUFFOzs2REFDYTtBQUdyQjtJQURDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQzs7OytEQUc3QjtBQVRVLHNCQUFzQjtJQU5sQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFNBQVMsRUFBRTtZQUNULHlCQUF5QjtTQUMxQjtLQUNGLENBQUM7R0FDVyxzQkFBc0IsQ0FrQ2xDO1NBbENZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZBTElEQVRFX01FU1NBR0VfUFJPVklERVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdmFsaWRhdGUtbWVzc2FnZXMucHJvdmlkZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRnNWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3ZhbGlkYXRvcic7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzRm9ybUNvbXBhcmVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVkFMSURBVEVfTUVTU0FHRV9QUk9WSURFUixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSBleHRlbmRzIEZzQ29udHJvbERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBGc1ZhbGlkYXRvciB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZzRm9ybUNvbXBhcmU7XG5cbiAgQElucHV0KCdmc0Zvcm1Db21wYXJlTWVzc2FnZScpXG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbk1lc3NhZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ZhbGlkYXRlTWVzc2FnZXMuY29tcGFyZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAodGhpcy5mc0Zvcm1Db21wYXJlLnZhbHVlID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IGNvbXBhcmU6IHRydWUgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZnNGb3JtQ29tcGFyZS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsICgpID0+IHtcbiAgICAgIHRoaXMuX2NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0sIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZzRm9ybUNvbXBhcmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoKSA9PiB7XG4gICAgICB0aGlzLl9jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9LCBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|