@decaf-ts/for-angular 0.0.10 → 0.0.12

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 (163) hide show
  1. package/dist/for-angular/cli/cli-module.d.ts +22 -0
  2. package/dist/for-angular/cli/cli-module.d.ts.map +1 -0
  3. package/dist/for-angular/cli/cli-module.js +131 -0
  4. package/dist/for-angular/cli/cli-module.js.map +1 -0
  5. package/dist/{components → lib/components}/component-renderer/component-renderer.component.d.ts +1 -0
  6. package/dist/lib/components/component-renderer/component-renderer.component.d.ts.map +1 -0
  7. package/dist/{components → lib/components}/crud-field/crud-field.component.d.ts +1 -0
  8. package/dist/lib/components/crud-field/crud-field.component.d.ts.map +1 -0
  9. package/dist/{components → lib/components}/crud-form/constants.d.ts +1 -0
  10. package/dist/lib/components/crud-form/constants.d.ts.map +1 -0
  11. package/dist/{components → lib/components}/crud-form/crud-form.component.d.ts +1 -0
  12. package/dist/lib/components/crud-form/crud-form.component.d.ts.map +1 -0
  13. package/dist/{components → lib/components}/crud-form/types.d.ts +1 -0
  14. package/dist/lib/components/crud-form/types.d.ts.map +1 -0
  15. package/dist/{components → lib/components}/empty-state/empty-state.component.d.ts +1 -0
  16. package/dist/lib/components/empty-state/empty-state.component.d.ts.map +1 -0
  17. package/dist/{components → lib/components}/fieldset/fieldset.component.d.ts +1 -0
  18. package/dist/lib/components/fieldset/fieldset.component.d.ts.map +1 -0
  19. package/dist/{components → lib/components}/filter/filter.component.d.ts +1 -0
  20. package/dist/lib/components/filter/filter.component.d.ts.map +1 -0
  21. package/dist/{components → lib/components}/for-angular-components.module.d.ts +1 -0
  22. package/dist/lib/components/for-angular-components.module.d.ts.map +1 -0
  23. package/dist/{components → lib/components}/index.d.ts +1 -0
  24. package/dist/lib/components/index.d.ts.map +1 -0
  25. package/dist/{components → lib/components}/layout/layout.component.d.ts +1 -0
  26. package/dist/lib/components/layout/layout.component.d.ts.map +1 -0
  27. package/dist/{components → lib/components}/list/constants.d.ts +1 -0
  28. package/dist/lib/components/list/constants.d.ts.map +1 -0
  29. package/dist/{components → lib/components}/list/list.component.d.ts +1 -0
  30. package/dist/lib/components/list/list.component.d.ts.map +1 -0
  31. package/dist/{components → lib/components}/list-item/list-item.component.d.ts +1 -0
  32. package/dist/lib/components/list-item/list-item.component.d.ts.map +1 -0
  33. package/dist/{components → lib/components}/model-renderer/model-renderer.component.d.ts +1 -0
  34. package/dist/lib/components/model-renderer/model-renderer.component.d.ts.map +1 -0
  35. package/dist/{components → lib/components}/pagination/constants.d.ts +1 -0
  36. package/dist/lib/components/pagination/constants.d.ts.map +1 -0
  37. package/dist/{components → lib/components}/pagination/pagination.component.d.ts +1 -0
  38. package/dist/lib/components/pagination/pagination.component.d.ts.map +1 -0
  39. package/dist/{components → lib/components}/searchbar/searchbar.component.d.ts +1 -0
  40. package/dist/lib/components/searchbar/searchbar.component.d.ts.map +1 -0
  41. package/dist/lib/decaf-ts-for-angular.d.ts.map +1 -0
  42. package/dist/{directives → lib/directives}/collapsable.directive.d.ts +1 -0
  43. package/dist/lib/directives/collapsable.directive.d.ts.map +1 -0
  44. package/dist/{directives → lib/directives}/index.d.ts +1 -0
  45. package/dist/lib/directives/index.d.ts.map +1 -0
  46. package/dist/{engine → lib/engine}/DynamicModule.d.ts +1 -0
  47. package/dist/lib/engine/DynamicModule.d.ts.map +1 -0
  48. package/dist/{engine → lib/engine}/NgxBaseComponent.d.ts +1 -0
  49. package/dist/lib/engine/NgxBaseComponent.d.ts.map +1 -0
  50. package/dist/{engine → lib/engine}/NgxCrudFormField.d.ts +1 -0
  51. package/dist/lib/engine/NgxCrudFormField.d.ts.map +1 -0
  52. package/dist/{engine → lib/engine}/NgxFormService.d.ts +1 -0
  53. package/dist/lib/engine/NgxFormService.d.ts.map +1 -0
  54. package/dist/{engine → lib/engine}/NgxRenderingEngine.d.ts +1 -0
  55. package/dist/lib/engine/NgxRenderingEngine.d.ts.map +1 -0
  56. package/dist/{engine → lib/engine}/NgxRenderingEngine2.d.ts +1 -0
  57. package/dist/lib/engine/NgxRenderingEngine2.d.ts.map +1 -0
  58. package/dist/{engine → lib/engine}/ValidatorFactory.d.ts +1 -0
  59. package/dist/lib/engine/ValidatorFactory.d.ts.map +1 -0
  60. package/dist/{engine → lib/engine}/constants.d.ts +1 -0
  61. package/dist/lib/engine/constants.d.ts.map +1 -0
  62. package/dist/{engine → lib/engine}/decorators.d.ts +1 -0
  63. package/dist/lib/engine/decorators.d.ts.map +1 -0
  64. package/dist/{engine → lib/engine}/index.d.ts +1 -0
  65. package/dist/lib/engine/index.d.ts.map +1 -0
  66. package/dist/{engine → lib/engine}/types.d.ts +1 -0
  67. package/dist/lib/engine/types.d.ts.map +1 -0
  68. package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +359 -0
  69. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +456 -0
  70. package/dist/lib/esm2022/components/crud-form/constants.mjs +14 -0
  71. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +272 -0
  72. package/dist/lib/esm2022/components/crud-form/types.mjs +2 -0
  73. package/dist/lib/esm2022/components/empty-state/empty-state.component.mjs +410 -0
  74. package/dist/lib/esm2022/components/fieldset/fieldset.component.mjs +250 -0
  75. package/dist/lib/esm2022/components/filter/filter.component.mjs +906 -0
  76. package/dist/lib/esm2022/components/for-angular-components.module.mjs +72 -0
  77. package/dist/lib/esm2022/components/index.mjs +20 -0
  78. package/dist/lib/esm2022/components/layout/layout.component.mjs +245 -0
  79. package/dist/lib/esm2022/components/list/constants.mjs +6 -0
  80. package/dist/lib/esm2022/components/list/list.component.mjs +1405 -0
  81. package/dist/lib/esm2022/components/list-item/list-item.component.mjs +612 -0
  82. package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +182 -0
  83. package/dist/lib/esm2022/components/pagination/constants.mjs +2 -0
  84. package/dist/lib/esm2022/components/pagination/pagination.component.mjs +364 -0
  85. package/dist/lib/esm2022/components/searchbar/searchbar.component.mjs +503 -0
  86. package/dist/lib/esm2022/decaf-ts-for-angular.mjs +5 -0
  87. package/dist/lib/esm2022/directives/collapsable.directive.mjs +28 -0
  88. package/dist/lib/esm2022/directives/index.mjs +2 -0
  89. package/dist/lib/esm2022/engine/DynamicModule.mjs +18 -0
  90. package/dist/lib/esm2022/engine/NgxBaseComponent.mjs +546 -0
  91. package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +125 -0
  92. package/dist/lib/esm2022/engine/NgxFormService.mjs +315 -0
  93. package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +192 -0
  94. package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +332 -0
  95. package/dist/lib/esm2022/engine/ValidatorFactory.mjs +102 -0
  96. package/dist/lib/esm2022/engine/constants.mjs +160 -0
  97. package/dist/lib/esm2022/engine/decorators.mjs +38 -0
  98. package/dist/lib/esm2022/engine/index.mjs +17 -0
  99. package/dist/lib/esm2022/engine/types.mjs +4 -0
  100. package/dist/lib/esm2022/for-angular.module.mjs +119 -0
  101. package/dist/lib/esm2022/helpers/index.mjs +13 -0
  102. package/dist/lib/esm2022/helpers/utils.mjs +415 -0
  103. package/dist/lib/esm2022/interfaces.mjs +2 -0
  104. package/dist/lib/esm2022/public-apis.mjs +14 -0
  105. package/dist/{fesm2022 → lib/fesm2022}/decaf-ts-for-angular.mjs +1805 -621
  106. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
  107. package/dist/{for-angular.module.d.ts → lib/for-angular.module.d.ts} +1 -0
  108. package/dist/lib/for-angular.module.d.ts.map +1 -0
  109. package/dist/{helpers → lib/helpers}/index.d.ts +1 -0
  110. package/dist/lib/helpers/index.d.ts.map +1 -0
  111. package/dist/{helpers → lib/helpers}/utils.d.ts +1 -0
  112. package/dist/lib/helpers/utils.d.ts.map +1 -0
  113. package/dist/{index.d.ts → lib/index.d.ts} +1 -0
  114. package/dist/{interfaces.d.ts → lib/interfaces.d.ts} +1 -0
  115. package/dist/lib/interfaces.d.ts.map +1 -0
  116. package/dist/{public-apis.d.ts → lib/public-apis.d.ts} +1 -0
  117. package/dist/lib/public-apis.d.ts.map +1 -0
  118. package/package.json +3 -2
  119. package/dist/esm2022/components/component-renderer/component-renderer.component.mjs +0 -313
  120. package/dist/esm2022/components/crud-field/crud-field.component.mjs +0 -301
  121. package/dist/esm2022/components/crud-form/constants.mjs +0 -14
  122. package/dist/esm2022/components/crud-form/crud-form.component.mjs +0 -139
  123. package/dist/esm2022/components/crud-form/types.mjs +0 -2
  124. package/dist/esm2022/components/empty-state/empty-state.component.mjs +0 -348
  125. package/dist/esm2022/components/fieldset/fieldset.component.mjs +0 -225
  126. package/dist/esm2022/components/filter/filter.component.mjs +0 -689
  127. package/dist/esm2022/components/for-angular-components.module.mjs +0 -71
  128. package/dist/esm2022/components/index.mjs +0 -20
  129. package/dist/esm2022/components/layout/layout.component.mjs +0 -176
  130. package/dist/esm2022/components/list/constants.mjs +0 -6
  131. package/dist/esm2022/components/list/list.component.mjs +0 -1236
  132. package/dist/esm2022/components/list-item/list-item.component.mjs +0 -408
  133. package/dist/esm2022/components/model-renderer/model-renderer.component.mjs +0 -138
  134. package/dist/esm2022/components/pagination/constants.mjs +0 -2
  135. package/dist/esm2022/components/pagination/pagination.component.mjs +0 -323
  136. package/dist/esm2022/components/searchbar/searchbar.component.mjs +0 -493
  137. package/dist/esm2022/decaf-ts-for-angular.mjs +0 -5
  138. package/dist/esm2022/directives/collapsable.directive.mjs +0 -28
  139. package/dist/esm2022/directives/index.mjs +0 -2
  140. package/dist/esm2022/engine/DynamicModule.mjs +0 -18
  141. package/dist/esm2022/engine/NgxBaseComponent.mjs +0 -539
  142. package/dist/esm2022/engine/NgxCrudFormField.mjs +0 -125
  143. package/dist/esm2022/engine/NgxFormService.mjs +0 -315
  144. package/dist/esm2022/engine/NgxRenderingEngine.mjs +0 -192
  145. package/dist/esm2022/engine/NgxRenderingEngine2.mjs +0 -332
  146. package/dist/esm2022/engine/ValidatorFactory.mjs +0 -102
  147. package/dist/esm2022/engine/constants.mjs +0 -160
  148. package/dist/esm2022/engine/decorators.mjs +0 -38
  149. package/dist/esm2022/engine/index.mjs +0 -17
  150. package/dist/esm2022/engine/types.mjs +0 -4
  151. package/dist/esm2022/for-angular.module.mjs +0 -118
  152. package/dist/esm2022/helpers/index.mjs +0 -13
  153. package/dist/esm2022/helpers/utils.mjs +0 -415
  154. package/dist/esm2022/interfaces.mjs +0 -2
  155. package/dist/esm2022/public-apis.mjs +0 -14
  156. package/dist/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
  157. /package/dist/{README.md → lib/README.md} +0 -0
  158. /package/dist/{assets → lib/assets}/i18n/en.json +0 -0
  159. /package/dist/{assets → lib/assets}/images/angular-logo.svg +0 -0
  160. /package/dist/{assets → lib/assets}/images/decaf-logo-black.svg +0 -0
  161. /package/dist/{assets → lib/assets}/images/decaf-logo-lw.svg +0 -0
  162. /package/dist/{assets → lib/assets}/images/decaf-logo-white.svg +0 -0
  163. /package/dist/{assets → lib/assets}/images/decaf-logo.svg +0 -0
