@dignite-ng/expand.cms 0.0.37 → 0.0.39
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/README.md +24 -24
- package/esm2022/config/cms-config.module.mjs +4 -4
- package/esm2022/config/providers/route.provider.mjs +9 -19
- package/esm2022/lib/cms-routing.module.mjs +4 -9
- package/esm2022/lib/cms.module.mjs +8 -11
- package/esm2022/lib/components/admin/domains/domains.component.mjs +10 -10
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +29 -42
- package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +20 -20
- package/esm2022/lib/components/admin/entries/create.component.mjs +16 -29
- package/esm2022/lib/components/admin/entries/edit.component.mjs +16 -29
- package/esm2022/lib/components/admin/entries/entries.component.mjs +38 -50
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +12 -27
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +3 -14
- package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +13 -13
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +11 -29
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +15 -25
- package/esm2022/lib/components/admin/fields/fields.component.mjs +22 -31
- package/esm2022/lib/components/admin/index.mjs +1 -2
- package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +15 -15
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +26 -26
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +57 -94
- package/esm2022/lib/components/admin/sections/sections.component.mjs +21 -90
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +11 -22
- package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +7 -7
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +9 -19
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +14 -30
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +16 -16
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +7 -22
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +7 -29
- package/esm2022/lib/components/dynamic-form/table/table-config.mjs +15 -15
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +6 -20
- package/esm2022/lib/constants/styles.mjs +2 -1
- package/esm2022/lib/proxy/admin/domains/domain-admin.service.mjs +18 -19
- package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +8 -9
- package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +56 -57
- package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +31 -32
- package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +27 -28
- package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +27 -28
- package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +37 -38
- package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +17 -18
- package/esm2022/lib/services/cms-api.service.mjs +3 -4
- package/esm2022/lib/services/cms.service.mjs +4 -5
- package/esm2022/lib/services/field-abstracts.service.mjs +7 -9
- package/esm2022/lib/services/simple-reuse-strategy.mjs +51 -33
- package/esm2022/lib/services/update-list.service.mjs +6 -5
- package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +1 -1
- package/fesm2022/dignite-ng-expand.cms-config.mjs +11 -21
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +677 -1022
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/components/admin/entries/create.component.d.ts +2 -3
- package/lib/components/admin/entries/edit.component.d.ts +2 -3
- package/lib/components/admin/fields/create-field.component.d.ts +1 -3
- package/lib/components/admin/fields/edit-field.component.d.ts +2 -3
- package/lib/components/admin/fields/fields.component.d.ts +1 -3
- package/lib/components/admin/index.d.ts +0 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +2 -3
- package/lib/components/admin/sections/sections.component.d.ts +1 -34
- package/lib/constants/styles.d.ts +1 -1
- package/lib/services/simple-reuse-strategy.d.ts +7 -5
- package/package.json +1 -1
- package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +0 -18
- package/esm2022/lib/components/admin/sites/index.mjs +0 -3
- package/esm2022/lib/components/admin/sites/sites.component.mjs +0 -29
- package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +0 -8
- package/lib/components/admin/sites/index.d.ts +0 -2
- package/lib/components/admin/sites/sites.component.d.ts +0 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToasterService } from '@abp/ng.theme.shared';
|
|
2
2
|
import { ElementRef, OnInit } from '@angular/core';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { ActivatedRoute
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { Location } from '@angular/common';
|
|
6
6
|
import { LocalizationService } from '@abp/ng.core';
|
|
7
7
|
import { EntryAdminService } from '../../../proxy/admin/entries';
|
|
@@ -12,8 +12,7 @@ export declare class CreateComponent implements OnInit {
|
|
|
12
12
|
private route;
|
|
13
13
|
private _EntryAdminService;
|
|
14
14
|
private _LocalizationService;
|
|
15
|
-
|
|
16
|
-
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _EntryAdminService: EntryAdminService, _LocalizationService: LocalizationService, router: Router);
|
|
15
|
+
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _EntryAdminService: EntryAdminService, _LocalizationService: LocalizationService);
|
|
17
16
|
private fb;
|
|
18
17
|
private _updateListService;
|
|
19
18
|
/**表单实体 */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToasterService } from '@abp/ng.theme.shared';
|
|
2
2
|
import { ElementRef, OnInit } from '@angular/core';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { ActivatedRoute
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { Location } from '@angular/common';
|
|
6
6
|
import { LocalizationService } from '@abp/ng.core';
|
|
7
7
|
import { EntryAdminService } from '../../../proxy/admin/entries';
|
|
@@ -11,9 +11,8 @@ export declare class EditComponent implements OnInit {
|
|
|
11
11
|
_location: Location;
|
|
12
12
|
private route;
|
|
13
13
|
private _EntryAdminService;
|
|
14
|
-
private router;
|
|
15
14
|
private _LocalizationService;
|
|
16
|
-
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _EntryAdminService: EntryAdminService,
|
|
15
|
+
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _EntryAdminService: EntryAdminService, _LocalizationService: LocalizationService);
|
|
17
16
|
private fb;
|
|
18
17
|
private _updateListService;
|
|
19
18
|
/**表单实体 */
|
|
@@ -5,7 +5,6 @@ import { FieldAdminService } from '../../../proxy/admin/fields';
|
|
|
5
5
|
import { Location } from '@angular/common';
|
|
6
6
|
import { LocalizationService } from '@abp/ng.core';
|
|
7
7
|
import { CmsApiService } from '../../../services';
|
|
8
|
-
import { Router } from '@angular/router';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
export declare class CreateFieldComponent {
|
|
11
10
|
private fb;
|
|
@@ -14,8 +13,7 @@ export declare class CreateFieldComponent {
|
|
|
14
13
|
_location: Location;
|
|
15
14
|
_LocalizationService: LocalizationService;
|
|
16
15
|
_CmsApiService: CmsApiService;
|
|
17
|
-
|
|
18
|
-
constructor(fb: FormBuilder, _FieldAdminService: FieldAdminService, toaster: ToasterService, _location: Location, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService, router: Router);
|
|
16
|
+
constructor(fb: FormBuilder, _FieldAdminService: FieldAdminService, toaster: ToasterService, _location: Location, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService);
|
|
19
17
|
private _UpdateListService;
|
|
20
18
|
/**表单实体 */
|
|
21
19
|
newEntity: FormGroup | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
3
|
import { FieldAbstractsService } from '../../../services/field-abstracts.service';
|
|
4
|
-
import { ActivatedRoute
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { FieldAdminService } from '../../../proxy/admin/fields';
|
|
6
6
|
import { ToasterService } from '@abp/ng.theme.shared';
|
|
7
7
|
import { Location } from '@angular/common';
|
|
@@ -17,8 +17,7 @@ export declare class EditFieldComponent implements OnInit {
|
|
|
17
17
|
_location: Location;
|
|
18
18
|
_LocalizationService: LocalizationService;
|
|
19
19
|
_CmsApiService: CmsApiService;
|
|
20
|
-
|
|
21
|
-
constructor(fb: FormBuilder, _FieldAbstractsService: FieldAbstractsService, _FieldAdminService: FieldAdminService, route: ActivatedRoute, toaster: ToasterService, _location: Location, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService, router: Router);
|
|
20
|
+
constructor(fb: FormBuilder, _FieldAbstractsService: FieldAbstractsService, _FieldAdminService: FieldAdminService, route: ActivatedRoute, toaster: ToasterService, _location: Location, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService);
|
|
22
21
|
/**表单实体 */
|
|
23
22
|
newEntity: FormGroup | undefined;
|
|
24
23
|
/**字段id */
|
|
@@ -4,7 +4,6 @@ import { OnInit } from '@angular/core';
|
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import { FieldAdminService, FieldDto, GetFieldsInput } from '../../../proxy/admin/fields';
|
|
6
6
|
import { ColumnMode } from "@swimlane/ngx-datatable";
|
|
7
|
-
import { CmsApiService } from '../../../services';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class FieldsComponent implements OnInit {
|
|
10
9
|
readonly list: ListService;
|
|
@@ -13,8 +12,7 @@ export declare class FieldsComponent implements OnInit {
|
|
|
13
12
|
private confirmation;
|
|
14
13
|
private _LocalizationService;
|
|
15
14
|
private router;
|
|
16
|
-
|
|
17
|
-
constructor(list: ListService, _FieldAdminService: FieldAdminService, toaster: ToasterService, confirmation: ConfirmationService, _LocalizationService: LocalizationService, router: Router, _CmsApiService: CmsApiService);
|
|
15
|
+
constructor(list: ListService, _FieldAdminService: FieldAdminService, toaster: ToasterService, confirmation: ConfirmationService, _LocalizationService: LocalizationService, router: Router);
|
|
18
16
|
private _UpdateListService;
|
|
19
17
|
/**表格单元格布局类型 */
|
|
20
18
|
ColumnMode: typeof ColumnMode;
|
|
@@ -4,7 +4,7 @@ import { FormArray, FormGroup } from '@angular/forms';
|
|
|
4
4
|
import { Location } from '@angular/common';
|
|
5
5
|
import { FieldGroupAdminService, FieldAdminService } from '../../../../proxy/admin/fields';
|
|
6
6
|
import { EntryTypeAdminService } from '../../../../proxy/admin/sections';
|
|
7
|
-
import { ActivatedRoute
|
|
7
|
+
import { ActivatedRoute } from '@angular/router';
|
|
8
8
|
import { LocalizationService } from '@abp/ng.core';
|
|
9
9
|
import { CmsApiService } from '../../../../services/cms-api.service';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -17,8 +17,7 @@ export declare class CreateOrEditComponent implements OnInit {
|
|
|
17
17
|
_EntryTypeAdminService: EntryTypeAdminService;
|
|
18
18
|
_LocalizationService: LocalizationService;
|
|
19
19
|
_CmsApiService: CmsApiService;
|
|
20
|
-
|
|
21
|
-
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _FieldGroupAdminService: FieldGroupAdminService, _FieldAdminService: FieldAdminService, _EntryTypeAdminService: EntryTypeAdminService, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService, router: Router);
|
|
20
|
+
constructor(toaster: ToasterService, _location: Location, route: ActivatedRoute, _FieldGroupAdminService: FieldGroupAdminService, _FieldAdminService: FieldAdminService, _EntryTypeAdminService: EntryTypeAdminService, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService);
|
|
22
21
|
private fb;
|
|
23
22
|
private _UpdateListService;
|
|
24
23
|
/**表单实体 */
|
|
@@ -7,7 +7,6 @@ import { ColumnMode } from '@swimlane/ngx-datatable';
|
|
|
7
7
|
import { SectionType } from '../../../proxy/sections';
|
|
8
8
|
import { CmsApiService } from '../../../services/cms-api.service';
|
|
9
9
|
import { Observable } from 'rxjs';
|
|
10
|
-
import { Router } from '@angular/router';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
export declare class SectionsComponent implements OnInit {
|
|
13
12
|
readonly list: ListService;
|
|
@@ -18,72 +17,40 @@ export declare class SectionsComponent implements OnInit {
|
|
|
18
17
|
_EntryTypeAdminService: EntryTypeAdminService;
|
|
19
18
|
_LocalizationService: LocalizationService;
|
|
20
19
|
_CmsApiService: CmsApiService;
|
|
21
|
-
|
|
22
|
-
constructor(list: ListService, _SectionAdminService: SectionAdminService, toaster: ToasterService, confirmation: ConfirmationService, fb: FormBuilder, _EntryTypeAdminService: EntryTypeAdminService, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService, router: Router);
|
|
20
|
+
constructor(list: ListService, _SectionAdminService: SectionAdminService, toaster: ToasterService, confirmation: ConfirmationService, fb: FormBuilder, _EntryTypeAdminService: EntryTypeAdminService, _LocalizationService: LocalizationService, _CmsApiService: CmsApiService);
|
|
23
21
|
private _UpdateListService;
|
|
24
|
-
/**跳转编辑 */
|
|
25
|
-
jumpSectionsEdit(row: any, item: any): void;
|
|
26
|
-
/**跳转新建 */
|
|
27
|
-
jumpSectionsCreate(row: any): void;
|
|
28
|
-
/**版块列表 */
|
|
29
22
|
siteList: any[];
|
|
30
|
-
/*** */
|
|
31
23
|
ColumnMode: typeof ColumnMode;
|
|
32
24
|
data: PagedResultDto<SectionDto>;
|
|
33
|
-
/** */
|
|
34
25
|
filters: GetSectionsInput;
|
|
35
|
-
/**获取页面列表 */
|
|
36
26
|
hookToQuery(): void;
|
|
37
27
|
ngOnInit(): Promise<void>;
|
|
38
|
-
/**站点切换 */
|
|
39
28
|
siteIdChange(): void;
|
|
40
|
-
/**创建版块模态框状态 */
|
|
41
29
|
visibleOpen: boolean;
|
|
42
|
-
/**用于确定模态的繁忙状态是否为真 */
|
|
43
30
|
modalBusy: boolean;
|
|
44
|
-
/**创建版块表单 */
|
|
45
31
|
createOrEditForm: FormGroup | undefined;
|
|
46
|
-
/**版块给定的表单值 */
|
|
47
32
|
selected: any;
|
|
48
33
|
_SectionType: typeof SectionType;
|
|
49
34
|
_sectionTypeOptions: ABP.Option<typeof SectionType>[];
|
|
50
|
-
/**表单控件模板-动态赋值表单控件 */
|
|
51
35
|
createOrEditModalSubmitBtn: ElementRef;
|
|
52
|
-
/**创建版块模态框状态改变 */
|
|
53
36
|
VisibleChange(event: any): void;
|
|
54
|
-
/**创建版块,打开模态框 */
|
|
55
37
|
createSectionBtn(): void;
|
|
56
|
-
/**编辑版块,打开模态框 */
|
|
57
38
|
editSectionBtn(row: any): void;
|
|
58
|
-
/**删除某个条目类型 */
|
|
59
39
|
deleteEntryType(row: any): void;
|
|
60
|
-
/**表单保存提交 */
|
|
61
40
|
createOrEditSave(): void;
|
|
62
|
-
/** */
|
|
63
41
|
createSave(): void;
|
|
64
|
-
/**创建版块保存 */
|
|
65
42
|
EditSave(): void;
|
|
66
|
-
/**删除版块 */
|
|
67
43
|
deletefield(row: any): void;
|
|
68
|
-
/**name表单控件 */
|
|
69
44
|
get displayNameInput(): AbstractControl<any, any>;
|
|
70
|
-
/**name表单控件 */
|
|
71
45
|
get nameInput(): AbstractControl<any, any>;
|
|
72
|
-
/**route表单控件 */
|
|
73
46
|
get routeInput(): AbstractControl<any, any>;
|
|
74
|
-
/**route表单控件 */
|
|
75
47
|
get templateInput(): AbstractControl<any, any>;
|
|
76
|
-
/**route表单控件 */
|
|
77
48
|
get typeInput(): AbstractControl<any, any>;
|
|
78
49
|
radiochange(): void;
|
|
79
|
-
/**字段标签input失去标点生成字段名字 */
|
|
80
50
|
disPlayNameInputBlur(event: any): void;
|
|
81
|
-
/**设置字段控件异步验证 */
|
|
82
51
|
setAsyncValidatorsFn(): void;
|
|
83
52
|
forbiddenNameValidator(): ValidatorFn;
|
|
84
|
-
/**定义异步验证方法 */
|
|
85
53
|
nameRepetitionAsyncValidator(): (ctrl: AbstractControl) => Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;
|
|
86
|
-
/**定义异步验证方法 */
|
|
87
54
|
routeRepetitionAsyncValidator(): (ctrl: AbstractControl) => Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;
|
|
88
55
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionsComponent, never>;
|
|
89
56
|
static ɵcmp: i0.ɵɵComponentDeclaration<SectionsComponent, "cms-sections", never, {}, {}, never, never, false, never>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "\n.lpx-content-container .lpx-content{min-height:calc(100vh - 34px);padding:1.25em 2em 1.25em}h1,h2,h3,h4,h5,h6{color:inherit}.lpx-settings .lpx-context-menu{overflow:auto}\na {\n text-decoration: unset;\n}\n:root .cellClassRight{\n transform: translateX(17px);\n background: var(--lpx-card-bg);\n}\n.form-label{\n font-size: 12px;\n}\n:root select{\n cursor: pointer; /* this will show the pointer when hovering */\n} \n\n";
|
|
1
|
+
declare const _default: "\n.lpx-content-container .lpx-content{min-height:calc(100vh - 34px);padding:1.25em 2em 1.25em}h1,h2,h3,h4,h5,h6{color:inherit}.lpx-settings .lpx-context-menu{overflow:auto}\na {\n text-decoration: unset;\n}\n:root .cellClassRight{\n transform: translateX(17px);\n background: var(--lpx-card-bg);\n}\n.form-label{\n font-size: 12px;\n}\n:root select{\n cursor: pointer; /* this will show the pointer when hovering */\n} \n.cdk-global-overlay-wrapper, .cdk-overlay-container {pointer-events: none;top: 0;left: 0;height: 100%;width: 100% }.cdk-overlay-container {position: fixed;z-index: 1000 }.cdk-overlay-container:empty {display: none }.cdk-global-overlay-wrapper, .cdk-overlay-connected-position-bounding-box, .cdk-overlay-pane {position: absolute;z-index: 1000;display: flex }.cdk-overlay-pane {pointer-events: auto;box-sizing: border-box;max-width: 100%;max-height: 100% }.cdk-overlay-backdrop {position: absolute;top: 0;bottom: 0;left: 0;right: 0;z-index: 1000;pointer-events: auto;transition: opacity .4s cubic-bezier(.25, .8, .25, 1);opacity: 0 }.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: 1 }.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {opacity: .6 }.cdk-overlay-dark-backdrop {background: rgba(0, 0, 0, .32) }.cdk-overlay-transparent-backdrop {transition: visibility 1ms linear, opacity 1ms linear;visibility: hidden;opacity: 1 }.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0;visibility: visible }.cdk-overlay-backdrop-noop-animation {transition: none }.cdk-overlay-connected-position-bounding-box {flex-direction: column;min-width: 1px;min-height: 1px }.cdk-global-scrollblock {position: fixed;width: 100%;overflow-y: scroll }.cdk-visually-hidden {border: 0;clip: rect(0 0 0 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;outline: 0;-webkit-appearance: none;-moz-appearance: none }.nz-overlay-transparent-backdrop, .nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {opacity: 0 }.ant-select, .ant-select-dropdown {margin: 0;line-height: 1.5715;box-sizing: border-box;font-feature-settings: 'tnum';list-style: none }.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft, .ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight, .ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpIn }.ant-select-dropdown.ant-select-tree-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;overflow: auto }.ant-select-dropdown-hidden, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before {display: none }.ant-select-dropdown {top: 100%;left: 0;position: relative;width: 100%;margin-top: 4px;margin-bottom: 4px;display: block }.ant-select-dropdown .cdk-virtual-scroll-content-wrapper {right: 0 }.ant-select-dropdown .full-width {contain: initial }.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper {position: static }.ant-select-dropdown .full-width .cdk-virtual-scroll-spacer {position: absolute;top: 0;width: 1px }.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft, .ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownIn }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {animation-name: antSlideUpOut }.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {animation-name: antSlideDownOut }\n\n";
|
|
2
2
|
export default _default;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
|
|
2
2
|
export declare class SimpleReuseStrategy implements RouteReuseStrategy {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
static cacheRouters: Map<string, DetachedRouteHandle>;
|
|
4
|
+
static deleteRouteCache(url: any): void;
|
|
5
|
+
static deleteAllRouteCache(): void;
|
|
6
|
+
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
|
|
7
|
+
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle;
|
|
6
8
|
shouldDetach(route: ActivatedRouteSnapshot): boolean;
|
|
7
9
|
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void;
|
|
8
10
|
shouldAttach(route: ActivatedRouteSnapshot): boolean;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
private getFullRouteURL;
|
|
12
|
+
private getRouteUrlPath;
|
|
11
13
|
}
|
package/package.json
CHANGED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Validators } from "@angular/forms";
|
|
2
|
-
export class CreateOrUpdateSitesInputBase {
|
|
3
|
-
displayName = ['', [Validators.required]];
|
|
4
|
-
name = ['', [Validators.required]];
|
|
5
|
-
host = ['https://', [Validators.required]];
|
|
6
|
-
isActive = [true, []];
|
|
7
|
-
languages = [[], [Validators.required]];
|
|
8
|
-
constructor(data) {
|
|
9
|
-
if (data) {
|
|
10
|
-
for (const key in data) {
|
|
11
|
-
if (data.hasOwnProperty(key)) {
|
|
12
|
-
this[key] = data[key];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1zaXRlcy1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zaXRlcy9jcmVhdGUtb3ItdXBkYXRlLXNpdGVzLWlucHV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsV0FBVyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEMsSUFBSSxHQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEQsUUFBUSxHQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLFNBQVMsR0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzNDLFlBQVksSUFBbUM7UUFDM0MsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVTaXRlc0lucHV0QmFzZSB7XHJcbiAgICBkaXNwbGF5TmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG4gICAgbmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG4gICAgaG9zdDogYW55ID0gWydodHRwczovLycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV07XHJcbiAgICBpc0FjdGl2ZTogYW55ID0gW3RydWUsIFtdXTtcclxuICAgIGxhbmd1YWdlczphbnkgPSBbW10sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDcmVhdGVPclVwZGF0ZVNpdGVzSW5wdXRCYXNlKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './sites.component';
|
|
2
|
-
export * from './create-or-update-sites-input-base';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NpdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxxQ0FBcUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2l0ZXMuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2l0ZXMtaW5wdXQtYmFzZSciXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { LIST_QUERY_DEBOUNCE_TIME, ListService } from '@abp/ng.core';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
|
|
4
|
-
import { ECmsComponent } from '../../../enums';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
class SitesComponent {
|
|
7
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SitesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SitesComponent, selector: "cms-sites", providers: [
|
|
9
|
-
ListService,
|
|
10
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
11
|
-
{
|
|
12
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
13
|
-
useValue: ECmsComponent.Sites,
|
|
14
|
-
},
|
|
15
|
-
], ngImport: i0, template: "<!-- <abp-page [title]=\"'Cms::Sites' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sites-page\">\n <div class=\"card\">\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Host' | abpLocalization\" prop=\"host\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy-MM-dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\n {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click)=\"EditSitesBtn(row)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"createSitesOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('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 <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"createOrEditForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Host' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"host\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"hostInput.errors?.repetition\">\n {{hostInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"flexRadioDefault1\" />\n <label class=\"form-check-label\" for=\"flexRadioDefault1\"> {{'Cms::IsActive' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Languages' | abpLocalization}}</label>\n <ul class=\"list-group list-group-flush\">\n <ng-container *ngFor=\"let item of languages; let i = index\">\n <li class=\"list-group-item d-flex justify-content-between align-items-center\">\n <div>\n <input class=\"form-check-input me-1\" type=\"checkbox\" [value]=\"item.cultureName\"\n id=\"firstRadio{{ i }}\" [checked]=\"item.ischecked\"\n (change)=\"languagesChange($event);!item.ischecked\" />\n <label class=\"form-check-label\" for=\"firstRadio{{ i }}\">{{ item.displayName\n }}</label>\n </div>\n <ng-container *ngIf=\"item.ischecked\">\n <div class=\"text-primary\" *ngIf=\"item.isDefault\">{{'Cms::Default' | abpLocalization}}\n </div>\n <div (click.stop)=\"setDefault(item)\" *ngIf=\"!item.isDefault\">\n {{'Cms::SetDefault' | abpLocalization}}</div>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"createModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .container-height{height:calc(100vh - 220px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] });
|
|
16
|
-
}
|
|
17
|
-
export { SitesComponent };
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SitesComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: 'cms-sites', providers: [
|
|
21
|
-
ListService,
|
|
22
|
-
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
23
|
-
{
|
|
24
|
-
provide: EXTENSIONS_IDENTIFIER,
|
|
25
|
-
useValue: ECmsComponent.Sites,
|
|
26
|
-
},
|
|
27
|
-
], template: "<!-- <abp-page [title]=\"'Cms::Sites' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"sites-page\">\n <div class=\"card\">\n <div class=\"card-body px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"list.get()\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card mb-0\">\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"'force'\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [scrollbarV]=\"true\" [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::IsActive' | abpLocalization\" prop=\"isActive\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <i class=\"fas fa-check text-success\" *ngIf=\"value\"></i>\n <i class=\"fas fa-times text-danger\" *ngIf=\"!value\"></i>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Host' | abpLocalization\" prop=\"host\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'yyyy-MM-dd hh:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-outline-primary btn-sm\" ngbDropdownToggle>\n {{'AbpUi::Actions' | abpLocalization}}\n </button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click)=\"EditSitesBtn(row)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n</abp-page>\n<abp-modal [(visible)]=\"createSitesOpen\" [busy]=\"modalBusy\" (visibleChange)=\"createGroupVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{selected?('AbpUi::Edit' | abpLocalization):('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 <ng-container *ngIf=\"createOrEditForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"createOrEditForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #createModalSubmit style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\n {{nameInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Host' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"host\" />\n <div class=\"text-danger invalid-feedback\" *ngIf=\"hostInput.errors?.repetition\">\n {{hostInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"isActive\"\n id=\"flexRadioDefault1\" />\n <label class=\"form-check-label\" for=\"flexRadioDefault1\"> {{'Cms::IsActive' | abpLocalization}}\n </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Languages' | abpLocalization}}</label>\n <ul class=\"list-group list-group-flush\">\n <ng-container *ngFor=\"let item of languages; let i = index\">\n <li class=\"list-group-item d-flex justify-content-between align-items-center\">\n <div>\n <input class=\"form-check-input me-1\" type=\"checkbox\" [value]=\"item.cultureName\"\n id=\"firstRadio{{ i }}\" [checked]=\"item.ischecked\"\n (change)=\"languagesChange($event);!item.ischecked\" />\n <label class=\"form-check-label\" for=\"firstRadio{{ i }}\">{{ item.displayName\n }}</label>\n </div>\n <ng-container *ngIf=\"item.ischecked\">\n <div class=\"text-primary\" *ngIf=\"item.isDefault\">{{'Cms::Default' | abpLocalization}}\n </div>\n <div (click.stop)=\"setDefault(item)\" *ngIf=\"!item.isDefault\">\n {{'Cms::SetDefault' | abpLocalization}}</div>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"createModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal> -->", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .container-height{height:calc(100vh - 220px)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zaXRlcy9zaXRlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NpdGVzL3NpdGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsd0JBQXdCLEVBQUUsV0FBVyxFQUF1QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFrQyxNQUFNLGVBQWUsQ0FBQztBQU0xRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSS9DLE1BYWEsY0FBYzt3R0FBZCxjQUFjOzRGQUFkLGNBQWMsb0NBVGQ7WUFDUCxXQUFXO1lBQ1gsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUN0RDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUs7YUFDOUI7U0FDRiwwQkN4QkgsMm1SQXVJZ0I7O1NEN0dILGNBQWM7NEZBQWQsY0FBYztrQkFiMUIsU0FBUzsrQkFDRSxXQUFXLGFBR1Y7d0JBQ1AsV0FBVzt3QkFDWCxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO3dCQUN0RDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUs7eUJBQzlCO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBDb25maWdTdGF0ZVNlcnZpY2UsIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgTGlzdFNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25Jbml0LCAgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vIGltcG9ydCB7IEdldFNpdGVzSW5wdXQsIFNpdGVEdG8sIFNpdGVBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zaXRlcyc7XG5pbXBvcnQgeyBDb2x1bW5Nb2RlIH0gZnJvbSBcIkBzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlU2l0ZXNJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2l0ZXMtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLXNpdGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2l0ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgICBMaXN0U2VydmljZSxcbiAgICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuU2l0ZXMsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaXRlc0NvbXBvbmVudCAge1xuICAvLyBjb25zdHJ1Y3RvcihcbiAgLy8gICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXG4gIC8vICAgLy8gcHJpdmF0ZSBfU2l0ZUFkbWluU2VydmljZTogU2l0ZUFkbWluU2VydmljZSxcbiAgLy8gICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAvLyAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAvLyAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAvLyAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgLy8gICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAvLyAgIHByaXZhdGUgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gIC8vICkge31cbiAgLy8gLyoq5Yib5bu656uZ54K55qih5oCB5qGG54q25oCBICovXG4gIC8vIGNyZWF0ZVNpdGVzT3BlbjogYm9vbGVhbiA9IGZhbHNlXG4gIC8vIC8qKueUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICAvLyBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZVxuICAvLyAvKirliJvlu7rnq5nngrnooajljZUgKi9cbiAgLy8gY3JlYXRlT3JFZGl0Rm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvLyBnZXQgbGFuZ3VhZ2VzSW5wdXQoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5nZXQoJ2xhbmd1YWdlcycpLnZhbHVlXG4gIC8vIH1cbiAgLy8gLyoq6K+t6KiA5YiX6KGoICovXG4gIC8vIGxhbmd1YWdlczogYW55W11cbiAgLy8gLyoq56uZ54K557uZ5a6a55qE6KGo5Y2V5YC8ICovXG4gIC8vIHNlbGVjdGVkOiBhbnlcbiAgLy8gLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICAvLyBAVmlld0NoaWxkKCdjcmVhdGVNb2RhbFN1Ym1pdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjcmVhdGVNb2RhbFN1Ym1pdDogRWxlbWVudFJlZjtcbiAgLy8gQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG4gIC8vIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPFNpdGVEdG8+ID0ge1xuICAvLyAgIGl0ZW1zOiBbXSxcbiAgLy8gICB0b3RhbENvdW50OiAwLFxuICAvLyB9O1xuICAvLyBmaWx0ZXJzID0ge30gYXMgR2V0U2l0ZXNJbnB1dDtcbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XG4gIC8vICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gIC8vIH1cbiAgLy8gaG9va1RvUXVlcnkoKSB7XG4gIC8vICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fU2l0ZUFkbWluU2VydmljZS5nZXRMaXN0KHtcbiAgLy8gICAgIC4uLnF1ZXJ5LFxuICAvLyAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAvLyAgIH0pO1xuICAvLyAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88U2l0ZUR0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcbiAgLy8gICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xuICAvLyB9XG4gIC8vIC8qKuWIoOmZpOWtl+autSAqL1xuICAvLyBkZWxldGVmaWVsZChyb3c6IGFueSkge1xuICAvLyAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXG4gIC8vICAgICByb3cuZGlzcGxheU5hbWUsXG4gIC8vICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgLy8gICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gIC8vICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAvLyAgICAgICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLmRlbGV0ZShyb3cuaWQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAvLyAgICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gIC8vICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZGApKTtcbiAgLy8gICAgICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIH1cbiAgLy8gICB9KTtcbiAgLy8gfVxuICAvLyAvKirliJvlu7rnq5nngrnmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgLy8gY3JlYXRlR3JvdXBWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gIC8vICAgaWYgKCFldmVudCkge1xuICAvLyAgICAgdGhpcy5zZWxlY3RlZCA9ICcnXG4gIC8vICAgICByZXR1cm5cbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gLyoq6YCJ5oup6K+t6KiA5pS55Y+YICovXG4gIC8vIGxhbmd1YWdlc0NoYW5nZShldmVudCkge1xuICAvLyAgIGxldCBjaGVja2VkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWRcbiAgLy8gICBsZXQgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWVcbiAgLy8gICB0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKGVsID0+IHtcbiAgLy8gICAgIGVsLmlzY2hlY2tlZCA9IGVsLmN1bHR1cmVOYW1lID09PSB2YWx1ZSA/IGNoZWNrZWQgOiBlbC5pc2NoZWNrZWQ7XG4gIC8vICAgfSlcbiAgLy8gICB0aGlzLnNldEZyb21MYW5nZ3VhZ2VzKClcbiAgLy8gfVxuICAvLyAvKirorr7nva7pu5jorqTor63oqIAgKi9cbiAgLy8gc2V0RGVmYXVsdChpdGVtcykge1xuICAvLyAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2goZWwgPT4ge1xuICAvLyAgICAgZWwuaXNEZWZhdWx0ID0gZWwuY3VsdHVyZU5hbWUgPT09IGl0ZW1zLmN1bHR1cmVOYW1lO1xuICAvLyAgIH0pXG4gIC8vICAgdGhpcy5zZXRGcm9tTGFuZ2d1YWdlcygpXG4gIC8vIH1cbiAgLy8gLyoq6K6+572u6KGo5Y2V5Lit55qE6K+t6KiAICovXG4gIC8vIHNldEZyb21MYW5nZ3VhZ2VzKCkge1xuICAvLyAgIGxldCBsYW5ndWFnZXNTZWxlY3QgPSB0aGlzLmxhbmd1YWdlcy5maWx0ZXIoZWwgPT4gZWwuaXNjaGVja2VkID09IHRydWUpXG4gIC8vICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtLnBhdGNoVmFsdWUoe1xuICAvLyAgICAgbGFuZ3VhZ2VzOiBsYW5ndWFnZXNTZWxlY3RcbiAgLy8gICB9KVxuICAvLyAgIGlmIChsYW5ndWFnZXNTZWxlY3QubGVuZ3RoID09IDApIHtcbiAgLy8gICAgIHRoaXMubGFuZ3VhZ2VzLmZvckVhY2goZWwgPT4ge1xuICAvLyAgICAgICBlbC5pc0RlZmF1bHQgPSBmYWxzZVxuICAvLyAgICAgfSlcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gLyoq6KGo5Y2V5L+d5a2Y5o+Q5LqkICovXG4gIC8vIGNyZWF0ZU9yRWRpdFNhdmUoKSB7XG4gIC8vICAgaWYgKCF0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsaWQpIHJldHVyblxuICAvLyAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gIC8vICAgICByZXR1cm4gdGhpcy5FZGl0U2F2ZSgpXG4gIC8vICAgfVxuICAvLyAgIHRoaXMuY3JlYXRlU2F2ZSgpXG4gIC8vIH1cbiAgLy8gLyoq5Yib5bu656uZ54K55L+d5a2YICovXG4gIC8vIGNyZWF0ZVNhdmUoKSB7XG4gIC8vICAgbGV0IGlucHV0ID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtLnZhbHVlXG4gIC8vICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlXG4gIC8vICAgaWYgKCF0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsaWQpIHJldHVyblxuICAvLyAgIHRoaXMuX1NpdGVBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgLy8gICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2VcbiAgLy8gICAgIHRoaXMuY3JlYXRlU2l0ZXNPcGVuID0gZmFsc2VcbiAgLy8gICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gIC8vICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gIC8vICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgLy8gICB9KVxuICAvLyB9XG4gIC8vIC8qKue8lui+keermeeCueS/neWtmCAqL1xuICAvLyBFZGl0U2F2ZSgpIHtcbiAgLy8gICBsZXQgaW5wdXQgPSB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0udmFsdWVcbiAgLy8gICB0aGlzLm1vZGFsQnVzeSA9IHRydWVcbiAgLy8gICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCBpbnB1dCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gIC8vICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlXG4gIC8vICAgICB0aGlzLmNyZWF0ZVNpdGVzT3BlbiA9IGZhbHNlXG4gIC8vICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAvLyAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXNLaXQ6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAvLyAgICAgdGhpcy5saXN0LmdldCgpXG4gIC8vICAgfSlcbiAgLy8gfVxuICAvLyAvKirliJvlu7rnq5nngrnmjInpkq4gKi9cbiAgLy8gY3JlYXRlU2l0ZXNCdG4oKSB7XG4gIC8vICAgdGhpcy5jcmVhdGVTaXRlc09wZW4gPSB0cnVlXG4gIC8vICAgdGhpcy5jcmVhdGVPckVkaXRGb3JtID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVTaXRlc0lucHV0QmFzZSgpKVxuICAvLyAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzRm4oKVxuICAvLyAgIHRoaXMubGFuZ3VhZ2VzID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgLy8gICB0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKChlbCwgaW5kZXgpID0+IHtcbiAgLy8gICAgIGVsLmlzRGVmYXVsdCA9IGluZGV4ID09PSAwXG4gIC8vICAgICBlbC5pc2NoZWNrZWQgPSBpbmRleCA9PT0gMFxuICAvLyAgIH0pXG4gIC8vICAgdGhpcy5zZXRGcm9tTGFuZ2d1YWdlcygpXG4gIC8vIH1cbiAgLy8gLyoq57yW6L6R56uZ54K55oyJ6ZKuICovXG4gIC8vIEVkaXRTaXRlc0J0bihyb3dzKSB7XG4gIC8vICAgdGhpcy5jcmVhdGVTaXRlc09wZW4gPSB0cnVlXG4gIC8vICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAvLyAgIHRoaXMuX1NpdGVBZG1pblNlcnZpY2UuZ2V0KHJvd3MuaWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAvLyAgICAgdGhpcy5zZWxlY3RlZCA9IHJvd3NcbiAgLy8gICAgIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yVXBkYXRlU2l0ZXNJbnB1dEJhc2UoKSlcbiAgLy8gICAgIHRoaXMuY3JlYXRlT3JFZGl0Rm9ybS5wYXRjaFZhbHVlKHJvd3MpXG4gIC8vICAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9yc0ZuKClcbiAgLy8gICAgIC8vIOabtOaWsOivreiogOWSjOm7mOiupOeKtuaAgSAgXG4gIC8vICAgICB0aGlzLnVwZGF0ZUxhbmd1YWdlcyhyZXMubGFuZ3VhZ2VzKTtcbiAgLy8gICAgIC8vIOiuvue9ruihqOWNleivreiogCAgXG4gIC8vICAgICB0aGlzLnNldEZyb21MYW5nZ3VhZ2VzKClcbiAgLy8gICB9KVxuICAvLyB9XG4gIC8vIC8qKuiuvue9ruWtl+auteaOp+S7tuW8guatpemqjOivgSAqL1xuICAvLyBzZXRBc3luY1ZhbGlkYXRvcnNGbigpIHtcbiAgLy8gICB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uc2V0Q29udHJvbCgnbmFtZScsIG5ldyBGb3JtQ29udHJvbCh0aGlzLm5hbWVJbnB1dC52YWx1ZSB8fCAnJywge1xuICAvLyAgICAgdmFsaWRhdG9yczogVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgLy8gICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5uYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXG4gIC8vICAgICB1cGRhdGVPbjogJ2JsdXInXG4gIC8vICAgfSkpXG4gIC8vIH1cbiAgLy8gLyoq5pu05paw6K+t6KiA5ZKM6buY6K6k54q25oCBICovXG4gIC8vIHVwZGF0ZUxhbmd1YWdlcyhzaXRlTGFuZ3VhZ2VzKSB7XG4gIC8vICAgdGhpcy5sYW5ndWFnZXMuZm9yRWFjaChsYW5ndWFnZSA9PiB7XG4gIC8vICAgICBjb25zdCBzaXRlTGFuZ3VhZ2UgPSBzaXRlTGFuZ3VhZ2VzLmZpbmQoc2wgPT4gc2wuY3VsdHVyZU5hbWUgPT09IGxhbmd1YWdlLmN1bHR1cmVOYW1lKTtcbiAgLy8gICAgIGlmIChzaXRlTGFuZ3VhZ2UpIHtcbiAgLy8gICAgICAgbGFuZ3VhZ2UuaXNjaGVja2VkID0gdHJ1ZTtcbiAgLy8gICAgICAgbGFuZ3VhZ2UuaXNEZWZhdWx0ID0gc2l0ZUxhbmd1YWdlLmlzRGVmYXVsdDtcbiAgLy8gICAgIH1cbiAgLy8gICB9KTtcbiAgLy8gfVxuICAvLyBnZXQgbmFtZUlucHV0KCkge1xuICAvLyAgIHJldHVybiB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uZ2V0KCduYW1lJylcbiAgLy8gfVxuICAvLyBnZXQgaG9zdElucHV0KCkge1xuICAvLyAgIHJldHVybiB0aGlzLmNyZWF0ZU9yRWRpdEZvcm0uZ2V0KCdob3N0JylcbiAgLy8gfVxuICAvLyAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICAvLyBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAvLyAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAvLyAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgLy8gICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXRcbiAgLy8gICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm5cbiAgLy8gICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pXG4gIC8vIH1cbiAgLy8gLyoqbmFtZeWumuS5ieiHquWumuS5ieW8guatpemqjOivgSAqL1xuICAvLyBuYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAvLyAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gIC8vICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gIC8vICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtPy5nZXQoJ25hbWUnKS52YWx1ZVxuICAvLyAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5uYW1lKSB7XG4gIC8vICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgLy8gICAgICAgICByZXR1cm5cbiAgLy8gICAgICAgfVxuICAvLyAgICAgICB0aGlzLl9TaXRlQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoc3Vic2x1Zykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gIC8vICAgICAgICAgaWYgKHJlcykge1xuICAvLyAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpTaXRlTmFtZXswfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAvLyAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIH0pO1xuICAvLyAgIH07XG4gIC8vIH1cbiAgLy8gLyoqaG9zdOWumuS5ieiHquWumuS5ieW8guatpemqjOivgSAqL1xuICAvLyBob3N0UmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAvLyAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gIC8vICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gIC8vICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5jcmVhdGVPckVkaXRGb3JtPy5nZXQoJ2hvc3QnKS52YWx1ZVxuICAvLyAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5ob3N0IHx8IHN1YnNsdWcgPT0gJ2h0dHBzOi8vJykge1xuICAvLyAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gIC8vICAgICAgICAgcmV0dXJuXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5ob3N0RXhpc3RzKHN1YnNsdWcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAvLyAgICAgICAgIGlmIChyZXMpIHtcbiAgLy8gICAgICAgICAgIHJlc29sdmUoeyByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtczo6U2l0ZUhvc3R7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgLy8gICAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgIH0pXG4gIC8vICAgICB9KTtcbiAgLy8gICB9O1xuICAvLyB9XG59XG4iLCI8IS0tIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6U2l0ZXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzaXRlcy1wYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTIgcHktc20tMiBib3JkZXItYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC0zXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMlwiIChjbGljayk9XCJsaXN0LmdldCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlIGNsYXNzPVwibWF0ZXJpYWwgY29udGFpbmVyLWhlaWdodFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Njcm9sbGJhclZdPVwidHJ1ZVwiIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJkaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6SXNBY3RpdmUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImlzQWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgdGV4dC1zdWNjZXNzXCIgKm5nSWY9XCJ2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiAqbmdJZj1cIiF2YWx1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpIb3N0JyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJob3N0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpDcmVhdGlvblRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImNyZWF0aW9uVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIHwgZGF0ZSA6ICd5eXl5LU1NLWRkIGhoOm1tOnNzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiRWRpdFNpdGVzQnRuKHJvdylcIj57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2FicC1wYWdlPlxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cImNyZWF0ZVNpdGVzT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cImNyZWF0ZUdyb3VwVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57e3NlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3JlYXRlT3JFZGl0Rm9ybTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiICNteUZvcm09XCJuZ0Zvcm1cIiBbZm9ybUdyb3VwXT1cImNyZWF0ZU9yRWRpdEZvcm1cIlxuICAgICAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjY3JlYXRlTW9kYWxTdWJtaXQgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7bmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Okhvc3QnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImhvc3RcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiaG9zdElucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tob3N0SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0FjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmbGV4UmFkaW9EZWZhdWx0MVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmxleFJhZGlvRGVmYXVsdDFcIj4ge3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6TGFuZ3VhZ2VzJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhbmd1YWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTFcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXRlbS5jdWx0dXJlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmaXJzdFJhZGlve3sgaSB9fVwiIFtjaGVja2VkXT1cIml0ZW0uaXNjaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxhbmd1YWdlc0NoYW5nZSgkZXZlbnQpOyFpdGVtLmlzY2hlY2tlZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmlyc3RSYWRpb3t7IGkgfX1cIj57eyBpdGVtLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNjaGVja2VkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCIgKm5nSWY9XCJpdGVtLmlzRGVmYXVsdFwiPnt7J0Ntczo6RGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljay5zdG9wKT1cInNldERlZmF1bHQoaXRlbSlcIiAqbmdJZj1cIiFpdGVtLmlzRGVmYXVsdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6U2V0RGVmYXVsdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZU1vZGFsU3VibWl0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4gLS0+Il19
|