@dignite-ng/expand.cms 2.0.0-rc.2 → 2.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/config/enums/route-names.d.ts +1 -2
  2. package/esm2022/config/cms-config.module.mjs +3 -2
  3. package/esm2022/config/enums/route-names.mjs +1 -2
  4. package/esm2022/config/providers/route.provider.mjs +1 -15
  5. package/esm2022/lib/cms.module.mjs +1 -3
  6. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +5 -3
  7. package/esm2022/lib/components/admin/entries/create.component.mjs +3 -2
  8. package/esm2022/lib/components/admin/entries/edit.component.mjs +3 -2
  9. package/esm2022/lib/components/admin/entries/entries.component.mjs +13 -9
  10. package/esm2022/lib/components/admin/fields/create-field.component.mjs +2 -2
  11. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +2 -2
  12. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +2 -2
  13. package/esm2022/lib/components/admin/fields/field-group.component.mjs +2 -2
  14. package/esm2022/lib/components/admin/fields/fields.component.mjs +3 -2
  15. package/esm2022/lib/components/admin/sections/create-or-edit-sections-modal.component.mjs +5 -3
  16. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +3 -3
  17. package/esm2022/lib/components/admin/sections/sections.component.mjs +4 -3
  18. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +3 -2
  19. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +5 -3
  20. package/esm2022/lib/proxy/dignite/abp/regionalization-management/index.mjs +3 -0
  21. package/esm2022/lib/proxy/dignite/abp/regionalization-management/models.mjs +2 -0
  22. package/esm2022/lib/proxy/dignite/abp/regionalization-management/regionalization.service.mjs +27 -0
  23. package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/form-admin.service.mjs +22 -0
  24. package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/index.mjs +3 -0
  25. package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/models.mjs +2 -0
  26. package/esm2022/lib/proxy/dignite/cms/admin/entries/entry-admin.service.mjs +70 -0
  27. package/esm2022/lib/proxy/dignite/cms/admin/entries/index.mjs +3 -0
  28. package/esm2022/lib/proxy/dignite/cms/admin/entries/models.mjs +2 -0
  29. package/esm2022/lib/proxy/dignite/cms/admin/fields/field-admin.service.mjs +45 -0
  30. package/esm2022/lib/proxy/dignite/cms/admin/fields/field-group-admin.service.mjs +41 -0
  31. package/esm2022/lib/proxy/dignite/cms/admin/fields/index.mjs +4 -0
  32. package/esm2022/lib/proxy/dignite/cms/admin/fields/models.mjs +2 -0
  33. package/esm2022/lib/proxy/dignite/cms/admin/sections/entry-type-admin.service.mjs +41 -0
  34. package/esm2022/lib/proxy/dignite/cms/admin/sections/index.mjs +4 -0
  35. package/esm2022/lib/proxy/dignite/cms/admin/sections/models.mjs +2 -0
  36. package/esm2022/lib/proxy/dignite/cms/admin/sections/section-admin.service.mjs +51 -0
  37. package/esm2022/lib/proxy/dignite/cms/entries/entry-status.enum.mjs +8 -0
  38. package/esm2022/lib/proxy/dignite/cms/entries/index.mjs +2 -0
  39. package/esm2022/lib/proxy/dignite/cms/fields/models.mjs +2 -0
  40. package/esm2022/lib/proxy/dignite/cms/sections/index.mjs +3 -0
  41. package/esm2022/lib/proxy/dignite/cms/sections/models.mjs +2 -0
  42. package/esm2022/lib/proxy/dignite/cms/sections/section-type.enum.mjs +9 -0
  43. package/esm2022/lib/services/field-abstracts.service.mjs +3 -3
  44. package/fesm2022/dignite-ng-expand.cms-config.mjs +4 -282
  45. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
  46. package/fesm2022/dignite-ng-expand.cms.mjs +88 -91
  47. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
  48. package/lib/components/admin/entries/entries.component.d.ts +4 -4
  49. package/lib/components/admin/fields/create-field.component.d.ts +1 -1
  50. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +1 -1
  51. package/lib/components/admin/fields/edit-field.component.d.ts +1 -1
  52. package/lib/components/admin/fields/field-group.component.d.ts +1 -1
  53. package/lib/components/admin/fields/fields.component.d.ts +1 -1
  54. package/lib/components/admin/sections/create-or-edit-sections-modal.component.d.ts +1 -1
  55. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +2 -2
  56. package/lib/components/admin/sections/sections.component.d.ts +2 -2
  57. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +1 -1
  58. package/lib/proxy/dignite/abp/regionalization-management/index.d.ts +2 -0
  59. package/lib/proxy/dignite/abp/regionalization-management/models.d.ts +8 -0
  60. package/lib/proxy/dignite/abp/regionalization-management/regionalization.service.d.ts +12 -0
  61. package/lib/proxy/{admin → dignite/cms/admin}/entries/models.d.ts +2 -2
  62. package/lib/proxy/{admin → dignite/cms/admin}/fields/models.d.ts +2 -2
  63. package/lib/proxy/{fields → dignite/cms/fields}/models.d.ts +1 -1
  64. package/lib/proxy/{sections → dignite/cms/sections}/models.d.ts +2 -2
  65. package/lib/services/field-abstracts.service.d.ts +2 -3
  66. package/package.json +1 -1
  67. package/config/components/domains/domains.component.d.ts +0 -31
  68. package/config/components/site-language/site-language.component.d.ts +0 -30
  69. package/config/proxy/admin/domains/domain-admin.service.d.ts +0 -13
  70. package/config/proxy/admin/domains/index.d.ts +0 -2
  71. package/config/proxy/admin/domains/models.d.ts +0 -7
  72. package/config/proxy/dignite/cms/admin/sites/index.d.ts +0 -2
  73. package/config/proxy/dignite/cms/admin/sites/models.d.ts +0 -4
  74. package/config/proxy/dignite/cms/admin/sites/site-admin.service.d.ts +0 -13
  75. package/config/proxy/dignite/cms/sites/models.d.ts +0 -4
  76. package/esm2022/config/components/domains/domains.component.mjs +0 -118
  77. package/esm2022/config/components/site-language/site-language.component.mjs +0 -112
  78. package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +0 -32
  79. package/esm2022/config/proxy/admin/domains/index.mjs +0 -3
  80. package/esm2022/config/proxy/admin/domains/models.mjs +0 -2
  81. package/esm2022/config/proxy/dignite/cms/admin/sites/index.mjs +0 -3
  82. package/esm2022/config/proxy/dignite/cms/admin/sites/models.mjs +0 -2
  83. package/esm2022/config/proxy/dignite/cms/admin/sites/site-admin.service.mjs +0 -27
  84. package/esm2022/config/proxy/dignite/cms/sites/models.mjs +0 -2
  85. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -22
  86. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
  87. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
  88. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -70
  89. package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
  90. package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
  91. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -45
  92. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -41
  93. package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
  94. package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
  95. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -41
  96. package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
  97. package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
  98. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -51
  99. package/esm2022/lib/proxy/admin/settings/index.mjs +0 -2
  100. package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +0 -31
  101. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
  102. package/esm2022/lib/proxy/entries/index.mjs +0 -2
  103. package/esm2022/lib/proxy/fields/models.mjs +0 -2
  104. package/esm2022/lib/proxy/sections/index.mjs +0 -3
  105. package/esm2022/lib/proxy/sections/models.mjs +0 -2
  106. package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
  107. package/esm2022/lib/proxy/settings/models.mjs +0 -2
  108. package/lib/proxy/admin/settings/index.d.ts +0 -1
  109. package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +0 -13
  110. package/lib/proxy/settings/models.d.ts +0 -5
  111. /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/form-admin.service.d.ts +0 -0
  112. /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/index.d.ts +0 -0
  113. /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/models.d.ts +0 -0
  114. /package/lib/proxy/{admin → dignite/cms/admin}/entries/entry-admin.service.d.ts +0 -0
  115. /package/lib/proxy/{admin → dignite/cms/admin}/entries/index.d.ts +0 -0
  116. /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-admin.service.d.ts +0 -0
  117. /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-group-admin.service.d.ts +0 -0
  118. /package/lib/proxy/{admin → dignite/cms/admin}/fields/index.d.ts +0 -0
  119. /package/lib/proxy/{admin → dignite/cms/admin}/sections/entry-type-admin.service.d.ts +0 -0
  120. /package/lib/proxy/{admin → dignite/cms/admin}/sections/index.d.ts +0 -0
  121. /package/lib/proxy/{admin → dignite/cms/admin}/sections/models.d.ts +0 -0
  122. /package/lib/proxy/{admin → dignite/cms/admin}/sections/section-admin.service.d.ts +0 -0
  123. /package/lib/proxy/{entries → dignite/cms/entries}/entry-status.enum.d.ts +0 -0
  124. /package/lib/proxy/{entries → dignite/cms/entries}/index.d.ts +0 -0
  125. /package/lib/proxy/{sections → dignite/cms/sections}/index.d.ts +0 -0
  126. /package/lib/proxy/{sections → dignite/cms/sections}/section-type.enum.d.ts +0 -0
