@dignite-ng/expand.cms 3.0.0-rc.48 → 3.0.0-rc.50
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.
- package/config/providers/route.provider.d.ts +2 -3
- package/esm2022/config/providers/route.provider.mjs +3 -4
- package/esm2022/lib/cms-routing.module.mjs +3 -3
- package/esm2022/lib/cms.module.mjs +4 -4
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +18 -16
- package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +9 -1
- package/esm2022/lib/components/admin/entries/create.component.mjs +25 -63
- package/esm2022/lib/components/admin/entries/edit.component.mjs +28 -14
- package/esm2022/lib/components/admin/entries/entries.component.mjs +11 -16
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +54 -54
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +44 -69
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +130 -73
- package/esm2022/lib/components/admin/fields/fields-form-config.mjs +50 -0
- package/esm2022/lib/components/admin/fields/fields-group.component.mjs +128 -0
- package/esm2022/lib/components/admin/fields/fields.component.mjs +61 -57
- package/esm2022/lib/components/admin/fields/index.mjs +3 -3
- package/esm2022/lib/components/admin/sections/create-or-edit-sections-modal.component.mjs +17 -15
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +59 -86
- package/esm2022/lib/components/admin/sections/sections.component.mjs +11 -14
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +32 -23
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +26 -11
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +50 -26
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +10 -10
- package/esm2022/lib/components/dynamic-form/table/table-view.component.mjs +3 -2
- package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +42 -37
- package/esm2022/lib/resolvers/table-default-entity-props.mjs +4 -4
- package/esm2022/lib/services/fields-data.service.mjs +100 -0
- package/esm2022/lib/services/form-controls.service.mjs +12 -10
- package/esm2022/lib/services/index.mjs +3 -4
- package/esm2022/lib/services/keys-convert-to-lowercase.service.mjs +40 -0
- package/fesm2022/dignite-ng-expand.cms-config.mjs +2 -3
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +811 -784
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/cms.module.d.ts +2 -2
- package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +3 -1
- package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +8 -0
- package/lib/components/admin/entries/create.component.d.ts +1 -2
- package/lib/components/admin/entries/edit.component.d.ts +1 -2
- package/lib/components/admin/entries/entries.component.d.ts +2 -1
- package/lib/components/admin/fields/create-field.component.d.ts +19 -22
- package/lib/components/admin/fields/create-or-edit-field.component.d.ts +20 -26
- package/lib/components/admin/fields/edit-field.component.d.ts +24 -30
- package/lib/components/admin/fields/fields-form-config.d.ts +19 -0
- package/lib/components/admin/fields/fields-group.component.d.ts +48 -0
- package/lib/components/admin/fields/fields.component.d.ts +18 -16
- package/lib/components/admin/fields/index.d.ts +1 -2
- package/lib/components/admin/sections/create-or-edit-sections-modal.component.d.ts +4 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +14 -9
- package/lib/components/admin/sections/sections.component.d.ts +1 -3
- package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +10 -4
- package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +7 -3
- package/lib/components/dynamic-form/table/table-config.component.d.ts +15 -5
- package/lib/components/dynamic-form/table/table-control.component.d.ts +3 -3
- package/lib/components/dynamic-form/table/table-view.component.d.ts +2 -1
- package/lib/resolvers/page-default-toolbar-actions.d.ts +9 -6
- package/lib/services/fields-data.service.d.ts +45 -0
- package/lib/services/form-controls.service.d.ts +3 -1
- package/lib/services/index.d.ts +2 -3
- package/lib/services/keys-convert-to-lowercase.service.d.ts +16 -0
- package/package.json +1 -1
- package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +0 -18
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +0 -144
- package/esm2022/lib/constants/styles.mjs +0 -19
- package/esm2022/lib/services/appent-content.mjs +0 -15
- package/esm2022/lib/services/cms-api.service.mjs +0 -94
- package/esm2022/lib/services/cms.service.mjs +0 -22
- package/esm2022/lib/services/field-abstracts.service.mjs +0 -48
- package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +0 -15
- package/lib/components/admin/fields/field-group.component.d.ts +0 -58
- package/lib/constants/styles.d.ts +0 -2
- package/lib/services/appent-content.d.ts +0 -1
- package/lib/services/cms-api.service.d.ts +0 -23
- package/lib/services/cms.service.d.ts +0 -10
- package/lib/services/field-abstracts.service.d.ts +0 -20
|
@@ -1,92 +1,92 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-inferrable-types */
|
|
1
2
|
/* eslint-disable @angular-eslint/component-selector */
|
|
2
3
|
import { EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';
|
|
4
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
5
|
+
import { ECmsComponent } from '../../../enums';
|
|
3
6
|
import { LocalizationService } from '@abp/ng.core';
|
|
4
7
|
import { ToasterService } from '@abp/ng.theme.shared';
|
|
5
|
-
import { Location } from '@angular/common';
|
|
6
|
-
import { Component, inject, ViewChild, ElementRef } from '@angular/core';
|
|
7
8
|
import { FormBuilder } from '@angular/forms';
|
|
8
|
-
import { CmsApiService } from '../../../services';
|
|
9
|
-
import { ECmsComponent } from '../../../enums';
|
|
10
|
-
import { UpdateListService } from '@dignite-ng/expand.core';
|
|
11
|
-
import { CreateOrUpdateFieldInputBase } from './create-or-update-field-input-base';
|
|
12
|
-
import { ValidatorsService } from '@dignite-ng/expand.core';
|
|
13
|
-
import { finalize } from 'rxjs';
|
|
14
|
-
import { FieldAdminService } from '../../../proxy/dignite/cms/admin/fields';
|
|
15
9
|
import { ActivatedRoute } from '@angular/router';
|
|
10
|
+
import { DigniteValidatorsService, LocationBackService, UpdateListService, } from '@dignite-ng/expand.core';
|
|
11
|
+
import { FieldsFormConfig, fieldToFormLabelMap } from './fields-form-config';
|
|
12
|
+
import { FieldsDataService } from '../../../services/fields-data.service';
|
|
16
13
|
import * as i0 from "@angular/core";
|
|
17
14
|
import * as i1 from "@angular/forms";
|
|
18
|
-
import * as i2 from "../../../
|
|
15
|
+
import * as i2 from "../../../services/fields-data.service";
|
|
19
16
|
import * as i3 from "@abp/ng.theme.shared";
|
|
20
|
-
import * as i4 from "@
|
|
17
|
+
import * as i4 from "@dignite-ng/expand.core";
|
|
21
18
|
import * as i5 from "@abp/ng.core";
|
|
22
|
-
import * as i6 from "
|
|
19
|
+
import * as i6 from "@angular/router";
|
|
23
20
|
import * as i7 from "@ngx-validate/core";
|
|
24
21
|
import * as i8 from "@abp/ng.components/page";
|
|
25
22
|
import * as i9 from "./create-or-edit-field.component";
|
|
26
23
|
export class CreateFieldComponent {
|
|
27
|
-
constructor(fb,
|
|
24
|
+
constructor(fb, _service, toaster, _LocationBackService, _LocalizationService, route, _UpdateListService, _DigniteValidatorsService) {
|
|
28
25
|
this.fb = fb;
|
|
29
|
-
this.
|
|
26
|
+
this._service = _service;
|
|
30
27
|
this.toaster = toaster;
|
|
31
|
-
this.
|
|
28
|
+
this._LocationBackService = _LocationBackService;
|
|
32
29
|
this._LocalizationService = _LocalizationService;
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* title:true,
|
|
41
|
-
* }
|
|
42
|
-
*/
|
|
43
|
-
this.formValidation = '';
|
|
44
|
-
}
|
|
45
|
-
get groupIdInput() {
|
|
46
|
-
return this.newEntity?.get('groupId');
|
|
30
|
+
this.route = route;
|
|
31
|
+
this._UpdateListService = _UpdateListService;
|
|
32
|
+
this._DigniteValidatorsService = _DigniteValidatorsService;
|
|
33
|
+
/**表单是否触发验证 */
|
|
34
|
+
this.formValidation = false;
|
|
35
|
+
/**是否提交 */
|
|
36
|
+
this.isSubmitted = false;
|
|
47
37
|
}
|
|
48
|
-
ngOnInit() {
|
|
38
|
+
async ngOnInit() {
|
|
49
39
|
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
50
40
|
//Add 'implements OnInit' to the class.
|
|
51
41
|
const { groupId } = this.route.snapshot.queryParams;
|
|
52
|
-
this.
|
|
42
|
+
this.formEntity = this.fb.group(new FieldsFormConfig());
|
|
53
43
|
if (groupId) {
|
|
54
44
|
this.groupIdInput.patchValue(groupId);
|
|
55
45
|
}
|
|
56
46
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.
|
|
47
|
+
/**字段分组控件 */
|
|
48
|
+
get groupIdInput() {
|
|
49
|
+
return this.formEntity?.get('groupId');
|
|
60
50
|
}
|
|
61
|
-
|
|
51
|
+
/**提交表单 */
|
|
62
52
|
save() {
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
console.log(this.formEntity.value, '提交表单', this.formEntity);
|
|
54
|
+
this.formValidation = true;
|
|
55
|
+
if (!this.formEntity.valid) {
|
|
56
|
+
this._DigniteValidatorsService.getErrorMessage({
|
|
57
|
+
form: this.formEntity,
|
|
58
|
+
map: fieldToFormLabelMap
|
|
59
|
+
});
|
|
68
60
|
return;
|
|
69
|
-
|
|
70
|
-
if (
|
|
61
|
+
}
|
|
62
|
+
if (this.isSubmitted)
|
|
71
63
|
return;
|
|
72
|
-
this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.
|
|
76
|
-
}))
|
|
77
|
-
.subscribe(res => {
|
|
64
|
+
this.isSubmitted = true;
|
|
65
|
+
const input = this.formEntity.value;
|
|
66
|
+
this._service.createField(input).subscribe(() => {
|
|
67
|
+
this.reset();
|
|
78
68
|
this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
|
|
79
|
-
this.
|
|
69
|
+
// this._LocationBackService.back();
|
|
70
|
+
this._LocationBackService.backTo({
|
|
71
|
+
url: `/cms/admin/fields`,
|
|
72
|
+
replenish: '/create',
|
|
73
|
+
});
|
|
80
74
|
this._UpdateListService.updateList();
|
|
75
|
+
}, () => {
|
|
76
|
+
this.reset();
|
|
81
77
|
});
|
|
82
78
|
}
|
|
83
|
-
|
|
79
|
+
/**重置表单 */
|
|
80
|
+
reset() {
|
|
81
|
+
this.isSubmitted = false;
|
|
82
|
+
}
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.FieldsDataService }, { token: i3.ToasterService }, { token: i4.LocationBackService }, { token: i5.LocalizationService }, { token: i6.ActivatedRoute }, { token: i4.UpdateListService }, { token: i4.DigniteValidatorsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
84
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateFieldComponent, selector: "cms-create-field", providers: [
|
|
85
85
|
{
|
|
86
86
|
provide: EXTENSIONS_IDENTIFIER,
|
|
87
87
|
useValue: ECmsComponent.FieldsCreate,
|
|
88
88
|
},
|
|
89
|
-
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n
|
|
89
|
+
], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\r\n <form [formGroup]=\"formEntity\" [class.was-validated]=\"formValidation\" (submit)=\"save()\">\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <cms-create-or-edit-field [service]=\"_service\" [form]=\"formEntity\"></cms-create-or-edit-field>\r\n </form>\r\n</abp-page>", 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.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i9.CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: ["selected", "service", "form"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
90
90
|
}
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateFieldComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
@@ -95,9 +95,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
95
95
|
provide: EXTENSIONS_IDENTIFIER,
|
|
96
96
|
useValue: ECmsComponent.FieldsCreate,
|
|
97
97
|
},
|
|
98
|
-
], template: "<abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\n
|
|
99
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.
|
|
98
|
+
], template: "<abp-page [title]=\"'Cms::CreateField' | abpLocalization\" [toolbar]=\"true\">\r\n <form [formGroup]=\"formEntity\" [class.was-validated]=\"formValidation\" (submit)=\"save()\">\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n <cms-create-or-edit-field [service]=\"_service\" [form]=\"formEntity\"></cms-create-or-edit-field>\r\n </form>\r\n</abp-page>" }]
|
|
99
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FieldsDataService }, { type: i3.ToasterService }, { type: i4.LocationBackService }, { type: i5.LocalizationService }, { type: i6.ActivatedRoute }, { type: i4.UpdateListService }, { type: i4.DigniteValidatorsService }], propDecorators: { submitclick: [{
|
|
100
100
|
type: ViewChild,
|
|
101
101
|
args: ['submitclick', { static: true }]
|
|
102
102
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2NyZWF0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9jcmVhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7O0FBYTFFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDVSxFQUFlLEVBQ2hCLFFBQTJCLEVBQzFCLE9BQXVCLEVBQ3hCLG9CQUF5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WUFBWTthQUNyQztTQUNGLG9KQzFCSCw0WkFLVzs7MkZEdUJFLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxZQUFZO3lCQUNyQztxQkFDRjtxVEFrQzJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsICBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7XHJcbiAgRGlnbml0ZVZhbGlkYXRvcnNTZXJ2aWNlLFxyXG4gIExvY2F0aW9uQmFja1NlcnZpY2UsXHJcbiAgVXBkYXRlTGlzdFNlcnZpY2UsXHJcbn0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZHNGb3JtQ29uZmlnLCBmaWVsZFRvRm9ybUxhYmVsTWFwIH0gZnJvbSAnLi9maWVsZHMtZm9ybS1jb25maWcnO1xyXG5pbXBvcnQgeyBGaWVsZHNEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy1kYXRhLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5GaWVsZHNDcmVhdGUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBfc2VydmljZTogRmllbGRzRGF0YVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9Mb2NhdGlvbkJhY2tTZXJ2aWNlOiBMb2NhdGlvbkJhY2tTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZTogVXBkYXRlTGlzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9EaWduaXRlVmFsaWRhdG9yc1NlcnZpY2U6IERpZ25pdGVWYWxpZGF0b3JzU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9DYWxsZWQgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yLCBpbml0aWFsaXppbmcgaW5wdXQgcHJvcGVydGllcywgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIG5nT25DaGFuZ2VzLlxyXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25Jbml0JyB0byB0aGUgY2xhc3MuXHJcbiAgICBjb25zdCB7IGdyb3VwSWQgfSA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBGaWVsZHNGb3JtQ29uZmlnKCkpO1xyXG4gICAgaWYgKGdyb3VwSWQpIHtcclxuICAgICAgdGhpcy5ncm91cElkSW5wdXQucGF0Y2hWYWx1ZShncm91cElkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKuihqOWNleWunuS9kyAqL1xyXG4gIGZvcm1FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoq6KGo5Y2V5piv5ZCm6Kem5Y+R6aqM6K+BICovXHJcbiAgZm9ybVZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoq5piv5ZCm5o+Q5LqkICovXHJcbiAgaXNTdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXHJcbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoq5a2X5q615YiG57uE5o6n5Lu2ICovXHJcbiAgZ2V0IGdyb3VwSWRJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnZ3JvdXBJZCcpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgLyoq5o+Q5Lqk6KGo5Y2VICovXHJcbiAgc2F2ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybUVudGl0eS52YWx1ZSwgJ+aPkOS6pOihqOWNlScsIHRoaXMuZm9ybUVudGl0eSk7XHJcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5mb3JtRW50aXR5LnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX0RpZ25pdGVWYWxpZGF0b3JzU2VydmljZS5nZXRFcnJvck1lc3NhZ2Uoe1xyXG4gICAgICAgIGZvcm06dGhpcy5mb3JtRW50aXR5LFxyXG4gICAgICAgIG1hcDpmaWVsZFRvRm9ybUxhYmVsTWFwXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc1N1Ym1pdHRlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZm9ybUVudGl0eS52YWx1ZTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY3JlYXRlRmllbGQoaW5wdXQpLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcclxuICAgICAgICAvLyB0aGlzLl9Mb2NhdGlvbkJhY2tTZXJ2aWNlLmJhY2soKTtcclxuICAgICAgICB0aGlzLl9Mb2NhdGlvbkJhY2tTZXJ2aWNlLmJhY2tUbyh7XHJcbiAgICAgICAgICB1cmw6IGAvY21zL2FkbWluL2ZpZWxkc2AsXHJcbiAgICAgICAgICByZXBsZW5pc2g6ICcvY3JlYXRlJyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuICAvKirph43nva7ooajljZUgKi9cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpDcmVhdGVGaWVsZCcgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1FbnRpdHlcIiBbY2xhc3Mud2FzLXZhbGlkYXRlZF09XCJmb3JtVmFsaWRhdGlvblwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmb3JtLXR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxyXG4gICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQgICBbc2VydmljZV09XCJfc2VydmljZVwiIFtmb3JtXT1cImZvcm1FbnRpdHlcIj48L2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuPC9hYnAtcGFnZT4iXX0=
|
|
@@ -1,82 +1,57 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/component-selector */
|
|
2
2
|
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { CmsApiService } from '../../../services/cms-api.service';
|
|
3
|
+
import { FormGroup } from '@angular/forms';
|
|
4
|
+
import { ToPinyinService } from '@dignite-ng/expand.core';
|
|
6
5
|
import { LocalizationService } from '@abp/ng.core';
|
|
7
|
-
import { FieldAdminService } from '../../../proxy/dignite/cms/admin/fields';
|
|
8
6
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "
|
|
10
|
-
import * as i2 from "
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "@
|
|
13
|
-
import * as i5 from "@
|
|
14
|
-
import * as i6 from "@
|
|
15
|
-
import * as i7 from "@ngx-validate/core";
|
|
16
|
-
import * as i8 from "@dignite-ng/expand.dynamic-form";
|
|
7
|
+
import * as i1 from "@dignite-ng/expand.core";
|
|
8
|
+
import * as i2 from "@abp/ng.core";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "@ngx-validate/core";
|
|
12
|
+
import * as i6 from "@dignite-ng/expand.dynamic-form";
|
|
17
13
|
export class CreateOrEditFieldComponent {
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
20
|
-
this._CmsApiService = _CmsApiService;
|
|
21
|
-
this._FieldAdminService = _FieldAdminService;
|
|
14
|
+
constructor(_ToPinyinService, _LocalizationService) {
|
|
15
|
+
this._ToPinyinService = _ToPinyinService;
|
|
22
16
|
this._LocalizationService = _LocalizationService;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
set Entity(v) {
|
|
28
|
-
if (v) {
|
|
29
|
-
this._Entity = v;
|
|
30
|
-
this.dataLoaded();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
get formControlName() {
|
|
34
|
-
return this._Entity.get('formControlName');
|
|
17
|
+
/**字段分组列表 */
|
|
18
|
+
this.getfieldGroupsList = [];
|
|
19
|
+
/**表单控件列表 */
|
|
20
|
+
this.fromControlList = [];
|
|
35
21
|
}
|
|
36
22
|
set selected(v) {
|
|
37
|
-
|
|
38
|
-
this._selected = v || '';
|
|
39
|
-
this._selected_copy = v;
|
|
40
|
-
}
|
|
23
|
+
this._selected = v;
|
|
41
24
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
validators: Validators.required,
|
|
54
|
-
asyncValidators: [this.repetitionAsyncValidator()],
|
|
55
|
-
updateOn: 'change',
|
|
56
|
-
}));
|
|
57
|
-
setTimeout(() => {
|
|
58
|
-
// this.submitclick.nativeElement.click();
|
|
59
|
-
}, 0);
|
|
25
|
+
set form(v) {
|
|
26
|
+
this.formEntity = v;
|
|
27
|
+
}
|
|
28
|
+
async ngAfterContentInit() {
|
|
29
|
+
//Called after ngOnInit when the component's or directive's content has been initialized.
|
|
30
|
+
//Add 'implements AfterContentInit' to the class.
|
|
31
|
+
this.getfieldGroupsList = await this.service.getfieldGroups();
|
|
32
|
+
this.fromControlList = await this.service.getControlsfieldTypes();
|
|
33
|
+
this.nameInput.addAsyncValidators([this.repetitionAsyncValidator()]);
|
|
34
|
+
if (!this.formControlNameInput.value && this.fromControlList.length > 0) {
|
|
35
|
+
this.formControlNameInput.patchValue(this.fromControlList[0].name);
|
|
60
36
|
}
|
|
37
|
+
this.submitclick.nativeElement.click();
|
|
61
38
|
}
|
|
62
|
-
/**name表单控件 */
|
|
63
39
|
get nameInput() {
|
|
64
|
-
return this.
|
|
40
|
+
return this.formEntity?.get('name');
|
|
65
41
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.nameInput.patchValue(value);
|
|
42
|
+
get formControlNameInput() {
|
|
43
|
+
return this.formEntity?.get('formControlName');
|
|
69
44
|
}
|
|
70
45
|
/**字段标签input失去标点生成字段名字 */
|
|
71
46
|
disPlayNameInputBlur(event) {
|
|
72
47
|
const value = event.target.value;
|
|
73
|
-
const pinyin = this.
|
|
48
|
+
const pinyin = this._ToPinyinService.get(value);
|
|
74
49
|
const nameInput = this.nameInput;
|
|
75
50
|
if (nameInput.value)
|
|
76
51
|
return;
|
|
77
52
|
nameInput.patchValue(pinyin);
|
|
78
53
|
}
|
|
79
|
-
|
|
54
|
+
/**异步验证,验证别名 */
|
|
80
55
|
repetitionAsyncValidator() {
|
|
81
56
|
return (ctrl) => {
|
|
82
57
|
return new Promise(resolve => {
|
|
@@ -84,7 +59,7 @@ export class CreateOrEditFieldComponent {
|
|
|
84
59
|
resolve(null);
|
|
85
60
|
return;
|
|
86
61
|
}
|
|
87
|
-
this.
|
|
62
|
+
this.service.nameExists(ctrl.value).subscribe(res => {
|
|
88
63
|
if (res) {
|
|
89
64
|
resolve({
|
|
90
65
|
repetition: this._LocalizationService.instant(`Cms::FieldName{0}AlreadyExist`, ctrl.value),
|
|
@@ -97,20 +72,20 @@ export class CreateOrEditFieldComponent {
|
|
|
97
72
|
});
|
|
98
73
|
};
|
|
99
74
|
}
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.FieldAbstractsService }, { token: i2.CmsApiService }, { token: i3.FieldAdminService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { Entity: "Entity", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div [formGroup]=\"_Entity\" >\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"mb-3\">\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-3\">\n <label class=\"form-label\" for=\"displayName\">{{'AbpDynamicForm::FieldDisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required (blur)=\"disPlayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'AbpDynamicForm::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 <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\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-3\">\n <label class=\"form-label\" for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"formControlNameChange($event)\">\n <ng-container *ngFor=\"let item of _FieldAbstractsService.fromControlList;let i =index\">\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"_Entity.value.formControlName&&_Entity\"> \n <df-dynamic [type]=\"_Entity.value.formControlName\" [selected]=\"_selected\" [entity]=\"_Entity\" ></df-dynamic>\n </ng-container>\n</div>", 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.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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { 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", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.ToPinyinService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { selected: "selected", service: "service", form: "form" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.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: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.DynamicConfigComponent, selector: "df-dynamic-config", inputs: ["type", "selected", "form"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
104
77
|
}
|
|
105
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
|
|
106
79
|
type: Component,
|
|
107
|
-
args: [{ selector: 'cms-create-or-edit-field', template: "<div
|
|
108
|
-
}], ctorParameters: () => [{ type: i1.
|
|
109
|
-
type: ViewChild,
|
|
110
|
-
args: ['submitclick', { static: true }]
|
|
111
|
-
}], Entity: [{
|
|
80
|
+
args: [{ selector: 'cms-create-or-edit-field', template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>" }]
|
|
81
|
+
}], ctorParameters: () => [{ type: i1.ToPinyinService }, { type: i2.LocalizationService }], propDecorators: { selected: [{
|
|
112
82
|
type: Input
|
|
113
|
-
}],
|
|
83
|
+
}], service: [{
|
|
114
84
|
type: Input
|
|
85
|
+
}], form: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], submitclick: [{
|
|
88
|
+
type: ViewChild,
|
|
89
|
+
args: ['submitclick', { static: true }]
|
|
115
90
|
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUVULFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7QUFNNUUsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDO1FBSDFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBRWpELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxNQUFN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SSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2QsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDN0QsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixPQUFPLENBQUM7NEJBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQzNDLCtCQUErQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUNYO3lCQUNGLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztJQUMzQixDQUFDOzhHQS9HVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4T0NuQnZDLGcyRUFzQ007OzJGRG5CTywwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsMEJBQTBCO3dMQVVRLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFlL0IsTUFBTTtzQkFEaEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL2ZpZWxkcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtb3ItZWRpdC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3liqjmgIHooajljZXphY3nva7nu4Tku7YgKi9cbiAgLy8gQFZpZXdDaGlsZCgnRm9ybUR5bmFtaWNSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAvLyBGb3JtRHluYW1pY1JlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKirojrflj5bmj5DkuqTmjInpkq7mm7/ouqvvvIznlKjkuo7nnJ/lrp7op6blj5HooajljZXmj5DkuqQgKi9cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX0ZpZWxkQWJzdHJhY3RzU2VydmljZTogRmllbGRBYnN0cmFjdHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgaWYgKHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldGZpZWxkR3JvdXBMaXN0KCk7XG4gICAgfVxuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgRW50aXR5KHY6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9FbnRpdHkgPSB2O1xuICAgICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gICAgfVxuICB9XG4gIGdldCBmb3JtQ29udHJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db250cm9sTmFtZScpO1xuICB9XG4gIC8qKumAieaLqeeahOihqOWNleS/oeaBryAqL1xuICBfc2VsZWN0ZWRfY29weTogYW55O1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2IHx8ICcnO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRfY29weSA9IHY7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgYXdhaXQgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldEZyb21Db250cm9sTGlzdCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9FbnRpdHkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbE5hbWUudmFsdWUpIHtcbiAgICAgICAgdGhpcy5fRW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGZvcm1Db250cm9sTmFtZTogdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdFswXT8ubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9FbnRpdHkuc2V0Q29udHJvbChcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWUgfHwgJycsIHtcbiAgICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldLFxuICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ25hbWUnKTtcbiAgfVxuXG4gIG5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLm5hbWVJbnB1dC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKuWtl+auteagh+etvmlucHV05aSx5Y675qCH54K555Sf5oiQ5a2X5q615ZCN5a2XICovXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGNvbnN0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVybjtcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG4gIC8qKuWumuS5ieW8guatpemqjOivgeaWueazlSAqL1xuICByZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGN0cmw6IEFic3RyYWN0Q29udHJvbFxuICAgICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZSA9PSB0aGlzLl9zZWxlY3RlZD8ubmFtZSB8fCAhY3RybC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoY3RybC52YWx1ZSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBgQ21zOjpGaWVsZE5hbWV7MH1BbHJlYWR5RXhpc3RgLFxuICAgICAgICAgICAgICAgIGN0cmwudmFsdWVcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgZm9ybUNvbnRyb2xOYW1lQ2hhbmdlKGV2ZW50KSB7XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJfRW50aXR5XCIgPlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImdyb3VwSWRcIj57eydDbXM6OkZpZWxkR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJncm91cElkXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3snQ21zOjpPcHRpb25hbEdyb3VwaW5nJyB8IGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZmllbGRHcm91cExpc3RcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLm5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkaXNwbGF5TmFtZVwiPnt7J0FicER5bmFtaWNGb3JtOjpGaWVsZERpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHJlcXVpcmVkIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPnt7J0FicER5bmFtaWNGb3JtOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoaW5wdXQpPVwibmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZC1ibG9jayBcIj57eydBYnBEeW5hbWljRm9ybTo6RmllbGROYW1lSGVscFRleHQnIHwgYWJwTG9jYWxpemF0aW9ufX08L3NtYWxsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkZXNjcmlwdGlvblwiPnt7J0Ntczo6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZvcm1Db250cm9sTmFtZVwiPnt7J0Ntczo6RmllbGRUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybUNvbnRyb2xOYW1lXCIgKGNoYW5nZSk9XCJmb3JtQ29udHJvbE5hbWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZyb21Db250cm9sTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV8YWJwTG9jYWxpemF0aW9ufX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX0VudGl0eS52YWx1ZS5mb3JtQ29udHJvbE5hbWUmJl9FbnRpdHlcIj4gXG4gICAgICAgIDxkZi1keW5hbWljIFt0eXBlXT1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lXCIgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiIFtlbnRpdHldPVwiX0VudGl0eVwiID48L2RmLWR5bmFtaWM+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBb0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUcsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBZ0MsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0IsZ0JBQWlDLEVBQVMsb0JBQXdDO1FBQWxGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBOEJ0RyxZQUFZO1FBQ1osdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBQy9CLFlBQVk7UUFDWixvQkFBZSxHQUFVLEVBQUUsQ0FBQztJQWpDNkUsQ0FBQztJQUcxRyxJQUNXLFFBQVEsQ0FBQyxDQUFNO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFLRCxJQUNXLElBQUksQ0FBQyxDQUF3QjtRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBSUQsS0FBSyxDQUFDLGtCQUFrQjtRQUN0Qix5RkFBeUY7UUFDekYsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxJQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQU9ELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFnQixDQUFDO0lBQ3JELENBQUM7SUFDRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFnQixDQUFDO0lBQ2hFLENBQUM7SUFLRCx5QkFBeUI7SUFDekIsb0JBQW9CLENBQUMsS0FBSztRQUN4QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU87UUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZTtJQUNmLHdCQUF3QjtRQUN0QixPQUFPLENBQ0wsSUFBcUIsRUFDbUQsRUFBRTtZQUMxRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZCxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbEQsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixPQUFPLENBQUM7NEJBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQzNDLCtCQUErQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUNYO3lCQUNGLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDOzhHQS9FVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4UENadkMsMnlGQThDTTs7MkZEbENPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSwwQkFBMEI7c0hBU3pCLFFBQVE7c0JBRGxCLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFJSyxJQUFJO3NCQURkLEtBQUs7Z0JBZ0NzQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsICBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb1BpbnlpblNlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9Ub1BpbnlpblNlcnZpY2U6IFRvUGlueWluU2VydmljZSxwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOkxvY2FsaXphdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIF9zZWxlY3RlZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlOiBhbnk7XHJcblxyXG4gIGZvcm1FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZm9ybSh2OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuZm9ybUVudGl0eSA9IHY7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vQ2FsbGVkIGFmdGVyIG5nT25Jbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIG9yIGRpcmVjdGl2ZSdzIGNvbnRlbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0JyB0byB0aGUgY2xhc3MuXHJcbiAgICB0aGlzLmdldGZpZWxkR3JvdXBzTGlzdCA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRmaWVsZEdyb3VwcygpO1xyXG4gICAgdGhpcy5mcm9tQ29udHJvbExpc3QgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q29udHJvbHNmaWVsZFR5cGVzKCk7XHJcbiAgICB0aGlzLm5hbWVJbnB1dC5hZGRBc3luY1ZhbGlkYXRvcnMoW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldKVxyXG4gICAgaWYoIXRoaXMuZm9ybUNvbnRyb2xOYW1lSW5wdXQudmFsdWUmJnRoaXMuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aD4wKXtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbE5hbWVJbnB1dC5wYXRjaFZhbHVlKHRoaXMuZnJvbUNvbnRyb2xMaXN0WzBdLm5hbWUpXHJcbiAgICB9XHJcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxyXG4gIH1cclxuXHJcbiAgLyoq5a2X5q615YiG57uE5YiX6KGoICovXHJcbiAgZ2V0ZmllbGRHcm91cHNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIC8qKuihqOWNleaOp+S7tuWIl+ihqCAqL1xyXG4gIGZyb21Db250cm9sTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgZ2V0IG5hbWVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnbmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgZm9ybUNvbnRyb2xOYW1lSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRW50aXR5Py5nZXQoJ2Zvcm1Db250cm9sTmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXHJcbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoq5a2X5q615qCH562+aW5wdXTlpLHljrvmoIfngrnnlJ/miJDlrZfmrrXlkI3lrZcgKi9cclxuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBjb25zdCBwaW55aW4gPSB0aGlzLl9Ub1BpbnlpblNlcnZpY2UuZ2V0KHZhbHVlKTtcclxuICAgIGNvbnN0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xyXG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuO1xyXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcclxuICB9XHJcblxyXG4gIC8qKuW8guatpemqjOivge+8jOmqjOivgeWIq+WQjSAqL1xyXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGN0cmw6IEFic3RyYWN0Q29udHJvbCxcclxuICAgICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGN0cmwudmFsdWUgPT0gdGhpcy5fc2VsZWN0ZWQ/Lm5hbWUgfHwgIWN0cmwudmFsdWUpIHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5uYW1lRXhpc3RzKGN0cmwudmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpGaWVsZE5hbWV7MH1BbHJlYWR5RXhpc3RgLFxyXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1FbnRpdHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImdyb3VwSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3snQ21zOjpPcHRpb25hbEdyb3VwaW5nJyB8IGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRmaWVsZEdyb3Vwc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkaXNwbGF5TmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGREaXNwbGF5TmFtZScgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGROYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrIFwiPnt7J0FicER5bmFtaWNGb3JtOjpGaWVsZE5hbWVIZWxwVGV4dCcgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9zbWFsbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+Knt7J0Ntczo6RmllbGRUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZnJvbUNvbnRyb2xMaXN0O2xldCBpID1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV8YWJwTG9jYWxpemF0aW9ufX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgQGlmKGZvcm1Db250cm9sTmFtZUlucHV0LnZhbHVlJiZmb3JtRW50aXR5KXtcclxuICAgICAgICAgICAgPGRmLWR5bmFtaWMtY29uZmlnIFtmb3JtR3JvdXBdPVwiZm9ybUVudGl0eVwiIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRcIiBbdHlwZV09XCJmb3JtQ29udHJvbE5hbWVJbnB1dC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtRW50aXR5XCI+PC9kZi1keW5hbWljLWNvbmZpZz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uIGZvcm0tdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|