@@ -0,0 +1,272 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
3
+ import { Location } from '@angular/common';
4
+ import { NgxFormService } from '../../engine/NgxFormService';
5
+ import { Dynamic, EventConstants } from '../../engine';
6
+ import { OperationKeys } from '@decaf-ts/db-decorators';
7
+ import { DefaultFormReactiveOptions } from './constants';
8
+ import { ForAngularModule, getLogger } from '../../for-angular.module';
9
+ import { IonIcon } from '@ionic/angular/standalone';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ionic/angular/standalone";
12
+ import * as i2 from "@angular/forms";
13
+ const _c0 = ["reactiveForm"];
14
+ const _c1 = ["*"];
15
+ const _c2 = () => ["create", "update"];
16
+ const _c3 = () => ["delete", "read", "update"];
17
+ function CrudFormComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelement(0, "ion-icon", 6);
19
+ } if (rf & 2) {
20
+ const ctx_r1 = i0.ɵɵnextContext(2);
21
+ i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
22
+ } }
23
+ function CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "ion-icon", 6);
25
+ } if (rf & 2) {
26
+ const ctx_r1 = i0.ɵɵnextContext(3);
27
+ i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
28
+ } }
29
+ function CrudFormComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
30
+ const _r3 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "ion-button", 8);
32
+ i0.ɵɵlistener("click", function CrudFormComponent_Conditional_0_Conditional_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
33
+ i0.ɵɵtemplate(1, CrudFormComponent_Conditional_0_Conditional_9_Conditional_1_Template, 1, 2, "ion-icon", 6);
34
+ i0.ɵɵtext(2);
35
+ i0.ɵɵelementEnd();
36
+ } if (rf & 2) {
37
+ const ctx_r1 = i0.ɵɵnextContext(2);
38
+ i0.ɵɵadvance();
39
+ i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 1 : -1);
40
+ i0.ɵɵadvance();
41
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c2).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
42
+ } }
43
+ function CrudFormComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
44
+ const _r1 = i0.ɵɵgetCurrentView();
45
+ i0.ɵɵelementStart(0, "form", 3, 0);
46
+ i0.ɵɵlistener("submit", function CrudFormComponent_Conditional_0_Template_form_submit_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.submit($event)); });
47
+ i0.ɵɵprojection(2, 0, ["#formContent", ""]);
48
+ i0.ɵɵelementStart(3, "div", 4)(4, "div")(5, "ion-button", 5);
49
+ i0.ɵɵtemplate(6, CrudFormComponent_Conditional_0_Conditional_6_Template, 1, 2, "ion-icon", 6);
50
+ i0.ɵɵtext(7);
51
+ i0.ɵɵelementEnd()();
52
+ i0.ɵɵelementStart(8, "div");
53
+ i0.ɵɵtemplate(9, CrudFormComponent_Conditional_0_Conditional_9_Template, 3, 3, "ion-button", 7);
54
+ i0.ɵɵelementEnd()()();
55
+ } if (rf & 2) {
56
+ const ctx_r1 = i0.ɵɵnextContext();
57
+ i0.ɵɵproperty("id", ctx_r1.rendererId)("formGroup", ctx_r1.formGroup)("target", ctx_r1.target);
58
+ i0.ɵɵadvance(6);
59
+ i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 6 : -1);
60
+ i0.ɵɵadvance();
61
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.action ? ctx_r1.action : ctx_r1.options.buttons.submit.text, " ");
62
+ i0.ɵɵadvance(2);
63
+ i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 9 : -1);
64
+ } }
65
+ function CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelement(0, "ion-icon", 6);
67
+ } if (rf & 2) {
68
+ const ctx_r1 = i0.ɵɵnextContext(3);
69
+ i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
70
+ } }
71
+ function CrudFormComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
72
+ const _r4 = i0.ɵɵgetCurrentView();
73
+ i0.ɵɵelementStart(0, "div")(1, "ion-button", 10);
74
+ i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_1_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleDelete()); });
75
+ i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_1_Conditional_2_Template, 1, 2, "ion-icon", 6);
76
+ i0.ɵɵtext(3, " Delete ");
77
+ i0.ɵɵelementEnd()();
78
+ } if (rf & 2) {
79
+ const ctx_r1 = i0.ɵɵnextContext(2);
80
+ i0.ɵɵadvance(2);
81
+ i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
82
+ } }
83
+ function CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵelement(0, "ion-icon", 6);
85
+ } if (rf & 2) {
86
+ const ctx_r1 = i0.ɵɵnextContext(3);
87
+ i0.ɵɵproperty("slot", ctx_r1.options.buttons.submit.iconSlot)("name", ctx_r1.options.buttons.submit.icon);
88
+ } }
89
+ function CrudFormComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "div")(1, "ion-button", 5);
91
+ i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_2_Conditional_2_Template, 1, 2, "ion-icon", 6);
92
+ i0.ɵɵtext(3);
93
+ i0.ɵɵelementEnd()();
94
+ } if (rf & 2) {
95
+ const ctx_r1 = i0.ɵɵnextContext(2);
96
+ i0.ɵɵadvance(2);
97
+ i0.ɵɵconditional(ctx_r1.options.buttons.submit.icon ? 2 : -1);
98
+ i0.ɵɵadvance();
99
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.options.buttons.submit.text, " ");
100
+ } }
101
+ function CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
102
+ i0.ɵɵelement(0, "ion-icon", 6);
103
+ } if (rf & 2) {
104
+ const ctx_r1 = i0.ɵɵnextContext(3);
105
+ i0.ɵɵproperty("slot", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.iconSlot)("name", ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon);
106
+ } }
107
+ function CrudFormComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
108
+ const _r5 = i0.ɵɵgetCurrentView();
109
+ i0.ɵɵelementStart(0, "div")(1, "ion-button", 8);
110
+ i0.ɵɵlistener("click", function CrudFormComponent_Conditional_1_Conditional_3_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleReset()); });
111
+ i0.ɵɵtemplate(2, CrudFormComponent_Conditional_1_Conditional_3_Conditional_2_Template, 1, 2, "ion-icon", 6);
112
+ i0.ɵɵtext(3);
113
+ i0.ɵɵelementEnd()();
114
+ } if (rf & 2) {
115
+ const ctx_r1 = i0.ɵɵnextContext(2);
116
+ i0.ɵɵadvance(2);
117
+ i0.ɵɵconditional((ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.icon) ? 2 : -1);
118
+ i0.ɵɵadvance();
119
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpureFunction0(2, _c3).includes(ctx_r1.operation) ? "Back" : ctx_r1.options.buttons.clear == null ? null : ctx_r1.options.buttons.clear.text, " ");
120
+ } }
121
+ function CrudFormComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
122
+ i0.ɵɵelementStart(0, "div", 9);
123
+ i0.ɵɵtemplate(1, CrudFormComponent_Conditional_1_Conditional_1_Template, 4, 1, "div")(2, CrudFormComponent_Conditional_1_Conditional_2_Template, 4, 2, "div")(3, CrudFormComponent_Conditional_1_Conditional_3_Template, 4, 3, "div");
124
+ i0.ɵɵelementEnd();
125
+ } if (rf & 2) {
126
+ const ctx_r1 = i0.ɵɵnextContext();
127
+ i0.ɵɵclassMap("dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left " + ctx_r1.operation);
128
+ i0.ɵɵadvance();
129
+ i0.ɵɵconditional(ctx_r1.operation === "delete" && ctx_r1.uid ? 1 : -1);
130
+ i0.ɵɵadvance();
131
+ i0.ɵɵconditional(ctx_r1.operation === ctx_r1.OperationKeys.CREATE || ctx_r1.operation === ctx_r1.OperationKeys.UPDATE ? 2 : -1);
132
+ i0.ɵɵadvance();
133
+ i0.ɵɵconditional(ctx_r1.options.buttons.clear ? 3 : -1);
134
+ } }
135
+ /**
136
+ * @component CrudFormComponent
137
+ * @example <ngx-decaf-crud-form
138
+ * action="create"
139
+ * operation="create"
140
+ * formGroup="formGroup"
141
+ * rendererId="rendererId"
142
+ * submitEvent="submitEvent"
143
+ * target="_self"
144
+ * method="event">
145
+ * </ngx-decaf-crud-form>
146
+ *
147
+ * @param {string} action - The action to be performed (create, read, update, delete)
148
+ * @param {CrudOperations} operation - The CRUD operation being performed (create, read, update, delete)
149
+ * @param {FormGroup} formGroup - The form group
150
+ * @param {string} rendererId - The renderer id
151
+ * @param {SubmitEvent} submitEvent - The submit event
152
+ * @param {string} target - The target
153
+ * @param {string} method - The method
154
+ */
155
+ let CrudFormComponent = class CrudFormComponent {
156
+ constructor() {
157
+ this.updateOn = 'change';
158
+ this.target = '_self';
159
+ this.method = 'event';
160
+ this.submitEvent = new EventEmitter();
161
+ /**
162
+ * @description Angular Location service.
163
+ * @summary Injected service that provides access to the browser's URL and history.
164
+ * This service is used for interacting with the browser's history API, allowing
165
+ * for back navigation and URL manipulation outside of Angular's router.
166
+ *
167
+ * @private
168
+ * @type {Location}
169
+ * @memberOf CrudFormComponent
170
+ */
171
+ this.location = inject(Location);
172
+ this.OperationKeys = OperationKeys;
173
+ }
174
+ // ngAfterViewInit() {
175
+ // if (![OperationKeys.READ, OperationKeys.DELETE].includes(this.operation))
176
+ // NgxFormService.formAfterViewInit(this, this.rendererId);
177
+ // }
178
+ async ngOnInit() {
179
+ if (!this.logger)
180
+ this.logger = getLogger(this);
181
+ if (this.operation === OperationKeys.READ || this.operation === OperationKeys.DELETE)
182
+ this.formGroup = undefined;
183
+ this.options = Object.assign({}, DefaultFormReactiveOptions, this.options || {});
184
+ }
185
+ ngOnDestroy() {
186
+ if (this.formGroup)
187
+ NgxFormService.unregister(this.formGroup);
188
+ }
189
+ /**
190
+ * @param {SubmitEvent} event
191
+ */
192
+ async submit(event) {
193
+ event.preventDefault();
194
+ event.stopImmediatePropagation();
195
+ event.stopPropagation();
196
+ if (!NgxFormService.validateFields(this.formGroup))
197
+ return false;
198
+ const data = NgxFormService.getFormData(this.formGroup);
199
+ this.submitEvent.emit({
200
+ data,
201
+ component: 'CrudFormComponent',
202
+ name: this.action || EventConstants.SUBMIT_EVENT,
203
+ handlers: this.handlers,
204
+ });
205
+ }
206
+ handleReset() {
207
+ this.location.back();
208
+ // if(OperationKeys.DELETE !== this.operation)
209
+ // NgxFormService.reset(this.formGroup);
210
+ // else
211
+ // this.location.back();
212
+ }
213
+ handleDelete() {
214
+ this.submitEvent.emit({
215
+ data: this.uid,
216
+ component: 'CrudFormComponent',
217
+ name: EventConstants.SUBMIT_EVENT,
218
+ });
219
+ }
220
+ static { this.ɵfac = function CrudFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CrudFormComponent)(); }; }
221
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrudFormComponent, selectors: [["ngx-decaf-crud-form"]], viewQuery: function CrudFormComponent_Query(rf, ctx) { if (rf & 1) {
222
+ i0.ɵɵviewQuery(_c0, 5, ElementRef);
223
+ } if (rf & 2) {
224
+ let _t;
225
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.component = _t.first);
226
+ } }, inputs: { model: "model", updateOn: "updateOn", target: "target", method: "method", options: "options", action: "action", operation: "operation", handlers: "handlers", formGroup: "formGroup", childOf: "childOf", rendererId: "rendererId", uid: "uid" }, outputs: { submitEvent: "submitEvent" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 2, vars: 1, consts: [["reactiveForm", ""], ["novalidate", "", 3, "id", "formGroup", "target"], ["id", "dcf-buttons-container", 3, "class"], ["novalidate", "", 3, "submit", "id", "formGroup", "target"], ["id", "dcf-buttons-container", 1, "dcf-grid", "dcf-grid-collapse", "dcf-flex", "dcf-flex-left"], ["type", "submit"], ["aria-hidden", "true", 3, "slot", "name"], ["fill", "clear"], ["fill", "clear", 3, "click"], ["id", "dcf-buttons-container"], ["color", "danger", "type", "button", 3, "click"]], template: function CrudFormComponent_Template(rf, ctx) { if (rf & 1) {
227
+ i0.ɵɵprojectionDef();
228
+ i0.ɵɵtemplate(0, CrudFormComponent_Conditional_0_Template, 10, 6, "form", 1)(1, CrudFormComponent_Conditional_1_Template, 4, 5, "div", 2);
229
+ } if (rf & 2) {
230
+ i0.ɵɵconditional(ctx.operation !== "read" && ctx.operation !== "delete" ? 0 : 1);
231
+ } }, dependencies: [ForAngularModule, i1.IonButton, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.FormGroupDirective, IonIcon], styles: ["#dcf-buttons-container[_ngcontent-%COMP%]{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%]{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:100%}#dcf-buttons-container.dcf-flex[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem}}"] }); }
232
+ };
233
+ CrudFormComponent = __decorate([
234
+ Dynamic()
235
+ ], CrudFormComponent);
236
+ export { CrudFormComponent };
237
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CrudFormComponent, [{
238
+ type: Component,
239
+ args: [{ standalone: true, selector: 'ngx-decaf-crud-form', imports: [ForAngularModule, IonIcon], template: "@if(operation !== 'read' && operation !== 'delete') {\n <form #reactiveForm [id]=\"rendererId\" [formGroup]=\"formGroup\" (submit)=\"submit($event)\" novalidate [target]=\"target\">\n <ng-content #formContent></ng-content>\n <div id=\"dcf-buttons-container\" class=\"dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{ action ? action : options.buttons.submit.text}}\n </ion-button>\n </div>\n <div>\n @if(options.buttons.clear) {\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['create', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n }\n </div>\n </div>\n </form>\n} @else {\n <div [class]=\"'dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left ' + operation\" id=\"dcf-buttons-container\">\n\n @if(operation === 'delete' && uid) {\n <div>\n <ion-button\n (click)=\"handleDelete()\"\n color=\"danger\"\n type=\"button\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n Delete\n </ion-button>\n </div>\n\n }\n @if(operation === OperationKeys.CREATE || operation === OperationKeys.UPDATE) {\n <div>\n <ion-button\n type=\"submit\">\n @if(options.buttons.submit.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.submit.iconSlot\" [name]=\"options.buttons.submit.icon\"></ion-icon>\n }\n {{options.buttons.submit.text}}\n </ion-button>\n </div>\n }\n\n @if(options.buttons.clear) {\n <div>\n <ion-button fill=\"clear\" (click)=\"handleReset()\">\n @if(options.buttons.clear?.icon) {\n <ion-icon aria-hidden=\"true\" [slot]=\"options.buttons.clear?.iconSlot\" [name]=\"options.buttons.clear?.icon\"></ion-icon>\n }\n {{ ['delete', 'read', 'update'].includes(operation) ? 'Back' : options.buttons.clear?.text}}\n </ion-button>\n </div>\n\n }\n </div>\n}\n\n", styles: ["#dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 991px){#dcf-buttons-container.dcf-flex{flex-direction:row-reverse}}@media (max-width: 990px){#dcf-buttons-container.dcf-flex div{width:100%}#dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}\n"] }]
240
+ }], null, { model: [{
241
+ type: Input
242
+ }], updateOn: [{
243
+ type: Input
244
+ }], component: [{
245
+ type: ViewChild,
246
+ args: ['reactiveForm', { static: false, read: ElementRef }]
247
+ }], target: [{
248
+ type: Input
249
+ }], method: [{
250
+ type: Input
251
+ }], options: [{
252
+ type: Input
253
+ }], action: [{
254
+ type: Input
255
+ }], operation: [{
256
+ type: Input,
257
+ args: [{ required: true }]
258
+ }], handlers: [{
259
+ type: Input
260
+ }], formGroup: [{
261
+ type: Input
262
+ }], childOf: [{
263
+ type: Input
264
+ }], rendererId: [{
265
+ type: Input
266
+ }], uid: [{
267
+ type: Input
268
+ }], submitEvent: [{
269
+ type: Output
270
+ }] }); })();
271
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrudFormComponent, { className: "CrudFormComponent", filePath: "components/crud-form/crud-form.component.ts", lineNumber: 54 }); })();
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFpQixPQUFPLEVBQUUsY0FBYyxFQUFrRCxNQUFNLGNBQWMsQ0FBQztBQUV0SCxPQUFPLEVBQWtCLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7SUNaeEMsOEJBQXNIOzs7SUFBaEQsQUFBekMsNkRBQXdDLDRDQUFxQzs7O0lBU3RHLDhCQUF1SDs7O0lBQWhELEFBQXpDLDBHQUF3Qyx5RkFBcUM7Ozs7SUFGL0cscUNBQWlEO0lBQXhCLHdNQUFTLG9CQUFhLEtBQUM7SUFDOUMsMkdBQWtDO0lBR2xDLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBSlgsY0FFQztJQUZELDRHQUVDO0lBQ0QsY0FDRjtJQURFLGlMQUNGOzs7O0lBbkJWLGtDQUFxSDtJQUF2RCwyTEFBVSxx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UzttQkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFJOUQsTUFBTTtrQkFETCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO21CQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUl6QixRQUFRO2tCQURQLEtBQUs7WUFJTixTQUFTO2tCQURSLEtBQUs7WUFXTixPQUFPO2tCQUROLEtBQUs7WUFJTixVQUFVO2tCQURULEtBQUs7WUFXTixHQUFHO2tCQURGLEtBQUs7WUFLTixXQUFXO2tCQURWLE1BQU07O2tGQS9ESSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ3hGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hGb3JtU2VydmljZSc7XG5pbXBvcnQgeyBDcnVkRm9ybUV2ZW50LCBEeW5hbWljLCBFdmVudENvbnN0YW50cywgRmllbGRVcGRhdGVNb2RlLCBIVE1MRm9ybVRhcmdldCwgUmVuZGVyZWRNb2RlbCB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBDcnVkRm9ybU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENydWRPcGVyYXRpb25zLCBPcGVyYXRpb25LZXlzIH0gZnJvbSAnQGRlY2FmLXRzL2RiLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgRGVmYXVsdEZvcm1SZWFjdGl2ZU9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JBbmd1bGFyTW9kdWxlLCBnZXRMb2dnZXIgfSBmcm9tICcuLi8uLi9mb3ItYW5ndWxhci5tb2R1bGUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnQGRlY2FmLXRzL2xvZ2dpbmcnO1xuXG5cbi8qKlxuICogQGNvbXBvbmVudCBDcnVkRm9ybUNvbXBvbmVudFxuICogQGV4YW1wbGUgPG5neC1kZWNhZi1jcnVkLWZvcm1cbiAqICAgYWN0aW9uPVwiY3JlYXRlXCJcbiAqICAgb3BlcmF0aW9uPVwiY3JlYXRlXCJcbiAqICAgZm9ybUdyb3VwPVwiZm9ybUdyb3VwXCJcbiAqICAgcmVuZGVyZXJJZD1cInJlbmRlcmVySWRcIlxuICogICBzdWJtaXRFdmVudD1cInN1Ym1pdEV2ZW50XCJcbiAqICAgdGFyZ2V0PVwiX3NlbGZcIlxuICogICBtZXRob2Q9XCJldmVudFwiPlxuICogPC9uZ3gtZGVjYWYtY3J1ZC1mb3JtPlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCAoY3JlYXRlLCByZWFkLCB1cGRhdGUsIGRlbGV0ZSlcbiAqIEBwYXJhbSB7Q3J1ZE9wZXJhdGlvbnN9IG9wZXJhdGlvbiAtIFRoZSBDUlVEIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWQgKGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBkZWxldGUpXG4gKiBAcGFyYW0ge0Zvcm1Hcm91cH0gZm9ybUdyb3VwIC0gVGhlIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW5kZXJlcklkIC0gVGhlIHJlbmRlcmVyIGlkXG4gKiBAcGFyYW0ge1N1Ym1pdEV2ZW50fSBzdWJtaXRFdmVudCAtIFRoZSBzdWJtaXQgZXZlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXQgLSBUaGUgdGFyZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIG1ldGhvZFxuICovXG5ARHluYW1pYygpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtY3J1ZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NydWQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NydWQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbRm9yQW5ndWxhck1vZHVsZSwgSW9uSWNvbl0sXG59KVxuZXhwb3J0IGNsYXNzIENydWRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBGb3JtRWxlbWVudCwgT25EZXN0cm95LCBSZW5kZXJlZE1vZGVsIHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgbW9kZWwgZm9yIGRhdGEgb3BlcmF0aW9ucy5cbiAgICogQHN1bW1hcnkgVGhlIGRhdGEgbW9kZWwgcmVwb3NpdG9yeSB0aGF0IHRoaXMgY29tcG9uZW50IHdpbGwgdXNlIGZvciBDUlVEIG9wZXJhdGlvbnMuXG4gICAqIFRoaXMgcHJvdmlkZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhIGxheWVyIGZvciByZXRyaWV2aW5nIGFuZCBtYW5pcHVsYXRpbmcgZGF0YS5cbiAgICpcbiAgICogQHR5cGUge01vZGVsfCB1bmRlZmluZWR9XG4gICAqL1xuICBASW5wdXQoKVxuICBtb2RlbCE6IE1vZGVsIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHVwZGF0ZU9uOiBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJztcblxuICBAVmlld0NoaWxkKCdyZWFjdGl2ZUZvcm0nLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY29tcG9uZW50ITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICB0YXJnZXQ6IEhUTUxGb3JtVGFyZ2V0ID0gJ19zZWxmJztcblxuICBASW5wdXQoKVxuICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ2V2ZW50JyA9ICdldmVudCc7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucyE6IENydWRGb3JtT3B0aW9ucztcblxuICBASW5wdXQoKVxuICBhY3Rpb24/OiBzdHJpbmc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgb3BlcmF0aW9uITogQ3J1ZE9wZXJhdGlvbnM7XG5cbiAgQElucHV0KClcbiAgaGFuZGxlcnMhOiBSZWNvcmQ8c3RyaW5nLCAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPj47XG5cbiAgQElucHV0KClcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGF0aCB0byB0aGUgcGFyZW50IEZvcm1Hcm91cCwgaWYgbmVzdGVkLlxuICAgKiBAc3VtbWFyeSBGdWxsIGRvdC1kZWxpbWl0ZWQgcGF0aCBvZiB0aGUgcGFyZW50IEZvcm1Hcm91cC4gU2V0IG9ubHkgd2hlbiBpcyBwYXJ0IG9mIGEgbmVzdGVkIHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlck9mIENydWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZE9mPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHJlbmRlcmVySWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgcmVjb3JkLlxuICAgKiBAc3VtbWFyeSBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY3VycmVudCByZWNvcmQgYmVpbmcgZGlzcGxheWVkIG9yIG1hbmlwdWxhdGVkLlxuICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByaW1hcnkga2V5IGZvciBvcGVyYXRpb25zIG9uIHNwZWNpZmljIHJlY29yZHMuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9XG4gICAqL1xuICBASW5wdXQoKVxuICB1aWQhOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG5cblxuICBAT3V0cHV0KClcbiAgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPENydWRGb3JtRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dnZXIgaW5zdGFuY2UgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IFByb3ZpZGVzIGxvZ2dpbmcgY2FwYWJpbGl0aWVzIGZvciB0aGUgY29tcG9uZW50LCBhbGxvd2luZyBmb3IgY29uc2lzdGVudFxuICAgKiBhbmQgc3RydWN0dXJlZCBsb2dnaW5nIG9mIGluZm9ybWF0aW9uLCB3YXJuaW5ncywgYW5kIGVycm9ycy4gVGhpcyBsb2dnZXIgaXMgaW5pdGlhbGl6ZWRcbiAgICogaW4gdGhlIG5nT25Jbml0IG1ldGhvZCB1c2luZyB0aGUgZ2V0TG9nZ2VyIGZ1bmN0aW9uIGZyb20gdGhlIEZvckFuZ3VsYXJNb2R1bGUuXG4gICAqXG4gICAqIFRoZSBsb2dnZXIgaXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb21wb25lbnQgdG8gcmVjb3JkIGltcG9ydGFudCBldmVudHMsIGRlYnVnIGluZm9ybWF0aW9uLFxuICAgKiBhbmQgcG90ZW50aWFsIGlzc3Vlcy4gSXQgaGVscHMgaW4gbW9uaXRvcmluZyB0aGUgY29tcG9uZW50J3MgYmVoYXZpb3IsIHRyYWNraW5nIHRoZSBmbG93XG4gICAqIG9mIG9wZXJhdGlvbnMsIGFuZCBmYWNpbGl0YXRpbmcgZWFzaWVyIGRlYnVnZ2luZyBhbmQgbWFpbnRlbmFuY2UuXG4gICAqXG4gICAqIEB0eXBlIHtMb2dnZXJ9XG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJPZiBDcnVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsb2dnZXIhOiBMb2dnZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBbmd1bGFyIExvY2F0aW9uIHNlcnZpY2UuXG4gICAqIEBzdW1tYXJ5IEluamVjdGVkIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGJyb3dzZXIncyBVUkwgYW5kIGhpc3RvcnkuXG4gICAqIFRoaXMgc2VydmljZSBpcyB1c2VkIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBicm93c2VyJ3MgaGlzdG9yeSBBUEksIGFsbG93aW5nXG4gICAqIGZvciBiYWNrIG5hdmlnYXRpb24gYW5kIFVSTCBtYW5pcHVsYXRpb24gb3V0c2lkZSBvZiBBbmd1bGFyJ3Mgcm91dGVyLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdHlwZSB7TG9jYXRpb259XG4gICAqIEBtZW1iZXJPZiBDcnVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xuXG4gIC8vIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBpZiAoIVtPcGVyYXRpb25LZXlzLlJFQUQsIE9wZXJhdGlvbktleXMuREVMRVRFXS5pbmNsdWRlcyh0aGlzLm9wZXJhdGlvbikpXG4gICAgLy8gICBOZ3hGb3JtU2VydmljZS5mb3JtQWZ0ZXJWaWV3SW5pdCh0aGlzLCB0aGlzLnJlbmRlcmVySWQpO1xuICAvLyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxvZ2dlcilcbiAgICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKHRoaXMpO1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uS2V5cy5SRUFEIHx8IHRoaXMub3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLkRFTEVURSlcbiAgICAgIHRoaXMuZm9ybUdyb3VwID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIERlZmF1bHRGb3JtUmVhY3RpdmVPcHRpb25zLFxuICAgICAgdGhpcy5vcHRpb25zIHx8IHt9LFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApXG4gICAgICBOZ3hGb3JtU2VydmljZS51bnJlZ2lzdGVyKHRoaXMuZm9ybUdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gIHtTdWJtaXRFdmVudH0gZXZlbnRcbiAgICovXG4gIGFzeW5jIHN1Ym1pdChldmVudDogU3VibWl0RXZlbnQpOiBQcm9taXNlPGJvb2xlYW4gfCB2b2lkPiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghTmd4Rm9ybVNlcnZpY2UudmFsaWRhdGVGaWVsZHModGhpcy5mb3JtR3JvdXAgYXMgRm9ybUdyb3VwKSlcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGRhdGEgPSBOZ3hGb3JtU2VydmljZS5nZXRGb3JtRGF0YSh0aGlzLmZvcm1Hcm91cCBhcyBGb3JtR3JvdXApO1xuICAgIHRoaXMuc3VibWl0RXZlbnQuZW1pdCh7XG4gICAgICBkYXRhLFxuICAgICAgY29tcG9uZW50OiAnQ3J1ZEZvcm1Db21wb25lbnQnLFxuICAgICAgbmFtZTogdGhpcy5hY3Rpb24gfHwgRXZlbnRDb25zdGFudHMuU1VCTUlUX0VWRU5ULFxuICAgICAgaGFuZGxlcnM6IHRoaXMuaGFuZGxlcnMsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVSZXNldCgpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAvLyBpZihPcGVyYXRpb25LZXlzLkRFTEVURSAhPT0gdGhpcy5vcGVyYXRpb24pXG4gICAgLy8gICBOZ3hGb3JtU2VydmljZS5yZXNldCh0aGlzLmZvcm1Hcm91cCk7XG4gICAgLy8gZWxzZVxuICAgIC8vICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gIH1cblxuICBoYW5kbGVEZWxldGUoKSB7XG4gICAgdGhpcy5zdWJtaXRFdmVudC5lbWl0KHtcbiAgICAgIGRhdGE6IHRoaXMudWlkLFxuICAgICAgY29tcG9uZW50OiAnQ3J1ZEZvcm1Db21wb25lbnQnLFxuICAgICAgbmFtZTogRXZlbnRDb25zdGFudHMuU1VCTUlUX0VWRU5ULFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE9wZXJhdGlvbktleXMgPSBPcGVyYXRpb25LZXlzO1xufVxuIiwiQGlmKG9wZXJhdGlvbiAhPT0gJ3JlYWQnICYmIG9wZXJhdGlvbiAhPT0gJ2RlbGV0ZScpIHtcbiAgPGZvcm0gI3JlYWN0aXZlRm9ybSBbaWRdPVwicmVuZGVyZXJJZFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgKHN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIG5vdmFsaWRhdGUgW3RhcmdldF09XCJ0YXJnZXRcIj5cbiAgICA8bmctY29udGVudCAjZm9ybUNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgaWQ9XCJkY2YtYnV0dG9ucy1jb250YWluZXJcIiBjbGFzcz1cImRjZi1ncmlkIGRjZi1ncmlkLWNvbGxhcHNlIGRjZi1mbGV4IGRjZi1mbGV4LWxlZnRcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb24pIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc2xvdF09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25TbG90XCIgW25hbWVdPVwib3B0aW9ucy5idXR0b25zLnN1Ym1pdC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgYWN0aW9uID8gYWN0aW9uIDogb3B0aW9ucy5idXR0b25zLnN1Ym1pdC50ZXh0fX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXIpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIChjbGljayk9XCJoYW5kbGVSZXNldCgpXCI+XG4gICAgICAgICAgICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5jbGVhcj8uaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHt7IFsnY3JlYXRlJywgJ3VwZGF0ZSddLmluY2x1ZGVzKG9wZXJhdGlvbikgPyAnQmFjaycgOiBvcHRpb25zLmJ1dHRvbnMuY2xlYXI/LnRleHR9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbn0gQGVsc2Uge1xuICA8ZGl2IFtjbGFzc109XCInZGNmLWdyaWQgZGNmLWdyaWQtY29sbGFwc2UgZGNmLWZsZXggZGNmLWZsZXgtbGVmdCAnICsgb3BlcmF0aW9uXCIgaWQ9XCJkY2YtYnV0dG9ucy1jb250YWluZXJcIj5cblxuICAgIEBpZihvcGVyYXRpb24gPT09ICdkZWxldGUnICYmIHVpZCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGVsZXRlKClcIlxuICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICB9XG4gICAgQGlmKG9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uS2V5cy5DUkVBVEUgfHwgb3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLlVQREFURSkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgICAgQGlmKG9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5zdWJtaXQuaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuc3VibWl0Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7e29wdGlvbnMuYnV0dG9ucy5zdWJtaXQudGV4dH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZihvcHRpb25zLmJ1dHRvbnMuY2xlYXIpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImhhbmRsZVJlc2V0KClcIj5cbiAgICAgICAgICBAaWYob3B0aW9ucy5idXR0b25zLmNsZWFyPy5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtzbG90XT1cIm9wdGlvbnMuYnV0dG9ucy5jbGVhcj8uaWNvblNsb3RcIiBbbmFtZV09XCJvcHRpb25zLmJ1dHRvbnMuY2xlYXI/Lmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBbJ2RlbGV0ZScsICdyZWFkJywgJ3VwZGF0ZSddLmluY2x1ZGVzKG9wZXJhdGlvbikgPyAnQmFjaycgOiBvcHRpb25zLmJ1dHRvbnMuY2xlYXI/LnRleHR9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgIH1cbiAgPC9kaXY+XG59XG5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY3J1ZC1mb3JtL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZvcm1SZWFjdGl2ZVN1Ym1pdEV2ZW50IHtcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEZvcm1PcHRpb25zIHtcbiAgYnV0dG9uczoge1xuICAgIHN1Ym1pdDoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICAgIGNsZWFyPzoge1xuICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuIl19