@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.
Files changed (135) hide show
  1. package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +18 -15
  2. package/app/consts/error-messages.const.d.ts +19 -19
  3. package/app/directives/form/form.directive.d.ts +102 -100
  4. package/app/directives/form-dialog-close.directive.d.ts +9 -9
  5. package/app/directives/submit-button.directive.d.ts +28 -28
  6. package/app/directives/validators/compare.directive.d.ts +12 -12
  7. package/app/directives/validators/control.directive.d.ts +45 -45
  8. package/app/directives/validators/daterange.directive.d.ts +10 -10
  9. package/app/directives/validators/email.directive.d.ts +10 -10
  10. package/app/directives/validators/emails.directive.d.ts +10 -10
  11. package/app/directives/validators/function.directive.d.ts +11 -11
  12. package/app/directives/validators/greater.directive.d.ts +10 -10
  13. package/app/directives/validators/integer.directive.d.ts +10 -10
  14. package/app/directives/validators/lesser.directive.d.ts +10 -10
  15. package/app/directives/validators/max.directive.d.ts +10 -10
  16. package/app/directives/validators/maxlength.directive.d.ts +10 -10
  17. package/app/directives/validators/min.directive.d.ts +10 -10
  18. package/app/directives/validators/minlength.directive.d.ts +10 -10
  19. package/app/directives/validators/numeric.directive.d.ts +10 -10
  20. package/app/directives/validators/pattern.directive.d.ts +10 -10
  21. package/app/directives/validators/phone.directive.d.ts +10 -10
  22. package/app/directives/validators/required.directive.d.ts +13 -13
  23. package/app/directives/validators/url.directive.d.ts +11 -11
  24. package/app/directives/validators/validate.directive.d.ts +11 -11
  25. package/app/enums/confirm-result.d.ts +7 -7
  26. package/app/enums/form-status.d.ts +9 -9
  27. package/app/fs-form.module.d.ts +4 -4
  28. package/app/guards/form-deactivate.guard.d.ts +9 -9
  29. package/app/helpers/confirm-result-continue.d.ts +1 -1
  30. package/app/helpers/confirm-unsaved.d.ts +5 -5
  31. package/app/helpers/get-form-errors.d.ts +2 -2
  32. package/app/helpers/index.d.ts +2 -2
  33. package/app/helpers/is-enabled.d.ts +1 -1
  34. package/app/interfaces/async-validator.d.ts +14 -14
  35. package/app/interfaces/confirm-config.d.ts +7 -7
  36. package/app/interfaces/confirm-tab-group.d.ts +10 -10
  37. package/app/interfaces/form-deactivate.d.ts +4 -4
  38. package/app/interfaces/index.d.ts +4 -4
  39. package/app/interfaces/submit-event.d.ts +5 -5
  40. package/app/interfaces/submitted-event.d.ts +6 -6
  41. package/app/interfaces/validator.d.ts +13 -13
  42. package/app/providers/validate-messages.provider.d.ts +25 -25
  43. package/app/services/fsform.service.d.ts +7 -7
  44. package/app/validators/validators.d.ts +12 -12
  45. package/bundles/firestitch-form.umd.js +2300 -2267
  46. package/bundles/firestitch-form.umd.js.map +1 -1
  47. package/bundles/firestitch-form.umd.min.js +2 -2
  48. package/bundles/firestitch-form.umd.min.js.map +1 -1
  49. package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +93 -67
  50. package/esm2015/app/consts/error-messages.const.js +19 -19
  51. package/esm2015/app/directives/form/form.directive.js +665 -656
  52. package/esm2015/app/directives/form-dialog-close.directive.js +32 -32
  53. package/esm2015/app/directives/submit-button.directive.js +137 -137
  54. package/esm2015/app/directives/validators/compare.directive.js +48 -48
  55. package/esm2015/app/directives/validators/control.directive.js +272 -272
  56. package/esm2015/app/directives/validators/daterange.directive.js +40 -40
  57. package/esm2015/app/directives/validators/email.directive.js +40 -40
  58. package/esm2015/app/directives/validators/emails.directive.js +40 -40
  59. package/esm2015/app/directives/validators/function.directive.js +30 -30
  60. package/esm2015/app/directives/validators/greater.directive.js +39 -39
  61. package/esm2015/app/directives/validators/integer.directive.js +40 -40
  62. package/esm2015/app/directives/validators/lesser.directive.js +39 -39
  63. package/esm2015/app/directives/validators/max.directive.js +35 -35
  64. package/esm2015/app/directives/validators/maxlength.directive.js +34 -34
  65. package/esm2015/app/directives/validators/min.directive.js +35 -35
  66. package/esm2015/app/directives/validators/minlength.directive.js +34 -34
  67. package/esm2015/app/directives/validators/numeric.directive.js +40 -40
  68. package/esm2015/app/directives/validators/pattern.directive.js +34 -34
  69. package/esm2015/app/directives/validators/phone.directive.js +40 -40
  70. package/esm2015/app/directives/validators/required.directive.js +72 -72
  71. package/esm2015/app/directives/validators/url.directive.js +48 -48
  72. package/esm2015/app/directives/validators/validate.directive.js +30 -30
  73. package/esm2015/app/enums/confirm-result.js +8 -8
  74. package/esm2015/app/enums/form-status.js +10 -10
  75. package/esm2015/app/fs-form.module.js +106 -106
  76. package/esm2015/app/guards/form-deactivate.guard.js +43 -43
  77. package/esm2015/app/helpers/confirm-result-continue.js +4 -4
  78. package/esm2015/app/helpers/confirm-unsaved.js +70 -70
  79. package/esm2015/app/helpers/get-form-errors.js +24 -24
  80. package/esm2015/app/helpers/index.js +2 -2
  81. package/esm2015/app/helpers/is-enabled.js +3 -3
  82. package/esm2015/app/providers/validate-messages.provider.js +10 -10
  83. package/esm2015/app/services/fsform.service.js +25 -25
  84. package/esm2015/app/validators/validators.js +96 -96
  85. package/esm2015/firestitch-form.js +27 -28
  86. package/esm2015/public_api.js +13 -13
  87. package/esm5/app/components/form-dialog-actions/form-dialog-actions.component.js +96 -69
  88. package/esm5/app/consts/error-messages.const.js +19 -19
  89. package/esm5/app/directives/form/form.directive.js +706 -697
  90. package/esm5/app/directives/form-dialog-close.directive.js +33 -33
  91. package/esm5/app/directives/submit-button.directive.js +143 -143
  92. package/esm5/app/directives/validators/compare.directive.js +59 -59
  93. package/esm5/app/directives/validators/control.directive.js +278 -278
  94. package/esm5/app/directives/validators/daterange.directive.js +49 -49
  95. package/esm5/app/directives/validators/email.directive.js +49 -49
  96. package/esm5/app/directives/validators/emails.directive.js +49 -49
  97. package/esm5/app/directives/validators/function.directive.js +35 -35
  98. package/esm5/app/directives/validators/greater.directive.js +48 -48
  99. package/esm5/app/directives/validators/integer.directive.js +49 -49
  100. package/esm5/app/directives/validators/lesser.directive.js +48 -48
  101. package/esm5/app/directives/validators/max.directive.js +44 -44
  102. package/esm5/app/directives/validators/maxlength.directive.js +43 -43
  103. package/esm5/app/directives/validators/min.directive.js +44 -44
  104. package/esm5/app/directives/validators/minlength.directive.js +43 -43
  105. package/esm5/app/directives/validators/numeric.directive.js +49 -49
  106. package/esm5/app/directives/validators/pattern.directive.js +43 -43
  107. package/esm5/app/directives/validators/phone.directive.js +49 -49
  108. package/esm5/app/directives/validators/required.directive.js +87 -87
  109. package/esm5/app/directives/validators/url.directive.js +55 -55
  110. package/esm5/app/directives/validators/validate.directive.js +35 -35
  111. package/esm5/app/enums/confirm-result.js +8 -8
  112. package/esm5/app/enums/form-status.js +10 -10
  113. package/esm5/app/fs-form.module.js +110 -110
  114. package/esm5/app/guards/form-deactivate.guard.js +44 -44
  115. package/esm5/app/helpers/confirm-result-continue.js +4 -4
  116. package/esm5/app/helpers/confirm-unsaved.js +70 -70
  117. package/esm5/app/helpers/get-form-errors.js +27 -27
  118. package/esm5/app/helpers/index.js +2 -2
  119. package/esm5/app/helpers/is-enabled.js +3 -3
  120. package/esm5/app/providers/validate-messages.provider.js +11 -11
  121. package/esm5/app/services/fsform.service.js +26 -26
  122. package/esm5/app/validators/validators.js +101 -101
  123. package/esm5/firestitch-form.js +27 -28
  124. package/esm5/public_api.js +13 -13
  125. package/fesm2015/firestitch-form.js +2075 -2042
  126. package/fesm2015/firestitch-form.js.map +1 -1
  127. package/fesm5/firestitch-form.js +2304 -2270
  128. package/fesm5/firestitch-form.js.map +1 -1
  129. package/firestitch-form.d.ts +26 -27
  130. package/firestitch-form.metadata.json +1 -1
  131. package/package.json +1 -1
  132. package/public_api.d.ts +12 -12
  133. package/app/components/form-dialog-actions/index.d.ts +0 -1
  134. package/esm2015/app/components/form-dialog-actions/index.js +0 -2
  135. package/esm5/app/components/form-dialog-actions/index.js +0 -2
@@ -1,34 +1,34 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Directive, HostListener, HostBinding } from '@angular/core';
3
- import { Subject } from 'rxjs';
4
- var FsFormDialogCloseDirective = /** @class */ (function () {
5
- function FsFormDialogCloseDirective() {
6
- this.clicked$ = new Subject();
7
- this.registered = false;
8
- this.type = 'button';
9
- }
10
- FsFormDialogCloseDirective.prototype.click = function () {
11
- this.clicked$.next();
12
- };
13
- FsFormDialogCloseDirective.prototype.ngOnDestroy = function () {
14
- this.clicked$.complete();
15
- };
16
- __decorate([
17
- HostBinding('attr.type'),
18
- __metadata("design:type", Object)
19
- ], FsFormDialogCloseDirective.prototype, "type", void 0);
20
- __decorate([
21
- HostListener('click', ['$event.target']),
22
- __metadata("design:type", Function),
23
- __metadata("design:paramtypes", []),
24
- __metadata("design:returntype", void 0)
25
- ], FsFormDialogCloseDirective.prototype, "click", null);
26
- FsFormDialogCloseDirective = __decorate([
27
- Directive({
28
- selector: '[fsFormDialogClose],[fs-form-dialog-close]'
29
- })
30
- ], FsFormDialogCloseDirective);
31
- return FsFormDialogCloseDirective;
32
- }());
33
- export { FsFormDialogCloseDirective };
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, HostListener, HostBinding } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ var FsFormDialogCloseDirective = /** @class */ (function () {
5
+ function FsFormDialogCloseDirective() {
6
+ this.clicked$ = new Subject();
7
+ this.registered = false;
8
+ this.type = 'button';
9
+ }
10
+ FsFormDialogCloseDirective.prototype.click = function () {
11
+ this.clicked$.next();
12
+ };
13
+ FsFormDialogCloseDirective.prototype.ngOnDestroy = function () {
14
+ this.clicked$.complete();
15
+ };
16
+ __decorate([
17
+ HostBinding('attr.type'),
18
+ __metadata("design:type", Object)
19
+ ], FsFormDialogCloseDirective.prototype, "type", void 0);
20
+ __decorate([
21
+ HostListener('click', ['$event.target']),
22
+ __metadata("design:type", Function),
23
+ __metadata("design:paramtypes", []),
24
+ __metadata("design:returntype", void 0)
25
+ ], FsFormDialogCloseDirective.prototype, "click", null);
26
+ FsFormDialogCloseDirective = __decorate([
27
+ Directive({
28
+ selector: '[fsFormDialogClose],[fs-form-dialog-close]'
29
+ })
30
+ ], FsFormDialogCloseDirective);
31
+ return FsFormDialogCloseDirective;
32
+ }());
33
+ export { FsFormDialogCloseDirective };
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2ctY2xvc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZm9ybS8iLCJzb3VyY2VzIjpbImFwcC9kaXJlY3RpdmVzL2Zvcm0tZGlhbG9nLWNsb3NlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNL0I7SUFBQTtRQUVTLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFQSxTQUFJLEdBQUcsUUFBUSxDQUFDO0lBVTVDLENBQUM7SUFQUSwwQ0FBSyxHQUFaO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0RBQVcsR0FBbEI7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFUeUI7UUFBekIsV0FBVyxDQUFDLFdBQVcsQ0FBQzs7NERBQWlCO0lBRzFDO1FBREMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzs7OzJEQUd4QztJQVZVLDBCQUEwQjtRQUh0QyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsNENBQTRDO1NBQ3ZELENBQUM7T0FDVywwQkFBMEIsQ0FldEM7SUFBRCxpQ0FBQztDQUFBLEFBZkQsSUFlQztTQWZZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzRm9ybURpYWxvZ0Nsb3NlXSxbZnMtZm9ybS1kaWFsb2ctY2xvc2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBGc0Zvcm1EaWFsb2dDbG9zZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGNsaWNrZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHR5cGUgPSAnYnV0dG9uJztcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICBwdWJsaWMgY2xpY2soKSB7XG4gICAgdGhpcy5jbGlja2VkJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jbGlja2VkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -1,144 +1,144 @@
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
- var FsSubmitButtonDirective = /** @class */ (function () {
8
- function FsSubmitButtonDirective(_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
- FsSubmitButtonDirective.prototype.ngOnInit = function () {
19
- var _this = this;
20
- if (this._form) {
21
- this._form.addSubmitButton(this);
22
- fromEvent(this.element, 'click')
23
- .pipe(takeUntil(this._destroy$))
24
- .subscribe(function () {
25
- _this.active = true;
26
- });
27
- if (this.dirtySubmit) {
28
- if (this._form.dirtySubmitButton) {
29
- if (!this._form.ngForm.dirty) {
30
- this.disable();
31
- }
32
- }
33
- }
34
- this.transitionStyle = 'none';
35
- setTimeout(function () {
36
- _this.transitionStyle = null;
37
- }, 500);
38
- }
39
- };
40
- FsSubmitButtonDirective.prototype.disable = function () {
41
- if (this._matButton) {
42
- this._matButton.disabled = true;
43
- this._cdRef.markForCheck();
44
- }
45
- };
46
- FsSubmitButtonDirective.prototype.enable = function () {
47
- if (this._matButton) {
48
- this._matButton.disabled = false;
49
- this._matButton.disableRipple = true;
50
- this._cdRef.markForCheck();
51
- }
52
- };
53
- FsSubmitButtonDirective.prototype.process = function () {
54
- this.setClass('process');
55
- this._matButton.disableRipple = true;
56
- };
57
- FsSubmitButtonDirective.prototype.success = function () {
58
- this.setClass('success');
59
- this._matButton.disableRipple = false;
60
- };
61
- FsSubmitButtonDirective.prototype.error = function () {
62
- this.setClass('error');
63
- this._matButton.disableRipple = false;
64
- };
65
- FsSubmitButtonDirective.prototype.setClass = function (cls) {
66
- var svg = this._getSvg(cls);
67
- this._resetClass();
68
- this._disableShadowAnimation();
69
- this.element.classList.add("submit-" + cls);
70
- this.element.append(svg);
71
- };
72
- Object.defineProperty(FsSubmitButtonDirective.prototype, "element", {
73
- get: function () {
74
- return this._elementRef.nativeElement;
75
- },
76
- enumerable: true,
77
- configurable: true
78
- });
79
- FsSubmitButtonDirective.prototype.reset = function () {
80
- this.active = false;
81
- this.enable();
82
- this.element.querySelectorAll('.svg-icon')
83
- .forEach(function (el) {
84
- el.remove();
85
- });
86
- this._matButton.disableRipple = false;
87
- this._resetClass();
88
- };
89
- FsSubmitButtonDirective.prototype.ngOnDestroy = function () {
90
- this._destroy$.next();
91
- this._destroy$.complete();
92
- this._form.removeSubmitButton(this);
93
- };
94
- FsSubmitButtonDirective.prototype._disableShadowAnimation = function () {
95
- // .mat-elevation-z2 removes the click shadow animation
96
- //this.element.classList.add('mat-elevation-z2');
97
- };
98
- FsSubmitButtonDirective.prototype._resetClass = function () {
99
- this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');
100
- };
101
- FsSubmitButtonDirective.prototype._getSvg = function (type) {
102
- if (type === 'success') {
103
- 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\">\n <g>\n <g class=\"check\">\n <g>\n <path d=\"M29.6,11.9c-0.5-0.5-1.3-0.5-1.8,0L16.3,23.4l-6.1-6.1c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l7,7c0.3,0.3,0.6,0.4,0.9,0.4s0.7-0.1,0.9-0.4l12.4-12.4C30.1,13.2,30.1,12.4,29.6,11.9z\"/>\n </g>\n </g>\n </g>\n </svg>", 'text/xml').firstChild;
104
- }
105
- if (type === 'process') {
106
- 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\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\"><circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <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>\n </g>\n </g>\n </svg>", 'text/xml').firstChild;
107
- }
108
- if (type === 'error') {
109
- 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;
110
- }
111
- };
112
- FsSubmitButtonDirective.ctorParameters = function () { return [
113
- { type: MatButton, decorators: [{ type: Optional }, { type: Host }] },
114
- { type: FsFormDirective, decorators: [{ type: Optional }] },
115
- { type: ElementRef },
116
- { type: ChangeDetectorRef }
117
- ]; };
118
- __decorate([
119
- Input(),
120
- __metadata("design:type", Object)
121
- ], FsSubmitButtonDirective.prototype, "name", void 0);
122
- __decorate([
123
- Input(),
124
- __metadata("design:type", Object)
125
- ], FsSubmitButtonDirective.prototype, "dirtySubmit", void 0);
126
- __decorate([
127
- HostBinding('style.transition'),
128
- __metadata("design:type", Object)
129
- ], FsSubmitButtonDirective.prototype, "transitionStyle", void 0);
130
- FsSubmitButtonDirective = __decorate([
131
- Directive({
132
- selector: 'button[type="submit"]',
133
- }),
134
- __param(0, Optional()), __param(0, Host()),
135
- __param(1, Optional()),
136
- __metadata("design:paramtypes", [MatButton,
137
- FsFormDirective,
138
- ElementRef,
139
- ChangeDetectorRef])
140
- ], FsSubmitButtonDirective);
141
- return FsSubmitButtonDirective;
142
- }());
143
- export { FsSubmitButtonDirective };
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
+ var FsSubmitButtonDirective = /** @class */ (function () {
8
+ function FsSubmitButtonDirective(_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
+ FsSubmitButtonDirective.prototype.ngOnInit = function () {
19
+ var _this = this;
20
+ if (this._form) {
21
+ this._form.addSubmitButton(this);
22
+ fromEvent(this.element, 'click')
23
+ .pipe(takeUntil(this._destroy$))
24
+ .subscribe(function () {
25
+ _this.active = true;
26
+ });
27
+ if (this.dirtySubmit) {
28
+ if (this._form.dirtySubmitButton) {
29
+ if (!this._form.ngForm.dirty) {
30
+ this.disable();
31
+ }
32
+ }
33
+ }
34
+ this.transitionStyle = 'none';
35
+ setTimeout(function () {
36
+ _this.transitionStyle = null;
37
+ }, 500);
38
+ }
39
+ };
40
+ FsSubmitButtonDirective.prototype.disable = function () {
41
+ if (this._matButton) {
42
+ this._matButton.disabled = true;
43
+ this._cdRef.markForCheck();
44
+ }
45
+ };
46
+ FsSubmitButtonDirective.prototype.enable = function () {
47
+ if (this._matButton) {
48
+ this._matButton.disabled = false;
49
+ this._matButton.disableRipple = true;
50
+ this._cdRef.markForCheck();
51
+ }
52
+ };
53
+ FsSubmitButtonDirective.prototype.process = function () {
54
+ this.setClass('process');
55
+ this._matButton.disableRipple = true;
56
+ };
57
+ FsSubmitButtonDirective.prototype.success = function () {
58
+ this.setClass('success');
59
+ this._matButton.disableRipple = false;
60
+ };
61
+ FsSubmitButtonDirective.prototype.error = function () {
62
+ this.setClass('error');
63
+ this._matButton.disableRipple = false;
64
+ };
65
+ FsSubmitButtonDirective.prototype.setClass = function (cls) {
66
+ var svg = this._getSvg(cls);
67
+ this._resetClass();
68
+ this._disableShadowAnimation();
69
+ this.element.classList.add("submit-" + cls);
70
+ this.element.append(svg);
71
+ };
72
+ Object.defineProperty(FsSubmitButtonDirective.prototype, "element", {
73
+ get: function () {
74
+ return this._elementRef.nativeElement;
75
+ },
76
+ enumerable: true,
77
+ configurable: true
78
+ });
79
+ FsSubmitButtonDirective.prototype.reset = function () {
80
+ this.active = false;
81
+ this.enable();
82
+ this.element.querySelectorAll('.svg-icon')
83
+ .forEach(function (el) {
84
+ el.remove();
85
+ });
86
+ this._matButton.disableRipple = false;
87
+ this._resetClass();
88
+ };
89
+ FsSubmitButtonDirective.prototype.ngOnDestroy = function () {
90
+ this._destroy$.next();
91
+ this._destroy$.complete();
92
+ this._form.removeSubmitButton(this);
93
+ };
94
+ FsSubmitButtonDirective.prototype._disableShadowAnimation = function () {
95
+ // .mat-elevation-z2 removes the click shadow animation
96
+ //this.element.classList.add('mat-elevation-z2');
97
+ };
98
+ FsSubmitButtonDirective.prototype._resetClass = function () {
99
+ this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');
100
+ };
101
+ FsSubmitButtonDirective.prototype._getSvg = function (type) {
102
+ if (type === 'success') {
103
+ 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\">\n <g>\n <g class=\"check\">\n <g>\n <path d=\"M29.6,11.9c-0.5-0.5-1.3-0.5-1.8,0L16.3,23.4l-6.1-6.1c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l7,7c0.3,0.3,0.6,0.4,0.9,0.4s0.7-0.1,0.9-0.4l12.4-12.4C30.1,13.2,30.1,12.4,29.6,11.9z\"/>\n </g>\n </g>\n </g>\n </svg>", 'text/xml').firstChild;
104
+ }
105
+ if (type === 'process') {
106
+ 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\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\"><circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <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>\n </g>\n </g>\n </svg>", 'text/xml').firstChild;
107
+ }
108
+ if (type === 'error') {
109
+ 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;
110
+ }
111
+ };
112
+ FsSubmitButtonDirective.ctorParameters = function () { return [
113
+ { type: MatButton, decorators: [{ type: Optional }, { type: Host }] },
114
+ { type: FsFormDirective, decorators: [{ type: Optional }] },
115
+ { type: ElementRef },
116
+ { type: ChangeDetectorRef }
117
+ ]; };
118
+ __decorate([
119
+ Input(),
120
+ __metadata("design:type", Object)
121
+ ], FsSubmitButtonDirective.prototype, "name", void 0);
122
+ __decorate([
123
+ Input(),
124
+ __metadata("design:type", Object)
125
+ ], FsSubmitButtonDirective.prototype, "dirtySubmit", void 0);
126
+ __decorate([
127
+ HostBinding('style.transition'),
128
+ __metadata("design:type", Object)
129
+ ], FsSubmitButtonDirective.prototype, "transitionStyle", void 0);
130
+ FsSubmitButtonDirective = __decorate([
131
+ Directive({
132
+ selector: 'button[type="submit"]',
133
+ }),
134
+ __param(0, Optional()), __param(0, Host()),
135
+ __param(1, Optional()),
136
+ __metadata("design:paramtypes", [MatButton,
137
+ FsFormDirective,
138
+ ElementRef,
139
+ ChangeDetectorRef])
140
+ ], FsSubmitButtonDirective);
141
+ return FsSubmitButtonDirective;
142
+ }());
143
+ export { FsSubmitButtonDirective };
144
144
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvc3VibWl0LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTNDO0lBZUUsaUNBQzhCLFVBQXFCLEVBQzdCLEtBQXNCLEVBQ2xDLFdBQXVCLEVBQ3ZCLE1BQXlCO1FBSEwsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQWI1QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUduQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFPL0IsQ0FBQztJQUVHLDBDQUFRLEdBQWY7UUFBQSxpQkF5QkM7UUF4QkMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFP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dUI7UUFIbkMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHVCQUF1QjtTQUNsQyxDQUFDO1FBaUJHLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBO1FBQ2xCLFdBQUEsUUFBUSxFQUFFLENBQUE7eUNBRDZCLFNBQVM7WUFDdEIsZUFBZTtZQUNyQixVQUFVO1lBQ2YsaUJBQWlCO09BbkJ4Qix1QkFBdUIsQ0FnSm5DO0lBQUQsOEJBQUM7Q0FBQSxBQWhKRCxJQWdKQztTQWhKWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgSG9zdCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBJbnB1dCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9mb3JtL2Zvcm0uZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nLFxufSlcbmV4cG9ydCBjbGFzcyBGc1N1Ym1pdEJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlydHlTdWJtaXQgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpXG4gIHB1YmxpYyB0cmFuc2l0aW9uU3R5bGUgPSBudWxsO1xuXG4gIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9tYXRCdXR0b246IE1hdEJ1dHRvbixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtOiBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMuX2Zvcm0uYWRkU3VibWl0QnV0dG9uKHRoaXMpOyBcblxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5kaXJ0eVN1Ym1pdCkge1xuICAgICAgICBpZiAodGhpcy5fZm9ybS5kaXJ0eVN1Ym1pdEJ1dHRvbikge1xuICAgICAgICAgIGlmKCF0aGlzLl9mb3JtLm5nRm9ybS5kaXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuXG4gICAgICB0aGlzLnRyYW5zaXRpb25TdHlsZSA9ICdub25lJztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnRyYW5zaXRpb25TdHlsZSA9IG51bGw7XG4gICAgICB9LCA1MDApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIGlmICh0aGlzLl9tYXRCdXR0b24pIHtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlKCkge1xuICAgIGlmICh0aGlzLl9tYXRCdXR0b24pIHtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSB0cnVlO1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb2Nlc3MoKSB7XG4gICAgdGhpcy5zZXRDbGFzcygncHJvY2VzcycpO1xuICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdWNjZXNzKCkge1xuICAgIHRoaXMuc2V0Q2xhc3MoJ3N1Y2Nlc3MnKTtcbiAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGVycm9yKCkge1xuICAgIHRoaXMuc2V0Q2xhc3MoJ2Vycm9yJyk7XG4gICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDbGFzcyhjbHMpIHtcbiAgICBjb25zdCBzdmcgPSB0aGlzLl9nZXRTdmcoY2xzKTtcbiAgICB0aGlzLl9yZXNldENsYXNzKCk7XG4gICAgdGhpcy5fZGlzYWJsZVNoYWRvd0FuaW1hdGlvbigpO1xuICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGBzdWJtaXQtJHtjbHN9YCk7XG4gICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdmcpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLmVuYWJsZSgpO1xuICAgIHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc3ZnLWljb24nKVxuICAgICAgLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGVsLnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSBmYWxzZTtcbiAgICB0aGlzLl9yZXNldENsYXNzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybS5yZW1vdmVTdWJtaXRCdXR0b24odGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlU2hhZG93QW5pbWF0aW9uKCkge1xuICAgIC8vIC5tYXQtZWxldmF0aW9uLXoyIHJlbW92ZXMgdGhlIGNsaWNrIHNoYWRvdyBhbmltYXRpb25cbiAgICAvL3RoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXQtZWxldmF0aW9uLXoyJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldENsYXNzKCkge1xuICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzdWJtaXQtc3VjY2VzcycsICdzdWJtaXQtZXJyb3InLCAnc3VibWl0LXByb2Nlc3MnLCAnbWF0LWVsZXZhdGlvbi16MicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnKHR5cGUpIHtcbiAgICBpZiAodHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPHN2ZyBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXN1Y2Nlc3NcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgdmVyc2lvbj1cIjEuMVwiIHg9XCIwcHhcIiB5PVwiMHB4XCIgdmlld0JveD1cIjAgMCAzOCAzOFwiIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzOCAzODtcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiIHdpZHRoPVwiMzhweFwiIGhlaWdodD1cIjM4cHhcIj5cbiAgICAgIDxnPlxuICAgICAgICA8ZyBjbGFzcz1cImNoZWNrXCI+XG4gICAgICAgICAgPGc+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTI5LjYsMTEuOWMtMC41LTAuNS0xLjMtMC41LTEuOCwwTDE2LjMsMjMuNGwtNi4xLTYuMWMtMC41LTAuNS0xLjMtMC41LTEuOCwwcy0wLjUsMS4zLDAsMS44bDcsN2MwLjMsMC4zLDAuNiwwLjQsMC45LDAuNHMwLjctMC4xLDAuOS0wLjRsMTIuNC0xMi40QzMwLjEsMTMuMiwzMC4xLDEyLjQsMjkuNiwxMS45elwiLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPmAsICd0ZXh0L3htbCcpLmZpcnN0Q2hpbGQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdwcm9jZXNzJykge1xuICAgICAgcmV0dXJuIG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxzdmcgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcm9jZXNzXCIgd2lkdGg9XCIzOFwiIGhlaWdodD1cIjM4XCIgdmlld0JveD1cIjAgMCAzOCAzOFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMSAxKVwiIHN0cm9rZS13aWR0aD1cIjJcIj48Y2lyY2xlIHN0cm9rZS1vcGFjaXR5PVwiLjVcIiBjeD1cIjE4XCIgY3k9XCIxOFwiIHI9XCIxOFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCI+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBmcm9tPVwiMCAxOCAxOFwiIHRvPVwiMzYwIDE4IDE4XCIgZHVyPVwiLjdzXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPC9zdmc+YCwgJ3RleHQveG1sJykuZmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgcmV0dXJuIG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxzdmcgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1lcnJvclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM4cHhcIiBoZWlnaHQ9XCIzOHB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxnPjxwYXRoIGQ9XCJNOCAxYzMuOSAwIDcgMy4xIDcgN3MtMy4xIDctNyA3LTctMy4xLTctNyAzLjEtNyA3LTd6TTggMGMtNC40IDAtOCAzLjYtOCA4czMuNiA4IDggOCA4LTMuNiA4LTgtMy42LTgtOC04djB6XCIgZGF0YS1vcmlnaW5hbD1cIiM0NDQ0NDRcIiBkYXRhLW9sZF9jb2xvcj1cIiM0NDQ0NDRcIi8+PHBhdGggZD1cIk0xMi4yIDEwLjhsLTIuOC0yLjggMi44LTIuOC0xLjQtMS40LTIuOCAyLjgtMi44LTIuOC0xLjQgMS40IDIuOCAyLjgtMi44IDIuOCAxLjQgMS40IDIuOC0yLjggMi44IDIuOHpcIi8+PC9nPiA8L3N2Zz5gLCAndGV4dC94bWwnKS5maXJzdENoaWxkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,60 +1,60 @@
1
- import { __decorate, __extends, __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
- var FsFormCompareDirective = /** @class */ (function (_super) {
6
- __extends(FsFormCompareDirective, _super);
7
- function FsFormCompareDirective() {
8
- return _super !== null && _super.apply(this, arguments) || this;
9
- }
10
- Object.defineProperty(FsFormCompareDirective.prototype, "validationMessage", {
11
- set: function (value) {
12
- this._validateMessages.compare = value;
13
- },
14
- enumerable: true,
15
- configurable: true
16
- });
17
- FsFormCompareDirective.prototype.ngOnChanges = function () {
18
- this._control.updateValueAndValidity();
19
- };
20
- FsFormCompareDirective.prototype.validate = function (control) {
21
- if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {
22
- return null;
23
- }
24
- else {
25
- return { compare: true };
26
- }
27
- };
28
- FsFormCompareDirective.prototype.ngAfterViewInit = function () {
29
- var _this = this;
30
- this.fsFormCompare.addEventListener('keyup', function () {
31
- _this._control.updateValueAndValidity();
32
- }, false);
33
- };
34
- FsFormCompareDirective.prototype.ngOnDestroy = function () {
35
- var _this = this;
36
- this.fsFormCompare.removeEventListener('keyup', function () {
37
- _this._control.updateValueAndValidity();
38
- }, false);
39
- };
40
- __decorate([
41
- Input(),
42
- __metadata("design:type", Object)
43
- ], FsFormCompareDirective.prototype, "fsFormCompare", void 0);
44
- __decorate([
45
- Input('fsFormCompareMessage'),
46
- __metadata("design:type", String),
47
- __metadata("design:paramtypes", [String])
48
- ], FsFormCompareDirective.prototype, "validationMessage", null);
49
- FsFormCompareDirective = __decorate([
50
- Directive({
51
- selector: '[fsFormCompare]',
52
- providers: [
53
- VALIDATE_MESSAGE_PROVIDER,
54
- ],
55
- })
56
- ], FsFormCompareDirective);
57
- return FsFormCompareDirective;
58
- }(FsControlDirective));
59
- export { FsFormCompareDirective };
1
+ import { __decorate, __extends, __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
+ var FsFormCompareDirective = /** @class */ (function (_super) {
6
+ __extends(FsFormCompareDirective, _super);
7
+ function FsFormCompareDirective() {
8
+ return _super !== null && _super.apply(this, arguments) || this;
9
+ }
10
+ Object.defineProperty(FsFormCompareDirective.prototype, "validationMessage", {
11
+ set: function (value) {
12
+ this._validateMessages.compare = value;
13
+ },
14
+ enumerable: true,
15
+ configurable: true
16
+ });
17
+ FsFormCompareDirective.prototype.ngOnChanges = function () {
18
+ this._control.updateValueAndValidity();
19
+ };
20
+ FsFormCompareDirective.prototype.validate = function (control) {
21
+ if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {
22
+ return null;
23
+ }
24
+ else {
25
+ return { compare: true };
26
+ }
27
+ };
28
+ FsFormCompareDirective.prototype.ngAfterViewInit = function () {
29
+ var _this = this;
30
+ this.fsFormCompare.addEventListener('keyup', function () {
31
+ _this._control.updateValueAndValidity();
32
+ }, false);
33
+ };
34
+ FsFormCompareDirective.prototype.ngOnDestroy = function () {
35
+ var _this = this;
36
+ this.fsFormCompare.removeEventListener('keyup', function () {
37
+ _this._control.updateValueAndValidity();
38
+ }, false);
39
+ };
40
+ __decorate([
41
+ Input(),
42
+ __metadata("design:type", Object)
43
+ ], FsFormCompareDirective.prototype, "fsFormCompare", void 0);
44
+ __decorate([
45
+ Input('fsFormCompareMessage'),
46
+ __metadata("design:type", String),
47
+ __metadata("design:paramtypes", [String])
48
+ ], FsFormCompareDirective.prototype, "validationMessage", null);
49
+ FsFormCompareDirective = __decorate([
50
+ Directive({
51
+ selector: '[fsFormCompare]',
52
+ providers: [
53
+ VALIDATE_MESSAGE_PROVIDER,
54
+ ],
55
+ })
56
+ ], FsFormCompareDirective);
57
+ return FsFormCompareDirective;
58
+ }(FsControlDirective));
59
+ export { FsFormCompareDirective };
60
60
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9jb21wYXJlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBV3ZGO0lBQTRDLDBDQUFrQjtJQUE5RDs7SUFrQ0EsQ0FBQztJQTNCQyxzQkFBVyxxREFBaUI7YUFBNUIsVUFBNkIsS0FBYTtZQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN6QyxDQUFDOzs7T0FBQTtJQUVNLDRDQUFXLEdBQWxCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSx5Q0FBUSxHQUFmLFVBQWdCLE9BQXdCO1FBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sZ0RBQWUsR0FBdEI7UUFBQSxpQkFJQztRQUhDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzNDLEtBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sNENBQVcsR0FBbEI7UUFBQSxpQkFJQztRQUhDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFO1lBQzlDLEtBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBN0JEO1FBREMsS0FBSyxFQUFFOztpRUFDYTtJQUdyQjtRQURDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQzs7O21FQUc3QjtJQVRVLHNCQUFzQjtRQU5sQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVCx5QkFBeUI7YUFDMUI7U0FDRixDQUFDO09BQ1csc0JBQXNCLENBa0NsQztJQUFELDZCQUFDO0NBQUEsQUFsQ0QsQ0FBNEMsa0JBQWtCLEdBa0M3RDtTQWxDWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnNDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWQUxJREFURV9NRVNTQUdFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3ZhbGlkYXRlLW1lc3NhZ2VzLnByb3ZpZGVyJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZzVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy92YWxpZGF0b3InO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmc0Zvcm1Db21wYXJlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIFZBTElEQVRFX01FU1NBR0VfUFJPVklERVIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzRm9ybUNvbXBhcmVEaXJlY3RpdmUgZXh0ZW5kcyBGc0NvbnRyb2xEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRnNWYWxpZGF0b3Ige1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmc0Zvcm1Db21wYXJlO1xuXG4gIEBJbnB1dCgnZnNGb3JtQ29tcGFyZU1lc3NhZ2UnKVxuICBwdWJsaWMgc2V0IHZhbGlkYXRpb25NZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWxpZGF0ZU1lc3NhZ2VzLmNvbXBhcmUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZnNGb3JtQ29tcGFyZS52YWx1ZSA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBjb21wYXJlOiB0cnVlIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZzRm9ybUNvbXBhcmUuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoKSA9PiB7XG4gICAgICB0aGlzLl9jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9LCBmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mc0Zvcm1Db21wYXJlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKCkgPT4ge1xuICAgICAgdGhpcy5fY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSwgZmFsc2UpO1xuICB9XG59XG4iXX0=