@dignite-ng/expand.cms 0.0.22 → 0.0.24

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 (162) hide show
  1. package/esm2022/config/cms-config.module.mjs +6 -7
  2. package/esm2022/config/dignite-ng-expand.cms-config.mjs +1 -1
  3. package/esm2022/config/enums/index.mjs +1 -1
  4. package/esm2022/config/enums/route-names.mjs +1 -1
  5. package/esm2022/config/providers/index.mjs +1 -1
  6. package/esm2022/config/providers/route.provider.mjs +1 -1
  7. package/esm2022/config/public-api.mjs +1 -1
  8. package/esm2022/dignite-ng-expand.cms.mjs +1 -1
  9. package/esm2022/lib/cms-routing.module.mjs +6 -8
  10. package/esm2022/lib/cms.module.mjs +19 -52
  11. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +40 -48
  12. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +20 -20
  13. package/esm2022/lib/components/admin/entries/create.component.mjs +22 -27
  14. package/esm2022/lib/components/admin/entries/edit.component.mjs +28 -36
  15. package/esm2022/lib/components/admin/entries/entries.component.mjs +42 -48
  16. package/esm2022/lib/components/admin/entries/index.mjs +1 -1
  17. package/esm2022/lib/components/admin/fields/create-field.component.mjs +16 -21
  18. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +12 -22
  19. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +13 -13
  20. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +19 -27
  21. package/esm2022/lib/components/admin/fields/field-group.component.mjs +23 -30
  22. package/esm2022/lib/components/admin/fields/fields.component.mjs +23 -27
  23. package/esm2022/lib/components/admin/fields/index.mjs +1 -1
  24. package/esm2022/lib/components/admin/index.mjs +1 -1
  25. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +15 -15
  26. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +26 -26
  27. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +42 -71
  28. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +1 -1
  29. package/esm2022/lib/components/admin/sections/index.mjs +1 -1
  30. package/esm2022/lib/components/admin/sections/sections.component.mjs +33 -46
  31. package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +6 -11
  32. package/esm2022/lib/components/admin/sites/index.mjs +1 -1
  33. package/esm2022/lib/components/admin/sites/sites.component.mjs +26 -47
  34. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +17 -28
  35. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +7 -7
  36. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +13 -24
  37. package/esm2022/lib/components/dynamic-form/entry/index.mjs +1 -1
  38. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +1 -4
  39. package/esm2022/lib/components/dynamic-form/index.mjs +1 -1
  40. package/esm2022/lib/components/dynamic-form/matrix/index.mjs +1 -1
  41. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +19 -37
  42. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +16 -16
  43. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +12 -28
  44. package/esm2022/lib/components/dynamic-form/table/index.mjs +1 -1
  45. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +14 -36
  46. package/esm2022/lib/components/dynamic-form/table/table-config.mjs +15 -15
  47. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +11 -25
  48. package/esm2022/lib/components/index.mjs +1 -1
  49. package/esm2022/lib/constants/styles.mjs +4 -29
  50. package/esm2022/lib/enums/ecms-component.mjs +1 -1
  51. package/esm2022/lib/enums/index.mjs +1 -1
  52. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +12 -13
  53. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +1 -1
  54. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +1 -1
  55. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +55 -56
  56. package/esm2022/lib/proxy/admin/entries/index.mjs +1 -1
  57. package/esm2022/lib/proxy/admin/entries/models.mjs +1 -1
  58. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +35 -36
  59. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +31 -32
  60. package/esm2022/lib/proxy/admin/fields/index.mjs +1 -1
  61. package/esm2022/lib/proxy/admin/fields/models.mjs +1 -1
  62. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +31 -32
  63. package/esm2022/lib/proxy/admin/sections/index.mjs +1 -1
  64. package/esm2022/lib/proxy/admin/sections/models.mjs +1 -1
  65. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +41 -42
  66. package/esm2022/lib/proxy/admin/sites/index.mjs +1 -1
  67. package/esm2022/lib/proxy/admin/sites/models.mjs +1 -1
  68. package/esm2022/lib/proxy/admin/sites/site-admin.service.mjs +39 -40
  69. package/esm2022/lib/proxy/dignite/abp/data/index.mjs +1 -1
  70. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +1 -1
  71. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +1 -1
  72. package/esm2022/lib/proxy/entries/index.mjs +1 -1
  73. package/esm2022/lib/proxy/fields/models.mjs +1 -1
  74. package/esm2022/lib/proxy/sections/index.mjs +1 -1
  75. package/esm2022/lib/proxy/sections/models.mjs +1 -1
  76. package/esm2022/lib/proxy/sections/section-type.enum.mjs +1 -1
  77. package/esm2022/lib/proxy/sites/models.mjs +1 -1
  78. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +1 -1
  79. package/esm2022/lib/services/appent-content.mjs +1 -1
  80. package/esm2022/lib/services/cms-api.service.mjs +7 -8
  81. package/esm2022/lib/services/cms.service.mjs +8 -9
  82. package/esm2022/lib/services/field-abstracts.service.mjs +12 -13
  83. package/esm2022/lib/services/index.mjs +1 -1
  84. package/esm2022/lib/services/simple-reuse-strategy.mjs +4 -2
  85. package/esm2022/lib/services/update-list.service.mjs +9 -9
  86. package/esm2022/lib/toolbar/index.mjs +1 -1
  87. package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +1 -1
  88. package/esm2022/lib/toolbar/toolbar-config.mjs +1 -2
  89. package/esm2022/public-api.mjs +5 -8
  90. package/fesm2022/dignite-ng-expand.cms-config.mjs +4 -4
  91. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
  92. package/fesm2022/dignite-ng-expand.cms.mjs +701 -1286
  93. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
  94. package/lib/cms.module.d.ts +6 -11
  95. package/lib/components/admin/entries/edit.component.d.ts +1 -3
  96. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +0 -1
  97. package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +0 -4
  98. package/lib/constants/styles.d.ts +1 -1
  99. package/package.json +2 -4
  100. package/public-api.d.ts +2 -7
  101. package/esm2022/lib/constants/index.mjs +0 -2
  102. package/esm2022/lib/proxy/admin/index.mjs +0 -7
  103. package/esm2022/lib/proxy/dignite/abp/index.mjs +0 -3
  104. package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +0 -48
  105. package/esm2022/lib/proxy/dignite/file-explorer/directories/index.mjs +0 -3
  106. package/esm2022/lib/proxy/dignite/file-explorer/directories/models.mjs +0 -2
  107. package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +0 -60
  108. package/esm2022/lib/proxy/dignite/file-explorer/files/index.mjs +0 -3
  109. package/esm2022/lib/proxy/dignite/file-explorer/files/models.mjs +0 -2
  110. package/esm2022/lib/proxy/dignite/file-explorer/index.mjs +0 -4
  111. package/esm2022/lib/proxy/dignite/index.mjs +0 -4
  112. package/esm2022/lib/proxy/fields/index.mjs +0 -2
  113. package/esm2022/lib/proxy/index.mjs +0 -10
  114. package/esm2022/lib/proxy/microsoft/asp-net-core/index.mjs +0 -3
  115. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/index.mjs +0 -2
  116. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/models.mjs +0 -2
  117. package/esm2022/lib/proxy/microsoft/extensions/index.mjs +0 -3
  118. package/esm2022/lib/proxy/microsoft/extensions/primitives/index.mjs +0 -2
  119. package/esm2022/lib/proxy/microsoft/extensions/primitives/models.mjs +0 -2
  120. package/esm2022/lib/proxy/microsoft/index.mjs +0 -5
  121. package/esm2022/lib/proxy/microsoft/net/http/headers/index.mjs +0 -2
  122. package/esm2022/lib/proxy/microsoft/net/http/headers/models.mjs +0 -2
  123. package/esm2022/lib/proxy/microsoft/net/http/index.mjs +0 -3
  124. package/esm2022/lib/proxy/microsoft/net/index.mjs +0 -3
  125. package/esm2022/lib/proxy/sites/index.mjs +0 -2
  126. package/esm2022/lib/proxy/volo/abp/content/index.mjs +0 -2
  127. package/esm2022/lib/proxy/volo/abp/content/models.mjs +0 -2
  128. package/esm2022/lib/proxy/volo/abp/index.mjs +0 -3
  129. package/esm2022/lib/proxy/volo/cms-kit/index.mjs +0 -3
  130. package/esm2022/lib/proxy/volo/cms-kit/users/index.mjs +0 -2
  131. package/esm2022/lib/proxy/volo/index.mjs +0 -4
  132. package/lib/constants/index.d.ts +0 -1
  133. package/lib/proxy/admin/index.d.ts +0 -6
  134. package/lib/proxy/dignite/abp/index.d.ts +0 -2
  135. package/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.d.ts +0 -17
  136. package/lib/proxy/dignite/file-explorer/directories/index.d.ts +0 -2
  137. package/lib/proxy/dignite/file-explorer/directories/models.d.ts +0 -29
  138. package/lib/proxy/dignite/file-explorer/files/file-descriptor.service.d.ts +0 -20
  139. package/lib/proxy/dignite/file-explorer/files/index.d.ts +0 -2
  140. package/lib/proxy/dignite/file-explorer/files/models.d.ts +0 -50
  141. package/lib/proxy/dignite/file-explorer/index.d.ts +0 -3
  142. package/lib/proxy/dignite/index.d.ts +0 -3
  143. package/lib/proxy/fields/index.d.ts +0 -1
  144. package/lib/proxy/index.d.ts +0 -9
  145. package/lib/proxy/microsoft/asp-net-core/index.d.ts +0 -2
  146. package/lib/proxy/microsoft/asp-net-core/mvc/index.d.ts +0 -1
  147. package/lib/proxy/microsoft/asp-net-core/mvc/models.d.ts +0 -10
  148. package/lib/proxy/microsoft/extensions/index.d.ts +0 -2
  149. package/lib/proxy/microsoft/extensions/primitives/index.d.ts +0 -1
  150. package/lib/proxy/microsoft/extensions/primitives/models.d.ts +0 -8
  151. package/lib/proxy/microsoft/index.d.ts +0 -4
  152. package/lib/proxy/microsoft/net/http/headers/index.d.ts +0 -1
  153. package/lib/proxy/microsoft/net/http/headers/models.d.ts +0 -6
  154. package/lib/proxy/microsoft/net/http/index.d.ts +0 -2
  155. package/lib/proxy/microsoft/net/index.d.ts +0 -2
  156. package/lib/proxy/sites/index.d.ts +0 -1
  157. package/lib/proxy/volo/abp/content/index.d.ts +0 -1
  158. package/lib/proxy/volo/abp/content/models.d.ts +0 -5
  159. package/lib/proxy/volo/abp/index.d.ts +0 -2
  160. package/lib/proxy/volo/cms-kit/index.d.ts +0 -2
  161. package/lib/proxy/volo/cms-kit/users/index.d.ts +0 -1
  162. package/lib/proxy/volo/index.d.ts +0 -3
