@firestitch/form 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +1 -1
  2. package/app/components/form-template/form-template.component.d.ts +1 -1
  3. package/app/components/form-template-outlet/form-template-outlet.component.d.ts +1 -1
  4. package/app/directives/button.directive.d.ts +1 -1
  5. package/app/directives/form/form.directive.d.ts +1 -1
  6. package/app/directives/form-dialog-close.directive.d.ts +1 -1
  7. package/app/directives/validators/compare.directive.d.ts +1 -1
  8. package/app/directives/validators/control.directive.d.ts +1 -1
  9. package/app/directives/validators/daterange.directive.d.ts +1 -1
  10. package/app/directives/validators/email.directive.d.ts +1 -1
  11. package/app/directives/validators/emails.directive.d.ts +1 -1
  12. package/app/directives/validators/function.directive.d.ts +1 -1
  13. package/app/directives/validators/greater-equal.directive.d.ts +1 -1
  14. package/app/directives/validators/greater.directive.d.ts +1 -1
  15. package/app/directives/validators/integer.directive.d.ts +1 -1
  16. package/app/directives/validators/lesser-equal.directive.d.ts +1 -1
  17. package/app/directives/validators/lesser.directive.d.ts +1 -1
  18. package/app/directives/validators/max.directive.d.ts +1 -1
  19. package/app/directives/validators/maxlength.directive.d.ts +1 -1
  20. package/app/directives/validators/min.directive.d.ts +1 -1
  21. package/app/directives/validators/minlength.directive.d.ts +1 -1
  22. package/app/directives/validators/numeric.directive.d.ts +1 -1
  23. package/app/directives/validators/pattern.directive.d.ts +1 -1
  24. package/app/directives/validators/phone.directive.d.ts +1 -1
  25. package/app/directives/validators/required.directive.d.ts +1 -1
  26. package/app/directives/validators/url.directive.d.ts +1 -1
  27. package/app/directives/validators/validate.directive.d.ts +1 -1
  28. package/app/guards/form-deactivate.guard.d.ts +2 -2
  29. package/esm2022/app/components/confirm-unsaved/confirm-unsaved.component.mjs +51 -0
  30. package/esm2022/app/components/form-dialog-actions/form-dialog-actions.component.mjs +79 -0
  31. package/esm2022/app/components/form-template/form-template.component.mjs +34 -0
  32. package/esm2022/app/components/form-template-outlet/form-template-outlet.component.mjs +32 -0
  33. package/esm2022/app/directives/button.directive.mjs +172 -0
  34. package/esm2022/app/directives/form/form.directive.mjs +702 -0
  35. package/esm2022/app/directives/form-dialog-close.directive.mjs +57 -0
  36. package/esm2022/app/directives/form-template.directive.mjs +21 -0
  37. package/{esm2020 → esm2022}/app/directives/submit-button.directive.mjs +4 -4
  38. package/esm2022/app/directives/validators/compare.directive.mjs +48 -0
  39. package/esm2022/app/directives/validators/control.directive.mjs +269 -0
  40. package/esm2022/app/directives/validators/daterange.directive.mjs +42 -0
  41. package/esm2022/app/directives/validators/email.directive.mjs +42 -0
  42. package/esm2022/app/directives/validators/emails.directive.mjs +42 -0
  43. package/esm2022/app/directives/validators/function.directive.mjs +40 -0
  44. package/esm2022/app/directives/validators/greater-equal.directive.mjs +41 -0
  45. package/esm2022/app/directives/validators/greater.directive.mjs +41 -0
  46. package/esm2022/app/directives/validators/integer.directive.mjs +40 -0
  47. package/esm2022/app/directives/validators/lesser-equal.directive.mjs +41 -0
  48. package/esm2022/app/directives/validators/lesser.directive.mjs +41 -0
  49. package/esm2022/app/directives/validators/max.directive.mjs +37 -0
  50. package/esm2022/app/directives/validators/maxlength.directive.mjs +36 -0
  51. package/esm2022/app/directives/validators/min.directive.mjs +37 -0
  52. package/esm2022/app/directives/validators/minlength.directive.mjs +36 -0
  53. package/{esm2020 → esm2022}/app/directives/validators/no-fs-validators.directive.mjs +6 -6
  54. package/esm2022/app/directives/validators/numeric.directive.mjs +42 -0
  55. package/esm2022/app/directives/validators/pattern.directive.mjs +36 -0
  56. package/esm2022/app/directives/validators/phone.directive.mjs +42 -0
  57. package/esm2022/app/directives/validators/required.directive.mjs +66 -0
  58. package/esm2022/app/directives/validators/url.directive.mjs +43 -0
  59. package/esm2022/app/directives/validators/validate.directive.mjs +42 -0
  60. package/esm2022/app/fs-form.module.mjs +209 -0
  61. package/esm2022/app/guards/form-deactivate.guard.mjs +44 -0
  62. package/esm2022/app/services/fsform.service.mjs +94 -0
  63. package/{fesm2020 → fesm2022}/firestitch-form.mjs +354 -291
  64. package/fesm2022/firestitch-form.mjs.map +1 -0
  65. package/package.json +5 -11
  66. package/esm2020/app/components/confirm-unsaved/confirm-unsaved.component.mjs +0 -44
  67. package/esm2020/app/components/form-dialog-actions/form-dialog-actions.component.mjs +0 -75
  68. package/esm2020/app/components/form-template/form-template.component.mjs +0 -31
  69. package/esm2020/app/components/form-template-outlet/form-template-outlet.component.mjs +0 -30
  70. package/esm2020/app/directives/button.directive.mjs +0 -166
  71. package/esm2020/app/directives/form/form.directive.mjs +0 -689
  72. package/esm2020/app/directives/form-dialog-close.directive.mjs +0 -54
  73. package/esm2020/app/directives/form-template.directive.mjs +0 -20
  74. package/esm2020/app/directives/validators/compare.directive.mjs +0 -47
  75. package/esm2020/app/directives/validators/control.directive.mjs +0 -258
  76. package/esm2020/app/directives/validators/daterange.directive.mjs +0 -41
  77. package/esm2020/app/directives/validators/email.directive.mjs +0 -41
  78. package/esm2020/app/directives/validators/emails.directive.mjs +0 -41
  79. package/esm2020/app/directives/validators/function.directive.mjs +0 -41
  80. package/esm2020/app/directives/validators/greater-equal.directive.mjs +0 -40
  81. package/esm2020/app/directives/validators/greater.directive.mjs +0 -40
  82. package/esm2020/app/directives/validators/integer.directive.mjs +0 -39
  83. package/esm2020/app/directives/validators/lesser-equal.directive.mjs +0 -40
  84. package/esm2020/app/directives/validators/lesser.directive.mjs +0 -40
  85. package/esm2020/app/directives/validators/max.directive.mjs +0 -36
  86. package/esm2020/app/directives/validators/maxlength.directive.mjs +0 -35
  87. package/esm2020/app/directives/validators/min.directive.mjs +0 -36
  88. package/esm2020/app/directives/validators/minlength.directive.mjs +0 -35
  89. package/esm2020/app/directives/validators/numeric.directive.mjs +0 -41
  90. package/esm2020/app/directives/validators/pattern.directive.mjs +0 -35
  91. package/esm2020/app/directives/validators/phone.directive.mjs +0 -41
  92. package/esm2020/app/directives/validators/required.directive.mjs +0 -69
  93. package/esm2020/app/directives/validators/url.directive.mjs +0 -45
  94. package/esm2020/app/directives/validators/validate.directive.mjs +0 -43
  95. package/esm2020/app/fs-form.module.mjs +0 -209
  96. package/esm2020/app/guards/form-deactivate.guard.mjs +0 -42
  97. package/esm2020/app/services/fsform.service.mjs +0 -92
  98. package/fesm2015/firestitch-form.mjs +0 -2579
  99. package/fesm2015/firestitch-form.mjs.map +0 -1
  100. package/fesm2020/firestitch-form.mjs.map +0 -1
  101. /package/{esm2020 → esm2022}/app/components/confirm-unsaved/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/app/components/form-dialog-actions/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/app/components/form-template/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/app/components/form-template-outlet/index.mjs +0 -0
  105. /package/{esm2020 → esm2022}/app/components/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/app/consts/error-messages.const.mjs +0 -0
  107. /package/{esm2020 → esm2022}/app/directives/form/index.mjs +0 -0
  108. /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
  109. /package/{esm2020 → esm2022}/app/directives/validators/index.mjs +0 -0
  110. /package/{esm2020 → esm2022}/app/enums/confirm-result.mjs +0 -0
  111. /package/{esm2020 → esm2022}/app/enums/form-status.mjs +0 -0
  112. /package/{esm2020 → esm2022}/app/enums/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/app/helpers/confirm-result-continue.mjs +0 -0
  114. /package/{esm2020 → esm2022}/app/helpers/get-active-route.mjs +0 -0
  115. /package/{esm2020 → esm2022}/app/helpers/get-form-errors.mjs +0 -0
  116. /package/{esm2020 → esm2022}/app/helpers/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/app/helpers/is-enabled.mjs +0 -0
  118. /package/{esm2020 → esm2022}/app/interfaces/async-validator.mjs +0 -0
  119. /package/{esm2020 → esm2022}/app/interfaces/confirm-config.mjs +0 -0
  120. /package/{esm2020 → esm2022}/app/interfaces/confirm-tab-group.mjs +0 -0
  121. /package/{esm2020 → esm2022}/app/interfaces/index.mjs +0 -0
  122. /package/{esm2020 → esm2022}/app/interfaces/submit-event.mjs +0 -0
  123. /package/{esm2020 → esm2022}/app/interfaces/submitted-event.mjs +0 -0
  124. /package/{esm2020 → esm2022}/app/interfaces/validator.mjs +0 -0
  125. /package/{esm2020 → esm2022}/app/providers/validate-messages.provider.mjs +0 -0
  126. /package/{esm2020 → esm2022}/app/validators/validators.mjs +0 -0
  127. /package/{esm2020 → esm2022}/firestitch-form.mjs +0 -0
  128. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,45 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { isEnabled } from '../../helpers/is-enabled';
