@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,110 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';
3
+ import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
4
+ import { ECmsComponent } from '../../../enums/ecms-component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@abp/ng.theme.shared";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/router";
10
+ import * as i5 from "@abp/ng.core";
11
+ import * as i6 from "../../../proxy/admin/sections";
12
+ import * as i7 from "../../../proxy/admin/entries";
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-entries.component";
16
+ class EditComponent {
17
+ fb;
18
+ toaster;
19
+ _location;
20
+ route;
21
+ configState;
22
+ _SectionAdminService;
23
+ _EntryAdminService;
24
+ datePipe;
25
+ router;
26
+ _LocalizationService;
27
+ constructor(fb, toaster, _location, route, configState, _SectionAdminService, _EntryAdminService, datePipe, router, _LocalizationService) {
28
+ this.fb = fb;
29
+ this.toaster = toaster;
30
+ this._location = _location;
31
+ this.route = route;
32
+ this.configState = configState;
33
+ this._SectionAdminService = _SectionAdminService;
34
+ this._EntryAdminService = _EntryAdminService;
35
+ this.datePipe = datePipe;
36
+ this.router = router;
37
+ this._LocalizationService = _LocalizationService;
38
+ }
39
+ /**表单实体 */
40
+ newEntity;
41
+ /**是否是草稿 */
42
+ draftType = false;
43
+ /**页面传值用于传递到子组件 */
44
+ queryParams = '' || {};
45
+ /**指定id的条目信息 */
46
+ entrySelect = '';
47
+ /**获取提交按钮替身,用于真实触发表单提交 */
48
+ submitclick;
49
+ async ngOnInit() {
50
+ this.queryParams.RevisionEntryId = this.route.snapshot.params.entrieId;
51
+ this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());
52
+ await this.getEntrySelect();
53
+ }
54
+ /**获取条目信息 */
55
+ getEntrySelect() {
56
+ return new Promise((resolve, rejects) => {
57
+ this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {
58
+ this.entrySelect = res;
59
+ resolve(res);
60
+ });
61
+ });
62
+ }
63
+ /**保存 */
64
+ save(draft) {
65
+ this.newEntity.patchValue({
66
+ draft: draft
67
+ });
68
+ let input = this.newEntity.value;
69
+ input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString();
70
+ input.concurrencyStamp = this.entrySelect.concurrencyStamp;
71
+ if (!this.newEntity.valid)
72
+ return;
73
+ this._EntryAdminService.update(this.entrySelect.id, input).subscribe(res => {
74
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
75
+ this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
76
+ this.router.navigate([`/cms/admin/entries`]);
77
+ });
78
+ });
79
+ }
80
+ /**触发点击按钮替身 */
81
+ clickSubmit(type) {
82
+ this.draftType = type;
83
+ this.submitclick.nativeElement.click();
84
+ }
85
+ /**返回上一页 */
86
+ backTo() {
87
+ this._location.back();
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ToasterService }, { token: i3.Location }, { token: i4.ActivatedRoute }, { token: i5.ConfigStateService }, { token: i6.SectionAdminService }, { token: i7.EntryAdminService }, { token: i3.DatePipe }, { token: i4.Router }, { token: i5.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditComponent, selector: "cms-edit", providers: [
91
+ {
92
+ provide: EXTENSIONS_IDENTIFIER,
93
+ useValue: ECmsComponent.Entries_Edit,
94
+ },
95
+ ], 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(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\" [parentEntrySelect]=\"entrySelect\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>\n\n", styles: ["::ng-deep .edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .edit-entry-page .form-control,::ng-deep .edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .edit-entry-page .cursor-move{cursor:move}::ng-deep .edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i5.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.CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["ParentQueryParams", "entity", "parentEntrySelect"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
96
+ }
97
+ export { EditComponent };
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'cms-edit', providers: [
101
+ {
102
+ provide: EXTENSIONS_IDENTIFIER,
103
+ useValue: ECmsComponent.Entries_Edit,
104
+ },
105
+ ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'AbpUi::Edit'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\" [parentEntrySelect]=\"entrySelect\"></cms-create-or-edit-entries>\n </ng-container>\n </abp-page>\n</form>\n\n", styles: ["::ng-deep .edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .edit-entry-page .form-control,::ng-deep .edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .edit-entry-page .cursor-move{cursor:move}::ng-deep .edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"] }]
106
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ToasterService }, { type: i3.Location }, { type: i4.ActivatedRoute }, { type: i5.ConfigStateService }, { type: i6.SectionAdminService }, { type: i7.EntryAdminService }, { type: i3.DatePipe }, { type: i4.Router }, { type: i5.LocalizationService }]; }, propDecorators: { submitclick: [{
107
+ type: ViewChild,
108
+ args: ['submitclick', { static: true }]
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFxQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7QUFFOUQsTUFXYSxhQUFhO0lBR2Q7SUFDQTtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFWVixZQUNVLEVBQWUsRUFDZixPQUF1QixFQUN4QixTQUFtQixFQUNsQixLQUFxQixFQUNyQixXQUErQixFQUMvQixvQkFBeUMsRUFDekMsa0JBQXFDLEVBQ3JDLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxvQkFBeUM7UUFUekMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7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NEZBQWIsYUFBYSxtQ0FQYjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWTthQUNyQztTQUNGLG9KQ3RCSCxzZ0JBU0E7O1NEZWEsYUFBYTs0RkFBYixhQUFhO2tCQVh6QixTQUFTOytCQUNFLFVBQVUsYUFHVDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVk7eUJBQ3JDO3FCQUNGO29XQThCMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERhdGVQaXBlLCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWN0aW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSB9IGZyb20gJy4vY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvZWNtcy1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzX0VkaXQsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlOiBTZWN0aW9uQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0VudHJ5QWRtaW5TZXJ2aWNlOiBFbnRyeUFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkgeyB9XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG5cbiAgLyoq5piv5ZCm5piv6I2J56i/ICovXG4gIGRyYWZ0VHlwZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq6aG16Z2i5Lyg5YC855So5LqO5Lyg6YCS5Yiw5a2Q57uE5Lu2ICovXG4gIHF1ZXJ5UGFyYW1zOiBhbnkgPSAnJyB8fCB7fVxuXG4gIC8qKuaMh+Wummlk55qE5p2h55uu5L+h5oGvICovXG4gIGVudHJ5U2VsZWN0OiBhbnkgPSAnJ1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZW50cmllSWRcbiAgICB0aGlzLm5ld0VudGl0eSA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yVXBkYXRlRW50cnlJbnB1dEJhc2UoKSlcbiAgICBhd2FpdCB0aGlzLmdldEVudHJ5U2VsZWN0KClcbiAgfVxuXG4gIC8qKuiOt+WPluadoeebruS/oeaBryAqL1xuICBnZXRFbnRyeVNlbGVjdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmdldCh0aGlzLnF1ZXJ5UGFyYW1zLlJldmlzaW9uRW50cnlJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZW50cnlTZWxlY3QgPSByZXNcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG4gIC8qKuS/neWtmCAqL1xuICBzYXZlKGRyYWZ0KSB7XG4gICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICBkcmFmdDogZHJhZnRcbiAgICB9KVxuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlXG4gICAgaW5wdXQucHVibGlzaFRpbWUgPSBuZXcgRGF0ZShuZXcgRGF0ZShpbnB1dC5wdWJsaXNoVGltZSkuZ2V0VGltZSgpICsgKDggKiA2MCAqIDYwICogMTAwMCkpLnRvSVNPU3RyaW5nKClcbiAgICBpbnB1dC5jb25jdXJyZW5jeVN0YW1wID0gdGhpcy5lbnRyeVNlbGVjdC5jb25jdXJyZW5jeVN0YW1wXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuXG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuZW50cnlTZWxlY3QuaWQsIGlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vZW50cmllc2BdKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKirop6blj5Hngrnlh7vmjInpkq7mm7/ouqsgKi9cbiAgY2xpY2tTdWJtaXQodHlwZSkge1xuICAgIHRoaXMuZHJhZnRUeXBlID0gdHlwZVxuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpXG4gIH1cbiAgLyoq6L+U5Zue5LiK5LiA6aG1ICovXG4gIGJhY2tUbygpIHtcbiAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKClcbiAgfVxuXG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKG5nU3VibWl0KT1cInNhdmUoZHJhZnRUeXBlKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0FicFVpOjpFZGl0J3wgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cnlTZWxlY3RcIj5cbiAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1lbnRyaWVzIFtlbnRpdHldPVwibmV3RW50aXR5XCIgW1BhcmVudFF1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCIgW3BhcmVudEVudHJ5U2VsZWN0XT1cImVudHJ5U2VsZWN0XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FicC1wYWdlPlxuPC9mb3JtPlxuXG4iXX0=
@@ -0,0 +1,187 @@
1
+ import { LIST_QUERY_DEBOUNCE_TIME, ListService } from '@abp/ng.core';
2
+ import { Component } from '@angular/core';
3
+ import { ColumnMode } from "@swimlane/ngx-datatable";
4
+ import { finalize } from 'rxjs/operators';
5
+ import { entryStatusOptions } from '../../../proxy/entries';
6
+ import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
7
+ import { ECmsComponent } from '../../../enums/ecms-component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@abp/ng.core";
10
+ import * as i2 from "../../../proxy/admin/entries";
11
+ import * as i3 from "../../../proxy/admin/sites";
12
+ import * as i4 from "../../../proxy/admin/sections";
13
+ import * as i5 from "@abp/ng.theme.shared";
14
+ import * as i6 from "@angular/router";
15
+ import * as i7 from "@angular/common";
16
+ import * as i8 from "@angular/forms";
17
+ import * as i9 from "@swimlane/ngx-datatable";
18
+ import * as i10 from "@ng-bootstrap/ng-bootstrap";
19
+ import * as i11 from "@abp/ng.components/page";
20
+ class EntriesComponent {
21
+ list;
22
+ _EntryAdminService;
23
+ _SiteAdminService;
24
+ _SectionAdminService;
25
+ toaster;
26
+ confirmation;
27
+ configState;
28
+ router;
29
+ _LocalizationService;
30
+ constructor(list, _EntryAdminService, _SiteAdminService, _SectionAdminService, toaster, confirmation, configState, router, _LocalizationService) {
31
+ this.list = list;
32
+ this._EntryAdminService = _EntryAdminService;
33
+ this._SiteAdminService = _SiteAdminService;
34
+ this._SectionAdminService = _SectionAdminService;
35
+ this.toaster = toaster;
36
+ this.confirmation = confirmation;
37
+ this.configState = configState;
38
+ this.router = router;
39
+ this._LocalizationService = _LocalizationService;
40
+ }
41
+ ngOnInit() {
42
+ this.getPageDate();
43
+ }
44
+ /**站点列表 */
45
+ siteList = [];
46
+ /**选择的站点id */
47
+ siteId = '';
48
+ /**站点下的版块 */
49
+ SiteOfSectionList = [];
50
+ /**版块下的语言列表 */
51
+ sectionLanguagesList = [];
52
+ /**版块下的条目类型列表 */
53
+ entryTypeList = [];
54
+ /**状态编码 */
55
+ _entryStatusOptions = entryStatusOptions;
56
+ /**获取页面数据 */
57
+ async getPageDate() {
58
+ // 同时启动所有不依赖彼此的异步操作
59
+ await this.getsiteList();
60
+ await this.getSiteOfSectionList();
61
+ await this.getSectionLanguagesList();
62
+ this.hookToQuery();
63
+ }
64
+ /**获取站点列表 */
65
+ getsiteList() {
66
+ return new Promise((resolve, rejects) => {
67
+ this._SiteAdminService.getList({}).subscribe(res => {
68
+ this.siteList = res.items;
69
+ this.siteId = res.items[0]?.id || '';
70
+ resolve(res.items);
71
+ });
72
+ });
73
+ }
74
+ /**获取站点下的版块 */
75
+ getSiteOfSectionList() {
76
+ return new Promise((resolve, rejects) => {
77
+ this._SectionAdminService.getList({
78
+ maxResultCount: 1000,
79
+ siteId: this.siteId
80
+ }).subscribe(res => {
81
+ this.SiteOfSectionList = res.items;
82
+ this.filters.sectionId = res.items[0]?.id || '';
83
+ this.getSectionOfEntryType();
84
+ resolve(res.items);
85
+ });
86
+ });
87
+ }
88
+ /**获取版块下的条目类型 */
89
+ getSectionOfEntryType() {
90
+ this.entryTypeList = this.SiteOfSectionList.find(el => el.id == this.filters.sectionId)?.entryTypes || [];
91
+ }
92
+ /**获取版块下的语言列表 */
93
+ getSectionLanguagesList() {
94
+ return new Promise((resolve, rejects) => {
95
+ let SiteOfSectionList = this.SiteOfSectionList;
96
+ let languages = this.configState.getDeep('localization.languages');
97
+ let items = SiteOfSectionList.find(el => el.id == this.filters.sectionId)?.site?.languages || [];
98
+ items.forEach(el => {
99
+ el.displayName = languages.find(ell => ell.cultureName == el.cultureName).displayName;
100
+ });
101
+ if (items.length > 0) {
102
+ this.sectionLanguagesList = items;
103
+ this.filters.culture = items[0]?.cultureName || '';
104
+ }
105
+ resolve(items);
106
+ });
107
+ }
108
+ /**切换站点 */
109
+ async siteIdChange() {
110
+ await this.getSiteOfSectionList();
111
+ await this.getSectionLanguagesList();
112
+ this.list.get();
113
+ }
114
+ /**切换版块 */
115
+ async sectionIdChange() {
116
+ this.getSectionOfEntryType();
117
+ await this.getSectionLanguagesList();
118
+ this.list.get();
119
+ }
120
+ /**切换语言 */
121
+ cultureChange() {
122
+ this.list.get();
123
+ }
124
+ /**新增-单个 */
125
+ createEntriesBtn() {
126
+ this.router.navigate(['/cms/admin/entries/create'], {
127
+ queryParams: { cultureName: this.filters.culture, sectionId: this.filters.sectionId, entryTypeId: this.entryTypeList[0].id }
128
+ });
129
+ }
130
+ /**列表相关 */
131
+ ColumnMode = ColumnMode;
132
+ data = {
133
+ items: [],
134
+ totalCount: 0,
135
+ };
136
+ filters = {};
137
+ hookToQuery() {
138
+ const getData = (query) => this._EntryAdminService.getList({
139
+ ...query,
140
+ ...this.filters,
141
+ });
142
+ const setData = (list) => (this.data = list);
143
+ this.list.hookToQuery(getData).subscribe(setData);
144
+ }
145
+ /**删除条目 */
146
+ deletefield(row) {
147
+ this.confirmation.warn(row.displayName, this._LocalizationService.instant(`AbpUi::ItemWillBeDeletedMessage`)).subscribe((status) => {
148
+ if (status == 'confirm') {
149
+ this._EntryAdminService.delete(row.id).pipe(finalize(() => {
150
+ })).subscribe(res => {
151
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
152
+ this.list.get();
153
+ });
154
+ }
155
+ });
156
+ }
157
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EntriesComponent, deps: [{ token: i1.ListService }, { token: i2.EntryAdminService }, { token: i3.SiteAdminService }, { token: i4.SectionAdminService }, { token: i5.ToasterService }, { token: i5.ConfirmationService }, { token: i1.ConfigStateService }, { token: i6.Router }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EntriesComponent, selector: "cms-entries", providers: [
159
+ // [Required]
160
+ ListService,
161
+ // [Optional]
162
+ // Provide this token if you want a different debounce time.
163
+ // Default is 300. Cannot be 0. Any value below 100 is not recommended.
164
+ { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
165
+ {
166
+ provide: EXTENSIONS_IDENTIFIER,
167
+ useValue: ECmsComponent.Entries,
168
+ },
169
+ ], ngImport: i0, template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card mb-0\">\r\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\r\n <div class=\"input-group\">\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\r\n <ng-container *ngFor=\"let item of siteList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n <button class=\"btn btn-outline-primary px-2\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:m:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\r\n {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\r\n <button ngbDropdownItem\r\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header{height:57px}::ng-deep .sites-page .card-header input,::ng-deep .sites-page .card-header .form-select{height:34px}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .container-height{height:calc(100vh - 180px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.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: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i9.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i9.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i9.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i5.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
170
+ }
171
+ export { EntriesComponent };
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EntriesComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'cms-entries', providers: [
175
+ // [Required]
176
+ ListService,
177
+ // [Optional]
178
+ // Provide this token if you want a different debounce time.
179
+ // Default is 300. Cannot be 0. Any value below 100 is not recommended.
180
+ { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
181
+ {
182
+ provide: EXTENSIONS_IDENTIFIER,
183
+ useValue: ECmsComponent.Entries,
184
+ },
185
+ ], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card mb-0\">\r\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\r\n <div class=\"input-group\">\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"siteId\" (change)=\"siteIdChange()\">\r\n <ng-container *ngFor=\"let item of siteList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <select class=\"form-select col-auto\" [(ngModel)]=\"filters.culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n <button class=\"btn btn-outline-primary px-2\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:m:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\r\n {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\r\n <button ngbDropdownItem\r\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header{height:57px}::ng-deep .sites-page .card-header input,::ng-deep .sites-page .card-header .form-select{height:34px}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .container-height{height:calc(100vh - 180px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
186
+ }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.EntryAdminService }, { type: i3.SiteAdminService }, { type: i4.SectionAdminService }, { type: i5.ToasterService }, { type: i5.ConfirmationService }, { type: i1.ConfigStateService }, { type: i6.Router }, { type: i1.LocalizationService }]; } });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHdCQUF3QixFQUFFLFdBQVcsRUFBdUMsTUFBTSxjQUFjLENBQUM7QUFFbkksT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk5RCxNQWlCYSxnQkFBZ0I7SUFFVDtJQUNSO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFUVixZQUNrQixJQUFpQixFQUN6QixrQkFBcUMsRUFDckMsaUJBQW1DLEVBQ25DLG9CQUF5QyxFQUN6QyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxXQUErQixFQUMvQixNQUFjLEVBQ2Qsb0JBQXlDO1FBUmpDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FB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QUFFLGFBQWEsQ0FBQyxPQUFPO3lCQUNoQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIExpc3RTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybWF0aW9uIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UsIEVudHJ5RHRvLCBHZXRFbnRyaWVzSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9lbnRyaWVzJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2l0ZUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NpdGVzJztcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2VjbXMtY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVudHJpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gW1JlcXVpcmVkXVxuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFtPcHRpb25hbF1cbiAgICAvLyBQcm92aWRlIHRoaXMgdG9rZW4gaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQgZGVib3VuY2UgdGltZS5cbiAgICAvLyBEZWZhdWx0IGlzIDMwMC4gQ2Fubm90IGJlIDAuIEFueSB2YWx1ZSBiZWxvdyAxMDAgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRW50cmllcyxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudHJpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NpdGVBZG1pblNlcnZpY2U6IFNpdGVBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZTogU2VjdGlvbkFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYWdlRGF0ZSgpXG4gIH1cblxuICAvKirnq5nngrnliJfooaggKi9cbiAgc2l0ZUxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq6YCJ5oup55qE56uZ54K5aWQgKi9cbiAgc2l0ZUlkOiBzdHJpbmcgPSAnJ1xuICAvKirnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgU2l0ZU9mU2VjdGlvbkxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq54mI5Z2X5LiL55qE6K+t6KiA5YiX6KGoICovXG4gIHNlY3Rpb25MYW5ndWFnZXNMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueJiOWdl+S4i+eahOadoeebruexu+Wei+WIl+ihqCAqL1xuICBlbnRyeVR5cGVMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueKtuaAgee8lueggSAqL1xuICBfZW50cnlTdGF0dXNPcHRpb25zID0gZW50cnlTdGF0dXNPcHRpb25zXG5cbiAgLyoq6I635Y+W6aG16Z2i5pWw5o2uICovXG4gIGFzeW5jIGdldFBhZ2VEYXRlKCkge1xuICAgIC8vIOWQjOaXtuWQr+WKqOaJgOacieS4jeS+nei1luW9vOatpOeahOW8guatpeaTjeS9nCAgXG4gICAgYXdhaXQgdGhpcy5nZXRzaXRlTGlzdCgpXG4gICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpXG4gICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gIH1cblxuICAvKirojrflj5bnq5nngrnliJfooaggKi9cbiAgZ2V0c2l0ZUxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLmdldExpc3Qoe30pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnNpdGVMaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHRoaXMuc2l0ZUlkID0gcmVzLml0ZW1zWzBdPy5pZCB8fCAnJ1xuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuICAvKirojrflj5bnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgc2l0ZUlkOiB0aGlzLnNpdGVJZFxuICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QgPSByZXMuaXRlbXNcbiAgICAgICAgdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCA9IHJlcy5pdGVtc1swXT8uaWQgfHwgJydcbiAgICAgICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuICAvKirojrflj5bniYjlnZfkuIvnmoTmnaHnm67nsbvlnosgKi9cbiAgZ2V0U2VjdGlvbk9mRW50cnlUeXBlKCkge1xuICAgIHRoaXMuZW50cnlUeXBlTGlzdCA9IHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QuZmluZChlbCA9PiBlbC5pZCA9PSB0aGlzLmZpbHRlcnMuc2VjdGlvbklkKT8uZW50cnlUeXBlcyB8fCBbXVxuICB9XG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGxldCBTaXRlT2ZTZWN0aW9uTGlzdCA9IHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3RcbiAgICAgIGxldCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAgICAgbGV0IGl0ZW1zID0gU2l0ZU9mU2VjdGlvbkxpc3QuZmluZChlbCA9PiBlbC5pZCA9PSB0aGlzLmZpbHRlcnMuc2VjdGlvbklkKT8uc2l0ZT8ubGFuZ3VhZ2VzIHx8IFtdXG4gICAgICBpdGVtcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgZWwuZGlzcGxheU5hbWUgPSBsYW5ndWFnZXMuZmluZChlbGwgPT4gZWxsLmN1bHR1cmVOYW1lID09IGVsLmN1bHR1cmVOYW1lKS5kaXNwbGF5TmFtZVxuICAgICAgfSlcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VjdGlvbkxhbmd1YWdlc0xpc3QgPSBpdGVtc1xuICAgICAgICB0aGlzLmZpbHRlcnMuY3VsdHVyZSA9IGl0ZW1zWzBdPy5jdWx0dXJlTmFtZSB8fCAnJ1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShpdGVtcylcbiAgICB9KVxuICB9XG4gIC8qKuWIh+aNouermeeCuSAqL1xuICBhc3luYyBzaXRlSWRDaGFuZ2UoKSB7XG5cbiAgICBhd2FpdCB0aGlzLmdldFNpdGVPZlNlY3Rpb25MaXN0KClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuICAvKirliIfmjaLniYjlnZcgKi9cbiAgYXN5bmMgc2VjdGlvbklkQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0U2VjdGlvbk9mRW50cnlUeXBlKClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG4gIC8qKuWIh+aNouivreiogCAqL1xuICBjdWx0dXJlQ2hhbmdlKCkge1xuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cbiAgLyoq5paw5aKeLeWNleS4qiAqL1xuICBjcmVhdGVFbnRyaWVzQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIl+ihqOebuOWFsyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RW50cnlEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRFbnRyaWVzSW5wdXQ7XG5cbiAgaG9va1RvUXVlcnkoKSB7XG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XG4gIH1cblxuICAvKirliKDpmaTmnaHnm64gKi9cbiAgZGVsZXRlZmllbGQocm93OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxuICAgICAgcm93LmRpc3BsYXlOYW1lLFxuICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlYCksXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PSAnY29uZmlybScpIHtcbiAgICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZGVsZXRlKHJvdy5pZCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkYCkpO1xuICAgICAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgfSk7XG4gIH1cblxuXG59XG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkVudHJpZXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxyXG4gICAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyICpuZ0lmPVwiZW50cnlUeXBlTGlzdC5sZW5ndGggPCAxXCIgY2xhc3M9XCJjb2wgXCI+PC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5VHlwZUxpc3QubGVuZ3RoID4gMVwiIGNsYXNzPVwiY29sIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWVuZCBteC0wIGdhcC0yXCIgKmFicFBlcm1pc3Npb249XCInQ21zQWRtaW4uRW50cnkuQ3JlYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gcHgtMCBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbXMtMlwiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIHBlLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+e3snQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkJhc2ljMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVudHJ5VHlwZUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIFtyb3V0ZXJMaW5rXT1cIlsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwie2N1bHR1cmVOYW1lOiBmaWx0ZXJzLmN1bHR1cmUsc2VjdGlvbklkOmZpbHRlcnMuc2VjdGlvbklkLGVudHJ5VHlwZUlkOml0ZW0uaWR9XCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gICAgPGRpdiBpZD1cInNpdGVzLXBhZ2VcIiBjbGFzcz1cInNpdGVzLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBweC0yIHB5LXNtLTIgYm9yZGVyLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGNvbC1hdXRvXCIgWyhuZ01vZGVsKV09XCJzaXRlSWRcIiAoY2hhbmdlKT1cInNpdGVJZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2l0ZUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc2VjdGlvbklkXCIgKGNoYW5nZSk9XCJzZWN0aW9uSWRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIFNpdGVPZlNlY3Rpb25MaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGNvbC1hdXRvXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmN1bHR1cmVcIiAoY2hhbmdlKT1cImN1bHR1cmVDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlY3Rpb25MYW5ndWFnZXNMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHB4LTJcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24yXCIgKGNsaWNrKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZSBjbGFzcz1cIm1hdGVyaWFsIGNvbnRhaW5lci1oZWlnaHRcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsYmFyVl09XCJ0cnVlXCIgW3ZpcnR1YWxpemF0aW9uXT1cImZhbHNlXCIgW2V4dGVybmFsUGFnaW5nXT1cInRydWVcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImVudHJ5VHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pZCA9PT0gdmFsdWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlRpdGxlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInNsdWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9lbnRyeVN0YXR1c09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udmFsdWU9PT0gdmFsdWVcIj57eyAnQ21zOjpFbnVtOkVudHJ5U3RhdHVzOicraXRlbS5rZXkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9uIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6UHVibGlzaFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInB1Ymxpc2hUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmFsdWUgfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptOnMnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW3NvcnRhYmxlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2Ntcy9hZG1pbi9lbnRyaWVzL3t7cm93LmlkfX0vZWRpdFwiPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
@@ -0,0 +1,5 @@
1
+ export * from './entries.component';
2
+ export * from './create.component';
3
+ export * from './edit.component';
4
+ export * from './create-or-edit-entries.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxvQ0FBb0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW50cmllcy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC1lbnRyaWVzLmNvbXBvbmVudCciXX0=
@@ -0,0 +1,66 @@
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 "../../../proxy/admin/fields";
8
+ import * as i3 from "@abp/ng.theme.shared";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "@abp/ng.core";
11
+ import * as i6 from "@ngx-validate/core";
12
+ import * as i7 from "@abp/ng.components/page";
13
+ import * as i8 from "./create-or-edit-field.component";
14
+ class CreateFieldComponent {
15
+ fb;
16
+ _FieldAdminService;
17
+ toaster;
18
+ _location;
19
+ _LocalizationService;
20
+ constructor(fb, _FieldAdminService, toaster, _location, _LocalizationService) {
21
+ this.fb = fb;
22
+ this._FieldAdminService = _FieldAdminService;
23
+ this.toaster = toaster;
24
+ this._location = _location;
25
+ this._LocalizationService = _LocalizationService;
26
+ }
27
+ /**表单实体 */
28
+ newEntity = this.fb.group(new CreateOrUpdateFieldInputBase());
29
+ /**获取提交按钮替身,用于真实触发表单提交 */
30
+ submitclick;
31
+ /**触发提交按钮 */
32
+ submitclickBtn() {
33
+ this.submitclick.nativeElement.click();
34
+ }
35
+ /**保存表单 */
36
+ save() {
37
+ let input = this.newEntity.value;
38
+ if (!this.newEntity.valid)
39
+ return;
40
+ this._FieldAdminService.create(input).subscribe(res => {
41
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
42
+ this._location.back();
43
+ });
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.FieldAdminService }, { token: i3.ToasterService }, { token: i4.Location }, { token: i5.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateFieldComponent, selector: "cms-create-field", providers: [
47
+ {
48
+ provide: EXTENSIONS_IDENTIFIER,
49
+ useValue: ECmsComponent.FieldsCreate,
50
+ },
51
+ ], 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::CreateField' | 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\"></cms-create-or-edit-field>\n </div>\n </div>\n </abp-page>\n</form>", styles: ["::ng-deep .create-field-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-field-page .form-control,::ng-deep .create-field-page .form-select{padding:.475rem 1.25rem}\n"], 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: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i8.CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: ["Entity", "selected"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
52
+ }
53
+ export { CreateFieldComponent };
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateFieldComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'cms-create-field', providers: [
57
+ {
58
+ provide: EXTENSIONS_IDENTIFIER,
59
+ useValue: ECmsComponent.FieldsCreate,
60
+ },
61
+ ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"'Cms::CreateField' | 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\"></cms-create-or-edit-field>\n </div>\n </div>\n </abp-page>\n</form>", styles: ["::ng-deep .create-field-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-field-page .form-control,::ng-deep .create-field-page .form-select{padding:.475rem 1.25rem}\n"] }]
62
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FieldAdminService }, { type: i3.ToasterService }, { type: i4.Location }, { type: i5.LocalizationService }]; }, propDecorators: { submitclick: [{
63
+ type: ViewChild,
64
+ args: ['submitclick', { static: true }]
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2NyZWF0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9jcmVhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFNbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBRS9DLE1BV2Esb0JBQW9CO0lBR3JCO0lBQ0Q7SUFDQztJQUNEO0lBQ0E7SUFMVCxZQUNVLEVBQWUsRUFDaEIsa0JBQXFDLEVBQ3BDLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ25CLG9CQUF5QztRQUp4QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO0lBQzlDLENBQUM7SUFFTCxVQUFVO0lBQ1YsU0FBUyxHQUEwQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQTtJQUVwRix5QkFBeUI7SUFDbUIsV0FBVyxDQUFhO0lBRXBFLFlBQVk7SUFDWixjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFVBQVU7SUFDVixJQUFJO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU07UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBN0JVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJDQVBwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWTthQUNyQztTQUNGLG9KQ25CSCwrZkFTTzs7U0RZTSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxZQUFZO3lCQUNyQztxQkFDRjt3TkFnQjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLWZpZWxkLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0NyZWF0ZSxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZUZpZWxkQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7IH1cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKCkpXG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgLyoq6Kem5Y+R5o+Q5Lqk5oyJ6ZKuICovXG4gIHN1Ym1pdGNsaWNrQnRuKCl7XG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcbiAgfVxuXG4gIC8qKuS/neWtmOihqOWNlSAqL1xuICBzYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuXG4gICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKVxuICAgIH0pXG4gIH1cblxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkNyZWF0ZUZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1maWVsZC1wYWdlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMyBiZy13aGl0ZSByb3VuZGVkLTFcIj5cbiAgICAgICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkIFtFbnRpdHldPVwibmV3RW50aXR5XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hYnAtcGFnZT5cbjwvZm9ybT4iXX0=