@@ -1,6 +1,9 @@
1
- import { Component, Input, ViewChild, ViewContainerRef, inject } from '@angular/core';
2
- import { FormControl, Validators } from '@angular/forms';
3
- import { CreateDynamicComponentsService } from '@dignite-ng/expand.dynamic-form';
1
+ import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { FieldAbstractsService } from '../../../services/field-abstracts.service';
3
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
4
+ import { CmsApiService } from '../../../services/cms-api.service';
5
+ import { FieldAdminService } from '../../../proxy/admin/fields';
6
+ import { LocalizationService } from '@abp/ng.core';
4
7
  import * as i0 from "@angular/core";
5
8
  import * as i1 from "../../../services/field-abstracts.service";
6
9
  import * as i2 from "../../../services/cms-api.service";
@@ -10,13 +13,7 @@ import * as i5 from "@angular/common";
10
13
  import * as i6 from "@angular/forms";
11
14
  import * as i7 from "@ngx-validate/core";
12
15
  import * as i8 from "@dignite-ng/expand.dynamic-form";
13
- class CreateOrEditFieldComponent {
14
- _FieldAbstractsService;
15
- _CmsApiService;
16
- _FieldAdminService;
17
- _LocalizationService;
18
- /**表单控件模板-动态表单配置组件 */
19
- FormDynamicRef;
16
+ export class CreateOrEditFieldComponent {
20
17
  constructor(_FieldAbstractsService, _CmsApiService, _FieldAdminService, _LocalizationService) {
21
18
  this._FieldAbstractsService = _FieldAbstractsService;
22
19
  this._CmsApiService = _CmsApiService;
@@ -26,8 +23,6 @@ class CreateOrEditFieldComponent {
26
23
  this._FieldAbstractsService.getfieldGroupList();
27
24
  }
28
25
  }
29
- /**表单实体 */
30
- _Entity;
31
26
  set Entity(v) {
32
27
  if (v) {
33
28
  this._Entity = v;
@@ -37,9 +32,6 @@ class CreateOrEditFieldComponent {
37
32
  get formControlName() {
38
33
  return this._Entity.get('formControlName');
39
34
  }
40
- /**选择的表单信息 */
41
- _selected_copy;
42
- _selected;
43
35
  set selected(v) {
44
36
  if (v) {
45
37
  this._selected = v || '';
@@ -47,7 +39,6 @@ class CreateOrEditFieldComponent {
47
39
  this.dataLoaded();
48
40
  }
49
41
  }
50
- _CreateDynamicComponentsService = inject(CreateDynamicComponentsService);
51
42
  async dataLoaded() {
52
43
  if (this._FieldAbstractsService.fromControlList.length == 0) {
53
44
  await this._FieldAbstractsService.getFromControlList();
@@ -103,14 +94,13 @@ class CreateOrEditFieldComponent {
103
94
  }
104
95
  formControlNameChange() {
105
96
  }
106
- 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 }], target: i0.ɵɵFactoryTarget.Component });
107
- 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" }, viewQueries: [{ propertyName: "FormDynamicRef", first: true, predicate: ["FormDynamicRef"], descendants: true, read: ViewContainerRef, static: true }], 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 <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\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.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: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.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", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.FieldAbstractsService }, { token: i2.CmsApiService }, { token: i3.FieldAdminService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { Entity: "Entity", selected: "selected" }, viewQueries: [{ propertyName: "FormDynamicRef", first: true, predicate: ["FormDynamicRef"], descendants: true, read: ViewContainerRef, static: true }], 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 <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\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.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: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.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", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
108
99
  }
109
- export { CreateOrEditFieldComponent };
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
111
101
  type: Component,
112
102
  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 <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\n</form>" }]
113
- }], ctorParameters: function () { return [{ type: i1.FieldAbstractsService }, { type: i2.CmsApiService }, { type: i3.FieldAdminService }, { type: i4.LocalizationService }]; }, propDecorators: { FormDynamicRef: [{
103
+ }], ctorParameters: () => [{ type: i1.FieldAbstractsService }, { type: i2.CmsApiService }, { type: i3.FieldAdminService }, { type: i4.LocalizationService }], propDecorators: { FormDynamicRef: [{
114
104
  type: ViewChild,
115
105
  args: ['FormDynamicRef', { read: ViewContainerRef, static: true }]
116
106
  }], Entity: [{
@@ -118,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
118
108
  }], selected: [{
119
109
  type: Input
120
110
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RixPQUFPLEVBQWdDLFdBQVcsRUFBK0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFDakYsTUFLYSwwQkFBMEI7SUFNNUI7SUFDQztJQUNBO0lBQ0E7SUFQVixxQkFBcUI7SUFDa0QsY0FBYyxDQUFtQjtJQUV4RyxZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDO1FBSDFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBR2pELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1NBQ2hEO0lBQ0gsQ0FBQztJQUNELFVBQVU7SUFDVixPQUFPLENBQXVC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QUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzdELElBQUksR0FBRyxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3pHO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUdELHFCQUFxQjtJQUNyQixDQUFDO3dHQXRHVSwwQkFBMEI7NEZBQTFCLDBCQUEwQixpTkFHQSxnQkFBZ0IsMkNDakJ2RCxpdUVBc0NPOztTRHhCTSwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSwwQkFBMEI7ME1BT21DLGNBQWM7c0JBQXBGLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFnQjFELE1BQU07c0JBRGhCLEtBQUs7Z0JBY0ssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Ntcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENyZWF0ZUR5bmFtaWNDb21wb25lbnRzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5keW5hbWljLWZvcm0nO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkKCdGb3JtRHluYW1pY1JlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIEZvcm1EeW5hbWljUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgXG4gICkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZmllbGRHcm91cExpc3QubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgfVxuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGZvcm1Db250cm9sTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbnRyb2xOYW1lJylcbiAgfVxuICAvKirpgInmi6nnmoTooajljZXkv6Hmga8gKi9cbiAgX3NlbGVjdGVkX2NvcHk6YW55XG4gIF9zZWxlY3RlZDogYW55XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgaWYodikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2IHx8ICcnO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRfY29weT12XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICAgIH1cbiAgIFxuICB9XG5cbiAgcHJpdmF0ZSBfQ3JlYXRlRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlPWluamVjdChDcmVhdGVEeW5hbWljQ29tcG9uZW50c1NlcnZpY2UpXG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgYXdhaXQgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldEZyb21Db250cm9sTGlzdCgpXG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLl9FbnRpdHkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbE5hbWUudmFsdWUpIHtcbiAgICAgICAgdGhpcy5fRW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdFswXT8ubmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRoaXMuX0VudGl0eS5zZXRDb250cm9sKCduYW1lJywgbmV3IEZvcm1Db250cm9sKHRoaXMubmFtZUlucHV0LnZhbHVlfHwnJywge1xuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IFt0aGlzLnJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpXSAsXG4gICAgICAgIHVwZGF0ZU9uOiAnYmx1cidcbiAgICAgIH0pKVxuICAgIH1cbiAgfVxuXG5cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9FbnRpdHkuZ2V0KCduYW1lJylcbiAgfVxuXG4gIG5hbWVJbnB1dEJsdXIoZXZlbnQpe1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIHRoaXMubmFtZUlucHV0LnBhdGNoVmFsdWUodmFsdWUpXG4gIH1cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXRcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm5cbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pXG4gIH1cbiAgLyoq5a6a5LmJ5byC5q2l6aqM6K+B5pa55rOVICovXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKGN0cmw6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZSA9PSB0aGlzLl9zZWxlY3RlZD8ubmFtZXx8IWN0cmwudmFsdWUpIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoY3RybC52YWx1ZSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpGaWVsZE5hbWV7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cblxuICBmb3JtQ29udHJvbE5hbWVDaGFuZ2UoKXtcbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZ3JvdXBJZFwiPnt7J0Ntczo6RmllbGRHcm91cCcgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImdyb3VwSWRcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj57eydDbXM6Ok9wdGlvbmFsR3JvdXBpbmcnIHwgYWJwTG9jYWxpemF0aW9ufX08L29wdGlvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57e2l0ZW0ubmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRpc3BsYXlOYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZERpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGROYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgKGlucHV0KT1cIm5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwibmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAge3tuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXRleHRcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkTmFtZUhlbHBUZXh0JyB8IGFicExvY2FsaXphdGlvbn19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRlc2NyaXB0aW9uXCI+e3snQ21zOjpEZXNjcmlwdGlvbicgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+e3snQ21zOjpGaWVsZFR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtQ29udHJvbE5hbWVcIiAoY2hhbmdlKT1cImZvcm1Db250cm9sTmFtZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0ubmFtZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lJiZfRW50aXR5XCI+IFxuICAgICAgICA8ZGYtZHluYW1pYyBbdHlwZV09XCJfRW50aXR5LnZhbHVlLmZvcm1Db250cm9sTmFtZVwiIFtlbnRpdHldPVwiX0VudGl0eVwiIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRcIj48L2RmLWR5bmFtaWM+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvZm9ybT4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUcsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQU1uRCxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQ1Msc0JBQTZDLEVBQzVDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxvQkFBeUM7UUFIMUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFHakQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFD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VUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzdELElBQUksR0FBRyxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3pHO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUdELHFCQUFxQjtJQUNyQixDQUFDOzhHQXJHVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpTkFHQSxnQkFBZ0IsMkNDZnZELGl1RUFzQ087OzJGRDFCTSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsMEJBQTBCO3dMQU9tQyxjQUFjO3NCQUFwRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBZ0IxRCxNQUFNO3NCQURoQixLQUFLO2dCQWNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkKCdGb3JtRHluYW1pY1JlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIEZvcm1EeW5hbWljUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgXG4gICkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZmllbGRHcm91cExpc3QubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgfVxuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGZvcm1Db250cm9sTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbnRyb2xOYW1lJylcbiAgfVxuICAvKirpgInmi6nnmoTooajljZXkv6Hmga8gKi9cbiAgX3NlbGVjdGVkX2NvcHk6YW55XG4gIF9zZWxlY3RlZDogYW55XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgaWYodikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2IHx8ICcnO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRfY29weT12XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICAgIH1cbiAgIFxuICB9XG5cblxuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KClcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMuX0VudGl0eSkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sTmFtZS52YWx1ZSkge1xuICAgICAgICB0aGlzLl9FbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lOiB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0WzBdPy5uYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgdGhpcy5fRW50aXR5LnNldENvbnRyb2woJ25hbWUnLCBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWV8fCcnLCB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldICxcbiAgICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgICAgfSkpXG4gICAgfVxuICB9XG5cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ25hbWUnKVxuICB9XG5cbiAgbmFtZUlucHV0Qmx1cihldmVudCl7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgdGhpcy5uYW1lSW5wdXQucGF0Y2hWYWx1ZSh2YWx1ZSlcbiAgfVxuXG4gIC8qKuWtl+auteagh+etvmlucHV05aSx5Y675qCH54K555Sf5oiQ5a2X5q615ZCN5a2XICovXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgbGV0IHBpbnlpbiA9IHRoaXMuX0Ntc0FwaVNlcnZpY2UuY2hpbmVzZVRvUGlueWluKHZhbHVlKVxuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dFxuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVyblxuICAgIG5hbWVJbnB1dC5wYXRjaFZhbHVlKHBpbnlpbilcbiAgfVxuICAvKirlrprkuYnlvILmraXpqozor4Hmlrnms5UgKi9cbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGlmIChjdHJsLnZhbHVlID09IHRoaXMuX3NlbGVjdGVkPy5uYW1lfHwhY3RybC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UubmFtZUV4aXN0cyhjdHJsLnZhbHVlKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkTmFtZXswfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG4gIGZvcm1Db250cm9sTmFtZUNoYW5nZSgpe1xuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX0VudGl0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3JvdXBJZFwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7J0Ntczo6T3B0aW9uYWxHcm91cGluZycgfCBhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGlzcGxheU5hbWVcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkRGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoaW5wdXQpPVwibmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tdGV4dFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGROYW1lSGVscFRleHQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmb3JtQ29udHJvbE5hbWVcIj57eydDbXM6OkZpZWxkVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiIChjaGFuZ2UpPVwiZm9ybUNvbnRyb2xOYW1lQ2hhbmdlKClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX0VudGl0eS52YWx1ZS5mb3JtQ29udHJvbE5hbWUmJl9FbnRpdHlcIj4gXG4gICAgICAgIDxkZi1keW5hbWljIFt0eXBlXT1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lXCIgW2VudGl0eV09XCJfRW50aXR5XCIgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiPjwvZGYtZHluYW1pYz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuPC9mb3JtPiJdfQ==
@@ -1,18 +1,18 @@
1
1
  import { FormGroup, Validators } from "@angular/forms";
2
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
3
  constructor(data) {
4
+ /**分组id */
5
+ this.groupId = ['', []];
6
+ /**字段名称 Display name of this field */
7
+ this.displayName = ['', [Validators.required]];
8
+ /**字段唯一名称 Unique Name*/
9
+ this.name = ['', [Validators.required]];
10
+ /**描述 说明 */
11
+ this.description = ['', []];
12
+ /**FieldType字段类型 表单控件名称 */
13
+ this.formControlName = [undefined, [Validators.required]];
14
+ /**动态表单配置 */
15
+ this.formConfiguration = new FormGroup({});
16
16
  if (data) {
17
17
  for (const key in data) {
18
18
  if (data.hasOwnProperty(key)) {
@@ -22,4 +22,4 @@ export class CreateOrUpdateFieldInputBase {
22
22
  }
23
23
  }
24
24
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsVUFBVTtJQUNWLE9BQU8sR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4QixxQ0FBcUM7SUFDckMsV0FBVyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFL0MsdUJBQXVCO0lBQ3ZCLElBQUksR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRXhDLFdBQVc7SUFDWCxXQUFXLEdBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFNUIsMEJBQTBCO0lBQzFCLGVBQWUsR0FBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRTFELFlBQVk7SUFDWixpQkFBaUIsR0FBMEIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7SUFHNUQsWUFBWSxJQUFtQztRQUMzQyxJQUFJLElBQUksRUFBRTtZQUNOLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0o7U0FDSjtJQUVMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSB7XHJcbiAgICAvKirliIbnu4RpZCAqL1xyXG4gICAgZ3JvdXBJZDogYW55ID0gWycnLCBbXV07XHJcblxyXG4gICAgLyoq5a2X5q615ZCN56ewIERpc3BsYXkgbmFtZSBvZiB0aGlzIGZpZWxkICovXHJcbiAgICBkaXNwbGF5TmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG5cclxuICAgIC8qKuWtl+auteWUr+S4gOWQjeensCBVbmlxdWUgTmFtZSovXHJcbiAgICBuYW1lOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV07XHJcblxyXG4gICAgLyoq5o+P6L+wIOivtOaYjiAqL1xyXG4gICAgZGVzY3JpcHRpb246IGFueSA9IFsnJywgW11dO1xyXG5cclxuICAgIC8qKkZpZWxkVHlwZeWtl+auteexu+WeiyDooajljZXmjqfku7blkI3np7AgKi9cclxuICAgIGZvcm1Db250cm9sTmFtZTogYW55ID0gW3VuZGVmaW5lZCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuXHJcbiAgICAvKirliqjmgIHooajljZXphY3nva4gKi9cclxuICAgIGZvcm1Db25maWd1cmF0aW9uOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQgPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSkge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG59XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLXVwZGF0ZS1maWVsZC1pbnB1dC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsTUFBTSxPQUFPLDRCQUE0QjtJQW9CckMsWUFBWSxJQUFtQztRQW5CL0MsVUFBVTtRQUNWLFlBQU8sR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4QixxQ0FBcUM7UUFDckMsZ0JBQVcsR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRS9DLHVCQUF1QjtRQUN2QixTQUFJLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV4QyxXQUFXO1FBQ1gsZ0JBQVcsR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1QiwwQkFBMEI7UUFDMUIsb0JBQWUsR0FBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTFELFlBQVk7UUFDWixzQkFBaUIsR0FBMEIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7UUFJeEQsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFFTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIHtcclxuICAgIC8qKuWIhue7hGlkICovXHJcbiAgICBncm91cElkOiBhbnkgPSBbJycsIFtdXTtcclxuXHJcbiAgICAvKirlrZfmrrXlkI3np7AgRGlzcGxheSBuYW1lIG9mIHRoaXMgZmllbGQgKi9cclxuICAgIGRpc3BsYXlOYW1lOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV07XHJcblxyXG4gICAgLyoq5a2X5q615ZSv5LiA5ZCN56ewIFVuaXF1ZSBOYW1lKi9cclxuICAgIG5hbWU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuXHJcbiAgICAvKirmj4/ov7Ag6K+05piOICovXHJcbiAgICBkZXNjcmlwdGlvbjogYW55ID0gWycnLCBbXV07XHJcblxyXG4gICAgLyoqRmllbGRUeXBl5a2X5q6157G75Z6LIOihqOWNleaOp+S7tuWQjeensCAqL1xyXG4gICAgZm9ybUNvbnRyb2xOYW1lOiBhbnkgPSBbdW5kZWZpbmVkLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG5cclxuICAgIC8qKuWKqOaAgeihqOWNlemFjee9riAqL1xyXG4gICAgZm9ybUNvbmZpZ3VyYXRpb246IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IG5ldyBGb3JtR3JvdXAoe30pXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,7 +1,15 @@
1
- import { Component, ViewChild, inject } from '@angular/core';
1
+ import { Component, ElementRef, ViewChild, inject } from '@angular/core';
2
+ import { FormBuilder } from '@angular/forms';
3
+ import { FieldAbstractsService } from '../../../services/field-abstracts.service';
2
4
  import { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';
5
+ import { ActivatedRoute, Router } from '@angular/router';
6
+ import { FieldAdminService } from '../../../proxy/admin/fields';
7
+ import { ToasterService } from '@abp/ng.theme.shared';
8
+ import { Location } from '@angular/common';
9
+ import { LocalizationService } from '@abp/ng.core';
3
10
  import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
4
11
  import { ECmsComponent } from '../../../enums';
12
+ import { CmsApiService } from '../../../services';
5
13
  import { UpdateListService } from '../../../services/update-list.service';
6
14
  import * as i0 from "@angular/core";
7
15
  import * as i1 from "@angular/forms";
@@ -15,16 +23,7 @@ import * as i8 from "../../../services";
15
23
  import * as i9 from "@ngx-validate/core";
16
24
  import * as i10 from "@abp/ng.components/page";
17
25
  import * as i11 from "./create-or-edit-field.component";
18
- class EditFieldComponent {
19
- fb;
20
- _FieldAbstractsService;
21
- _FieldAdminService;
22
- route;
23
- toaster;
24
- _location;
25
- _LocalizationService;
26
- _CmsApiService;
27
- router;
26
+ export class EditFieldComponent {
28
27
  constructor(fb, _FieldAbstractsService, _FieldAdminService, route, toaster, _location, _LocalizationService, _CmsApiService, router) {
29
28
  this.fb = fb;
30
29
  this._FieldAbstractsService = _FieldAbstractsService;
@@ -35,15 +34,10 @@ class EditFieldComponent {
35
34
  this._LocalizationService = _LocalizationService;
36
35
  this._CmsApiService = _CmsApiService;
37
36
  this.router = router;
37
+ /**字段id */
38
+ this.fieldId = '';
39
+ this._UpdateListService = inject(UpdateListService);
38
40
  }
39
- /**表单实体 */
40
- newEntity;
41
- /**字段id */
42
- fieldId = '';
43
- /**字段详情 */
44
- fieldDetails;
45
- /**获取提交按钮替身,用于真实触发表单提交 */
46
- submitclick;
47
41
  async ngOnInit() {
48
42
  const _fieldId = this.route.snapshot.params.id;
49
43
  if (_fieldId) {
@@ -72,7 +66,6 @@ class EditFieldComponent {
72
66
  submitclickBtn() {
73
67
  this.submitclick.nativeElement.click();
74
68
  }
75
- _UpdateListService = inject(UpdateListService);
76
69
  /**保存表单 */
77
70
  save() {
78
71
  let input = this.newEntity.value;
@@ -86,16 +79,15 @@ class EditFieldComponent {
86
79
  });
87
80
  }));
88
81
  }
89
- 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 }, { token: i8.CmsApiService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EditFieldComponent, selector: "cms-edit-field", providers: [
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", 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 }, { token: i8.CmsApiService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: EditFieldComponent, selector: "cms-edit-field", providers: [
91
84
  {
92
85
  provide: EXTENSIONS_IDENTIFIER,
93
86
  useValue: ECmsComponent.FieldsEdit,
94
87
  },
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()\">\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 <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\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: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: ["Entity", "selected"] }, { kind: "pipe", type: i7.LocalizationPipe, name: "abpLocalization" }] });
88
+ ], 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 <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\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: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: ["Entity", "selected"] }, { kind: "pipe", type: i7.LocalizationPipe, name: "abpLocalization" }] }); }
96
89
  }
97
- export { EditFieldComponent };
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditFieldComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: EditFieldComponent, decorators: [{
99
91
  type: Component,
100
92
  args: [{ selector: 'cms-edit-field', providers: [
101
93
  {
@@ -103,8 +95,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
103
95
  useValue: ECmsComponent.FieldsEdit,
104
96
  },
105
97
  ], 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 <div class=\"card\">\n <div class=\"card-body\">\n <cms-create-or-edit-field [Entity]=\"newEntity\" [selected]=\"fieldDetails\"></cms-create-or-edit-field>\n </div>\n </div>\n </div>\n </abp-page>\n</form>" }]
106
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FieldAbstractsService }, { type: i3.FieldAdminService }, { type: i4.ActivatedRoute }, { type: i5.ToasterService }, { type: i6.Location }, { type: i7.LocalizationService }, { type: i8.CmsApiService }, { type: i4.Router }]; }, propDecorators: { submitclick: [{
98
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FieldAbstractsService }, { type: i3.FieldAdminService }, { type: i4.ActivatedRoute }, { type: i5.ToasterService }, { type: i6.Location }, { type: i7.LocalizationService }, { type: i8.CmsApiService }, { type: i4.Router }], propDecorators: { submitclick: [{
107
99
  type: ViewChild,
108
100
  args: ['submitclick', { static: true }]
109
101
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1uRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFXYSxrQkFBa0I7SUFHbkI7SUFDRDtJQUNBO0lBQ0M7SUFDQTtJQUNEO0lBQ0E7SUFDQTtJQUNDO0lBVFYsWUFDVSxFQUFlLEVBQ2hCLHNCQUE2QyxFQUM3QyxrQkFBcUMsRUFDcEMsS0FBcUIsRUFDckIsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLGNBQTZCLEVBQzVCLE1BQWM7UUFSZCxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNwQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHlCQUFvQixHQUFwQixv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YSxDQUFDLFVBQVU7YUFDbkM7U0FDRixvSkN2QkgsMm9CQVlPOztTRGFNLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQVg5QixTQUFTOytCQUNFLGdCQUFnQixhQUdmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTt5QkFDbkM7cUJBQ0Y7MFVBMEIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlIH0gZnJvbSAnLi9jcmVhdGUtb3ItdXBkYXRlLWZpZWxkLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXBkYXRlLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0VkaXQsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHVibGljIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkgeyB9XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG5cbiAgLyoq5a2X5q61aWQgKi9cbiAgZmllbGRJZDogc3RyaW5nID0gJyc7XG5cbiAgLyoq5a2X5q616K+m5oOFICovXG4gIGZpZWxkRGV0YWlsczogYW55O1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgX2ZpZWxkSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5pZDtcbiAgICBpZiAoX2ZpZWxkSWQpIHtcbiAgICAgIHRoaXMuZmllbGRJZCA9IF9maWVsZElkO1xuICAgICAgdGhpcy5uZXdFbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZUZpZWxkSW5wdXRCYXNlKCkpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KCksXG4gICAgICAgIHRoaXMuZ2V0RmllbGRFZGl0KCksXG4gICAgICBdKTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmZpZWxkRGV0YWlscyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKuiOt+WPluWtl+auteivpuaDhSAqL1xuICBnZXRGaWVsZEVkaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLmdldCh0aGlzLmZpZWxkSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICByZXMuZ3JvdXBJZCA9IHJlcy5ncm91cElkID8gcmVzLmdyb3VwSWQgOiAnJ1xuICAgICAgICB0aGlzLmZpZWxkRGV0YWlscyA9IHJlc1xuICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpIHtcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxuICB9XG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlPWluamVjdChVcGRhdGVMaXN0U2VydmljZSlcblxuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZVxuICAgIGlmICghdGhpcy5uZXdFbnRpdHkudmFsaWQpIHJldHVyblxuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLmZpZWxkSWQsIGlucHV0KS5zdWJzY3JpYmUoKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY21zL2FkbWluL2ZpZWxkc2BdKTtcbiAgICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgICAgfSk7XG4gICAgfSkpXG4gIH1cblxuICBcblxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkVkaXRGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtZmllbGQtcGFnZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInAtMyBiZy13aGl0ZSByb3VuZGVkLTFcIj4gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1maWVsZCBbRW50aXR5XT1cIm5ld0VudGl0eVwiIFtzZWxlY3RlZF09XCJmaWVsZERldGFpbHNcIj48L2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FicC1wYWdlPlxuPC9mb3JtPiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7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RUFBRTtnQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDOzhHQXRFVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix5Q0FQbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDbkM7U0FDRixvSkN2QkgsMm9CQVlPOzsyRkRhTSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO3lCQUNuQztxQkFDRjt3VEEwQjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGRhdGUtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVkaXQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRmllbGRzRWRpdCxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7IH1cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcblxuICAvKirlrZfmrrVpZCAqL1xuICBmaWVsZElkOiBzdHJpbmcgPSAnJztcblxuICAvKirlrZfmrrXor6bmg4UgKi9cbiAgZmllbGREZXRhaWxzOiBhbnk7XG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBfZmllbGRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmlkO1xuICAgIGlmIChfZmllbGRJZCkge1xuICAgICAgdGhpcy5maWVsZElkID0gX2ZpZWxkSWQ7XG4gICAgICB0aGlzLm5ld0VudGl0eSA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UoKSk7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRGcm9tQ29udHJvbExpc3QoKSxcbiAgICAgICAgdGhpcy5nZXRGaWVsZEVkaXQoKSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgIC4uLnRoaXMuZmllbGREZXRhaWxzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5a2X5q616K+m5oOFICovXG4gIGdldEZpZWxkRWRpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZmllbGRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHJlcy5ncm91cElkID0gcmVzLmdyb3VwSWQgPyByZXMuZ3JvdXBJZCA6ICcnXG4gICAgICAgIHRoaXMuZmllbGREZXRhaWxzID0gcmVzXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq6Kem5Y+R5o+Q5Lqk5oyJ6ZKuICovXG4gIHN1Ym1pdGNsaWNrQnRuKCkge1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpXG4gIH1cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2U9aW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuXG4gIC8qKuS/neWtmOihqOWNlSAqL1xuICBzYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuXG4gICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuZmllbGRJZCwgaW5wdXQpLnN1YnNjcmliZSgocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vZmllbGRzYF0pO1xuICAgICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgICB9KTtcbiAgICB9KSlcbiAgfVxuXG4gIFxuXG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1maWVsZC1wYWdlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicC0zIGJnLXdoaXRlIHJvdW5kZWQtMVwiPiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkIFtFbnRpdHldPVwibmV3RW50aXR5XCIgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsc1wiPjwvY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYWJwLXBhZ2U+XG48L2Zvcm0+Il19
@@ -1,6 +1,10 @@
1
1
  import { Component, EventEmitter, Output } from '@angular/core';
2
- import { Validators } from '@angular/forms';
2
+ import { FormBuilder, Validators } from '@angular/forms';
3
+ import { FieldGroupAdminService } from '../../../proxy/admin/fields';
4
+ import { ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
3
5
  import { finalize } from 'rxjs/operators';
6
+ import { FieldAbstractsService } from '../../../services/field-abstracts.service';
7
+ import { LocalizationService } from '@abp/ng.core';
4
8
  import * as i0 from "@angular/core";
5
9
  import * as i1 from "@angular/forms";
6
10
  import * as i2 from "../../../proxy/admin/fields";
@@ -9,13 +13,7 @@ import * as i4 from "../../../services/field-abstracts.service";
9
13
  import * as i5 from "@abp/ng.core";
10
14
  import * as i6 from "@angular/common";
11
15
  import * as i7 from "@ngx-validate/core";
12
- class FieldGroupComponent {
13
- fb;
14
- _FieldGroupAdminService;
15
- toaster;
16
- confirmation;
17
- _FieldAbstractsService;
18
- _LocalizationService;
16
+ export class FieldGroupComponent {
19
17
  constructor(fb, _FieldGroupAdminService, toaster, confirmation, _FieldAbstractsService, _LocalizationService) {
20
18
  this.fb = fb;
21
19
  this._FieldGroupAdminService = _FieldGroupAdminService;
@@ -23,23 +21,19 @@ class FieldGroupComponent {
23
21
  this.confirmation = confirmation;
24
22
  this._FieldAbstractsService = _FieldAbstractsService;
25
23
  this._LocalizationService = _LocalizationService;
24
+ /**表单已存在的值 */
25
+ this.selected = {};
26
+ /**选择的字段分组id */
27
+ this.fieldGroupId = '';
28
+ /**创建分组模态框状态 */
29
+ this.createGroupOpen = false;
30
+ /**用于确定模态的繁忙状态是否为真 */
31
+ this.modalBusy = false;
32
+ /**编辑分组模态框状态 */
33
+ this.editGroupOpen = false;
34
+ /**点击分组回调 */
35
+ this.OnGroupClickBack = new EventEmitter();
26
36
  }
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
37
  ngOnInit() {
44
38
  this._FieldAbstractsService.getfieldGroupList();
45
39
  }
@@ -111,14 +105,13 @@ class FieldGroupComponent {
111
105
  this.fieldGroupId = event;
112
106
  this.OnGroupClickBack.emit(event);
113
107
  }
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" }] });
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", 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 }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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
110
  }
117
- export { FieldGroupComponent };
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldGroupComponent, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FieldGroupComponent, decorators: [{
119
112
  type: Component,
120
113
  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: [{
114
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FieldGroupAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FieldAbstractsService }, { type: i5.LocalizationService }], propDecorators: { OnGroupClickBack: [{
122
115
  type: Output
123
116
  }] } });
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
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7QUFPbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNVLEVBQWUsRUFDZix1QkFBK0MsRUFDL0MsT0FBdUIsRUFDdkIsWUFBaUMsRUFDbEMsc0JBQTZDLEVBQzdDLG9CQUF5QztRQUx4QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF3QjtRQUMvQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDbEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx5QkFB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QWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRHcm91cEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2ZpZWxkcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgZmluYWxpemV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZC1ncm91cC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkgeyB9XG5cblxuICAvKirliJvlu7rliIbnu4TooajljZUgKi9cbiAgY3JlYXRlRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiDnvJbovpHliIbnu4TooajljZUqL1xuICBlZGl0R3JvdXBGb3JtOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoq6KGo5Y2V5bey5a2Y5Zyo55qE5YC8ICovXG4gIHNlbGVjdGVkID0ge30gYXMgYW55O1xuXG4gIC8qKumAieaLqeeahOWtl+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