@firestitch/form 9.7.6 → 12.0.1

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 (149) hide show
  1. package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +21 -18
  2. package/app/consts/error-messages.const.d.ts +19 -19
  3. package/app/directives/form/form.directive.d.ts +105 -102
  4. package/app/directives/form-dialog-close.directive.d.ts +12 -9
  5. package/app/directives/submit-button.directive.d.ts +31 -28
  6. package/app/directives/validators/compare.directive.d.ts +15 -12
  7. package/app/directives/validators/control.directive.d.ts +48 -45
  8. package/app/directives/validators/daterange.directive.d.ts +13 -10
  9. package/app/directives/validators/email.directive.d.ts +13 -10
  10. package/app/directives/validators/emails.directive.d.ts +13 -10
  11. package/app/directives/validators/function.directive.d.ts +14 -11
  12. package/app/directives/validators/greater.directive.d.ts +13 -10
  13. package/app/directives/validators/integer.directive.d.ts +13 -10
  14. package/app/directives/validators/lesser.directive.d.ts +13 -10
  15. package/app/directives/validators/max.directive.d.ts +13 -10
  16. package/app/directives/validators/maxlength.directive.d.ts +13 -10
  17. package/app/directives/validators/min.directive.d.ts +13 -10
  18. package/app/directives/validators/minlength.directive.d.ts +13 -10
  19. package/app/directives/validators/numeric.directive.d.ts +13 -10
  20. package/app/directives/validators/pattern.directive.d.ts +13 -10
  21. package/app/directives/validators/phone.directive.d.ts +13 -10
  22. package/app/directives/validators/required.directive.d.ts +16 -13
  23. package/app/directives/validators/url.directive.d.ts +14 -11
  24. package/app/directives/validators/validate.directive.d.ts +14 -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 +35 -4
  28. package/app/guards/form-deactivate.guard.d.ts +12 -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 +10 -7
  44. package/app/validators/validators.d.ts +12 -12
  45. package/bundles/firestitch-form.umd.js +2672 -2546
  46. package/bundles/firestitch-form.umd.js.map +1 -1
  47. package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +86 -93
  48. package/esm2015/app/consts/error-messages.const.js +20 -20
  49. package/esm2015/app/directives/form/form.directive.js +619 -668
  50. package/esm2015/app/directives/form-dialog-close.directive.js +31 -33
  51. package/esm2015/app/directives/submit-button.directive.js +131 -138
  52. package/esm2015/app/directives/validators/compare.directive.js +49 -49
  53. package/esm2015/app/directives/validators/control.directive.js +257 -273
  54. package/esm2015/app/directives/validators/daterange.directive.js +41 -41
  55. package/esm2015/app/directives/validators/email.directive.js +41 -41
  56. package/esm2015/app/directives/validators/emails.directive.js +41 -41
  57. package/esm2015/app/directives/validators/function.directive.js +31 -31
  58. package/esm2015/app/directives/validators/greater.directive.js +40 -40
  59. package/esm2015/app/directives/validators/integer.directive.js +41 -41
  60. package/esm2015/app/directives/validators/lesser.directive.js +40 -40
  61. package/esm2015/app/directives/validators/max.directive.js +36 -36
  62. package/esm2015/app/directives/validators/maxlength.directive.js +35 -35
  63. package/esm2015/app/directives/validators/min.directive.js +36 -36
  64. package/esm2015/app/directives/validators/minlength.directive.js +35 -35
  65. package/esm2015/app/directives/validators/numeric.directive.js +41 -41
  66. package/esm2015/app/directives/validators/pattern.directive.js +35 -35
  67. package/esm2015/app/directives/validators/phone.directive.js +41 -41
  68. package/esm2015/app/directives/validators/required.directive.js +71 -73
  69. package/esm2015/app/directives/validators/url.directive.js +47 -49
  70. package/esm2015/app/directives/validators/validate.directive.js +33 -31
  71. package/esm2015/app/enums/confirm-result.js +9 -9
  72. package/esm2015/app/enums/form-status.js +11 -11
  73. package/esm2015/app/fs-form.module.js +165 -106
  74. package/esm2015/app/guards/form-deactivate.guard.js +40 -44
  75. package/esm2015/app/helpers/confirm-result-continue.js +5 -5
  76. package/esm2015/app/helpers/confirm-unsaved.js +70 -70
  77. package/esm2015/app/helpers/get-form-errors.js +25 -25
  78. package/esm2015/app/helpers/index.js +3 -3
  79. package/esm2015/app/helpers/is-enabled.js +4 -4
  80. package/esm2015/app/interfaces/async-validator.js +2 -1
  81. package/esm2015/app/interfaces/confirm-config.js +2 -1
  82. package/esm2015/app/interfaces/confirm-tab-group.js +2 -1
  83. package/esm2015/app/interfaces/form-deactivate.js +2 -1
  84. package/esm2015/app/interfaces/index.js +5 -1
  85. package/esm2015/app/interfaces/submit-event.js +2 -1
  86. package/esm2015/app/interfaces/submitted-event.js +2 -1
  87. package/esm2015/app/interfaces/validator.js +2 -1
  88. package/esm2015/app/providers/validate-messages.provider.js +11 -11
  89. package/esm2015/app/services/fsform.service.js +25 -26
  90. package/esm2015/app/validators/validators.js +97 -97
  91. package/esm2015/firestitch-form.js +5 -27
  92. package/esm2015/public_api.js +35 -14
  93. package/fesm2015/firestitch-form.js +2100 -2110
  94. package/fesm2015/firestitch-form.js.map +1 -1
  95. package/firestitch-form.d.ts +5 -26
  96. package/package.json +7 -8
  97. package/public_api.d.ts +33 -12
  98. package/styles.scss +4 -4
  99. package/bundles/firestitch-form.umd.min.js +0 -16
  100. package/bundles/firestitch-form.umd.min.js.map +0 -1
  101. package/esm5/app/components/form-dialog-actions/form-dialog-actions.component.js +0 -96
  102. package/esm5/app/consts/error-messages.const.js +0 -20
  103. package/esm5/app/directives/form/form.directive.js +0 -709
  104. package/esm5/app/directives/form-dialog-close.directive.js +0 -34
  105. package/esm5/app/directives/submit-button.directive.js +0 -144
  106. package/esm5/app/directives/validators/compare.directive.js +0 -60
  107. package/esm5/app/directives/validators/control.directive.js +0 -279
  108. package/esm5/app/directives/validators/daterange.directive.js +0 -50
  109. package/esm5/app/directives/validators/email.directive.js +0 -50
  110. package/esm5/app/directives/validators/emails.directive.js +0 -50
  111. package/esm5/app/directives/validators/function.directive.js +0 -36
  112. package/esm5/app/directives/validators/greater.directive.js +0 -49
  113. package/esm5/app/directives/validators/integer.directive.js +0 -50
  114. package/esm5/app/directives/validators/lesser.directive.js +0 -49
  115. package/esm5/app/directives/validators/max.directive.js +0 -45
  116. package/esm5/app/directives/validators/maxlength.directive.js +0 -44
  117. package/esm5/app/directives/validators/min.directive.js +0 -45
  118. package/esm5/app/directives/validators/minlength.directive.js +0 -44
  119. package/esm5/app/directives/validators/numeric.directive.js +0 -50
  120. package/esm5/app/directives/validators/pattern.directive.js +0 -44
  121. package/esm5/app/directives/validators/phone.directive.js +0 -50
  122. package/esm5/app/directives/validators/required.directive.js +0 -88
  123. package/esm5/app/directives/validators/url.directive.js +0 -56
  124. package/esm5/app/directives/validators/validate.directive.js +0 -36
  125. package/esm5/app/enums/confirm-result.js +0 -9
  126. package/esm5/app/enums/form-status.js +0 -11
  127. package/esm5/app/fs-form.module.js +0 -110
  128. package/esm5/app/guards/form-deactivate.guard.js +0 -45
  129. package/esm5/app/helpers/confirm-result-continue.js +0 -5
  130. package/esm5/app/helpers/confirm-unsaved.js +0 -70
  131. package/esm5/app/helpers/get-form-errors.js +0 -28
  132. package/esm5/app/helpers/index.js +0 -3
  133. package/esm5/app/helpers/is-enabled.js +0 -4
  134. package/esm5/app/interfaces/async-validator.js +0 -1
  135. package/esm5/app/interfaces/confirm-config.js +0 -1
  136. package/esm5/app/interfaces/confirm-tab-group.js +0 -1
  137. package/esm5/app/interfaces/form-deactivate.js +0 -1
  138. package/esm5/app/interfaces/index.js +0 -1
  139. package/esm5/app/interfaces/submit-event.js +0 -1
  140. package/esm5/app/interfaces/submitted-event.js +0 -1
  141. package/esm5/app/interfaces/validator.js +0 -1
  142. package/esm5/app/providers/validate-messages.provider.js +0 -12
  143. package/esm5/app/services/fsform.service.js +0 -27
  144. package/esm5/app/validators/validators.js +0 -102
  145. package/esm5/firestitch-form.js +0 -27
  146. package/esm5/public_api.js +0 -14
  147. package/fesm5/firestitch-form.js +0 -2399
  148. package/fesm5/firestitch-form.js.map +0 -1
  149. package/firestitch-form.metadata.json +0 -1
