@dignite-ng/expand.cms 0.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 (242) hide show
  1. package/README.md +24 -0
  2. package/config/cms-config.module.d.ts +8 -0
  3. package/config/enums/index.d.ts +1 -0
  4. package/config/enums/route-names.d.ts +8 -0
  5. package/config/index.d.ts +5 -0
  6. package/config/providers/index.d.ts +1 -0
  7. package/config/providers/route.provider.d.ts +8 -0
  8. package/config/public-api.d.ts +3 -0
  9. package/esm2022/config/cms-config.module.mjs +19 -0
  10. package/esm2022/config/dignite-ng-expand.cms-config.mjs +5 -0
  11. package/esm2022/config/enums/index.mjs +2 -0
  12. package/esm2022/config/enums/route-names.mjs +2 -0
  13. package/esm2022/config/providers/index.mjs +2 -0
  14. package/esm2022/config/providers/route.provider.mjs +85 -0
  15. package/esm2022/config/public-api.mjs +4 -0
  16. package/esm2022/dignite-ng-expand.cms.mjs +5 -0
  17. package/esm2022/lib/cms-routing.module.mjs +96 -0
  18. package/esm2022/lib/cms.module.mjs +141 -0
  19. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +227 -0
  20. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +43 -0
  21. package/esm2022/lib/components/admin/entries/create.component.mjs +100 -0
  22. package/esm2022/lib/components/admin/entries/edit.component.mjs +110 -0
  23. package/esm2022/lib/components/admin/entries/entries.component.mjs +187 -0
  24. package/esm2022/lib/components/admin/entries/index.mjs +5 -0
  25. package/esm2022/lib/components/admin/fields/create-field.component.mjs +66 -0
  26. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +116 -0
  27. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +25 -0
  28. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +100 -0
  29. package/esm2022/lib/components/admin/fields/field-group.component.mjs +124 -0
  30. package/esm2022/lib/components/admin/fields/fields.component.mjs +108 -0
  31. package/esm2022/lib/components/admin/fields/index.mjs +7 -0
  32. package/esm2022/lib/components/admin/index.mjs +5 -0
  33. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +27 -0
  34. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +71 -0
  35. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +403 -0
  36. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +3 -0
  37. package/esm2022/lib/components/admin/sections/index.mjs +4 -0
  38. package/esm2022/lib/components/admin/sections/sections.component.mjs +305 -0
  39. package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +23 -0
  40. package/esm2022/lib/components/admin/sites/index.mjs +3 -0
  41. package/esm2022/lib/components/admin/sites/sites.component.mjs +286 -0
  42. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +124 -0
  43. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +18 -0
  44. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +114 -0
  45. package/esm2022/lib/components/dynamic-form/entry/index.mjs +4 -0
  46. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +30 -0
  47. package/esm2022/lib/components/dynamic-form/index.mjs +5 -0
  48. package/esm2022/lib/components/dynamic-form/matrix/index.mjs +4 -0
  49. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +229 -0
  50. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +64 -0
  51. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +104 -0
  52. package/esm2022/lib/components/dynamic-form/table/index.mjs +4 -0
  53. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +172 -0
  54. package/esm2022/lib/components/dynamic-form/table/table-config.mjs +38 -0
  55. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +101 -0
  56. package/esm2022/lib/components/index.mjs +3 -0
  57. package/esm2022/lib/constants/index.mjs +2 -0
  58. package/esm2022/lib/constants/styles.mjs +25 -0
  59. package/esm2022/lib/enums/ecms-component.mjs +13 -0
  60. package/esm2022/lib/enums/index.mjs +2 -0
  61. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +24 -0
  62. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +3 -0
  63. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +2 -0
  64. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +67 -0
  65. package/esm2022/lib/proxy/admin/entries/index.mjs +3 -0
  66. package/esm2022/lib/proxy/admin/entries/models.mjs +2 -0
  67. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +47 -0
  68. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +43 -0
  69. package/esm2022/lib/proxy/admin/fields/index.mjs +4 -0
  70. package/esm2022/lib/proxy/admin/fields/models.mjs +2 -0
  71. package/esm2022/lib/proxy/admin/index.mjs +7 -0
  72. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +43 -0
  73. package/esm2022/lib/proxy/admin/sections/index.mjs +4 -0
  74. package/esm2022/lib/proxy/admin/sections/models.mjs +2 -0
  75. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +53 -0
  76. package/esm2022/lib/proxy/admin/sites/index.mjs +3 -0
  77. package/esm2022/lib/proxy/admin/sites/models.mjs +2 -0
  78. package/esm2022/lib/proxy/admin/sites/site-admin.service.mjs +51 -0
  79. package/esm2022/lib/proxy/dignite/abp/data/index.mjs +2 -0
  80. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +2 -0
  81. package/esm2022/lib/proxy/dignite/abp/index.mjs +3 -0
  82. package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +48 -0
  83. package/esm2022/lib/proxy/dignite/file-explorer/directories/index.mjs +3 -0
  84. package/esm2022/lib/proxy/dignite/file-explorer/directories/models.mjs +2 -0
  85. package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +60 -0
  86. package/esm2022/lib/proxy/dignite/file-explorer/files/index.mjs +3 -0
  87. package/esm2022/lib/proxy/dignite/file-explorer/files/models.mjs +2 -0
  88. package/esm2022/lib/proxy/dignite/file-explorer/index.mjs +4 -0
  89. package/esm2022/lib/proxy/dignite/index.mjs +4 -0
  90. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +8 -0
  91. package/esm2022/lib/proxy/entries/index.mjs +2 -0
  92. package/esm2022/lib/proxy/fields/index.mjs +2 -0
  93. package/esm2022/lib/proxy/fields/models.mjs +2 -0
  94. package/esm2022/lib/proxy/index.mjs +10 -0
  95. package/esm2022/lib/proxy/microsoft/asp-net-core/index.mjs +3 -0
  96. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/index.mjs +2 -0
  97. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/models.mjs +2 -0
  98. package/esm2022/lib/proxy/microsoft/extensions/index.mjs +3 -0
  99. package/esm2022/lib/proxy/microsoft/extensions/primitives/index.mjs +2 -0
  100. package/esm2022/lib/proxy/microsoft/extensions/primitives/models.mjs +2 -0
  101. package/esm2022/lib/proxy/microsoft/index.mjs +5 -0
  102. package/esm2022/lib/proxy/microsoft/net/http/headers/index.mjs +2 -0
  103. package/esm2022/lib/proxy/microsoft/net/http/headers/models.mjs +2 -0
  104. package/esm2022/lib/proxy/microsoft/net/http/index.mjs +3 -0
  105. package/esm2022/lib/proxy/microsoft/net/index.mjs +3 -0
  106. package/esm2022/lib/proxy/sections/index.mjs +3 -0
  107. package/esm2022/lib/proxy/sections/models.mjs +2 -0
  108. package/esm2022/lib/proxy/sections/section-type.enum.mjs +9 -0
  109. package/esm2022/lib/proxy/sites/index.mjs +2 -0
  110. package/esm2022/lib/proxy/sites/models.mjs +2 -0
  111. package/esm2022/lib/proxy/volo/abp/content/index.mjs +2 -0
  112. package/esm2022/lib/proxy/volo/abp/content/models.mjs +2 -0
  113. package/esm2022/lib/proxy/volo/abp/index.mjs +3 -0
  114. package/esm2022/lib/proxy/volo/cms-kit/index.mjs +3 -0
  115. package/esm2022/lib/proxy/volo/cms-kit/users/index.mjs +2 -0
  116. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +2 -0
  117. package/esm2022/lib/proxy/volo/index.mjs +4 -0
  118. package/esm2022/lib/services/appent-content.mjs +15 -0
  119. package/esm2022/lib/services/cms-api.service.mjs +75 -0
  120. package/esm2022/lib/services/cms.service.mjs +23 -0
  121. package/esm2022/lib/services/field-abstracts.service.mjs +44 -0
  122. package/esm2022/lib/services/index.mjs +4 -0
  123. package/esm2022/lib/toolbar/index.mjs +3 -0
  124. package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +160 -0
  125. package/esm2022/lib/toolbar/toolbar-config.mjs +81 -0
  126. package/esm2022/public-api.mjs +12 -0
  127. package/fesm2022/dignite-ng-expand.cms-config.mjs +108 -0
  128. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -0
  129. package/fesm2022/dignite-ng-expand.cms.mjs +4267 -0
  130. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -0
  131. package/index.d.ts +5 -0
  132. package/lib/cms-routing.module.d.ts +7 -0
  133. package/lib/cms.module.d.ts +38 -0
  134. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +79 -0
  135. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +23 -0
  136. package/lib/components/admin/entries/create.component.d.ts +39 -0
  137. package/lib/components/admin/entries/edit.component.d.ts +43 -0
  138. package/lib/components/admin/entries/entries.component.d.ts +61 -0
  139. package/lib/components/admin/entries/index.d.ts +4 -0
  140. package/lib/components/admin/fields/create-field.component.d.ts +25 -0
  141. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +33 -0
  142. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +15 -0
  143. package/lib/components/admin/fields/edit-field.component.d.ts +36 -0
  144. package/lib/components/admin/fields/field-group.component.d.ts +51 -0
  145. package/lib/components/admin/fields/fields.component.d.ts +33 -0
  146. package/lib/components/admin/fields/index.d.ts +6 -0
  147. package/lib/components/admin/index.d.ts +4 -0
  148. package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +17 -0
  149. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +37 -0
  150. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +130 -0
  151. package/lib/components/admin/sections/entry-types/index.d.ts +2 -0
  152. package/lib/components/admin/sections/index.d.ts +3 -0
  153. package/lib/components/admin/sections/sections.component.d.ts +82 -0
  154. package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +12 -0
  155. package/lib/components/admin/sites/index.d.ts +2 -0
  156. package/lib/components/admin/sites/sites.component.d.ts +72 -0
  157. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +39 -0
  158. package/lib/components/dynamic-form/entry/entry-config.d.ts +9 -0
  159. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +36 -0
  160. package/lib/components/dynamic-form/entry/index.d.ts +3 -0
  161. package/lib/components/dynamic-form/form-control-group.d.ts +4 -0
  162. package/lib/components/dynamic-form/index.d.ts +4 -0
  163. package/lib/components/dynamic-form/matrix/index.d.ts +3 -0
  164. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +73 -0
  165. package/lib/components/dynamic-form/matrix/matrix-config.d.ts +30 -0
  166. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +36 -0
  167. package/lib/components/dynamic-form/table/index.d.ts +3 -0
  168. package/lib/components/dynamic-form/table/table-config.component.d.ts +59 -0
  169. package/lib/components/dynamic-form/table/table-config.d.ts +18 -0
  170. package/lib/components/dynamic-form/table/table-control.component.d.ts +32 -0
  171. package/lib/components/index.d.ts +2 -0
  172. package/lib/constants/index.d.ts +1 -0
  173. package/lib/constants/styles.d.ts +2 -0
  174. package/lib/enums/ecms-component.d.ts +11 -0
  175. package/lib/enums/index.d.ts +1 -0
  176. package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +12 -0
  177. package/lib/proxy/admin/dynamic-forms/index.d.ts +2 -0
  178. package/lib/proxy/admin/dynamic-forms/models.d.ts +4 -0
  179. package/lib/proxy/admin/entries/entry-admin.service.d.ts +21 -0
  180. package/lib/proxy/admin/entries/index.d.ts +2 -0
  181. package/lib/proxy/admin/entries/models.d.ts +60 -0
  182. package/lib/proxy/admin/fields/field-admin.service.d.ts +17 -0
  183. package/lib/proxy/admin/fields/field-group-admin.service.d.ts +16 -0
  184. package/lib/proxy/admin/fields/index.d.ts +3 -0
  185. package/lib/proxy/admin/fields/models.d.ts +34 -0
  186. package/lib/proxy/admin/index.d.ts +6 -0
  187. package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +15 -0
  188. package/lib/proxy/admin/sections/index.d.ts +3 -0
  189. package/lib/proxy/admin/sections/models.d.ts +74 -0
  190. package/lib/proxy/admin/sections/section-admin.service.d.ts +18 -0
  191. package/lib/proxy/admin/sites/index.d.ts +2 -0
  192. package/lib/proxy/admin/sites/models.d.ts +30 -0
  193. package/lib/proxy/admin/sites/site-admin.service.d.ts +18 -0
  194. package/lib/proxy/dignite/abp/data/index.d.ts +1 -0
  195. package/lib/proxy/dignite/abp/data/models.d.ts +3 -0
  196. package/lib/proxy/dignite/abp/index.d.ts +2 -0
  197. package/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.d.ts +17 -0
  198. package/lib/proxy/dignite/file-explorer/directories/index.d.ts +2 -0
  199. package/lib/proxy/dignite/file-explorer/directories/models.d.ts +29 -0
  200. package/lib/proxy/dignite/file-explorer/files/file-descriptor.service.d.ts +20 -0
  201. package/lib/proxy/dignite/file-explorer/files/index.d.ts +2 -0
  202. package/lib/proxy/dignite/file-explorer/files/models.d.ts +50 -0
  203. package/lib/proxy/dignite/file-explorer/index.d.ts +3 -0
  204. package/lib/proxy/dignite/index.d.ts +3 -0
  205. package/lib/proxy/entries/entry-status.enum.d.ts +5 -0
  206. package/lib/proxy/entries/index.d.ts +1 -0
  207. package/lib/proxy/fields/index.d.ts +1 -0
  208. package/lib/proxy/fields/models.d.ts +8 -0
  209. package/lib/proxy/index.d.ts +9 -0
  210. package/lib/proxy/microsoft/asp-net-core/index.d.ts +2 -0
  211. package/lib/proxy/microsoft/asp-net-core/mvc/index.d.ts +1 -0
  212. package/lib/proxy/microsoft/asp-net-core/mvc/models.d.ts +10 -0
  213. package/lib/proxy/microsoft/extensions/index.d.ts +2 -0
  214. package/lib/proxy/microsoft/extensions/primitives/index.d.ts +1 -0
  215. package/lib/proxy/microsoft/extensions/primitives/models.d.ts +8 -0
  216. package/lib/proxy/microsoft/index.d.ts +4 -0
  217. package/lib/proxy/microsoft/net/http/headers/index.d.ts +1 -0
  218. package/lib/proxy/microsoft/net/http/headers/models.d.ts +6 -0
  219. package/lib/proxy/microsoft/net/http/index.d.ts +2 -0
  220. package/lib/proxy/microsoft/net/index.d.ts +2 -0
  221. package/lib/proxy/sections/index.d.ts +2 -0
  222. package/lib/proxy/sections/models.d.ts +12 -0
  223. package/lib/proxy/sections/section-type.enum.d.ts +6 -0
  224. package/lib/proxy/sites/index.d.ts +1 -0
  225. package/lib/proxy/sites/models.d.ts +4 -0
  226. package/lib/proxy/volo/abp/content/index.d.ts +1 -0
  227. package/lib/proxy/volo/abp/content/models.d.ts +5 -0
  228. package/lib/proxy/volo/abp/index.d.ts +2 -0
  229. package/lib/proxy/volo/cms-kit/index.d.ts +2 -0
  230. package/lib/proxy/volo/cms-kit/users/index.d.ts +1 -0
  231. package/lib/proxy/volo/cms-kit/users/models.d.ts +7 -0
  232. package/lib/proxy/volo/index.d.ts +3 -0
  233. package/lib/services/appent-content.d.ts +1 -0
  234. package/lib/services/cms-api.service.d.ts +16 -0
  235. package/lib/services/cms.service.d.ts +10 -0
  236. package/lib/services/field-abstracts.service.d.ts +20 -0
  237. package/lib/services/index.d.ts +3 -0
  238. package/lib/toolbar/index.d.ts +2 -0
  239. package/lib/toolbar/toolbar-btn-default-action.d.ts +19 -0
  240. package/lib/toolbar/toolbar-config.d.ts +57 -0
  241. package/package.json +41 -0
  242. package/public-api.d.ts +8 -0