@@ -4,8 +4,8 @@ import { OnInit } from "@angular/core";
4
4
  import { FormGroup } from "@angular/forms";
5
5
  import { Router } from "@angular/router";
6
6
  import { ColumnMode } from "@swimlane/ngx-datatable";
7
- import { EntryAdminService, EntryDto, GetEntriesInput } from "../../../proxy/admin/entries";
8
- import { SectionAdminService } from "../../../proxy/admin/sections";
7
+ import { EntryAdminService, EntryDto, GetEntriesInput } from "../../../proxy/dignite/cms/admin/entries";
8
+ import { SectionAdminService } from "../../../proxy/dignite/cms/admin/sections";
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class EntriesComponent implements OnInit {
11
11
  private _EntryAdminService;
@@ -29,7 +29,7 @@ export declare class EntriesComponent implements OnInit {
29
29
  /**版块下的条目类型列表 */
30
30
  entryTypeList: any[any];
31
31
  /**状态编码 */
32
- _entryStatusOptions: ABP.Option<typeof import("../../../proxy/entries").EntryStatus>[];
32
+ _entryStatusOptions: ABP.Option<typeof import("../../../proxy/dignite/cms/entries").EntryStatus>[];
33
33
  /**获取页面数据 */
34
34
  getPageDate(): Promise<void>;
35
35
  /**切换板块 */
@@ -41,7 +41,7 @@ export declare class EntriesComponent implements OnInit {
41
41
  /**获取版块下的条目类型 */
42
42
  getSectionOfEntryType(): void;
43
43
  private config;
44
- private _SiteSettingsAdminService;
44
+ private _RegionalizationService;
45
45
  /**获取版块下的语言列表 */
46
46
  getSectionLanguagesList(): Promise<unknown>;
47
47
  /**站点设置语言 */
@@ -3,8 +3,8 @@ import { ToasterService } from '@abp/ng.theme.shared';
3
3
  import { Location } from '@angular/common';
4
4
  import { ElementRef } from '@angular/core';
5
5
  import { FormBuilder, FormGroup } from '@angular/forms';
6
- import { FieldAdminService } from '../../../proxy/admin/fields';
7
6
  import { CmsApiService } from '../../../services';
7
+ import { FieldAdminService } from '../../../proxy/dignite/cms/admin/fields';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class CreateFieldComponent {
10
10
  private fb;
@@ -3,8 +3,8 @@ import { FieldAbstractsService } from '../../../services/field-abstracts.service
3
3
  import { AbstractControl, FormGroup, ValidationErrors } from '@angular/forms';
4
4
  import { CmsApiService } from '../../../services/cms-api.service';
5
5
  import { Observable } from 'rxjs';
6
- import { FieldAdminService } from '../../../proxy/admin/fields';
7
6
  import { LocalizationService } from '@abp/ng.core';
7
+ import { FieldAdminService } from '../../../proxy/dignite/cms/admin/fields';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class CreateOrEditFieldComponent {
10
10
  _FieldAbstractsService: FieldAbstractsService;
@@ -4,8 +4,8 @@ import { Location } from '@angular/common';
4
4
  import { OnInit, ElementRef } from '@angular/core';
5
5
  import { FormBuilder, FormGroup } from '@angular/forms';
6
6
  import { ActivatedRoute } from '@angular/router';
7
- import { FieldAdminService } from '../../../proxy/admin/fields';
8
7
  import { FieldAbstractsService, CmsApiService } from '../../../services';
8
+ import { FieldAdminService } from '../../../proxy/dignite/cms/admin/fields';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class EditFieldComponent implements OnInit {
11
11
  private fb;
@@ -1,9 +1,9 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { FieldGroupAdminService } from '../../../proxy/admin/fields';
4
3
  import { ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
5
4
  import { FieldAbstractsService } from '../../../services/field-abstracts.service';
6
5
  import { LocalizationService } from '@abp/ng.core';
6
+ import { FieldGroupAdminService } from '../../../proxy/dignite/cms/admin/fields';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class FieldGroupComponent implements OnInit {
9
9
  private fb;
@@ -3,7 +3,7 @@ import { ToasterService, ConfirmationService } from "@abp/ng.theme.shared";
3
3
  import { OnInit } from "@angular/core";
4
4
  import { Router } from "@angular/router";
5
5
  import { ColumnMode } from "@swimlane/ngx-datatable";
6
- import { FieldAdminService, FieldDto, GetFieldsInput } from "../../../proxy/admin/fields";
6
+ import { FieldAdminService, FieldDto, GetFieldsInput } from "../../../proxy/dignite/cms/admin/fields";
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class FieldsComponent implements OnInit {
9
9
  readonly list: ListService;
@@ -1,7 +1,7 @@
1
1
  import { ElementRef, EventEmitter } from '@angular/core';
2
2
  import { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';
3
- import { SectionType } from '../../../proxy/sections';
4
3
  import { Observable } from 'rxjs';
4
+ import { SectionType } from '../../../proxy/dignite/cms/sections';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class CreateOrEditSectionsModalComponent {
7
7
  private _LocalizationService;
@@ -3,10 +3,10 @@ import { ToasterService } from '@abp/ng.theme.shared';
3
3
  import { ElementRef, OnInit } from '@angular/core';
4
4
  import { FormGroup, FormArray } from '@angular/forms';
5
5
  import { ActivatedRoute } from '@angular/router';
6
- import { FieldGroupAdminService, FieldAdminService } from '../../../../proxy/admin/fields';
7
- import { EntryTypeAdminService } from '../../../../proxy/admin/sections';
8
6
  import { CmsApiService } from '../../../../services';
9
7
  import { Location } from '@angular/common';
8
+ import { FieldAdminService, FieldGroupAdminService } from '../../../../proxy/dignite/cms/admin/fields';
9
+ import { EntryTypeAdminService } from '../../../../proxy/dignite/cms/admin/sections';
10
10
  import * as i0 from "@angular/core";
11
11
  export declare class CreateOrEditComponent implements OnInit {
12
12
  private toaster;
@@ -2,10 +2,10 @@ import { ABP, ListService, LocalizationService, PagedResultDto } from '@abp/ng.c
2
2
  import { OnInit } from '@angular/core';
3
3
  import { ToasterService, ConfirmationService } from '@abp/ng.theme.shared';
4
4
  import { FormBuilder, FormGroup } from '@angular/forms';
5
- import { SectionAdminService, EntryTypeAdminService, GetSectionsInput, SectionDto } from '../../../proxy/admin/sections';
6
5
  import { CmsApiService } from '../../../services';
7
6
  import { ColumnMode } from '@swimlane/ngx-datatable';
8
- import { SectionType } from '../../../proxy/sections';
7
+ import { EntryTypeAdminService, GetSectionsInput, SectionAdminService, SectionDto } from '../../../proxy/dignite/cms/admin/sections';
8
+ import { SectionType } from '../../../proxy/dignite/cms/sections';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class SectionsComponent implements OnInit {
11
11
  readonly list: ListService;
@@ -1,6 +1,6 @@
1
1
  import { AfterContentInit, ElementRef } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { SectionAdminService } from '../../../proxy/admin/sections';
3
+ import { SectionAdminService } from '../../../proxy/dignite/cms/admin/sections';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class EntryConfigComponent implements AfterContentInit {
6
6
  private fb;
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export * from './regionalization.service';
@@ -0,0 +1,8 @@
1
+ export interface RegionalizationDto {
2
+ defaultCultureName?: string;
3
+ availableCultureNames: string[];
4
+ }
5
+ export interface UpdateRegionalizationInput {
6
+ defaultCultureName: string;
7
+ availableCultureNames: string[];
8
+ }
@@ -0,0 +1,12 @@
1
+ import type { RegionalizationDto, UpdateRegionalizationInput } from './models';
2
+ import { RestService, Rest } from '@abp/ng.core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RegionalizationService {
5
+ private restService;
6
+ apiName: string;
7
+ get: (config?: Partial<Rest.Config>) => import("rxjs").Observable<RegionalizationDto>;
8
+ update: (input: UpdateRegionalizationInput, config?: Partial<Rest.Config>) => import("rxjs").Observable<RegionalizationDto>;
9
+ constructor(restService: RestService);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<RegionalizationService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<RegionalizationService>;
12
+ }
@@ -1,7 +1,7 @@
1
- import type { CustomizableObject } from '../../dignite/abp/data/models';
1
+ import type { CustomizableObject } from '../../../abp/data/models';
2
2
  import type { ExtensibleAuditedEntityDto, PagedAndSortedResultRequestDto } from '@abp/ng.core';
3
3
  import type { EntryStatus } from '../../entries/entry-status.enum';
4
- import type { CmsUserDto } from '../../volo/cms-kit/users/models';
4
+ import type { CmsUserDto } from '../../../../volo/cms-kit/users/models';
5
5
  export interface CreateEntryInput extends CreateOrUpdateEntryInputBase {
6
6
  initialVersionId?: string;
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { FieldDtoConfig } from '../../fields/models';
1
+ import type { FieldDtoen } from '../../fields/models';
2
2
  import type { EntityDto, PagedAndSortedResultRequestDto } from '@abp/ng.core';
3
3
  export interface CreateFieldInput extends CreateOrUpdateFieldInputBase {
4
4
  }
@@ -13,7 +13,7 @@ export interface CreateOrUpdateFieldInputBase {
13
13
  formControlName: string;
14
14
  formConfiguration: Record<string, object>;
15
15
  }
16
- export interface FieldDto extends FieldDtoConfig {
16
+ export interface FieldDto extends FieldDtoen {
17
17
  groupId?: string;
18
18
  groupName?: string;
19
19
  creationTime?: string;
@@ -1,5 +1,5 @@
1
1
  import type { EntityDto } from '@abp/ng.core';
2
- export interface FieldDtoConfig extends EntityDto<string> {
2
+ export interface FieldDtoen extends EntityDto<string> {
3
3
  name?: string;
4
4
  displayName?: string;
5
5
  description?: string;
@@ -1,7 +1,7 @@
1
- import type { FieldDtoConfig } from '../fields/models';
1
+ import type { FieldDtoen } from '../fields/models';
2
2
  export interface EntryFieldDto {
3
3
  fieldId?: string;
4
- field: FieldDtoConfig;
4
+ field: FieldDtoen;
5
5
  displayName?: string;
6
6
  required: boolean;
7
7
  showOnList: boolean;
@@ -1,6 +1,5 @@
1
- import { FieldGroupAdminService } from '../proxy/admin/fields/field-group-admin.service';
2
- import { FieldGroupDto } from '../proxy/admin/fields/models';
3
- import { FormAdminService } from '../proxy/admin/dynamic-forms';
1
+ import { FieldGroupAdminService, FieldGroupDto } from '../proxy/dignite/cms/admin/fields';
2
+ import { FormAdminService } from '../proxy/dignite/cms/admin/dynamic-forms';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class FieldAbstractsService {
6
5
  private _FieldGroupAdminService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dignite-ng/expand.cms",
3
- "version": "2.0.0-rc.02",
3
+ "version": "2.0.0-rc.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "~18.1.0",
6
6
  "@angular/core": "~18.1.0"
@@ -1,31 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { AbstractControl, FormGroup, ValidationErrors } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export declare class DomainsComponent implements OnInit {
6
- private toaster;
7
- private _DomainAdminService;
8
- private _LocalizationService;
9
- private _ValidatorsService;
10
- /**表单验证状态
11
- * {
12
- * title:true,
13
- * }
14
- */
15
- formValidation: any;
16
- /**表单实体 */
17
- newEntity: FormGroup | undefined;
18
- /**domain详情 */
19
- domainInfo: any;
20
- get domainNameInput(): AbstractControl<any, any>;
21
- ngOnInit(): Promise<void>;
22
- /**用于获取已绑定的域名 */
23
- getDomainsBound(): Promise<unknown>;
24
- repetitionAsyncValidator(): (ctrl: AbstractControl) => Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;
25
- isSubmit: boolean;
26
- /**保存 */
27
- SaveSubmit(): void;
28
- reset(): void;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<DomainsComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<DomainsComponent, "cms-domains", never, {}, {}, never, never, true, never>;
31
- }
@@ -1,30 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { eCmsRouteNames } from '../../enums';
4
- import * as i0 from "@angular/core";
5
- export declare class SiteLanguageComponent implements OnInit {
6
- private fb;
7
- private toaster;
8
- private _LocalizationService;
9
- private configState;
10
- private _SiteAdminService;
11
- eCmsRouteNames: typeof eCmsRouteNames;
12
- /**表单实体 */
13
- newEntity: FormGroup | undefined;
14
- /**系统语言 */
15
- languagesSystem: any[];
16
- ngOnInit(): Promise<void>;
17
- /**获取配置的默认语言与选中语言 */
18
- getSiteLanguageSettings(): Promise<unknown>;
19
- /**语言改变 */
20
- setLanguagesChange(event: any, item: any): void;
21
- /**设置默认语言 */
22
- setDefault(items: any): void;
23
- /**设置表单中的语言 */
24
- setFromLangguages(): void;
25
- isSubmit: boolean;
26
- /**保存 */
27
- SaveSubmit(): void;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<SiteLanguageComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<SiteLanguageComponent, "app-site-language", never, {}, {}, never, never, true, never>;
30
- }
@@ -1,13 +0,0 @@
1
- import type { DomainDto, UpdateDomainInput } from './models';
2
- import { RestService, Rest } from '@abp/ng.core';
3
- import * as i0 from "@angular/core";
4
- export declare class DomainAdminService {
5
- private restService;
6
- apiName: string;
7
- getBound: (config?: Partial<Rest.Config>) => import("rxjs").Observable<DomainDto>;
8
- nameExists: (domainName: string, config?: Partial<Rest.Config>) => import("rxjs").Observable<boolean>;
9
- update: (input: UpdateDomainInput, config?: Partial<Rest.Config>) => import("rxjs").Observable<DomainDto>;
10
- constructor(restService: RestService);
11
- static ɵfac: i0.ɵɵFactoryDeclaration<DomainAdminService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<DomainAdminService>;
13
- }
@@ -1,2 +0,0 @@
1
- export * from './domain-admin.service';
2
- export * from './models';
@@ -1,7 +0,0 @@
1
- import type { CreationAuditedEntityDto } from '@abp/ng.core';
2
- export interface DomainDto extends CreationAuditedEntityDto<string> {
3
- domainName?: string;
4
- }
5
- export interface UpdateDomainInput {
6
- domainName: string;
7
- }
@@ -1,2 +0,0 @@
1
- export * from './models';
2
- export * from './site-admin.service';
@@ -1,4 +0,0 @@
1
- export interface UpdateSiteInput {
2
- defaultLanguage: string;
3
- allLanguages: string[];
4
- }
@@ -1,13 +0,0 @@
1
- import type { UpdateSiteInput } from './models';
2
- import { RestService, Rest } from '@abp/ng.core';
3
- import type { SiteDto } from '../../sites/models';
4
- import * as i0 from "@angular/core";
5
- export declare class SiteAdminService {
6
- private restService;
7
- apiName: string;
8
- get: (config?: Partial<Rest.Config>) => import("rxjs").Observable<SiteDto>;
9
- update: (input: UpdateSiteInput, config?: Partial<Rest.Config>) => import("rxjs").Observable<void>;
10
- constructor(restService: RestService);
11
- static ɵfac: i0.ɵɵFactoryDeclaration<SiteAdminService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<SiteAdminService>;
13
- }
@@ -1,4 +0,0 @@
1
- export interface SiteDto {
2
- defaultLanguage?: string;
3
- allLanguages: string[];
4
- }
@@ -1,118 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { FormControl, FormGroup, FormsModule, } from '@angular/forms';
3
- import { finalize } from 'rxjs';
4
- import { CoreModule, LocalizationService } from '@abp/ng.core';
5
- import { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';
6
- import { DomainAdminService } from '../../proxy/admin/domains';
7
- import { ValidatorsService } from '@dignite-ng/expand.core';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/forms";
11
- import * as i3 from "@abp/ng.core";
12
- import * as i4 from "@ngx-validate/core";
13
- import * as i5 from "@abp/ng.theme.shared";
14
- // import { ValidatorsService } from '@dignite-ng/expand.core';
15
- export class DomainsComponent {
16
- constructor() {
17
- this.toaster = inject(ToasterService);
18
- this._DomainAdminService = inject(DomainAdminService);
19
- this._LocalizationService = inject(LocalizationService);
20
- this._ValidatorsService = inject(ValidatorsService);
21
- /**表单验证状态
22
- * {
23
- * title:true,
24
- * }
25
- */
26
- this.formValidation = '';
27
- /**domain详情 */
28
- this.domainInfo = '';
29
- this.isSubmit = false;
30
- }
31
- get domainNameInput() {
32
- return this.newEntity.get('domainName');
33
- }
34
- async ngOnInit() {
35
- //Called after the constructor, initializing input properties, and the first call to ngOnChanges.
36
- //Add 'implements OnInit' to the class.
37
- this.newEntity = new FormGroup({
38
- domainName: new FormControl('', {
39
- asyncValidators: this.repetitionAsyncValidator(),
40
- updateOn: 'change',
41
- }),
42
- });
43
- await this.getDomainsBound();
44
- }
45
- /**用于获取已绑定的域名 */
46
- getDomainsBound() {
47
- return new Promise((resolve, rejects) => {
48
- this._DomainAdminService.getBound().subscribe(res => {
49
- this.domainNameInput.patchValue(res?.domainName || '');
50
- this.domainInfo = res;
51
- resolve(res);
52
- });
53
- });
54
- }
55
- //检验域名是否已经绑定
56
- repetitionAsyncValidator() {
57
- return (ctrl) => {
58
- return new Promise(resolve => {
59
- let domainNameInput = this.domainNameInput.value;
60
- if (!domainNameInput) {
61
- resolve(null);
62
- return;
63
- }
64
- if (this.domainInfo?.domainName === domainNameInput) {
65
- resolve(null);
66
- return;
67
- }
68
- var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
69
- if (!patt.test(domainNameInput)) {
70
- resolve({
71
- repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()),
72
- });
73
- return;
74
- }
75
- this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
76
- if (res) {
77
- resolve({
78
- repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value),
79
- });
80
- }
81
- else {
82
- resolve(null);
83
- }
84
- });
85
- });
86
- };
87
- }
88
- /**保存 */
89
- SaveSubmit() {
90
- this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
91
- if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
92
- return;
93
- if (this.isSubmit)
94
- return;
95
- this.isSubmit = true;
96
- let input = this.newEntity.value;
97
- this._DomainAdminService
98
- .update(input)
99
- .pipe(finalize(() => {
100
- this.reset();
101
- }))
102
- .subscribe(async (res) => {
103
- this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
104
- await this.getDomainsBound();
105
- });
106
- }
107
- reset() {
108
- this.isSubmit = false;
109
- this.formValidation = '';
110
- }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: DomainsComponent, isStandalone: true, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"SaveSubmit()\">\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-3\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <!-- <small class=\"form-text text-muted d-block\">\u6B64\u5904\u586B\u5199\u60A8\u7F51\u7AD9\u7684\u57DF\u540D\uFF0C\u7528\u4E8E\u8DF3\u8F6C\u524D\u53F0\u9875\u9762\u7B49\u64CD\u4F5C</small> -->\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i5.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "ngmodule", type: FormsModule }] }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, decorators: [{
115
- type: Component,
116
- args: [{ selector: 'cms-domains', standalone: true, imports: [CoreModule, ThemeSharedModule, FormsModule], template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\n (submit)=\"SaveSubmit()\">\n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <abp-button buttonClass=\"btn btn-sm btn-primary\" iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\n [disabled]=\"isSubmit\">{{'AbpUi::Save'|abpLocalization}}</abp-button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-3\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <!-- <small class=\"form-text text-muted d-block\">\u6B64\u5904\u586B\u5199\u60A8\u7F51\u7AD9\u7684\u57DF\u540D\uFF0C\u7528\u4E8E\u8DF3\u8F6C\u524D\u53F0\u9875\u9762\u7B49\u64CD\u4F5C</small> -->\n </div>\n <hr class=\"my-3\" />\n</form>" }]
117
- }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWlucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9jb21wb25lbnRzL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9jb21wb25lbnRzL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEdBRVosTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBQzVELCtEQUErRDtBQVMvRCxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBUVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2RDs7OztXQUlHO1FBQ0gsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFLekIsY0FBYztRQUNkLGVBQVUs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QUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBRWpDLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTlHVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix1RUN0QjdCLHFpQ0FnQk8seURESUssVUFBVSxzbkNBQUUsaUJBQWlCLHVpQkFBRSxXQUFXOzsyRkFFekMsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLGFBQWEsY0FHWCxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluYWxpemUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgRG9tYWluQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJveHkvYWRtaW4vZG9tYWlucyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbi8vIGltcG9ydCB7IFZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZG9tYWlucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb21haW5zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9tYWlucy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgdG9hc3RlciA9IGluamVjdChUb2FzdGVyU2VydmljZSk7XG4gIHByaXZhdGUgX0RvbWFpbkFkbWluU2VydmljZSA9IGluamVjdChEb21haW5BZG1pblNlcnZpY2UpO1xuICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKuihqOWNlemqjOivgeeKtuaAgVxuICAgKiB7XG4gICAqICB0aXRsZTp0cnVlLFxuICAgKiB9XG4gICAqL1xuICBmb3JtVmFsaWRhdGlvbjogYW55ID0gJyc7XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKmRvbWFpbuivpuaDhSAqL1xuICBkb21haW5JbmZvOiBhbnkgPSAnJztcbiAgZ2V0IGRvbWFpbk5hbWVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZXdFbnRpdHkuZ2V0KCdkb21haW5OYW1lJyk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvL0NhbGxlZCBhZnRlciB0aGUgY29uc3RydWN0b3IsIGluaXRpYWxpemluZyBpbnB1dCBwcm9wZXJ0aWVzLCBhbmQgdGhlIGZpcnN0IGNhbGwgdG8gbmdPbkNoYW5nZXMuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25Jbml0JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5uZXdFbnRpdHkgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGRvbWFpbk5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywge1xuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXG4gICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJyxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZ2V0RG9tYWluc0JvdW5kKCk7XG4gIH1cblxuICAvKirnlKjkuo7ojrflj5blt7Lnu5HlrprnmoTln5/lkI0gKi9cbiAgZ2V0RG9tYWluc0JvdW5kKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRG9tYWluQWRtaW5TZXJ2aWNlLmdldEJvdW5kKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZG9tYWluTmFtZUlucHV0LnBhdGNoVmFsdWUocmVzPy5kb21haW5OYW1lIHx8ICcnKTtcbiAgICAgICAgdGhpcy5kb21haW5JbmZvID0gcmVzO1xuICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8v5qOA6aqM5Z+f5ZCN5piv5ZCm5bey57uP57uR5a6aXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXG4gICAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBkb21haW5OYW1lSW5wdXQgPSB0aGlzLmRvbWFpbk5hbWVJbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKCFkb21haW5OYW1lSW5wdXQpIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kb21haW5JbmZvPy5kb21haW5OYW1lID09PSBkb21haW5OYW1lSW5wdXQpIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGF0dCA9IC9eKD8hLSlbQS1aYS16MC05LV17MSw2M30oPzwhLSlcXC5bQS1aYS16XXsyLDZ9JC87XG4gICAgICAgIGlmICghcGF0dC50ZXN0KGRvbWFpbk5hbWVJbnB1dCkpIHtcbiAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgYEFicFZhbGlkYXRpb246OlRoaXNGaWVsZE11c3RNYXRjaFRoZVJlZ3VsYXJFeHByZXNzaW9uezB9YCxcbiAgICAgICAgICAgICAgcGF0dC50b1N0cmluZygpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9Eb21haW5BZG1pblNlcnZpY2UubmFtZUV4aXN0cyhkb21haW5OYW1lSW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgYENtczo6RG9tYWluTmFtZXswfUFscmVhZHlFeGlzdGAsXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICBpc1N1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKuS/neWtmCAqL1xuICBTYXZlU3VibWl0KCkge1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLm5ld0VudGl0eSk7XG4gICAgaWYgKHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmlzQ2hlY2tGb3JtKHRoaXMuZm9ybVZhbGlkYXRpb24sICdDbXMnKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzU3VibWl0KSByZXR1cm47XG4gICAgdGhpcy5pc1N1Ym1pdCA9IHRydWU7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWU7XG5cbiAgICB0aGlzLl9Eb21haW5BZG1pblNlcnZpY2VcbiAgICAgIC51cGRhdGUoaW5wdXQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgcmVzID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0RG9tYWluc0JvdW5kKCk7XG4gICAgICB9KTtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9ICcnO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCJcbiAgICAoc3VibWl0KT1cIlNhdmVTdWJtaXQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxoMj57eydDbXM6OkRvbWFpbid8YWJwTG9jYWxpemF0aW9ufX08L2gyPlxuICAgICAgICA8YWJwLWJ1dHRvbiBidXR0b25DbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiBpY29uQ2xhc3M9XCJmYSBmYS1zYXZlXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIFtsb2FkaW5nXT1cImlzU3VibWl0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdFwiPnt7J0FicFVpOjpTYXZlJ3xhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJteS0zXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRvbWFpbk5hbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImRvbWFpbk5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgIHt7ZG9tYWluTmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj7mraTlpITloavlhpnmgqjnvZHnq5nnmoTln5/lkI3vvIznlKjkuo7ot7PovazliY3lj7DpobXpnaLnrYnmk43kvZw8L3NtYWxsPiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJteS0zXCIgLz5cbjwvZm9ybT4iXX0=