@@ -1,106 +1,165 @@
1
- var FsFormModule_1;
2
- import { __decorate } from "tslib";
3
- import { NgModule } from '@angular/core';
4
- import { CommonModule } from '@angular/common';
5
- import { FormsModule } from '@angular/forms';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import { MatDialogModule } from '@angular/material/dialog';
8
- import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
9
- import { FsFormDirective } from './directives/form/form.directive';
10
- import { FsControlDirective } from './directives/validators/control.directive';
11
- import { FsFormRequiredDirective } from './directives/validators/required.directive';
12
- import { FsFormMinDirective } from './directives/validators/min.directive';
13
- import { FsFormMaxDirective } from './directives/validators/max.directive';
14
- import { FsFormMinLengthDirective } from './directives/validators/minlength.directive';
15
- import { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';
16
- import { FsFormEmailDirective } from './directives/validators/email.directive';
17
- import { FsFormEmailsDirective } from './directives/validators/emails.directive';
18
- import { FsFormPhoneDirective } from './directives/validators/phone.directive';
19
- import { FsFormCompareDirective } from './directives/validators/compare.directive';
20
- import { FsFormIntegerDirective } from './directives/validators/integer.directive';
21
- import { FsFormNumericDirective } from './directives/validators/numeric.directive';
22
- import { FsFormPatternDirective } from './directives/validators/pattern.directive';
23
- import { FsFormFunctionDirective } from './directives/validators/function.directive';
24
- import { FsFormGreaterDirective } from './directives/validators/greater.directive';
25
- import { FsFormDateRangeDirective } from './directives/validators/daterange.directive';
26
- import { FsFormLesserDirective } from './directives/validators/lesser.directive';
27
- import { FsFormUrlDirective } from './directives/validators/url.directive';
28
- import { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';
29
- import { FsSubmitButtonDirective } from './directives/submit-button.directive';
30
- import { FsFormValidateDirective } from './directives/validators/validate.directive';
31
- import { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';
32
- let FsFormModule = FsFormModule_1 = class FsFormModule {
33
- static forRoot() {
34
- return {
35
- ngModule: FsFormModule_1,
36
- };
37
- }
38
- };
39
- FsFormModule = FsFormModule_1 = __decorate([
40
- NgModule({
41
- imports: [
42
- CommonModule,
43
- FormsModule,
44
- MatButtonModule,
45
- MatDialogModule,
46
- ],
47
- declarations: [
48
- FsFormDirective,
49
- FsControlDirective,
50
- FsFormRequiredDirective,
51
- FsFormMinDirective,
52
- FsFormMaxDirective,
53
- FsFormMinLengthDirective,
54
- FsFormMaxLengthDirective,
55
- FsFormEmailDirective,
56
- FsFormEmailsDirective,
57
- FsFormPhoneDirective,
58
- FsFormCompareDirective,
59
- FsFormIntegerDirective,
60
- FsFormNumericDirective,
61
- FsFormPatternDirective,
62
- FsFormFunctionDirective,
63
- FsFormDateRangeDirective,
64
- FsFormGreaterDirective,
65
- FsFormLesserDirective,
66
- FsFormUrlDirective,
67
- FsFormDialogCloseDirective,
68
- FsSubmitButtonDirective,
69
- FsFormValidateDirective,
70
- FsFormDialogActionsComponent,
71
- ],
72
- exports: [
73
- FsFormDirective,
74
- FsControlDirective,
75
- FsFormRequiredDirective,
76
- FsFormMinDirective,
77
- FsFormMaxDirective,
78
- FsFormMinLengthDirective,
79
- FsFormMaxLengthDirective,
80
- FsFormEmailDirective,
81
- FsFormEmailsDirective,
82
- FsFormPhoneDirective,
83
- FsFormCompareDirective,
84
- FsFormIntegerDirective,
85
- FsFormNumericDirective,
86
- FsFormPatternDirective,
87
- FsFormFunctionDirective,
88
- FsFormDateRangeDirective,
89
- FsFormGreaterDirective,
90
- FsFormLesserDirective,
91
- FsFormUrlDirective,
92
- FsFormDialogCloseDirective,
93
- FsSubmitButtonDirective,
94
- FsFormValidateDirective,
95
- FsFormDialogActionsComponent,
96
- ],
97
- providers: [
98
- {
99
- provide: ErrorStateMatcher,
100
- useClass: ShowOnDirtyErrorStateMatcher,
101
- },
102
- ],
103
- })
104
- ], FsFormModule);
105
- export { FsFormModule };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2ZzLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQW9FOUcsSUFBYSxZQUFZLG9CQUF6QixNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQVk7U0FDdkIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBTlksWUFBWTtJQWpFeEIsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlO1lBQ2YsZUFBZTtTQUNoQjtRQUNELFlBQVksRUFBRTtZQUNaLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQjtZQUN0QixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qiw0QkFBNEI7U0FDN0I7UUFDRCxPQUFPLEVBQUU7WUFDUCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLHNCQUFzQjtZQUN0QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsNEJBQTRCO1NBQzdCO1FBQ0QsU0FBUyxFQUFFO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLDRCQUE0QjthQUN2QztTQUNGO0tBQ0YsQ0FBQztHQUNXLFlBQVksQ0FNeEI7U0FOWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciwgU2hvd09uRGlydHlFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1SZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3JlcXVpcmVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NaW5EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9taW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU1heERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL21heC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTWluTGVuZ3RoRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbWlubGVuZ3RoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NYXhMZW5ndGhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9tYXhsZW5ndGguZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUVtYWlsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZW1haWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUVtYWlsc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2VtYWlscy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtUGhvbmVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9waG9uZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2NvbXBhcmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUludGVnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9pbnRlZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1OdW1lcmljRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbnVtZXJpYy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtUGF0dGVybkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3BhdHRlcm4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUZ1bmN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZnVuY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUdyZWF0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9ncmVhdGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1EYXRlUmFuZ2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9kYXRlcmFuZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUxlc3NlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2xlc3Nlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtVXJsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvdXJsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaWFsb2dDbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLWRpYWxvZy1jbG9zZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3VibWl0LWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtVmFsaWRhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy92YWxpZGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRGlhbG9nQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWRpYWxvZy1hY3Rpb25zL2Zvcm0tZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNGb3JtRGlyZWN0aXZlLFxuICAgIEZzQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1SZXF1aXJlZERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NaW5EaXJlY3RpdmUsXG4gICAgRnNGb3JtTWF4RGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkxlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhMZW5ndGhEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxzRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBob25lRGlyZWN0aXZlLFxuICAgIEZzRm9ybUNvbXBhcmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtSW50ZWdlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1OdW1lcmljRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBhdHRlcm5EaXJlY3RpdmUsXG4gICAgRnNGb3JtRnVuY3Rpb25EaXJlY3RpdmUsXG4gICAgRnNGb3JtRGF0ZVJhbmdlRGlyZWN0aXZlLFxuICAgIEZzRm9ybUdyZWF0ZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtTGVzc2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybVVybERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EaWFsb2dDbG9zZURpcmVjdGl2ZSxcbiAgICBGc1N1Ym1pdEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1WYWxpZGF0ZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EaWFsb2dBY3Rpb25zQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNGb3JtRGlyZWN0aXZlLFxuICAgIEZzQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1SZXF1aXJlZERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NaW5EaXJlY3RpdmUsXG4gICAgRnNGb3JtTWF4RGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkxlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhMZW5ndGhEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxEaXJlY3RpdmUsXG4gICAgRnNGb3JtRW1haWxzRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBob25lRGlyZWN0aXZlLFxuICAgIEZzRm9ybUNvbXBhcmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtSW50ZWdlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1OdW1lcmljRGlyZWN0aXZlLFxuICAgIEZzRm9ybVBhdHRlcm5EaXJlY3RpdmUsXG4gICAgRnNGb3JtRnVuY3Rpb25EaXJlY3RpdmUsXG4gICAgRnNGb3JtRGF0ZVJhbmdlRGlyZWN0aXZlLFxuICAgIEZzRm9ybUdyZWF0ZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtTGVzc2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybVVybERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EaWFsb2dDbG9zZURpcmVjdGl2ZSxcbiAgICBGc1N1Ym1pdEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1WYWxpZGF0ZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EaWFsb2dBY3Rpb25zQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIHVzZUNsYXNzOiBTaG93T25EaXJ0eUVycm9yU3RhdGVNYXRjaGVyLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzRm9ybU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnNGb3JtTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGc0Zvcm1Nb2R1bGUsXG4gICAgfTtcbiAgfVxufVxuIl19
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatDialogModule } from '@angular/material/dialog';
6
+ import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
7
+ import { FsFormDirective } from './directives/form/form.directive';
8
+ import { FsControlDirective } from './directives/validators/control.directive';
9
+ import { FsFormRequiredDirective } from './directives/validators/required.directive';
10
+ import { FsFormMinDirective } from './directives/validators/min.directive';
11
+ import { FsFormMaxDirective } from './directives/validators/max.directive';
12
+ import { FsFormMinLengthDirective } from './directives/validators/minlength.directive';
13
+ import { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';
14
+ import { FsFormEmailDirective } from './directives/validators/email.directive';
15
+ import { FsFormEmailsDirective } from './directives/validators/emails.directive';
16
+ import { FsFormPhoneDirective } from './directives/validators/phone.directive';
17
+ import { FsFormCompareDirective } from './directives/validators/compare.directive';
18
+ import { FsFormIntegerDirective } from './directives/validators/integer.directive';
19
+ import { FsFormNumericDirective } from './directives/validators/numeric.directive';
20
+ import { FsFormPatternDirective } from './directives/validators/pattern.directive';
21
+ import { FsFormFunctionDirective } from './directives/validators/function.directive';
22
+ import { FsFormGreaterDirective } from './directives/validators/greater.directive';
23
+ import { FsFormDateRangeDirective } from './directives/validators/daterange.directive';
24
+ import { FsFormLesserDirective } from './directives/validators/lesser.directive';
25
+ import { FsFormUrlDirective } from './directives/validators/url.directive';
26
+ import { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';
27
+ import { FsSubmitButtonDirective } from './directives/submit-button.directive';
28
+ import { FsFormValidateDirective } from './directives/validators/validate.directive';
29
+ import { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';
30
+ import * as i0 from "@angular/core";
31
+ export class FsFormModule {
32
+ static forRoot() {
33
+ return {
34
+ ngModule: FsFormModule,
35
+ };
36
+ }
37
+ }
38
+ FsFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
+ FsFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, declarations: [FsFormDirective,
40
+ FsControlDirective,
41
+ FsFormRequiredDirective,
42
+ FsFormMinDirective,
43
+ FsFormMaxDirective,
44
+ FsFormMinLengthDirective,
45
+ FsFormMaxLengthDirective,
46
+ FsFormEmailDirective,
47
+ FsFormEmailsDirective,
48
+ FsFormPhoneDirective,
49
+ FsFormCompareDirective,
50
+ FsFormIntegerDirective,
51
+ FsFormNumericDirective,
52
+ FsFormPatternDirective,
53
+ FsFormFunctionDirective,
54
+ FsFormDateRangeDirective,
55
+ FsFormGreaterDirective,
56
+ FsFormLesserDirective,
57
+ FsFormUrlDirective,
58
+ FsFormDialogCloseDirective,
59
+ FsSubmitButtonDirective,
60
+ FsFormValidateDirective,
61
+ FsFormDialogActionsComponent], imports: [CommonModule,
62
+ FormsModule,
63
+ MatButtonModule,
64
+ MatDialogModule], exports: [FsFormDirective,
65
+ FsControlDirective,
66
+ FsFormRequiredDirective,
67
+ FsFormMinDirective,
68
+ FsFormMaxDirective,
69
+ FsFormMinLengthDirective,
70
+ FsFormMaxLengthDirective,
71
+ FsFormEmailDirective,
72
+ FsFormEmailsDirective,
73
+ FsFormPhoneDirective,
74
+ FsFormCompareDirective,
75
+ FsFormIntegerDirective,
76
+ FsFormNumericDirective,
77
+ FsFormPatternDirective,
78
+ FsFormFunctionDirective,
79
+ FsFormDateRangeDirective,
80
+ FsFormGreaterDirective,
81
+ FsFormLesserDirective,
82
+ FsFormUrlDirective,
83
+ FsFormDialogCloseDirective,
84
+ FsSubmitButtonDirective,
85
+ FsFormValidateDirective,
86
+ FsFormDialogActionsComponent] });
87
+ FsFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, providers: [
88
+ {
89
+ provide: ErrorStateMatcher,
90
+ useClass: ShowOnDirtyErrorStateMatcher,
91
+ },
92
+ ], imports: [[
93
+ CommonModule,
94
+ FormsModule,
95
+ MatButtonModule,
96
+ MatDialogModule,
97
+ ]] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, decorators: [{
99
+ type: NgModule,
100
+ args: [{
101
+ imports: [
102
+ CommonModule,
103
+ FormsModule,
104
+ MatButtonModule,
105
+ MatDialogModule,
106
+ ],
107
+ declarations: [
108
+ FsFormDirective,
109
+ FsControlDirective,
110
+ FsFormRequiredDirective,
111
+ FsFormMinDirective,
112
+ FsFormMaxDirective,
113
+ FsFormMinLengthDirective,
114
+ FsFormMaxLengthDirective,
115
+ FsFormEmailDirective,
116
+ FsFormEmailsDirective,
117
+ FsFormPhoneDirective,
118
+ FsFormCompareDirective,
119
+ FsFormIntegerDirective,
120
+ FsFormNumericDirective,
121
+ FsFormPatternDirective,
122
+ FsFormFunctionDirective,
123
+ FsFormDateRangeDirective,
124
+ FsFormGreaterDirective,
125
+ FsFormLesserDirective,
126
+ FsFormUrlDirective,
127
+ FsFormDialogCloseDirective,
128
+ FsSubmitButtonDirective,
129
+ FsFormValidateDirective,
130
+ FsFormDialogActionsComponent,
131
+ ],
132
+ exports: [
133
+ FsFormDirective,
134
+ FsControlDirective,
135
+ FsFormRequiredDirective,
136
+ FsFormMinDirective,
137
+ FsFormMaxDirective,
138
+ FsFormMinLengthDirective,
139
+ FsFormMaxLengthDirective,
140
+ FsFormEmailDirective,
141
+ FsFormEmailsDirective,
142
+ FsFormPhoneDirective,
143
+ FsFormCompareDirective,
144
+ FsFormIntegerDirective,
145
+ FsFormNumericDirective,
146
+ FsFormPatternDirective,
147
+ FsFormFunctionDirective,
148
+ FsFormDateRangeDirective,
149
+ FsFormGreaterDirective,
150
+ FsFormLesserDirective,
151
+ FsFormUrlDirective,
152
+ FsFormDialogCloseDirective,
153
+ FsSubmitButtonDirective,
154
+ FsFormValidateDirective,
155
+ FsFormDialogActionsComponent,
156
+ ],
157
+ providers: [
158
+ {
159
+ provide: ErrorStateMatcher,
160
+ useClass: ShowOnDirtyErrorStateMatcher,
161
+ },
162
+ ],
163
+ }]
164
+ }] });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2ZzLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7O0FBb0U5RyxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDO0lBQ0osQ0FBQzs7MEdBTFUsWUFBWTsyR0FBWixZQUFZLGlCQXhEckIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsd0JBQXdCO1FBQ3hCLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLDRCQUE0QixhQTdCNUIsWUFBWTtRQUNaLFdBQVc7UUFFWCxlQUFlO1FBQ2YsZUFBZSxhQTRCZixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsNEJBQTRCOzJHQVNuQixZQUFZLGFBUFo7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLDRCQUE0QjtTQUN2QztLQUNGLFlBOURRO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlO1lBQ2YsZUFBZTtTQUNoQjs0RkEwRFUsWUFBWTtrQkFqRXhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFFWCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3FCQUM3QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFLDRCQUE0Qjt5QkFDdkM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBTaG93T25EaXJ0eUVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtL2Zvcm0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2NvbnRyb2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVJlcXVpcmVkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvcmVxdWlyZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU1pbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL21pbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTWF4RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbWF4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NaW5MZW5ndGhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9taW5sZW5ndGguZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL21heGxlbmd0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRW1haWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9lbWFpbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRW1haWxzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZW1haWxzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1QaG9uZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3Bob25lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1Db21wYXJlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvY29tcGFyZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtSW50ZWdlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2ludGVnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU51bWVyaWNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9udW1lcmljLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1QYXR0ZXJuRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvcGF0dGVybi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRnVuY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9mdW5jdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtR3JlYXRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2dyZWF0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybURhdGVSYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2RhdGVyYW5nZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTGVzc2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbGVzc2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1VcmxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy91cmwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tZGlhbG9nLWNsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc1N1Ym1pdEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zdWJtaXQtYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1WYWxpZGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3ZhbGlkYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1EaWFsb2dBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0tZGlhbG9nLWFjdGlvbnMvZm9ybS1kaWFsb2ctYWN0aW9ucy5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgRnNDb250cm9sRGlyZWN0aXZlLFxuICAgIEZzRm9ybVJlcXVpcmVkRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhEaXJlY3RpdmUsXG4gICAgRnNGb3JtTWluTGVuZ3RoRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGhvbmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybU51bWVyaWNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGF0dGVybkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1GdW5jdGlvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EYXRlUmFuZ2VEaXJlY3RpdmUsXG4gICAgRnNGb3JtR3JlYXRlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtVXJsRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxuICAgIEZzU3VibWl0QnV0dG9uRGlyZWN0aXZlLFxuICAgIEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0FjdGlvbnNDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgRnNDb250cm9sRGlyZWN0aXZlLFxuICAgIEZzRm9ybVJlcXVpcmVkRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhEaXJlY3RpdmUsXG4gICAgRnNGb3JtTWluTGVuZ3RoRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGhvbmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybU51bWVyaWNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGF0dGVybkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1GdW5jdGlvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EYXRlUmFuZ2VEaXJlY3RpdmUsXG4gICAgRnNGb3JtR3JlYXRlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtVXJsRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxuICAgIEZzU3VibWl0QnV0dG9uRGlyZWN0aXZlLFxuICAgIEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0FjdGlvbnNDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgdXNlQ2xhc3M6IFNob3dPbkRpcnR5RXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGb3JtTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGc0Zvcm1Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZzRm9ybU1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,44 +1,40 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { FsPrompt } from '@firestitch/prompt';
4
- import { of } from 'rxjs';
5
- import { FsFormDirective } from '../directives/form/form.directive';
6
- import { confirmUnsaved } from '../helpers/confirm-unsaved';
7
- import { map } from 'rxjs/operators';
8
- import { confirmResultContinue } from '../helpers';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@firestitch/prompt";
11
- let FormDeactivateGuard = class FormDeactivateGuard {
12
- constructor(_prompt) {
13
- this._prompt = _prompt;
14
- }
15
- canDeactivate(directive) {
16
- if (!('getForm' in directive)) {
17
- const error = `Directive ${directive.constructor.name} does not property implement interface FormDeactivate`;
18
- console.error(error);
19
- return of(true);
20
- }
21
- const form = directive.getForm();
22
- if (!(form instanceof FsFormDirective)) {
23
- const error = `Directive ${directive.constructor.name}.getForm() does not return a valid FsFormDirective`;
24
- console.error(error);
25
- return of(true);
26
- }
27
- return confirmUnsaved(form, this._prompt)
28
- .pipe(map((result) => {
29
- return confirmResultContinue(result);
30
- }));
31
- }
32
- };
33
- FormDeactivateGuard.ctorParameters = () => [
34
- { type: FsPrompt }
35
- ];
36
- FormDeactivateGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormDeactivateGuard_Factory() { return new FormDeactivateGuard(i0.ɵɵinject(i1.FsPrompt)); }, token: FormDeactivateGuard, providedIn: "root" });
37
- FormDeactivateGuard = __decorate([
38
- Injectable({
39
- providedIn: 'root'
40
- }),
41
- __metadata("design:paramtypes", [FsPrompt])
42
- ], FormDeactivateGuard);
43
- export { FormDeactivateGuard };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZm9ybS8iLCJzb3VyY2VzIjpbImFwcC9ndWFyZHMvZm9ybS1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBS25ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBRTlCLFlBQW9CLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7SUFBRyxDQUFDO0lBRXpDLGFBQWEsQ0FBQyxTQUF5QjtRQUVyQyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsYUFBbUIsU0FBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHVEQUF1RCxDQUFDO1lBQ3BILE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLElBQUksR0FBb0IsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWxELElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxlQUFlLENBQUMsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxhQUFhLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxvREFBb0QsQ0FBQztZQUMxRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztDQUNGLENBQUE7O1lBekI4QixRQUFROzs7QUFGMUIsbUJBQW1CO0lBSC9CLFVBQVUsQ0FBQztRQUNWLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7cUNBRzZCLFFBQVE7R0FGMUIsbUJBQW1CLENBMkIvQjtTQTNCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EZWFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybURlYWN0aXZhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zvcm0tZGVhY3RpdmF0ZSc7XG5pbXBvcnQgeyBjb25maXJtVW5zYXZlZCB9IGZyb20gJy4uL2hlbHBlcnMvY29uZmlybS11bnNhdmVkJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbmZpcm1SZXN1bHRDb250aW51ZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGVhY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0KSB7fVxuXG4gIGNhbkRlYWN0aXZhdGUoZGlyZWN0aXZlOiBGb3JtRGVhY3RpdmF0ZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgaWYgKCEoJ2dldEZvcm0nIGluIGRpcmVjdGl2ZSkpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gYERpcmVjdGl2ZSAkeyg8YW55PmRpcmVjdGl2ZSkuY29uc3RydWN0b3IubmFtZX0gZG9lcyBub3QgcHJvcGVydHkgaW1wbGVtZW50IGludGVyZmFjZSBGb3JtRGVhY3RpdmF0ZWA7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtOiBGc0Zvcm1EaXJlY3RpdmUgPSBkaXJlY3RpdmUuZ2V0Rm9ybSgpO1xuXG4gICAgaWYgKCEoZm9ybSBpbnN0YW5jZW9mIEZzRm9ybURpcmVjdGl2ZSkpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gYERpcmVjdGl2ZSAke2RpcmVjdGl2ZS5jb25zdHJ1Y3Rvci5uYW1lfS5nZXRGb3JtKCkgZG9lcyBub3QgcmV0dXJuIGEgdmFsaWQgRnNGb3JtRGlyZWN0aXZlYDtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maXJtVW5zYXZlZChmb3JtLCB0aGlzLl9wcm9tcHQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29uZmlybVJlc3VsdENvbnRpbnVlKHJlc3VsdCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxufVxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import { FsPrompt } from '@firestitch/prompt';
3
+ import { of } from 'rxjs';
4
+ import { FsFormDirective } from '../directives/form/form.directive';
5
+ import { confirmUnsaved } from '../helpers/confirm-unsaved';
6
+ import { map } from 'rxjs/operators';
7
+ import { confirmResultContinue } from '../helpers';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@firestitch/prompt";
10
+ export class FormDeactivateGuard {
11
+ constructor(_prompt) {
12
+ this._prompt = _prompt;
13
+ }
14
+ canDeactivate(directive) {
15
+ if (!('getForm' in directive)) {
16
+ const error = `Directive ${directive.constructor.name} does not property implement interface FormDeactivate`;
17
+ console.error(error);
18
+ return of(true);
19
+ }
20
+ const form = directive.getForm();
21
+ if (!(form instanceof FsFormDirective)) {
22
+ const error = `Directive ${directive.constructor.name}.getForm() does not return a valid FsFormDirective`;
23
+ console.error(error);
24
+ return of(true);
25
+ }
26
+ return confirmUnsaved(form, this._prompt)
27
+ .pipe(map((result) => {
28
+ return confirmResultContinue(result);
29
+ }));
30
+ }
31
+ }
32
+ FormDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Injectable });
33
+ FormDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, providedIn: 'root' });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, decorators: [{
35
+ type: Injectable,
36
+ args: [{
37
+ providedIn: 'root'
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9ndWFyZHMvZm9ybS1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFLbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFvQixPQUFpQjtRQUFqQixZQUFPLEdBQVAsT0FBTyxDQUFVO0lBQUcsQ0FBQztJQUV6QyxhQUFhLENBQUMsU0FBeUI7UUFFckMsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sS0FBSyxHQUFHLGFBQW1CLFNBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSx1REFBdUQsQ0FBQztZQUNwSCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsTUFBTSxJQUFJLEdBQW9CLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVsRCxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksZUFBZSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksb0RBQW9ELENBQUM7WUFDMUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O2lIQTFCVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EZWFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybURlYWN0aXZhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zvcm0tZGVhY3RpdmF0ZSc7XG5pbXBvcnQgeyBjb25maXJtVW5zYXZlZCB9IGZyb20gJy4uL2hlbHBlcnMvY29uZmlybS11bnNhdmVkJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbmZpcm1SZXN1bHRDb250aW51ZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGVhY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0KSB7fVxuXG4gIGNhbkRlYWN0aXZhdGUoZGlyZWN0aXZlOiBGb3JtRGVhY3RpdmF0ZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgaWYgKCEoJ2dldEZvcm0nIGluIGRpcmVjdGl2ZSkpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gYERpcmVjdGl2ZSAkeyg8YW55PmRpcmVjdGl2ZSkuY29uc3RydWN0b3IubmFtZX0gZG9lcyBub3QgcHJvcGVydHkgaW1wbGVtZW50IGludGVyZmFjZSBGb3JtRGVhY3RpdmF0ZWA7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtOiBGc0Zvcm1EaXJlY3RpdmUgPSBkaXJlY3RpdmUuZ2V0Rm9ybSgpO1xuXG4gICAgaWYgKCEoZm9ybSBpbnN0YW5jZW9mIEZzRm9ybURpcmVjdGl2ZSkpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gYERpcmVjdGl2ZSAke2RpcmVjdGl2ZS5jb25zdHJ1Y3Rvci5uYW1lfS5nZXRGb3JtKCkgZG9lcyBub3QgcmV0dXJuIGEgdmFsaWQgRnNGb3JtRGlyZWN0aXZlYDtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maXJtVW5zYXZlZChmb3JtLCB0aGlzLl9wcm9tcHQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29uZmlybVJlc3VsdENvbnRpbnVlKHJlc3VsdCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
- import { ConfirmResult } from '../enums/confirm-result';
2
- export function confirmResultContinue(result) {
3
- return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1yZXN1bHQtY29udGludWUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9mb3JtLyIsInNvdXJjZXMiOlsiYXBwL2hlbHBlcnMvY29uZmlybS1yZXN1bHQtY29udGludWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFNO0lBQzFDLE9BQU8sTUFBTSxLQUFLLGFBQWEsQ0FBQyxPQUFPLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxRQUFRLENBQUM7QUFDaEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1SZXN1bHQgfSBmcm9tICcuLi9lbnVtcy9jb25maXJtLXJlc3VsdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtUmVzdWx0Q29udGludWUocmVzdWx0KSB7XG4gIHJldHVybiByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuRGlzY2FyZCB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuU2F2ZSB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuUHJpc3RpbmU7XG59XG4iXX0=
1
+ import { ConfirmResult } from '../enums/confirm-result';
2
+ export function confirmResultContinue(result) {
3
+ return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1yZXN1bHQtY29udGludWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2hlbHBlcnMvY29uZmlybS1yZXN1bHQtY29udGludWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFNO0lBQzFDLE9BQU8sTUFBTSxLQUFLLGFBQWEsQ0FBQyxPQUFPLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxRQUFRLENBQUM7QUFDaEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1SZXN1bHQgfSBmcm9tICcuLi9lbnVtcy9jb25maXJtLXJlc3VsdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtUmVzdWx0Q29udGludWUocmVzdWx0KSB7XG4gIHJldHVybiByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuRGlzY2FyZCB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuU2F2ZSB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuUHJpc3RpbmU7XG59XG4iXX0=
@@ -1,70 +1,70 @@
1
- import { Observable } from 'rxjs';
2
- import { first } from 'rxjs/operators';
3
- import { ConfirmResult } from '../enums/confirm-result';
4
- export function confirmUnsaved(form, prompt) {
5
- return new Observable(observer => {
6
- if (!form.confirm || !form.ngForm.dirty) {
7
- observer.next(ConfirmResult.Pristine);
8
- observer.complete();
9
- return;
10
- }
11
- let title = 'You Have Unsaved Changes';
12
- let message = 'What would you like to do with your changes?';
13
- let saveLabel = 'Save & Continue';
14
- let discardLabel = 'Discard Changes & Continue';
15
- let cancelLabel = 'Review Changes';
16
- if (typeof form.confirm === 'object') {
17
- title = form.confirm.title || title;
18
- message = form.confirm.message || message;
19
- saveLabel = form.confirm.saveLabel || saveLabel;
20
- discardLabel = form.confirm.discardLabel || discardLabel;
21
- cancelLabel = form.confirm.cancelLabel || cancelLabel;
22
- }
23
- prompt.confirm({
24
- title: title,
25
- template: message,
26
- dialogConfig: { width: 'auto' },
27
- buttons: [
28
- {
29
- label: saveLabel,
30
- color: 'primary',
31
- value: 'save'
32
- },
33
- {
34
- label: discardLabel,
35
- value: 'discard'
36
- },
37
- {
38
- label: cancelLabel,
39
- cancel: true
40
- }
41
- ]
42
- }).subscribe((value) => {
43
- if (value === 'discard') {
44
- observer.next(ConfirmResult.Discard);
45
- observer.complete();
46
- form.reset();
47
- }
48
- if (value === 'save') {
49
- form.submitted
50
- .pipe(first())
51
- .subscribe(() => {
52
- observer.next(ConfirmResult.Save);
53
- observer.complete();
54
- });
55
- form.invalid
56
- .pipe(first())
57
- .subscribe(() => {
58
- observer.next(ConfirmResult.Invalid);
59
- observer.complete();
60
- });
61
- form.ngForm.control.markAsPristine();
62
- form.ngForm.ngSubmit.emit();
63
- }
64
- }, (error) => {
65
- observer.next(ConfirmResult.Review);
66
- observer.complete();
67
- });
68
- });
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS11bnNhdmVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZm9ybS8iLCJzb3VyY2VzIjpbImFwcC9oZWxwZXJzL2NvbmZpcm0tdW5zYXZlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFxQixFQUFFLE1BQWdCO0lBQ3BFLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsOENBQThDLENBQUM7UUFDN0QsSUFBSSxTQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsSUFBSSxZQUFZLEdBQUcsNEJBQTRCLENBQUM7UUFDaEQsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7UUFFbkMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ3BDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7WUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQztZQUMxQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO1lBQ2hELFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUM7WUFDekQsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQztTQUN2RDtRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDL0IsT0FBTyxFQUFFO2dCQUNQO29CQUNFLEtBQUssRUFBRSxTQUFTO29CQUNoQixLQUFLLEVBQUUsU0FBUztvQkFDaEIsS0FBSyxFQUFFLE1BQU07aUJBQ2Q7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLFlBQVk7b0JBQ25CLEtBQUssRUFBRSxTQUFTO2lCQUNqQjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsV0FBVztvQkFDbEIsTUFBTSxFQUFFLElBQUk7aUJBQ2I7YUFDRjtTQUNGLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUVyQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNkO1lBRUQsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUVwQixJQUFJLENBQUMsU0FBUztxQkFDYixJQUFJLENBQ0gsS0FBSyxFQUFFLENBQ1I7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsT0FBTztxQkFDWCxJQUFJLENBQ0gsS0FBSyxFQUFFLENBQ1I7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDN0I7UUFFSCxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29uZmlybVJlc3VsdCB9IGZyb20gJy4uL2VudW1zL2NvbmZpcm0tcmVzdWx0JztcblxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlybVVuc2F2ZWQoZm9ybTogRnNGb3JtRGlyZWN0aXZlLCBwcm9tcHQ6IEZzUHJvbXB0KTogT2JzZXJ2YWJsZTxDb25maXJtUmVzdWx0PiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG5cbiAgICBpZiAoIWZvcm0uY29uZmlybSB8fCAhZm9ybS5uZ0Zvcm0uZGlydHkpIHtcbiAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5QcmlzdGluZSk7XG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCB0aXRsZSA9ICdZb3UgSGF2ZSBVbnNhdmVkIENoYW5nZXMnO1xuICAgIGxldCBtZXNzYWdlID0gJ1doYXQgd291bGQgeW91IGxpa2UgdG8gZG8gd2l0aCB5b3VyIGNoYW5nZXM/JztcbiAgICBsZXQgc2F2ZUxhYmVsID0gJ1NhdmUgJiBDb250aW51ZSc7XG4gICAgbGV0IGRpc2NhcmRMYWJlbCA9ICdEaXNjYXJkIENoYW5nZXMgJiBDb250aW51ZSc7XG4gICAgbGV0IGNhbmNlbExhYmVsID0gJ1JldmlldyBDaGFuZ2VzJztcblxuICAgIGlmICh0eXBlb2YgZm9ybS5jb25maXJtID09PSAnb2JqZWN0Jykge1xuICAgICAgdGl0bGUgPSBmb3JtLmNvbmZpcm0udGl0bGUgfHwgdGl0bGU7XG4gICAgICBtZXNzYWdlID0gZm9ybS5jb25maXJtLm1lc3NhZ2UgfHwgbWVzc2FnZTtcbiAgICAgIHNhdmVMYWJlbCA9IGZvcm0uY29uZmlybS5zYXZlTGFiZWwgfHwgc2F2ZUxhYmVsO1xuICAgICAgZGlzY2FyZExhYmVsID0gZm9ybS5jb25maXJtLmRpc2NhcmRMYWJlbCB8fCBkaXNjYXJkTGFiZWw7XG4gICAgICBjYW5jZWxMYWJlbCA9IGZvcm0uY29uZmlybS5jYW5jZWxMYWJlbCB8fCBjYW5jZWxMYWJlbDtcbiAgICB9XG5cbiAgICBwcm9tcHQuY29uZmlybSh7XG4gICAgICB0aXRsZTogdGl0bGUsXG4gICAgICB0ZW1wbGF0ZTogbWVzc2FnZSxcbiAgICAgIGRpYWxvZ0NvbmZpZzogeyB3aWR0aDogJ2F1dG8nIH0sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogc2F2ZUxhYmVsLFxuICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgdmFsdWU6ICdzYXZlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGRpc2NhcmRMYWJlbCxcbiAgICAgICAgICB2YWx1ZTogJ2Rpc2NhcmQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogY2FuY2VsTGFiZWwsXG4gICAgICAgICAgY2FuY2VsOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gJ2Rpc2NhcmQnKSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5EaXNjYXJkKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgZm9ybS5yZXNldCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPT09ICdzYXZlJykge1xuXG4gICAgICAgIGZvcm0uc3VibWl0dGVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KENvbmZpcm1SZXN1bHQuU2F2ZSk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybS5pbnZhbGlkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KENvbmZpcm1SZXN1bHQuSW52YWxpZCk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybS5uZ0Zvcm0uY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICBmb3JtLm5nRm9ybS5uZ1N1Ym1pdC5lbWl0KCk7XG4gICAgICB9XG5cbiAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dChDb25maXJtUmVzdWx0LlJldmlldyk7XG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
1
+ import { Observable } from 'rxjs';
2
+ import { first } from 'rxjs/operators';
3
+ import { ConfirmResult } from '../enums/confirm-result';
4
+ export function confirmUnsaved(form, prompt) {
5
+ return new Observable(observer => {
6
+ if (!form.confirm || !form.ngForm.dirty) {
7
+ observer.next(ConfirmResult.Pristine);
8
+ observer.complete();
9
+ return;
10
+ }
11
+ let title = 'You Have Unsaved Changes';
12
+ let message = 'What would you like to do with your changes?';
13
+ let saveLabel = 'Save & Continue';
14
+ let discardLabel = 'Discard Changes & Continue';
15
+ let cancelLabel = 'Review Changes';
16
+ if (typeof form.confirm === 'object') {
17
+ title = form.confirm.title || title;
18
+ message = form.confirm.message || message;
19
+ saveLabel = form.confirm.saveLabel || saveLabel;
20
+ discardLabel = form.confirm.discardLabel || discardLabel;
21
+ cancelLabel = form.confirm.cancelLabel || cancelLabel;
22
+ }
23
+ prompt.confirm({
24
+ title: title,
25
+ template: message,
26
+ dialogConfig: { width: 'auto' },
27
+ buttons: [
28
+ {
29
+ label: saveLabel,
30
+ color: 'primary',
31
+ value: 'save'
32
+ },
33
+ {
34
+ label: discardLabel,
35
+ value: 'discard'
36
+ },
37
+ {
38
+ label: cancelLabel,
39
+ cancel: true
40
+ }
41
+ ]
42
+ }).subscribe((value) => {
43
+ if (value === 'discard') {
44
+ observer.next(ConfirmResult.Discard);
45
+ observer.complete();
46
+ form.reset();
47
+ }
48
+ if (value === 'save') {
49
+ form.submitted
50
+ .pipe(first())
51
+ .subscribe(() => {
52
+ observer.next(ConfirmResult.Save);
53
+ observer.complete();
54
+ });
55
+ form.invalid
56
+ .pipe(first())
57
+ .subscribe(() => {
58
+ observer.next(ConfirmResult.Invalid);
59
+ observer.complete();
60
+ });
61
+ form.ngForm.control.markAsPristine();
62
+ form.ngForm.ngSubmit.emit();
63
+ }
64
+ }, (error) => {
65
+ observer.next(ConfirmResult.Review);
66
+ observer.complete();
67
+ });
68
+ });
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS11bnNhdmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2NvbmZpcm0tdW5zYXZlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFxQixFQUFFLE1BQWdCO0lBQ3BFLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsOENBQThDLENBQUM7UUFDN0QsSUFBSSxTQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsSUFBSSxZQUFZLEdBQUcsNEJBQTRCLENBQUM7UUFDaEQsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7UUFFbkMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ3BDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7WUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQztZQUMxQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO1lBQ2hELFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUM7WUFDekQsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQztTQUN2RDtRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDL0IsT0FBTyxFQUFFO2dCQUNQO29CQUNFLEtBQUssRUFBRSxTQUFTO29CQUNoQixLQUFLLEVBQUUsU0FBUztvQkFDaEIsS0FBSyxFQUFFLE1BQU07aUJBQ2Q7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLFlBQVk7b0JBQ25CLEtBQUssRUFBRSxTQUFTO2lCQUNqQjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsV0FBVztvQkFDbEIsTUFBTSxFQUFFLElBQUk7aUJBQ2I7YUFDRjtTQUNGLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUVyQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNkO1lBRUQsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUVwQixJQUFJLENBQUMsU0FBUztxQkFDYixJQUFJLENBQ0gsS0FBSyxFQUFFLENBQ1I7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsT0FBTztxQkFDWCxJQUFJLENBQ0gsS0FBSyxFQUFFLENBQ1I7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDN0I7UUFFSCxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29uZmlybVJlc3VsdCB9IGZyb20gJy4uL2VudW1zL2NvbmZpcm0tcmVzdWx0JztcblxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlybVVuc2F2ZWQoZm9ybTogRnNGb3JtRGlyZWN0aXZlLCBwcm9tcHQ6IEZzUHJvbXB0KTogT2JzZXJ2YWJsZTxDb25maXJtUmVzdWx0PiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG5cbiAgICBpZiAoIWZvcm0uY29uZmlybSB8fCAhZm9ybS5uZ0Zvcm0uZGlydHkpIHtcbiAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5QcmlzdGluZSk7XG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCB0aXRsZSA9ICdZb3UgSGF2ZSBVbnNhdmVkIENoYW5nZXMnO1xuICAgIGxldCBtZXNzYWdlID0gJ1doYXQgd291bGQgeW91IGxpa2UgdG8gZG8gd2l0aCB5b3VyIGNoYW5nZXM/JztcbiAgICBsZXQgc2F2ZUxhYmVsID0gJ1NhdmUgJiBDb250aW51ZSc7XG4gICAgbGV0IGRpc2NhcmRMYWJlbCA9ICdEaXNjYXJkIENoYW5nZXMgJiBDb250aW51ZSc7XG4gICAgbGV0IGNhbmNlbExhYmVsID0gJ1JldmlldyBDaGFuZ2VzJztcblxuICAgIGlmICh0eXBlb2YgZm9ybS5jb25maXJtID09PSAnb2JqZWN0Jykge1xuICAgICAgdGl0bGUgPSBmb3JtLmNvbmZpcm0udGl0bGUgfHwgdGl0bGU7XG4gICAgICBtZXNzYWdlID0gZm9ybS5jb25maXJtLm1lc3NhZ2UgfHwgbWVzc2FnZTtcbiAgICAgIHNhdmVMYWJlbCA9IGZvcm0uY29uZmlybS5zYXZlTGFiZWwgfHwgc2F2ZUxhYmVsO1xuICAgICAgZGlzY2FyZExhYmVsID0gZm9ybS5jb25maXJtLmRpc2NhcmRMYWJlbCB8fCBkaXNjYXJkTGFiZWw7XG4gICAgICBjYW5jZWxMYWJlbCA9IGZvcm0uY29uZmlybS5jYW5jZWxMYWJlbCB8fCBjYW5jZWxMYWJlbDtcbiAgICB9XG5cbiAgICBwcm9tcHQuY29uZmlybSh7XG4gICAgICB0aXRsZTogdGl0bGUsXG4gICAgICB0ZW1wbGF0ZTogbWVzc2FnZSxcbiAgICAgIGRpYWxvZ0NvbmZpZzogeyB3aWR0aDogJ2F1dG8nIH0sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogc2F2ZUxhYmVsLFxuICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgdmFsdWU6ICdzYXZlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGRpc2NhcmRMYWJlbCxcbiAgICAgICAgICB2YWx1ZTogJ2Rpc2NhcmQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogY2FuY2VsTGFiZWwsXG4gICAgICAgICAgY2FuY2VsOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gJ2Rpc2NhcmQnKSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5EaXNjYXJkKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgZm9ybS5yZXNldCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPT09ICdzYXZlJykge1xuXG4gICAgICAgIGZvcm0uc3VibWl0dGVkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KENvbmZpcm1SZXN1bHQuU2F2ZSk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybS5pbnZhbGlkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KENvbmZpcm1SZXN1bHQuSW52YWxpZCk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybS5uZ0Zvcm0uY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICBmb3JtLm5nRm9ybS5uZ1N1Ym1pdC5lbWl0KCk7XG4gICAgICB9XG5cbiAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dChDb25maXJtUmVzdWx0LlJldmlldyk7XG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==