3
- import { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';
4
- import { FsValidators } from '../../validators/validators';
5
- import { FsControlDirective } from './control.directive';
6
- import * as i0 from "@angular/core";
7
- export class FsFormUrlDirective extends FsControlDirective {
8
- constructor() {
9
- super(...arguments);
10
- this.fsFormUrlProtocol = true;
11
- }
12
- set validationMessage(value) {
13
- this._validateMessages.url = value;
14
- }
15
- ngOnChanges() {
16
- this._control.updateValueAndValidity();
17
- }
18
- validate(control) {
19
- if (isEnabled(this.fsFormUrl)) {
20
- return FsValidators.url(this._control, this.fsFormUrlProtocol);
21
- }
22
- return null;
23
- }
24
- }
25
- FsFormUrlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormUrlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
26
- FsFormUrlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FsFormUrlDirective, selector: "[fsFormUrl]", inputs: { fsFormUrl: "fsFormUrl", fsFormUrlProtocol: "fsFormUrlProtocol", validationMessage: ["fsFormUrlMessage", "validationMessage"] }, providers: [
27
- VALIDATE_MESSAGE_PROVIDER,
28
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormUrlDirective, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: '[fsFormUrl]',
33
- providers: [
34
- VALIDATE_MESSAGE_PROVIDER,
35
- ],
36
- }]
37
- }], propDecorators: { fsFormUrl: [{
38
- type: Input
39
- }], fsFormUrlProtocol: [{
40
- type: Input
41
- }], validationMessage: [{
42
- type: Input,
43
- args: ['fsFormUrlMessage']
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlyZWN0aXZlcy92YWxpZGF0b3JzL3VybC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFTekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQU4xRDs7UUFZUyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7S0FvQmpDO0lBbEJDLElBQ1csaUJBQWlCLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLElBQUksQ0FBQztJQUVkLENBQUM7O2dIQXhCVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixnTEFKbEI7UUFDVCx5QkFBeUI7S0FDMUI7NEZBRVUsa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixTQUFTLEVBQUU7d0JBQ1QseUJBQXlCO3FCQUMxQjtpQkFDRjs4QkFJUSxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlLLGlCQUFpQjtzQkFEM0IsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgaXNFbmFibGVkIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pcy1lbmFibGVkJztcbmltcG9ydCB7IEZzVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy92YWxpZGF0b3InO1xuaW1wb3J0IHsgVkFMSURBVEVfTUVTU0FHRV9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy92YWxpZGF0ZS1tZXNzYWdlcy5wcm92aWRlcic7XG5pbXBvcnQgeyBGc1ZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3ZhbGlkYXRvcnMnO1xuXG5pbXBvcnQgeyBGc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZnNGb3JtVXJsXScsXG4gIHByb3ZpZGVyczogW1xuICAgIFZBTElEQVRFX01FU1NBR0VfUFJPVklERVIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzRm9ybVVybERpcmVjdGl2ZSBleHRlbmRzIEZzQ29udHJvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgRnNWYWxpZGF0b3Ige1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmc0Zvcm1Vcmw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZzRm9ybVVybFByb3RvY29sID0gdHJ1ZTtcblxuICBASW5wdXQoJ2ZzRm9ybVVybE1lc3NhZ2UnKVxuICBwdWJsaWMgc2V0IHZhbGlkYXRpb25NZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWxpZGF0ZU1lc3NhZ2VzLnVybCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuX2NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoaXNFbmFibGVkKHRoaXMuZnNGb3JtVXJsKSkge1xuICAgICAgcmV0dXJuIEZzVmFsaWRhdG9ycy51cmwodGhpcy5fY29udHJvbCwgdGhpcy5mc0Zvcm1VcmxQcm90b2NvbCk7XG4gICAgfVxuIFxuICAgIHJldHVybiBudWxsO1xuICAgIFxuICB9XG5cbn1cbiJdfQ==
@@ -1,43 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { FsControlDirective } from './control.directive';
4
- import { FsValidators } from '../../validators/validators';
5
- import { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';
6
- import * as i0 from "@angular/core";
7
- export class FsFormValidateDirective extends FsControlDirective {
8
- constructor() {
9
- super(...arguments);
10
- this.validateOnSubmit = false;
11
- }
12
- ngOnChanges() {
13
- this._control.updateValueAndValidity();
14
- }
15
- validateAsync(control) {
16
- if (this.validateOnSubmit && !this.formDirective.validating) {
17
- return of(null);
18
- }
19
- return FsValidators.func(this._control, this.validateFn, this.validateFnData);
20
- }
21
- }
22
- FsFormValidateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormValidateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
23
- FsFormValidateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FsFormValidateDirective, selector: "[validate]", inputs: { validateFn: ["validate", "validateFn"], validateFnData: ["validateData", "validateFnData"], validateOnSubmit: "validateOnSubmit" }, providers: [
24
- VALIDATE_MESSAGE_PROVIDER
25
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormValidateDirective, decorators: [{
27
- type: Directive,
28
- args: [{
29
- selector: '[validate]',
30
- providers: [
31
- VALIDATE_MESSAGE_PROVIDER
32
- ],
33
- }]
34
- }], propDecorators: { validateFn: [{
35
- type: Input,
36
- args: ['validate']
37
- }], validateFnData: [{
38
- type: Input,
39
- args: ['validateData']
40
- }], validateOnSubmit: [{
41
- type: Input
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvdmFsaWRhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQVV2RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsa0JBQWtCO0lBTi9EOztRQWVTLHFCQUFnQixHQUFHLEtBQUssQ0FBQztLQWNqQztJQVpRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBd0I7UUFDM0MsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMxRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O3FIQXJCVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixtTEFKdkI7UUFDVCx5QkFBeUI7S0FDMUI7NEZBRVUsdUJBQXVCO2tCQU5uQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1QseUJBQXlCO3FCQUMxQjtpQkFDRjs4QkFJUSxVQUFVO3NCQURoQixLQUFLO3VCQUFDLFVBQVU7Z0JBSVYsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxjQUFjO2dCQUlkLGdCQUFnQjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBWQUxJREFURV9NRVNTQUdFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3ZhbGlkYXRlLW1lc3NhZ2VzLnByb3ZpZGVyJztcbmltcG9ydCB7IEZzQXN5bmNWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FzeW5jLXZhbGlkYXRvcic7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3ZhbGlkYXRlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIFZBTElEQVRFX01FU1NBR0VfUFJPVklERVJcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGb3JtVmFsaWRhdGVEaXJlY3RpdmUgZXh0ZW5kcyBGc0NvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEZzQXN5bmNWYWxpZGF0b3Ige1xuXG4gIEBJbnB1dCgndmFsaWRhdGUnKVxuICBwdWJsaWMgdmFsaWRhdGVGbjtcblxuICBASW5wdXQoJ3ZhbGlkYXRlRGF0YScpXG4gIHB1YmxpYyB2YWxpZGF0ZUZuRGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmFsaWRhdGVPblN1Ym1pdCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZUFzeW5jKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGlmKHRoaXMudmFsaWRhdGVPblN1Ym1pdCAmJiAhdGhpcy5mb3JtRGlyZWN0aXZlLnZhbGlkYXRpbmcpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gRnNWYWxpZGF0b3JzLmZ1bmModGhpcy5fY29udHJvbCwgdGhpcy52YWxpZGF0ZUZuLCB0aGlzLnZhbGlkYXRlRm5EYXRhKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,209 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
6
- import { MatDialogModule } from '@angular/material/dialog';
7
- import { FsDialogModule } from '@firestitch/dialog';
8
- import { ConfirmUnsavedComponent, FsFormDialogActionsComponent, FsFormTemplateComponent, FsFormTemplateOutletComponent, } from './components';
9
- import { FsFormGreaterEqualDirective, FsFormLesserEqualDirective, FsFormTemplateDirective, FsSubmitButtonDirective, } from './directives';
10
- import { FsButtonDirective } from './directives/button.directive';
11
- import { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';
12
- import { FsFormDirective } from './directives/form/form.directive';
13
- import { FsFormCompareDirective } from './directives/validators/compare.directive';
14
- import { FsControlDirective } from './directives/validators/control.directive';
15
- import { FsFormDateRangeDirective } from './directives/validators/daterange.directive';
16
- import { FsFormEmailDirective } from './directives/validators/email.directive';
17
- import { FsFormEmailsDirective } from './directives/validators/emails.directive';
18
- import { FsFormFunctionDirective } from './directives/validators/function.directive';
19
- import { FsFormGreaterDirective } from './directives/validators/greater.directive';
20
- import { FsFormIntegerDirective } from './directives/validators/integer.directive';
21
- import { FsFormLesserDirective } from './directives/validators/lesser.directive';
22
- import { FsFormMaxDirective } from './directives/validators/max.directive';
23
- import { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';
24
- import { FsFormMinDirective } from './directives/validators/min.directive';
25
- import { FsFormMinLengthDirective } from './directives/validators/minlength.directive';
26
- import { FsFormNoFsValidatorsDirective } from './directives/validators/no-fs-validators.directive';
27
- import { FsFormNumericDirective } from './directives/validators/numeric.directive';
28
- import { FsFormPatternDirective } from './directives/validators/pattern.directive';
29
- import { FsFormPhoneDirective } from './directives/validators/phone.directive';
30
- import { FsFormRequiredDirective } from './directives/validators/required.directive';
31
- import { FsFormUrlDirective } from './directives/validators/url.directive';
32
- import { FsFormValidateDirective } from './directives/validators/validate.directive';
33
- import * as i0 from "@angular/core";
34
- export class FsFormModule {
35
- static forRoot() {
36
- /**
37
- * Hack: https://github.com/angular/components/issues/20097
38
- */
39
- ErrorStateMatcher.prototype
40
- .isErrorState = (control, form) => {
41
- return control?.invalid && control?.touched && control?.dirty;
42
- };
43
- return {
44
- ngModule: FsFormModule,
45
- };
46
- }
47
- }
48
- FsFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
49
- FsFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FsFormModule, declarations: [FsFormDirective,
50
- FsControlDirective,
51
- FsFormRequiredDirective,
52
- FsFormMinDirective,
53
- FsFormMaxDirective,
54
- FsFormMinLengthDirective,
55
- FsFormMaxLengthDirective,
56
- FsFormEmailDirective,
57
- FsFormEmailsDirective,
58
- FsFormPhoneDirective,
59
- FsFormCompareDirective,
60
- FsFormIntegerDirective,
61
- FsFormNumericDirective,
62
- FsFormPatternDirective,
63
- FsFormFunctionDirective,
64
- FsFormDateRangeDirective,
65
- FsFormGreaterDirective,
66
- FsFormGreaterEqualDirective,
67
- FsFormLesserDirective,
68
- FsFormLesserEqualDirective,
69
- FsFormUrlDirective,
70
- FsFormDialogCloseDirective,
71
- FsFormValidateDirective,
72
- FsFormDialogActionsComponent,
73
- FsFormNoFsValidatorsDirective,
74
- FsButtonDirective,
75
- FsSubmitButtonDirective,
76
- FsFormTemplateComponent,
77
- FsFormTemplateDirective,
78
- FsFormTemplateOutletComponent,
79
- ConfirmUnsavedComponent], imports: [CommonModule,
80
- FormsModule,
81
- MatButtonModule,
82
- MatDialogModule,
83
- MatDialogModule,
84
- FsDialogModule], exports: [FsFormDirective,
85
- FsControlDirective,
86
- FsFormRequiredDirective,
87
- FsFormMinDirective,
88
- FsFormMaxDirective,
89
- FsFormMinLengthDirective,
90
- FsFormMaxLengthDirective,
91
- FsFormEmailDirective,
92
- FsFormEmailsDirective,
93
- FsFormPhoneDirective,
94
- FsFormCompareDirective,
95
- FsFormIntegerDirective,
96
- FsFormNumericDirective,
97
- FsFormPatternDirective,
98
- FsFormFunctionDirective,
99
- FsFormDateRangeDirective,
100
- FsFormGreaterDirective,
101
- FsFormGreaterEqualDirective,
102
- FsFormLesserDirective,
103
- FsFormLesserEqualDirective,
104
- FsFormUrlDirective,
105
- FsFormDialogCloseDirective,
106
- FsFormValidateDirective,
107
- FsFormDialogActionsComponent,
108
- FsFormNoFsValidatorsDirective,
109
- FsButtonDirective,
110
- FsSubmitButtonDirective,
111
- FsFormTemplateComponent,
112
- FsFormTemplateDirective,
113
- FsFormTemplateOutletComponent] });
114
- FsFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormModule, providers: [
115
- {
116
- provide: ErrorStateMatcher,
117
- useClass: ShowOnDirtyErrorStateMatcher,
118
- },
119
- ], imports: [CommonModule,
120
- FormsModule,
121
- MatButtonModule,
122
- MatDialogModule,
123
- MatDialogModule,
124
- FsDialogModule] });
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsFormModule, decorators: [{
126
- type: NgModule,
127
- args: [{
128
- imports: [
129
- CommonModule,
130
- FormsModule,
131
- MatButtonModule,
132
- MatDialogModule,
133
- MatDialogModule,
134
- FsDialogModule,
135
- ],
136
- declarations: [
137
- FsFormDirective,
138
- FsControlDirective,
139
- FsFormRequiredDirective,
140
- FsFormMinDirective,
141
- FsFormMaxDirective,
142
- FsFormMinLengthDirective,
143
- FsFormMaxLengthDirective,
144
- FsFormEmailDirective,
145
- FsFormEmailsDirective,
146
- FsFormPhoneDirective,
147
- FsFormCompareDirective,
148
- FsFormIntegerDirective,
149
- FsFormNumericDirective,
150
- FsFormPatternDirective,
151
- FsFormFunctionDirective,
152
- FsFormDateRangeDirective,
153
- FsFormGreaterDirective,
154
- FsFormGreaterEqualDirective,
155
- FsFormLesserDirective,
156
- FsFormLesserEqualDirective,
157
- FsFormUrlDirective,
158
- FsFormDialogCloseDirective,
159
- FsFormValidateDirective,
160
- FsFormDialogActionsComponent,
161
- FsFormNoFsValidatorsDirective,
162
- FsButtonDirective,
163
- FsSubmitButtonDirective,
164
- FsFormTemplateComponent,
165
- FsFormTemplateDirective,
166
- FsFormTemplateOutletComponent,
167
- ConfirmUnsavedComponent,
168
- ],
169
- exports: [
170
- FsFormDirective,
171
- FsControlDirective,
172
- FsFormRequiredDirective,
173
- FsFormMinDirective,
174
- FsFormMaxDirective,
175
- FsFormMinLengthDirective,
176
- FsFormMaxLengthDirective,
177
- FsFormEmailDirective,
178
- FsFormEmailsDirective,
179
- FsFormPhoneDirective,
180
- FsFormCompareDirective,
181
- FsFormIntegerDirective,
182
- FsFormNumericDirective,
183
- FsFormPatternDirective,
184
- FsFormFunctionDirective,
185
- FsFormDateRangeDirective,
186
- FsFormGreaterDirective,
187
- FsFormGreaterEqualDirective,
188
- FsFormLesserDirective,
189
- FsFormLesserEqualDirective,
190
- FsFormUrlDirective,
191
- FsFormDialogCloseDirective,
192
- FsFormValidateDirective,
193
- FsFormDialogActionsComponent,
194
- FsFormNoFsValidatorsDirective,
195
- FsButtonDirective,
196
- FsSubmitButtonDirective,
197
- FsFormTemplateComponent,
198
- FsFormTemplateDirective,
199
- FsFormTemplateOutletComponent,
200
- ],
201
- providers: [
202
- {
203
- provide: ErrorStateMatcher,
204
- useClass: ShowOnDirtyErrorStateMatcher,
205
- },
206
- ],
207
- }]
208
- }] });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2ZzLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQTBDLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBRTdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFDTCx1QkFBdUIsRUFBRSw0QkFBNEIsRUFDckQsdUJBQXVCLEVBQUUsNkJBQTZCLEdBQ3ZELE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCwyQkFBMkIsRUFBRSwwQkFBMEIsRUFDdkQsdUJBQXVCLEVBQUUsdUJBQXVCLEdBQ2pELE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUs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QUN4QixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLDZCQUE2QjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSw0QkFBNEI7eUJBQ3ZDO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBTaG93T25EaXJ0eUVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0RpYWxvZ01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RpYWxvZyc7XG5cbmltcG9ydCB7XG4gIENvbmZpcm1VbnNhdmVkQ29tcG9uZW50LCBGc0Zvcm1EaWFsb2dBY3Rpb25zQ29tcG9uZW50LFxuICBGc0Zvcm1UZW1wbGF0ZUNvbXBvbmVudCwgRnNGb3JtVGVtcGxhdGVPdXRsZXRDb21wb25lbnQsXG59IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBGc0Zvcm1HcmVhdGVyRXF1YWxEaXJlY3RpdmUsIEZzRm9ybUxlc3NlckVxdWFsRGlyZWN0aXZlLFxuICBGc0Zvcm1UZW1wbGF0ZURpcmVjdGl2ZSwgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUsXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGc0J1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tZGlhbG9nLWNsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1Db21wYXJlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvY29tcGFyZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRGF0ZVJhbmdlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZGF0ZXJhbmdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1FbWFpbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2VtYWlsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9lbWFpbHMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUZ1bmN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZnVuY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUdyZWF0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9ncmVhdGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvaW50ZWdlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTGVzc2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbGVzc2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NYXhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9tYXguZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL21heGxlbmd0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTWluRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbWluLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NaW5MZW5ndGhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9taW5sZW5ndGguZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU5vRnNWYWxpZGF0b3JzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbm8tZnMtdmFsaWRhdG9ycy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTnVtZXJpY0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL251bWVyaWMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVBhdHRlcm5EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9wYXR0ZXJuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1QaG9uZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3Bob25lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1SZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3JlcXVpcmVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1VcmxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy91cmwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvdmFsaWRhdGUuZGlyZWN0aXZlJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG5cbiAgICBGc0RpYWxvZ01vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNGb3JtRGlyZWN0aXZlLFxuICAgIEZzQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1SZXF1aXJlZERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NaW5EaXJlY3RpdmUsXG4gICAgRnNGb3JtTWF4RGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkxlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhMZW5ndGhEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxzRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBob25lRGlyZWN0aXZlLFxuICAgIEZzRm9ybUNvbXBhcmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtSW50ZWdlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1OdW1lcmljRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBhdHRlcm5EaXJlY3RpdmUsXG4gICAgRnNGb3JtRnVuY3Rpb25EaXJlY3RpdmUsXG4gICAgRnNGb3JtRGF0ZVJhbmdlRGlyZWN0aXZlLFxuICAgIEZzRm9ybUdyZWF0ZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtR3JlYXRlckVxdWFsRGlyZWN0aXZlLFxuICAgIEZzRm9ybUxlc3NlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJFcXVhbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1VcmxEaXJlY3RpdmUsXG4gICAgRnNGb3JtRGlhbG9nQ2xvc2VEaXJlY3RpdmUsXG4gICAgRnNGb3JtVmFsaWRhdGVEaXJlY3RpdmUsXG4gICAgRnNGb3JtRGlhbG9nQWN0aW9uc0NvbXBvbmVudCxcbiAgICBGc0Zvcm1Ob0ZzVmFsaWRhdG9yc0RpcmVjdGl2ZSxcbiAgICBGc0J1dHRvbkRpcmVjdGl2ZSxcbiAgICBGc1N1Ym1pdEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1UZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBGc0Zvcm1UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1UZW1wbGF0ZU91dGxldENvbXBvbmVudCxcbiAgICBDb25maXJtVW5zYXZlZENvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZzRm9ybURpcmVjdGl2ZSxcbiAgICBGc0NvbnRyb2xEaXJlY3RpdmUsXG4gICAgRnNGb3JtUmVxdWlyZWREaXJlY3RpdmUsXG4gICAgRnNGb3JtTWluRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1heERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NaW5MZW5ndGhEaXJlY3RpdmUsXG4gICAgRnNGb3JtTWF4TGVuZ3RoRGlyZWN0aXZlLFxuICAgIEZzRm9ybUVtYWlsRGlyZWN0aXZlLFxuICAgIEZzRm9ybUVtYWlsc0RpcmVjdGl2ZSxcbiAgICBGc0Zvcm1QaG9uZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1Db21wYXJlRGlyZWN0aXZlLFxuICAgIEZzRm9ybUludGVnZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtTnVtZXJpY0RpcmVjdGl2ZSxcbiAgICBGc0Zvcm1QYXR0ZXJuRGlyZWN0aXZlLFxuICAgIEZzRm9ybUZ1bmN0aW9uRGlyZWN0aXZlLFxuICAgIEZzRm9ybURhdGVSYW5nZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1HcmVhdGVyRGlyZWN0aXZlLFxuICAgIEZzRm9ybUdyZWF0ZXJFcXVhbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtTGVzc2VyRXF1YWxEaXJlY3RpdmUsXG4gICAgRnNGb3JtVXJsRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxuICAgIEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0FjdGlvbnNDb21wb25lbnQsXG4gICAgRnNGb3JtTm9Gc1ZhbGlkYXRvcnNEaXJlY3RpdmUsXG4gICAgRnNCdXR0b25EaXJlY3RpdmUsXG4gICAgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUsXG4gICAgRnNGb3JtVGVtcGxhdGVDb21wb25lbnQsXG4gICAgRnNGb3JtVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgRnNGb3JtVGVtcGxhdGVPdXRsZXRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgdXNlQ2xhc3M6IFNob3dPbkRpcnR5RXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGb3JtTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnNGb3JtTW9kdWxlPiB7XG5cbiAgICAvKipcbiAgICAgKiBIYWNrOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMDA5N1xuICAgICAqL1xuICAgIEVycm9yU3RhdGVNYXRjaGVyLnByb3RvdHlwZVxuICAgICAgLmlzRXJyb3JTdGF0ZSA9IChcbiAgICAgICAgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sIHwgbnVsbCwgXG4gICAgICAgIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwsXG4gICAgICApOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sPy5kaXJ0eTtcbiAgICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZzRm9ybU1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
3
- import { of } from 'rxjs';
4
- import { map } from 'rxjs/operators';
5
- import { confirmResultContinue } from '../helpers';
6
- import { getActiveRoute } from '../helpers/get-active-route';
7
- import { FsForm } from '../services/fsform.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../services/fsform.service";
10
- import * as i2 from "@angular/router";
11
- export class FormDeactivateGuard {
12
- constructor(_form, _route) {
13
- this._form = _form;
14
- this._route = _route;
15
- }
16
- canDeactivate() {
17
- const route = getActiveRoute(this._route);
18
- if (!route) {
19
- console.error('Can not find route for FormDeactivateGuard checks');
20
- return of(true);
21
- }
22
- const directives = this._form
23
- .getFormDirectives(route.routeConfig.component);
24
- if (!Array.isArray(directives) || directives.length === 0) {
25
- console.error('Can not find a valid FsFormDirective');
26
- return of(true);
27
- }
28
- return this._form.confirmUnsaved(directives)
29
- .pipe(map((result) => {
30
- return confirmResultContinue(result);
31
- }));
32
- }
33
- }
34
- FormDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormDeactivateGuard, deps: [{ token: i1.FsForm }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
35
- FormDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormDeactivateGuard, providedIn: 'root' });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormDeactivateGuard, decorators: [{
37
- type: Injectable,
38
- args: [{
39
- providedIn: 'root',
40
- }]
41
- }], ctorParameters: function () { return [{ type: i1.FsForm }, { type: i2.ActivatedRoute }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9ndWFyZHMvZm9ybS1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQU1wRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ1UsS0FBYSxFQUNiLE1BQXNCO1FBRHRCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUM3QixDQUFDO0lBRUcsYUFBYTtRQUNsQixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7WUFFbkUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLFVBQVUsR0FBc0IsSUFBSSxDQUFDLEtBQUs7YUFDN0MsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFFdEQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzthQUN6QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOztpSEEvQlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjb25maXJtUmVzdWx0Q29udGludWUgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IGdldEFjdGl2ZVJvdXRlIH0gZnJvbSAnLi4vaGVscGVycy9nZXQtYWN0aXZlLXJvdXRlJztcbmltcG9ydCB7IEZzRm9ybSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZzZm9ybS5zZXJ2aWNlJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybURlYWN0aXZhdGVHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8YW55PiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9ybTogRnNGb3JtLFxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjYW5EZWFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJvdXRlID0gZ2V0QWN0aXZlUm91dGUodGhpcy5fcm91dGUpO1xuXG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FuIG5vdCBmaW5kIHJvdXRlIGZvciBGb3JtRGVhY3RpdmF0ZUd1YXJkIGNoZWNrcycpO1xuXG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0aXZlczogRnNGb3JtRGlyZWN0aXZlW10gPSB0aGlzLl9mb3JtXG4gICAgICAuZ2V0Rm9ybURpcmVjdGl2ZXMocm91dGUucm91dGVDb25maWcuY29tcG9uZW50KTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShkaXJlY3RpdmVzKSB8fCBkaXJlY3RpdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2FuIG5vdCBmaW5kIGEgdmFsaWQgRnNGb3JtRGlyZWN0aXZlJyk7XG5cbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZm9ybS5jb25maXJtVW5zYXZlZChkaXJlY3RpdmVzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbmZpcm1SZXN1bHRDb250aW51ZShyZXN1bHQpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxufVxuIl19
@@ -1,92 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { merge, of, Subject } from 'rxjs';
4
- import { filter, first, map, mapTo, switchMap, take } from 'rxjs/operators';
5
- import { ConfirmUnsavedComponent } from '../components/confirm-unsaved';
6
- import { ConfirmResult } from '../enums';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/dialog";
9
- export class FsForm {
10
- constructor(_dialog) {
11
- this._dialog = _dialog;
12
- // value is array for future possibilities of extension
13
- this._formDirectiveStore = new WeakMap();
14
- this._eventBus = new Subject();
15
- }
16
- // @deprecated
17
- broadcast(key, data) {
18
- this._eventBus.next({ key, data });
19
- }
20
- // @deprecated
21
- on(key) {
22
- return this._eventBus.asObservable()
23
- .pipe(filter((event) => event.key === key), map((event) => event.data));
24
- }
25
- registerFormDirective(routeComponent, directive) {
26
- const directives = this.getFormDirectives(routeComponent) || [];
27
- directives.push(directive);
28
- this._formDirectiveStore.set(routeComponent, directives);
29
- }
30
- getFormDirectives(routeComponent) {
31
- return this._formDirectiveStore.get(routeComponent);
32
- }
33
- removeFormDirective(routeComponent) {
34
- this._formDirectiveStore.delete(routeComponent);
35
- }
36
- confirmUnsaved(directives) {
37
- // TODO support for multiple directives per page
38
- const form = directives[0];
39
- if (!form.confirm || !form.ngForm.dirty) {
40
- return of(ConfirmResult.Pristine);
41
- }
42
- let title = 'You Have Unsaved Changes';
43
- let message = 'What would you like to do with your changes?';
44
- let saveLabel = 'Save & Continue';
45
- let discardLabel = 'Discard Changes & Continue';
46
- let cancelLabel = 'Review Changes';
47
- if (typeof form.confirm === 'object') {
48
- title = form.confirm.title || title;
49
- message = form.confirm.message || message;
50
- saveLabel = form.confirm.saveLabel || saveLabel;
51
- discardLabel = form.confirm.discardLabel || discardLabel;
52
- cancelLabel = form.confirm.cancelLabel || cancelLabel;
53
- }
54
- return this._dialog.open(ConfirmUnsavedComponent, {
55
- data: {
56
- title,
57
- message,
58
- saveLabel,
59
- discardLabel,
60
- cancelLabel,
61
- },
62
- width: 'auto',
63
- })
64
- .afterClosed()
65
- .pipe(switchMap((result) => {
66
- if (!result) {
67
- return of(ConfirmResult.Review);
68
- }
69
- if (result === 'discard') {
70
- form.reset();
71
- return of(ConfirmResult.Discard);
72
- }
73
- if (result === 'save') {
74
- form.ngForm.control.markAsPristine();
75
- form.triggerSubmit({ confirmed: true });
76
- return merge(form.submitted
77
- .pipe(first(), mapTo(ConfirmResult.Save)), form.invalid
78
- .pipe(first(), mapTo(ConfirmResult.Invalid)))
79
- .pipe(take(1));
80
- }
81
- }));
82
- }
83
- }
84
- FsForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsForm, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
85
- FsForm.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsForm, providedIn: 'root' });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsForm, decorators: [{
87
- type: Injectable,
88
- args: [{
89
- providedIn: 'root',
90
- }]
91
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnNmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NlcnZpY2VzL2ZzZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFXekMsTUFBTSxPQUFPLE1BQU07SUFPakIsWUFDVSxPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBTjVCLHVEQUF1RDtRQUMvQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBZ0MsQ0FBQztRQU94RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO0lBQ1AsU0FBUyxDQUFDLEdBQVEsRUFBRSxJQUFVO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDUCxFQUFFLENBQUksR0FBUTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO2FBQ2pDLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtB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LEVBQUUsRUFDUCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUMxQixFQUNILElBQUksQ0FBQyxPQUFPO3FCQUNULElBQUksQ0FDSCxLQUFLLEVBQUUsRUFDUCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUM3QixDQUFDO3FCQUNILElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O29HQTlHVSxNQUFNO3dHQUFOLE1BQU0sY0FGTCxNQUFNOzRGQUVQLE1BQU07a0JBSGxCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5cbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBtYXBUbywgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb25maXJtVW5zYXZlZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uZmlybS11bnNhdmVkJztcbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25maXJtUmVzdWx0IH0gZnJvbSAnLi4vZW51bXMnO1xuXG5pbnRlcmZhY2UgQnJvYWRjYXN0RXZlbnQge1xuICAgIGtleTogYW55O1xuICAgIGRhdGE/OiBhbnk7XG59XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZzRm9ybSB7XG5cbiAgLy8gdmFsdWUgaXMgYXJyYXkgZm9yIGZ1dHVyZSBwb3NzaWJpbGl0aWVzIG9mIGV4dGVuc2lvblxuICBwcml2YXRlIF9mb3JtRGlyZWN0aXZlU3RvcmUgPSBuZXcgV2Vha01hcDxUeXBlPGFueT4sIEZzRm9ybURpcmVjdGl2ZVtdPigpO1xuXG4gIHByaXZhdGUgX2V2ZW50QnVzOiBTdWJqZWN0PEJyb2FkY2FzdEV2ZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7XG4gICAgdGhpcy5fZXZlbnRCdXMgPSBuZXcgU3ViamVjdDxCcm9hZGNhc3RFdmVudD4oKTtcbiAgfVxuXG4gIC8vIEBkZXByZWNhdGVkXG4gIHB1YmxpYyBicm9hZGNhc3Qoa2V5OiBhbnksIGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLl9ldmVudEJ1cy5uZXh0KHsga2V5LCBkYXRhIH0pO1xuICB9XG5cbiAgLy8gQGRlcHJlY2F0ZWRcbiAgcHVibGljIG9uPFQ+KGtleTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50QnVzLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5ID09PSBrZXkpLFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiA8VD5ldmVudC5kYXRhKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJGb3JtRGlyZWN0aXZlKHJvdXRlQ29tcG9uZW50OiBUeXBlPGFueT4sIGRpcmVjdGl2ZTogRnNGb3JtRGlyZWN0aXZlKSB7XG4gICAgY29uc3QgZGlyZWN0aXZlcyA9IHRoaXMuZ2V0Rm9ybURpcmVjdGl2ZXMocm91dGVDb21wb25lbnQpIHx8IFtdO1xuICAgIGRpcmVjdGl2ZXMucHVzaChkaXJlY3RpdmUpO1xuXG4gICAgdGhpcy5fZm9ybURpcmVjdGl2ZVN0b3JlLnNldChyb3V0ZUNvbXBvbmVudCwgZGlyZWN0aXZlcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybURpcmVjdGl2ZXMocm91dGVDb21wb25lbnQpOiBGc0Zvcm1EaXJlY3RpdmVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1EaXJlY3RpdmVTdG9yZS5nZXQocm91dGVDb21wb25lbnQpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUZvcm1EaXJlY3RpdmUocm91dGVDb21wb25lbnQpIHtcbiAgICB0aGlzLl9mb3JtRGlyZWN0aXZlU3RvcmUuZGVsZXRlKHJvdXRlQ29tcG9uZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtVW5zYXZlZChcbiAgICBkaXJlY3RpdmVzOiBGc0Zvcm1EaXJlY3RpdmVbXSwgXG4gICk6IE9ic2VydmFibGU8Q29uZmlybVJlc3VsdD4ge1xuICAvLyBUT0RPIHN1cHBvcnQgZm9yIG11bHRpcGxlIGRpcmVjdGl2ZXMgcGVyIHBhZ2VcbiAgICBjb25zdCBmb3JtID0gZGlyZWN0aXZlc1swXTtcblxuICAgIGlmICghZm9ybS5jb25maXJtIHx8ICFmb3JtLm5nRm9ybS5kaXJ0eSkge1xuICAgICAgcmV0dXJuIG9mKENvbmZpcm1SZXN1bHQuUHJpc3RpbmUpO1xuICAgIH1cblxuICAgIGxldCB0aXRsZSA9ICdZb3UgSGF2ZSBVbnNhdmVkIENoYW5nZXMnO1xuICAgIGxldCBtZXNzYWdlID0gJ1doYXQgd291bGQgeW91IGxpa2UgdG8gZG8gd2l0aCB5b3VyIGNoYW5nZXM/JztcbiAgICBsZXQgc2F2ZUxhYmVsID0gJ1NhdmUgJiBDb250aW51ZSc7XG4gICAgbGV0IGRpc2NhcmRMYWJlbCA9ICdEaXNjYXJkIENoYW5nZXMgJiBDb250aW51ZSc7XG4gICAgbGV0IGNhbmNlbExhYmVsID0gJ1JldmlldyBDaGFuZ2VzJztcblxuICAgIGlmICh0eXBlb2YgZm9ybS5jb25maXJtID09PSAnb2JqZWN0Jykge1xuICAgICAgdGl0bGUgPSBmb3JtLmNvbmZpcm0udGl0bGUgfHwgdGl0bGU7XG4gICAgICBtZXNzYWdlID0gZm9ybS5jb25maXJtLm1lc3NhZ2UgfHwgbWVzc2FnZTtcbiAgICAgIHNhdmVMYWJlbCA9IGZvcm0uY29uZmlybS5zYXZlTGFiZWwgfHwgc2F2ZUxhYmVsO1xuICAgICAgZGlzY2FyZExhYmVsID0gZm9ybS5jb25maXJtLmRpc2NhcmRMYWJlbCB8fCBkaXNjYXJkTGFiZWw7XG4gICAgICBjYW5jZWxMYWJlbCA9IGZvcm0uY29uZmlybS5jYW5jZWxMYWJlbCB8fCBjYW5jZWxMYWJlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZGlhbG9nLm9wZW4oQ29uZmlybVVuc2F2ZWRDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIHNhdmVMYWJlbCxcbiAgICAgICAgZGlzY2FyZExhYmVsLFxuICAgICAgICBjYW5jZWxMYWJlbCxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJ2F1dG8nLCBcbiAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmKCFyZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihDb25maXJtUmVzdWx0LlJldmlldyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIGlmIChyZXN1bHQgPT09ICdkaXNjYXJkJykge1xuICAgICAgICAgICAgZm9ybS5yZXNldCgpO1xuXG4gICAgICAgICAgICByZXR1cm4gb2YoQ29uZmlybVJlc3VsdC5EaXNjYXJkKTsgXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ3NhdmUnKSB7XG4gICAgICAgICAgICBmb3JtLm5nRm9ybS5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICBmb3JtLnRyaWdnZXJTdWJtaXQoeyBjb25maXJtZWQ6IHRydWUgfSk7XG4gICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICAgIGZvcm0uc3VibWl0dGVkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICAgbWFwVG8oQ29uZmlybVJlc3VsdC5TYXZlKSxcbiAgICAgICAgICAgICAgICApLCBcbiAgICAgICAgICAgICAgZm9ybS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICAgbWFwVG8oQ29uZmlybVJlc3VsdC5JbnZhbGlkKSxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbn1cbiJdfQ==