@@ -0,0 +1,116 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/field-abstracts.service";
5
+ import * as i2 from "../../../services/cms-api.service";
6
+ import * as i3 from "../../../proxy/admin/fields";
7
+ import * as i4 from "@abp/ng.core";
8
+ import * as i5 from "@angular/forms";
9
+ import * as i6 from "@angular/common";
10
+ import * as i7 from "@ngx-validate/core";
11
+ import * as i8 from "@dignite-ng/expand.dynamic-form";
12
+ class CreateOrEditFieldComponent {
13
+ _FieldAbstractsService;
14
+ _CmsApiService;
15
+ _FieldAdminService;
16
+ _LocalizationService;
17
+ fb;
18
+ constructor(_FieldAbstractsService, _CmsApiService, _FieldAdminService, _LocalizationService, fb) {
19
+ this._FieldAbstractsService = _FieldAbstractsService;
20
+ this._CmsApiService = _CmsApiService;
21
+ this._FieldAdminService = _FieldAdminService;
22
+ this._LocalizationService = _LocalizationService;
23
+ this.fb = fb;
24
+ if (this._FieldAbstractsService.fieldGroupList.length == 0) {
25
+ this._FieldAbstractsService.getfieldGroupList();
26
+ }
27
+ }
28
+ /**表单实体 */
29
+ _Entity;
30
+ set Entity(v) {
31
+ this._Entity = v;
32
+ if (v)
33
+ this.dataLoaded();
34
+ }
35
+ // Entity: FormGroup | undefined
36
+ get formControlName() {
37
+ return this._Entity.get('formControlName');
38
+ }
39
+ /**选择的表单信息 */
40
+ _selected_copy;
41
+ _selected;
42
+ set selected(v) {
43
+ if (!v)
44
+ return;
45
+ this._selected = v || '';
46
+ this._selected_copy = v;
47
+ }
48
+ async dataLoaded() {
49
+ if (this._FieldAbstractsService.fromControlList.length == 0) {
50
+ await this._FieldAbstractsService.getFromControlList();
51
+ }
52
+ if (this._Entity) {
53
+ if (!this.formControlName.value) {
54
+ this._Entity.patchValue({
55
+ formControlName: this._FieldAbstractsService.fromControlList[0]?.name,
56
+ });
57
+ }
58
+ this._Entity.setControl('name', new FormControl(this.nameInput.value || '', {
59
+ validators: Validators.required,
60
+ asyncValidators: [this.repetitionAsyncValidator()],
61
+ updateOn: 'blur'
62
+ }));
63
+ }
64
+ }
65
+ /**name表单控件 */
66
+ get nameInput() {
67
+ return this._Entity.get('name');
68
+ }
69
+ nameInputBlur(event) {
70
+ let value = event.target.value;
71
+ this.nameInput.patchValue(value);
72
+ }
73
+ /**字段标签input失去标点生成字段名字 */
74
+ disPlayNameInputBlur(event) {
75
+ let value = event.target.value;
76
+ let pinyin = this._CmsApiService.chineseToPinyin(value);
77
+ let nameInput = this.nameInput;
78
+ if (nameInput.value)
79
+ return;
80
+ nameInput.patchValue(pinyin);
81
+ }
82
+ //定义异步验证方法
83
+ repetitionAsyncValidator() {
84
+ return (ctrl) => {
85
+ return new Promise(resolve => {
86
+ if (ctrl.value == this._selected?.name || !ctrl.value) {
87
+ resolve(null);
88
+ return;
89
+ }
90
+ this._FieldAdminService.nameExists(ctrl.value).subscribe(res => {
91
+ if (res) {
92
+ // this.nameInput=ctrl
93
+ resolve({ repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value) });
94
+ }
95
+ else {
96
+ resolve(null);
97
+ }
98
+ });
99
+ });
100
+ };
101
+ }
102
+ formControlNameChange() {
103
+ }
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.FieldAbstractsService }, { token: i2.CmsApiService }, { token: i3.FieldAdminService }, { token: i4.LocalizationService }, { token: i5.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { Entity: "Entity", selected: "selected" }, ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <!-- -->\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange()\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\">\n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i8.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "parentFiledName", "fields"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
106
+ }
107
+ export { CreateOrEditFieldComponent };
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'cms-create-or-edit-field', template: "<form [formGroup]=\"_Entity\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"groupId\">\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <option [value]=\"item.id\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"displayName\">{{'DigniteAbpForms::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" (input)=\"nameInputBlur($event)\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">{{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <!-- -->\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange()\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\">\n <df-dynamic [type]=\"_Entity.value.formControlName\" [entity]=\"_Entity\" [selected]=\"_selected\"></df-dynamic>\n </ng-container>\n</form>" }]
111
+ }], ctorParameters: function () { return [{ type: i1.FieldAbstractsService }, { type: i2.CmsApiService }, { type: i3.FieldAdminService }, { type: i4.LocalizationService }, { type: i5.FormBuilder }]; }, propDecorators: { Entity: [{
112
+ type: Input
113
+ }], selected: [{
114
+ type: Input
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFnQyxXQUFXLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBS3BILE1BS2EsMEJBQTBCO0lBRTVCO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFMVixZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLEVBQWU7UUFKaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUV2QixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtTQUNoRDtJQUVILENBQUM7SUFDRCxVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUF3QjtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztR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RUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUN6Rzt5QkFBTTt3QkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7SUFHRCxxQkFBcUI7SUFDckIsQ0FBQzt3R0E3RlUsMEJBQTBCOzRGQUExQiwwQkFBMEIsb0hDYnZDLGl2RUFzQ087O1NEekJNLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDBCQUEwQjtvT0FvQnpCLE1BQU07c0JBRGhCLEtBQUs7Z0JBYUssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSB9IGZyb20gJy4vY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldGZpZWxkR3JvdXBMaXN0KClcbiAgICB9XG5cbiAgfVxuICAvKirooajljZXlrp7kvZMgKi9cbiAgX0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgRW50aXR5KHY6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgaWYgKHYpIHRoaXMuZGF0YUxvYWRlZCgpO1xuICB9XG4gIC8vIEVudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIGdldCBmb3JtQ29udHJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db250cm9sTmFtZScpXG4gIH1cbiAgLyoq6YCJ5oup55qE6KGo5Y2V5L+h5oGvICovXG4gIF9zZWxlY3RlZF9jb3B5OmFueVxuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIGlmKCF2KSByZXR1cm5cbiAgICB0aGlzLl9zZWxlY3RlZCA9IHYgfHwgJyc7XG4gICAgdGhpcy5fc2VsZWN0ZWRfY29weT12XG4gIH1cblxuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KClcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMuX0VudGl0eSkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sTmFtZS52YWx1ZSkge1xuICAgICAgICB0aGlzLl9FbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lOiB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0WzBdPy5uYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgdGhpcy5fRW50aXR5LnNldENvbnRyb2woJ25hbWUnLCBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWV8fCcnLCB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldICxcbiAgICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgICAgfSkpXG4gICAgICBcbiAgICB9XG4gIH1cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9FbnRpdHkuZ2V0KCduYW1lJylcbiAgfVxuXG4gIG5hbWVJbnB1dEJsdXIoZXZlbnQpe1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIHRoaXMubmFtZUlucHV0LnBhdGNoVmFsdWUodmFsdWUpXG4gIH1cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXRcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm5cbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pXG4gIH1cbiAgLy/lrprkuYnlvILmraXpqozor4Hmlrnms5VcbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGlmIChjdHJsLnZhbHVlID09IHRoaXMuX3NlbGVjdGVkPy5uYW1lfHwhY3RybC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UubmFtZUV4aXN0cyhjdHJsLnZhbHVlKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAvLyB0aGlzLm5hbWVJbnB1dD1jdHJsXG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkTmFtZXswfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG4gIGZvcm1Db250cm9sTmFtZUNoYW5nZSgpe1xuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX0VudGl0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3JvdXBJZFwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7J0Ntczo6T3B0aW9uYWxHcm91cGluZycgfCBhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGlzcGxheU5hbWVcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkRGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoaW5wdXQpPVwibmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tdGV4dFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGROYW1lSGVscFRleHQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmb3JtQ29udHJvbE5hbWVcIj57eydDbXM6OkZpZWxkVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDwhLS0gIC0tPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtQ29udHJvbE5hbWVcIiAoY2hhbmdlKT1cImZvcm1Db250cm9sTmFtZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0ubmFtZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lJiZfRW50aXR5XCI+XG4gICAgICAgIDxkZi1keW5hbWljIFt0eXBlXT1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lXCIgW2VudGl0eV09XCJfRW50aXR5XCIgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiPjwvZGYtZHluYW1pYz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZm9ybT4iXX0=
@@ -0,0 +1,25 @@
1
+ import { FormGroup, Validators } from "@angular/forms";
2
+ export class CreateOrUpdateFieldInputBase {
3
+ /**分组id */
4
+ groupId = ['', []];
5
+ /**字段名称 Display name of this field */
6
+ displayName = ['', [Validators.required]];
7
+ /**字段唯一名称 Unique Name*/
8
+ name = ['', [Validators.required]];
9
+ /**描述 说明 */
10
+ description = ['', []];
11
+ /**FieldType字段类型 表单控件名称 */
12
+ formControlName = [undefined, [Validators.required]];
13
+ //动态表单配置
14
+ formConfiguration = new FormGroup({});
15
+ constructor(data) {
16
+ if (data) {
17
+ for (const key in data) {
18
+ if (data.hasOwnProperty(key)) {
19
+ this[key] = data[key];
20
+ }
21
+ }
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsVUFBVTtJQUNWLE9BQU8sR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4QixxQ0FBcUM7SUFDckMsV0FBVyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFL0MsdUJBQXVCO0lBQ3ZCLElBQUksR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRXhDLFdBQVc7SUFDWCxXQUFXLEdBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFNUIsMEJBQTBCO0lBQzFCLGVBQWUsR0FBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRTFELFFBQVE7SUFDUixpQkFBaUIsR0FBMEIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7SUFHNUQsWUFBWSxJQUFtQztRQUMzQyxJQUFJLElBQUksRUFBRTtZQUNOLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0o7U0FDSjtJQUVMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSB7XHJcbiAgICAvKirliIbnu4RpZCAqL1xyXG4gICAgZ3JvdXBJZDogYW55ID0gWycnLCBbXV07XHJcblxyXG4gICAgLyoq5a2X5q615ZCN56ewIERpc3BsYXkgbmFtZSBvZiB0aGlzIGZpZWxkICovXHJcbiAgICBkaXNwbGF5TmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG5cclxuICAgIC8qKuWtl+auteWUr+S4gOWQjeensCBVbmlxdWUgTmFtZSovXHJcbiAgICBuYW1lOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV07XHJcblxyXG4gICAgLyoq5o+P6L+wIOivtOaYjiAqL1xyXG4gICAgZGVzY3JpcHRpb246IGFueSA9IFsnJywgW11dO1xyXG5cclxuICAgIC8qKkZpZWxkVHlwZeWtl+auteexu+WeiyDooajljZXmjqfku7blkI3np7AgKi9cclxuICAgIGZvcm1Db250cm9sTmFtZTogYW55ID0gW3VuZGVmaW5lZCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuXHJcbiAgICAvL+WKqOaAgeihqOWNlemFjee9rlxyXG4gICAgZm9ybUNvbmZpZ3VyYXRpb246IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IG5ldyBGb3JtR3JvdXAoe30pXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,100 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';
3
+ import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
4
+ import { ECmsComponent } from '../../../enums';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "../../../services/field-abstracts.service";
8
+ import * as i3 from "../../../proxy/admin/fields";
9
+ import * as i4 from "@angular/router";
10
+ import * as i5 from "@abp/ng.theme.shared";
11
+ import * as i6 from "@angular/common";
12
+ import * as i7 from "@abp/ng.core";
13
+ import * as i8 from "@ngx-validate/core";
14
+ import * as i9 from "@abp/ng.components/page";
15
+ import * as i10 from "./create-or-edit-field.component";
16
+ class EditFieldComponent {
17
+ fb;
18
+ _FieldAbstractsService;
19
+ _FieldAdminService;
20
+ route;
21
+ toaster;
22
+ _location;
23
+ _LocalizationService;
24
+ constructor(fb, _FieldAbstractsService, _FieldAdminService, route, toaster, _location, _LocalizationService) {
25
+ this.fb = fb;
26
+ this._FieldAbstractsService = _FieldAbstractsService;
27
+ this._FieldAdminService = _FieldAdminService;
28
+ this.route = route;
29
+ this.toaster = toaster;
30
+ this._location = _location;
31
+ this._LocalizationService = _LocalizationService;
32
+ }
33
+ /**表单实体 */
34
+ newEntity;
35
+ /**字段id */
36
+ fieldId = '';
37
+ /**字段详情 */
38
+ fieldDetails;
39
+ /**获取提交按钮替身,用于真实触发表单提交 */
40
+ submitclick;
41
+ async ngOnInit() {
42
+ const _fieldId = this.route.snapshot.params.id;
43
+ if (_fieldId) {
44
+ this.fieldId = _fieldId;
45
+ this.newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());
46
+ await Promise.all([
47
+ this._FieldAbstractsService.getFromControlList(),
48
+ this.getFieldEdit(),
49
+ ]);
50
+ this.newEntity.patchValue({
51
+ ...this.fieldDetails,
52
+ });
53
+ }
54
+ }
55
+ /**获取字段详情 */
56
+ getFieldEdit() {
57
+ return new Promise((resolve, reject) => {
58
+ this._FieldAdminService.get(this.fieldId).subscribe(res => {
59
+ res.groupId = res.groupId ? res.groupId : '';
60
+ this.fieldDetails = res;
61
+ resolve(res);
62
+ });
63
+ });
64
+ }
65
+ /**触发提交按钮 */
66
+ submitclickBtn() {
67
+ this.submitclick.nativeElement.click();
68
+ }
69
+ /**保存表单 */
70
+ save() {
71
+ let input = this.newEntity.value;
72
+ if (!this.newEntity.valid)
73
+ return;
74
+ this._FieldAdminService.update(this.fieldId, input).subscribe((res => {
75
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
76
+ this._location.back();
77
+ }));
78
+ }
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.FieldAbstractsService }, { token: i3.FieldAdminService }, { token: i4.ActivatedRoute }, { token: i5.ToasterService }, { token: i6.Location }, { token: i7.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditFieldComponent, selector: "cms-edit-field", providers: [
81
+ {
82
+ provide: EXTENSIONS_IDENTIFIER,
83
+ useValue: ECmsComponent.FieldsEdit,
84
+ },
85
+ ], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"p-3 bg-white rounded-1\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\n </div>\n </abp-page>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i9.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: ["Entity", "selected"] }, { kind: "pipe", type: i7.LocalizationPipe, name: "abpLocalization" }] });
86
+ }
87
+ export { EditFieldComponent };
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditFieldComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'cms-edit-field', providers: [
91
+ {
92
+ provide: EXTENSIONS_IDENTIFIER,
93
+ useValue: ECmsComponent.FieldsEdit,
94
+ },
95
+ ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::EditField' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"create-field-page\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"p-3 bg-white rounded-1\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\n </div>\n </abp-page>\n</form>" }]
96
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FieldAbstractsService }, { type: i3.FieldAdminService }, { type: i4.ActivatedRoute }, { type: i5.ToasterService }, { type: i6.Location }, { type: i7.LocalizationService }]; }, propDecorators: { submitclick: [{
97
+ type: ViewChild,
98
+ args: ['submitclick', { static: true }]
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBTW5GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBRS9DLE1BV2Esa0JBQWtCO0lBR25CO0lBQ0Q7SUFDQTtJQUNDO0lBQ0E7SUFDRDtJQUNBO0lBUFQsWUFDVSxFQUFlLEVBQ2hCLHNCQUE2QyxFQUM3QyxrQkFBcUMsRUFDcEMsS0FBcUIsRUFDckIsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbkIsb0JBQXlDO1FBTnhDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtJQUM5QyxDQUFDO0lBRUwsVUFBVTtJQUNWLFNBQVMsQ0FBdUI7SUFFaEMsVUFBVTtJQUNWLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFFckIsVUFBVTtJQUNWLFlBQVksQ0FBTTtJQUVsQix5QkFBeUI7SUFDbUIsV0FBVyxDQUFhO0lBR3BFLEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNoQixJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hCLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDckIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsWUFBWTtJQUNaLFlBQVk7UUFDVixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEQsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7Z0JBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFBO2dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7SUFDWixjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFVBQVU7SUFDVixJQUFJO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU07UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7d0dBaEVVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHlDQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTthQUNuQztTQUNGLG9KQ3JCSCx5aEJBU087O1NEY00sa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO3lCQUNuQztxQkFDRjt5UkF3QjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLWZpZWxkLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVkaXQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRmllbGRzRWRpdCxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7IH1cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcblxuICAvKirlrZfmrrVpZCAqL1xuICBmaWVsZElkOiBzdHJpbmcgPSAnJztcblxuICAvKirlrZfmrrXor6bmg4UgKi9cbiAgZmllbGREZXRhaWxzOiBhbnk7XG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBfZmllbGRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmlkO1xuICAgIGlmIChfZmllbGRJZCkge1xuICAgICAgdGhpcy5maWVsZElkID0gX2ZpZWxkSWQ7XG4gICAgICB0aGlzLm5ld0VudGl0eSA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UoKSk7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRGcm9tQ29udHJvbExpc3QoKSxcbiAgICAgICAgdGhpcy5nZXRGaWVsZEVkaXQoKSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgIC4uLnRoaXMuZmllbGREZXRhaWxzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5a2X5q616K+m5oOFICovXG4gIGdldEZpZWxkRWRpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZmllbGRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHJlcy5ncm91cElkID0gcmVzLmdyb3VwSWQgPyByZXMuZ3JvdXBJZCA6ICcnXG4gICAgICAgIHRoaXMuZmllbGREZXRhaWxzID0gcmVzXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq6Kem5Y+R5o+Q5Lqk5oyJ6ZKuICovXG4gIHN1Ym1pdGNsaWNrQnRuKCkge1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpXG4gIH1cblxuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZVxuICAgIGlmICghdGhpcy5uZXdFbnRpdHkudmFsaWQpIHJldHVyblxuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLmZpZWxkSWQsIGlucHV0KS5zdWJzY3JpYmUoKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKClcbiAgICB9KSlcbiAgfVxuXG4gIFxuXG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1maWVsZC1wYWdlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMyBiZy13aGl0ZSByb3VuZGVkLTFcIj5cbiAgICAgICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkIFtFbnRpdHldPVwibmV3RW50aXR5XCIgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsc1wiPjwvY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYWJwLXBhZ2U+XG48L2Zvcm0+Il19
@@ -0,0 +1,124 @@
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { finalize } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "../../../proxy/admin/fields";
7
+ import * as i3 from "@abp/ng.theme.shared";
8
+ import * as i4 from "../../../services/field-abstracts.service";
9
+ import * as i5 from "@abp/ng.core";
10
+ import * as i6 from "@angular/common";
11
+ import * as i7 from "@ngx-validate/core";
12
+ class FieldGroupComponent {
13
+ fb;
14
+ _FieldGroupAdminService;
15
+ toaster;
16
+ confirmation;
17
+ _FieldAbstractsService;
18
+ _LocalizationService;
19
+ constructor(fb, _FieldGroupAdminService, toaster, confirmation, _FieldAbstractsService, _LocalizationService) {
20
+ this.fb = fb;
21
+ this._FieldGroupAdminService = _FieldGroupAdminService;
22
+ this.toaster = toaster;
23
+ this.confirmation = confirmation;
24
+ this._FieldAbstractsService = _FieldAbstractsService;
25
+ this._LocalizationService = _LocalizationService;
26
+ }
27
+ /**创建分组表单 */
28
+ createForm;
29
+ /** 编辑分组表单*/
30
+ editGroupForm;
31
+ /**表单已存在的值 */
32
+ selected = {};
33
+ /**选择的字段分组id */
34
+ fieldGroupId = '';
35
+ /**创建分组模态框状态 */
36
+ createGroupOpen = false;
37
+ /**用于确定模态的繁忙状态是否为真 */
38
+ modalBusy = false;
39
+ /**编辑分组模态框状态 */
40
+ editGroupOpen = false;
41
+ /**点击分组回调 */
42
+ OnGroupClickBack = new EventEmitter();
43
+ ngOnInit() {
44
+ this._FieldAbstractsService.getfieldGroupList();
45
+ }
46
+ /**创建字段分组 */
47
+ createGroupBtn() {
48
+ this.createGroupOpen = true;
49
+ this.createForm = this.fb.group({
50
+ name: ['', [Validators.required]],
51
+ });
52
+ }
53
+ /**创建分组模态框状态改变 */
54
+ createGroupVisibleChange(event) {
55
+ if (!event) {
56
+ return;
57
+ }
58
+ }
59
+ /**编辑字段分组 */
60
+ editGroupBtn(itemName) {
61
+ this.editGroupOpen = true;
62
+ this.editGroupForm = this.fb.group({
63
+ name: [itemName, [Validators.required]],
64
+ });
65
+ }
66
+ /**编辑分组模态框状态改变 */
67
+ editGroupVisibleChange(event) {
68
+ if (!event) {
69
+ return;
70
+ }
71
+ }
72
+ /**创建字段分组保存 */
73
+ createSave() {
74
+ let input = this.createForm.value;
75
+ this.modalBusy = true;
76
+ this._FieldGroupAdminService.create(input).pipe(finalize(() => {
77
+ this.modalBusy = false;
78
+ this.createGroupOpen = false;
79
+ })).subscribe(res => {
80
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
81
+ this._FieldAbstractsService.getfieldGroupList();
82
+ });
83
+ }
84
+ /**编辑字段分组保存 */
85
+ editSave() {
86
+ let input = this.editGroupForm.value;
87
+ this.modalBusy = true;
88
+ this._FieldGroupAdminService.update(this.fieldGroupId, input).pipe(finalize(() => {
89
+ this.modalBusy = false;
90
+ this.editGroupOpen = false;
91
+ })).subscribe(res => {
92
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
93
+ this._FieldAbstractsService.getfieldGroupList();
94
+ });
95
+ }
96
+ /**删除字段分组1 */
97
+ deleteGroupbtn(fieldGroupitem) {
98
+ this.confirmation.warn(fieldGroupitem.name, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`)).subscribe((status) => {
99
+ if (status == 'confirm') {
100
+ this._FieldGroupAdminService.delete(this.fieldGroupId).pipe(finalize(() => {
101
+ })).subscribe(res => {
102
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
103
+ this.fieldGroupId = '';
104
+ this._FieldAbstractsService.getfieldGroupList();
105
+ });
106
+ }
107
+ });
108
+ }
109
+ /**字段分组改变 */
110
+ fieldGroupChange(event) {
111
+ this.fieldGroupId = event;
112
+ this.OnGroupClickBack.emit(event);
113
+ }
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldGroupComponent, deps: [{ token: i1.FormBuilder }, { token: i2.FieldGroupAdminService }, { token: i3.ToasterService }, { token: i3.ConfirmationService }, { token: i4.FieldAbstractsService }, { token: i5.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FieldGroupComponent, selector: "cms-field-group", outputs: { OnGroupClickBack: "OnGroupClickBack" }, ngImport: i0, template: "<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (ngSubmit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (ngSubmit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i5.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
116
+ }
117
+ export { FieldGroupComponent };
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldGroupComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'cms-field-group', template: "<div class=\"card-header px-2 py-sm-2 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'Cms::FieldGroup' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-link btn-sm ms-2\"><i class=\"fas fa-plus-circle\" aria-hidden=\"true\"\n (click)=\"createGroupBtn()\"></i></button>\n</div>\n<div class=\"card-body p-0\">\n <div class=\"container-height overflow-auto\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action active\" [class.active]=\"fieldGroupId===''\"\n (click)=\"fieldGroupChange('')\">{{'Cms::AllFields' | abpLocalization}}</li>\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fieldGroupList\">\n <li class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [class.active]=\"fieldGroupId===item.id\" (click)=\"fieldGroupChange(item.id)\">\n <div>{{item.name}}</div>\n <div *ngIf=\"fieldGroupId===item.id\">\n <i class=\"fas fa-trash px-1\" role=\"button\" (click.stop)=\"deleteGroupbtn(item)\"></i>\n <i class=\"fas fa-edit px-1\" role=\"button\" (click.stop)=\"editGroupBtn(item.name)\"></i>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"createGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'Cms::New' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"createForm; else loaderRef\" [formGroup]=\"createForm\" (ngSubmit)=\"createSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"createForm?.invalid\" (click)=\"createSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n<abp-modal [(visible)]=\"editGroupOpen\" [busy]=\"modalBusy\" (visibleChange)=\"editGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <form *ngIf=\"editGroupForm; else loaderRef\" [formGroup]=\"editGroupForm\" (ngSubmit)=\"editSave()\">\n <div class=\"mb-3\">\n <label for=\"exampleFormControlInput1\" class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" id=\"exampleFormControlInput1\" formControlName=\"name\"\n placeholder=\"\">\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"editGroupForm?.invalid\" (click)=\"editSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>" }]
121
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FieldGroupAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FieldAbstractsService }, { type: i5.LocalizationService }]; }, propDecorators: { OnGroupClickBack: [{
122
+ type: Output
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLFFBQVEsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBSTFELE1BS2EsbUJBQW1CO0lBRXBCO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUFDQTtJQU5ULFlBQ1UsRUFBZSxFQUNmLHVCQUErQyxFQUMvQyxPQUF1QixFQUN2QixZQUFpQyxFQUNsQyxzQkFBNkMsRUFDN0Msb0JBQXlDO1FBTHhDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQy9DLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7SUFDOUMsQ0FBQztJQUdMLFlBQVk7SUFDWixVQUFVLENBQXdCO0lBRWxDLFlBQVk7SUFDWixhQUFhLENBQXdCO0lBRXJDLGFBQWE7SUFDYixRQUFRLEdBQUcsRUFBUyxDQUFDO0lBRXJCLGVBQWU7SUFDZixZQUFZLEdBQXVCLEVBQUUsQ0FBQTtJQUVyQyxlQUFlO0lBQ2YsZUFB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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsY0FBYyxDQUFDLElBQUksRUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUNyRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUMxRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7b0JBQ3RGLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO29CQUN0QixJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtnQkFDakQsQ0FBQyxDQUFDLENBQUE7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFDWixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQzt3R0FwSFUsbUJBQW1COzRGQUFuQixtQkFBbUIsMEdDYmhDLHcwSEFvRVk7O1NEdkRDLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjs0UUFxQ2pCLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkR3JvdXBBZG1pblNlcnZpY2UsIEZpZWxkR3JvdXBEdG8gfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZC1ncm91cC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkgeyB9XG5cblxuICAvKirliJvlu7rliIbnu4TooajljZUgKi9cbiAgY3JlYXRlRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiDnvJbovpHliIbnu4TooajljZUqL1xuICBlZGl0R3JvdXBGb3JtOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoq6KGo5Y2V5bey5a2Y5Zyo55qE5YC8ICovXG4gIHNlbGVjdGVkID0ge30gYXMgYW55O1xuXG4gIC8qKumAieaLqeeahOWtl+auteWIhue7hGlkICovXG4gIGZpZWxkR3JvdXBJZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJydcblxuICAvKirliJvlu7rliIbnu4TmqKHmgIHmoYbnirbmgIEgKi9cbiAgY3JlYXRlR3JvdXBPcGVuID0gZmFsc2VcblxuICAvKirnlKjkuo7noa7lrprmqKHmgIHnmoTnuYHlv5nnirbmgIHmmK/lkKbkuLrnnJ8gKi9cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2VcblxuICAvKirnvJbovpHliIbnu4TmqKHmgIHmoYbnirbmgIEgKi9cbiAgZWRpdEdyb3VwT3BlbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq54K55Ye75YiG57uE5Zue6LCDICovXG4gIEBPdXRwdXQoKSBPbkdyb3VwQ2xpY2tCYWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gIH1cblxuICAvKirliJvlu7rlrZfmrrXliIbnu4QgKi9cbiAgY3JlYXRlR3JvdXBCdG4oKSB7XG4gICAgdGhpcy5jcmVhdGVHcm91cE9wZW4gPSB0cnVlXG4gICAgdGhpcy5jcmVhdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIm+W7uuWIhue7hOaooeaAgeahhueKtuaAgeaUueWPmCAqL1xuICBjcmVhdGVHcm91cFZpc2libGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvKirnvJbovpHlrZfmrrXliIbnu4QgKi9cbiAgZWRpdEdyb3VwQnRuKGl0ZW1OYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVkaXRHcm91cE9wZW4gPSB0cnVlXG4gICAgdGhpcy5lZGl0R3JvdXBGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbaXRlbU5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSlcbiAgfVxuXG4gIC8qKue8lui+keWIhue7hOaooeaAgeahhueKtuaAgeaUueWPmCAqL1xuICBlZGl0R3JvdXBWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoq5Yib5bu65a2X5q615YiG57uE5L+d5a2YICovXG4gIGNyZWF0ZVNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5jcmVhdGVGb3JtLnZhbHVlXG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlXG4gICAgdGhpcy5fRmllbGRHcm91cEFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZVxuICAgICAgdGhpcy5jcmVhdGVHcm91cE9wZW4gPSBmYWxzZVxuICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKue8lui+keWtl+auteWIhue7hOS/neWtmCAqL1xuICBlZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmVkaXRHcm91cEZvcm0udmFsdWVcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWVcbiAgICB0aGlzLl9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLmZpZWxkR3JvdXBJZCwgaW5wdXQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZVxuICAgICAgdGhpcy5lZGl0R3JvdXBPcGVuID0gZmFsc2VcbiAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICAgIH0pXG4gIH1cblxuICAvKirliKDpmaTlrZfmrrXliIbnu4QxICovXG4gIGRlbGV0ZUdyb3VwYnRuKGZpZWxkR3JvdXBpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxuICAgICAgZmllbGRHcm91cGl0ZW0ubmFtZSxcbiAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApLFxuICAgICkuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgIHRoaXMuX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2UuZGVsZXRlKHRoaXMuZmllbGRHcm91cElkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICAgICAgdGhpcy5maWVsZEdyb3VwSWQgPSAnJ1xuICAgICAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKirlrZfmrrXliIbnu4TmlLnlj5ggKi9cbiAgZmllbGRHcm91cENoYW5nZShldmVudCkge1xuICAgIHRoaXMuZmllbGRHcm91cElkID0gZXZlbnRcbiAgICB0aGlzLk9uR3JvdXBDbGlja0JhY2suZW1pdChldmVudClcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcHgtMiBweS1zbS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8aDYgY2xhc3M9XCJoNiBtYi0wXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9oNj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc20gbXMtMlwiPjxpIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVHcm91cEJ0bigpXCI+PC9pPjwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItaGVpZ2h0IG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBhY3RpdmVcIiBbY2xhc3MuYWN0aXZlXT1cImZpZWxkR3JvdXBJZD09PScnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmllbGRHcm91cENoYW5nZSgnJylcIj57eydDbXM6OkFsbEZpZWxkcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZmllbGRHcm91cExpc3RcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmaWVsZEdyb3VwSWQ9PT1pdGVtLmlkXCIgKGNsaWNrKT1cImZpZWxkR3JvdXBDaGFuZ2UoaXRlbS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e2l0ZW0ubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWVsZEdyb3VwSWQ9PT1pdGVtLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBweC0xXCIgcm9sZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cImRlbGV0ZUdyb3VwYnRuKGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZWRpdCBweC0xXCIgcm9sZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cImVkaXRHcm91cEJ0bihpdGVtLm5hbWUpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cImNyZWF0ZUdyb3VwT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cImNyZWF0ZUdyb3VwVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57eydDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb259fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8Zm9ybSAqbmdJZj1cImNyZWF0ZUZvcm07IGVsc2UgbG9hZGVyUmVmXCIgW2Zvcm1Hcm91cF09XCJjcmVhdGVGb3JtXCIgKG5nU3VibWl0KT1cImNyZWF0ZVNhdmUoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUZvcm1Db250cm9sSW5wdXQxXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZXhhbXBsZUZvcm1Db250cm9sSW5wdXQxXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCJjcmVhdGVGb3JtPy5pbnZhbGlkXCIgKGNsaWNrKT1cImNyZWF0ZVNhdmUoKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cImVkaXRHcm91cE9wZW5cIiBbYnVzeV09XCJtb2RhbEJ1c3lcIiAodmlzaWJsZUNoYW5nZSk9XCJlZGl0R3JvdXBWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxmb3JtICpuZ0lmPVwiZWRpdEdyb3VwRm9ybTsgZWxzZSBsb2FkZXJSZWZcIiBbZm9ybUdyb3VwXT1cImVkaXRHcm91cEZvcm1cIiAobmdTdWJtaXQpPVwiZWRpdFNhdmUoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUZvcm1Db250cm9sSW5wdXQxXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZXhhbXBsZUZvcm1Db250cm9sSW5wdXQxXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCJlZGl0R3JvdXBGb3JtPy5pbnZhbGlkXCIgKGNsaWNrKT1cImVkaXRTYXZlKClcIj57eydBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+Il19